SYBASE ASE 安全登陆Linux
1 引言
在各种操作系统中,这两年的流行色是linux,它成了众多媒体的的宠儿,引起了社会上,不管是电脑发烧友、程序员、还是开发商的广泛关注。越来越多的主流数据库厂商将它们的产品移植到linux操作系统平台,例如,Sybase, Oracle, Informix, IBM, 等等,这个名单几乎包括除了Microsoft公司之外数据库软件市场的全部明星,大家都不愿意在这个充满希望和生机的平台上丧失机会。
Linux操作系统带给人们不仅是一种操作系统的选择,它的崛起更多的带给人们一种思潮 - 自由软件的思潮。在这种思潮的带动下,人们发现可以使用的自由软件越来越多,使用它们可以建立起一个具有相当性能价格比的应用系统,可以满足许许多多场合下的信息系统需求。例如,在当前的主要互连网业务 - WWW发布应用中,自由软件库中已经包括了Linux,FreeBSD(操作系统),Apache(WWW服务器),Sybase ASE for Linux, Oracle for Linux,Informix for Linux(数据库),gcc, perl(编程语言)以及其它各种功能加强工具等等。它们的可靠性和性能已经得到了多种环境任务的考验和证明。
在上述几种Linux平台上的数据库产品中,Sybase ASE是一个非常不错的选择,紧凑的程序分发包里包含了全部的文档、数据库备份、监视等工具,同时它对系统的要求不高(系统配置为:32M内存,包含文档的全部安装需要200M硬盘,不安装文档需要120M硬盘空间),应该说,这样的配置在当今的硬件环境下,已经属于非常简单的服务器需求了。它的安装、配置过程与其它产品相比也显得简单易用。这些优势,连同Sybase数据库产品本来的用户基础,都使得它成为linux平台上出色的数据库软件。
数据库应用采用客户端/服务器(C/S)架构,服务器端在某一个端口监听网络连接请求。客户端申请连接,输入合法的用户名和相应的口令,进入服务器,然后运行需要的命令。这样,在数据库用户的配置管理方面如果出现安全漏洞,势必会给系统和数据带来非常大的威胁。令人遗憾的是,Sybase ASE在正常安装完成后,数据库超级用户的帐号没有设置口令!这样,互连网上每一个知道服务器端口号的用户或者本机上的所有可登录用户都可以以超级用户身份对数据库随意操作。这应该说是一个非常大的安全漏洞。
本文下面将逐步介绍Sybase ASE for Linux 的安装过程,安装完成后应该采取的安全配置和较为安全稳妥的系统、用户策略。
2 Sybase ASE 11.0.3 for Linux的安装
首先需要下载Sybase ASE for Linux软件包,网络上可以比较容易找到RPM格式的二进制发行包,包括sybase-ase-11.0.3.3-1.i386.rpm(主程序包)、sybase-doc-11.0.3.3-1.i386.rpm(文档包)。RPM是Redhat公司的软件包管理程序,使用它可以非常方便地安装、卸载程序包,并保持它们之间的依赖关系。
然后,以超级用户的身份键入命令:
#rpm -i sybase-ase-11.0.3.3-1.i386.rpm
屏幕会显示sybase公司的版权说明,键入\yes\表示同意。接下去安装程序会提示将在系统中创建一个用户sybase和相应的组,并要求为该帐号设置相应的口令。Sybase数据库安装的缺省目录是/opt/sybase。按照前面的说明,安装时要注意磁盘分区有足够的空间(即>200MB)。下一步管理员可以重新以sybase登录继续配置,也可以使用 #su - sybase 改变身份为sybase来继续对sybase进行安装。屏幕上将会看到:
1.Release directory:/opt/sybase
2.Edit / View Interfaces File
3.Configure a Server product
4.Configure an Open Client/Server product
Ctrl-a Accept and Continue, Ctrl-x Exit Screen, ? Help.
Enter the number of your choice and press return:
选择3来配置服务器,在该选项中将会一同配置服务器监听端口。在下面每一个屏幕提示下,数字表示具体选项,Ctrl-a表示已经配置完毕,进行下一步,Ctrl-x表示放弃刚才的选择,退回上一步,下面省去同样的提示。在下面的提示下,首先选择1配置SQL服务器,然后在下一个屏幕选择1来配置一个新的SQL服务器。配置备份服务器可以在SQL服务器配置完成后再来。由于是第一次安装,所以选择配置新的服务器,后面两个选项分别提供了重新配置或者升级原服务器的功能
Product Date InstalledDate Configured
1.SQL Server11 Sep 1998 06:47
2.Backup Server 11 Sep 1998 06:47
1.Configure a new SQL Server
2.Configure an existing SQL Server
3.Upgrade an existing SQL Server
下面的屏幕提示要求选择服务器的名字,缺省为SYBASE。这与sybase的交互式访问工具isql的缺省服务器名字是一致的。
ADD NEW SQL SERVER
1.SQL Server name:SYBASE
接下来的配置关系到了数据库的具体细节,包括端口号、设备、语言、字符集等。让我们逐一地看一看每一项的含义。下面假定我们不改变它的默认名字,直接按ctrl-a表示接受。
SQL SERVER CONFIGURATION
1.CONFIGURE SERVER\S INTERFACES FILE ENTRY Incomplete
2.MASTER DEVICE CONFIGURATION Incomplete
3.SYBSYSTEMPROCS DATABASE CONFIGURATION Incomplete
4.SET ERRORLOG LOCATION Incomplete
5.CONFIGURE DEFAULT BACKUP SERVER Incomplete
6.CONFIGURE LANGUAGES Incomplete
7.CONFIGURE CHARACTER SETS Incomplete
8.CONFIGURE SORT ORDER Incomplete
9.ACTIVATE AUDITING Incomplete
第一项配置服务器端口,参照下面的提示屏幕,
SERVER INTERFACES FILE ENTRY SCREEN
Server name:SYBASE
1.Retry Count:0
2.Retry Delay:0
3.Add a new listener service
选择增加一个监听端口,出现下面的配置TCP端口的屏幕,
EDIT TCP SERVICE
1.Hostname/Address: localhost.localdomain
2.Port:
3.Name Alias:
4.Delete this service from the interfaces entry
其中的主机名在一般情况下由安装程序自动从环境中提取,通常不需要改动。但是,如果用户配置的是远程服务器的话,此处应该修改为相应的服务器地址。第二项的端口号用户可以自由选择,通常选择在1024以上。同样,如果是配置远程服务器,端口号应该修改为正确的端口地址。这两个参数会记录在/opt/sybase/interfaces文件中,也就是说在配置完成后,用户也可以手工修改该文件来重新改变连机端口的参数。
数据库主设备可以是一块新的物理设备,也可以是磁盘中的一个文件,大小可以根据需要和存储设备的空间大小调整。
MASTER DEVICE CONFIGURATION
1.Master Device:/opt/sybase/master.dat
2.Size (Meg):21
后面的配置在普通应用下,基本上不需要修改缺省值。按照提示继续作下去,依次分别是配置SYBASE系统进程数据库、错误日志、缺省备份服务器、字符集、数据库排序、激活审计等。其中的缺省备份服务器和激活审计配置对于数据库安全较为重要(参见下面的屏幕提示)。备份服务器在管理员希望对数据库进行备份时需要,它的原理是在一个特定的端口监听备份申请(该端口号必须与前面数据库端口号区分开),将数据库的数据备份到指定的设备中去(例如\"/tmp/sybase.mybackup.19990909\")。
SET THE SQL SERVER\S BACKUP SERVER
1.SQL Server Backup Server name:SYB_BACKUP
审计功能在缺省状态下并不打开。如果管理员认为需要,则可以参照下面的屏幕创建一个单独的数据库来存储系统审计信息。
ACTIVATE AUDITING
1.Install auditing:no
2.sybsecurity database size (Meg):5
3.sybsecurity logical device name:sybsecurity
4.create new device for the sybsecurity database:no
3 安装后的安全问题与相应的配置
按照DoD52.00.28-STD信任计算机系统评估标准,也就是通常所说的桔皮书,Sybase ASE的设计标准为C2级,它提供了四种安全机制,分别是访问控制、认证控制、角色划分、数据库审计。访问控制是指对象所有者可以对不同的登录用户赋予或者取消某些访问的权利。认证控制是指保证只有被授权的用户才能登录进入系统。角色的划分使得系统管理员可以将系统的一些特殊权利分别赋予某一个用户,使他们能够分别完成某些关键任务。具体说,sybase数据库系统设定了三种主要角色:系统管理员(sa_role),系统安全员(sso_role),系统操作员(oper_role)。后面将会较为详细地介绍它们各自的权利和任务。数据库审计系统可以对系统的登录、退出、数据库启动、远程过程调用、角色的变化、对各种对象的访问等操作提供记录和审查。
下面总结以下三种角色的各自主要权利和任务:
★ sa_role:管理磁盘使用,改变系统各种运行参数,诊断系统出现的各种问题,备份和恢复数据库,对其他用户赋予或者取消sa-role,创建用户数据库并为它们授予合适的属主,建立用户组,等等。
★ sso-role:创建登录帐号并初始化口令,更改其他所有帐号的口令,对其他用户赋予或者取消sso-role以及oper-role,设定口令时限以及管理审计系统等。
★ oper-role:备份和恢复各种数据库。
Sybase ASE在安装完成时在系统中创建了用户sa,它同时具有sa-role和sso-role两种角色。从上面的权限说明中,大家可以看到此时的用户\"sa\"在服务器中具有无限的权利,相当于一般unix系统的root,一个没有口令的root! 这样,任何蓄意的联网用户都可以完全控制该SQL服务器。这不能不说是Sybase ASE的一个重大安全漏洞。为此,强烈建议管理员在完成下面的安全配置之前请勿将服务器接入网络!
首先,利用sybase提供的交互式访问工具isql连接服务器。键入以下命令:
$/opt/sybase/bin/isql -Usa -P -Smysybase
表示以用户sa、空口令连接服务器mysybase。更改sa的口令,
>sp_password NULL,\"NewPassWd\"
>go
将原来的空口令(NULL)改为当前的\"NewPassWd\"。这里的口令最少为6个字符长度,可以由任何可打印字符、字母、数字等组成。
角色的划分可以说是sybase数据库相对于普通unix系统在安全体制方面的进步。大家知道,拥有无限权利的超级用户一方面是系统的保护者,但是更多的时候是给系统的安全带来了巨大的安全威胁。简单说,超级用户一个低级的误操作就可能毁掉整个服务器。从攻击的角度将,攻击者只要获得了超级用户的身份就表明他已经彻底攻克了该系统。而对于经过特权分割安全加固的系统来说,攻击者必须将若干个特权用户全部破解,才能得以完全控制该系统。可以说超级权利用户的存在是区分C级和B级安全系统的一个重要标志。
建议服务器管理员在设置sa帐号的口令以后,通过创建新用户并分别sa的角色并关闭sa进一步加强服务器的安全。Sybase提供了几个相应的命令sp_addlogin, sp_role等来完成上述操作。
>sp_addlogin sa_user,\"Sa,PassWd\"
>sp_addlogin sso_user,\"Sso,PassW\"
>sp_role \"grant\",sa_role,sa_user
>sp_role \"grant\",sso_role,sso_user
>sp_locklogin sa,\"lock\"
上述命令创建了两个用户sa_user,sso_user,并分别设置了口令\"Sa,PassW\"、\"Sso,Pass\"和角色sa_role、sso_role,然后关闭了帐号sa。
4 结论
现在,以Linux为代表的自由软件潮流给人带来耳目一新的感觉。在典型的企业网站的建立应用中,自由软件可以非常好地工作,使建设和维护成本大幅度降低。其中的数据库应用就可以使用Sybase ASE for Linux。它具有小巧、易于安装、开发、免费的特点。令人遗憾的是,Sybase ASE在正常安装完成后,数据库超级用户(sa)的帐号没有设置口令!这样,互连网上每一个知道服务器端口号的用户或者本机上的所有可登录用户都可以以超级用户身份对数据库随意操作。这成为它在安全方面的一个巨大漏洞。管理员应该给予高度重视!在将数据库连上网络之前一定要设置好包括超级用户口令和其它帐号权限在内的安全防线。否则,上网的数据库将是一个\"不设防城市\"!本文介绍了Sybase ASE的安装过程和配置,并分析了缺省配置下的安全漏洞以及相应的安全加强措施。
发布人:netbull 来自:网络安全热线