|
在各种操作系统中,Linux已流行。因此,越来越多的主流数据库厂商将他们的产品移植到Linux操作系统平台,例如Sybase、Oracle和IBM等。此外,能够使用的免费软件越来越多。免费软件库中已包括了Sybase ASE for Linux、Oracle for Linux、Informix for Linux等数据库软件连同其他各种软件。
在上述几种Linux平台上的数据库产品中,Sybase ASE的性能很好,紧凑的程式分发包里包含了全部文档、数据库备份和监控等工具,同时他对系统的需要不高(系统配置为32MB内存,包含文档的全部安装需要200MB硬盘,否则需要120MB硬盘)。他的安装、配置过程和其他产品相比也很简单。这些优势,连同Sybase数据库产品本来的用户基础,使得他成为Linux平台上出色的数据库软件。
但是,Sybase ASE在正常安装完成后,数据库终极用户的账号没有配置口令。这样,Internet上每一个知道服务器端口号的用户或本机上的任何可登录用户都能够以终极用户身份对数据库随意操作。这应该说是个很大的安全漏洞。下面将逐步介绍Sybase ASE for Linux 的安装过程,连同安装完成后需要采取的安全配置和较为安全的系统。
一、Sybase ASE的安装
首先下载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表示放弃刚才的选择,退回上一步,下面省去同样的提示。选择3后,出现以下提示:
Product Date InstalledDate Configured
1.SQL Server11 Sep 1998 06:47
2.Backup Server 11 Sep 1998 06:47
首先选择1配置SQL服务器,出现以下提示:
1.Configure a new SQL Server
2.Configure an existing SQL Server
3.Upgrade an existing SQL Server
然后选择1来配置一个新的SQL服务器。配置备份服务器能够在SQL服务器配置完成后再来。由于是第一次安装,所以选择配置新的服务器,后面2个选项分别提供了重新配置或升级原服务器的功能
接下来的提示需要选择服务器的名字,具体如下:
ADD NEW SQL SERVER
1.SQL Server name:SYBASE
默认为SYBASE。这和sybase的交互式访问工具isql的默认服务器名字是一致的。
完成上述配置后,出现如下显示:
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
以上关系到数据库的具体内容,包括端口号、设备、语言和字符集等。下面假定不改变默认名,直接按Ctrl-a接受。
第1项配置服务器端口,选择后出现下面的提示屏幕:
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以上。同样,假如是配置远程服务器,端口号应该修改为正确的端口地址。这2个参数会记录在/opt/sybase/interfaces文档中,也就是说在配置完成后,用户也能够手工修改该文档来重新改变连机端口的参数。
第2项配置数据库主设备。数据库主设备能够是个新的物理设备,也能够是磁盘中的一个文档,大小能够根据需要和存储设备的空间大小调整。
后面各项的配置在普通应用下,基本上无需修改缺省值。按照提示继续做下去,依次分别是配置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
二、 安装后的安全问题和相应的配置
按照DoD52.00.28-STD信任电脑系统评估标准,即通常所说的桔皮书,Sybase ASE的设计标准为C2级,他提供了4种安全机制,分别是访问控制、认证控制、角色划分和数据库审计。访问控制是指对象任何者能够对不同的登录用户赋予或取消某些访问的权利。认证控制是指确保只有被授权的用户才能登录进入系统。角色的划分使得系统管理员能够将系统的一些特别权利分别赋予某一个用户,使他们能够分别完成某些关键任务。具体来说,Sybase数据库系统设定了3种主要角色:系统管理员(sa_role)、系统安全员(sso_role)和系统操作员(oper_role)。数据库审计系统能够对系统的登录、退出、数据库启动、远程过程调用、角色的变化和对各种对象的访问等操作提供记录和审查。
数据库应用采用客户机/服务器架构,服务器端在某一个端口监听网络连接请求。客户端申请连接,输入合法的用户名和相应的口令,进入服务器,然后运行需要的命令。这样,在数据库用户的配置管理方面假如出现安全漏洞,势必会给系统和数据带来很大的威胁。可是,Sybase ASE在正常安装完成后,数据库终极用户的账号没有配置口令。这样,Internet上每一个知道服务器端口号的用户或本机上的任何可登录用户都能够以终极用户身份对数据库随意操作。这应该说是个很大的安全漏洞。下面,通过对角色的分析,给出解决这一问题的方法。
1.三种角色的主要权利和任务
(1) sa_role
管理磁盘使用,改变系统各种运行参数,诊断系统出现的各种问题,备份和恢复数据库,对其他用户赋予或取消sa_role,创建用户数据库并为他们授予合适的属主,连同建立用户组等等。
(2) sso_role
创建登录账号并初始化口令,更改其他任何账号的口令,对其他用户赋予或取消sso_role连同oper_role,设定口令时限连同管理审计系统等。
(3) oper_role
备份和恢复各种数据库。
2.更改sa口令
Sybase ASE在安装完成时在系统中创建了用户sa,他同时具备sa_role和sso_role两种角色。此时的用户“sa”在服务器中具备无限的权利,相当于Unix系统中一个没有口令的root。这样,任何蓄意的连网用户都能够完全控制该SQL服务器。这不能不说是Sybase ASE的一个重大安全漏洞。为此,强烈建议在完成下面的安全配置之前请勿将服务器接入网络。
首先,利用Sybase提供的交互式访问工具isql连接服务器。键入以下命令:
$/opt/sybase/bin/isql -Usa -P -Smysybase
表示以用户sa、空口令连接服务器mysybase。更改sa的口令,
>sp_password NULL,"NewPassWd"
>go
将原来的空口令(NULL)改为当前的“NewPassWd”。这里的口令最少为6个字符长度,能够由任何可打印字符、字母和数字等组成。
3.关闭sa账号
角色的划分能够说是Sybase数据库相对于普通Unix系统在安全体制方面的改进。但是,大家知道,拥有无限权利的终极用户一方面是系统的保护者,但是更多的时候是给系统的安全带来了巨大的安全威胁。简单来说,终极用户一个低级的误操作就可能毁掉整个服务器。从攻击的角度来看,攻击者只要获得了终极用户的身份就表明他已完全攻克了该系统。而对于经过特权分割安全加固的系统来说,攻击者必须将若干个特权用户全部破解,才能得以完全控制该系统。能够说终极权利用户的存在是区分C级和B级安全系统的一个重要标志。
在配置sa账号的口令以后,通过创建新用户,并区分sa的角色,关闭sa,从而进一步加强服务器的安全。Sybasre提供了几个相应的命令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。
(作者地址:江苏镇江南京经济学院桥头校区,212413)
|