在各種操作系統中,這兩年的流行色是Linux。越來越多的主流數據庫廠商將 它們的產品移植到Linux操作系統平台。現在Linux平台上的數據庫產品有Oracle for Linux、Sybase ASE for Linux、Informix for Linux等,它們都是自由軟 件。在這幾種產品中,Sybase ASE是一個非常不錯的選擇。它緊湊的程序分發包 裡包含了全部的文檔、數據庫備份、監視等工具,同時它對系統的要求不高。它 的安裝、配置過程與其它產品相比也顯得簡單易行。
數據庫應用采用客戶端/服務器(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。
——摘自:中計報