数据库应用采用客户端/服务器(C/S)架构,服务器端在某一个端口监听网络连接请求。客户端申请连接,输入合法的用户名和相应的口令,进入服务器,然后运行需要的命令。这样,在数据库用户的配置管理方面如果出现安全漏洞,势必会给系统和数据带来非常大的威胁。ASE for Linux在正常安装完成后,数据库超级用户的账号没有设置口令。这样,互联网上每一个知道服务器端口号的用户或者本机上的所有可登录用户,都可以以超级用户身份对数据库随意操作。所以管理员在将数据库连上网络之前,一定要设置好包括超级用户口令和其它账号权限在内的安全防线,否则,上网的数据库将是一个“不设防城市”!
接下来介绍一下ASE for Linux的安装过程和配置,并分析缺省配置下的安全问题以及相应的安全加强措施。
ASE for Linux的应用
首先需要下载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登录继续配置,也可以使用 #su - s ybase 改变身份来继续对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来配置服务器,在该选项中将会一同配置服务器监听端口。接下来可以配置一个新的SQL服务器。配置备份服务器可以在SQL服务器配置完成后再来。由于是第一次安装,所以选择配置新的服务器。
下面的屏幕提示要求选择服务器的名字,缺省为Sybase。这与Sybase的交互式访问工具isql的缺省服务器名字是一致的。
ADD NEW SQL SERVER
SQL Server name:SYBASE
接下来的配置关系到了数据库的具体细节,包括端口号、设备、语言、字符集等。
按照提示继续作下去,依次分别是配置SYBASE系统进程数据库、错误日志、缺省备份服务器、字符集、数据库排序、激活审计等。其中的缺省备份服务器和激活审计配置对于数据库安全较为重要。备份服务器在管理员希望对数据库进行备份时需要。
安全加强措施
按照信任计算机系统评估标准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和ss o-role两种角色。从上面的权限说明中,大家可以看到此时的用户“sa”在服务器中具有无限的权利,相当于一般Unix系统的root,一个没有口令的root! 这样,任何蓄意的联网用户都可以完全控制该SQL服务器。为此,强烈建议管理员在完成下面的安全配置之前切勿将服务器接入网络!
首先,利用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_addlogi n, sp_role等来完成上述操作。
〉sp_addlogin sa_user,“Sa,PassW”
〉sp_addlogin sso_user,“Sso,Pass”
〉sp_role“grant”,sa_role,sa_user
〉sp_role “grant”,sso_role,sso_user
〉sp_locklogin sa,“lock”
上述命令创建了两个用户sa_user、sso_user,并分别设置了口令“Sa,Pass W”、“Sso,Pass”和角色sa_role、sso_role,然后关闭了账号sa。
--------------------next---------------------