在各種作業系統中,Linux已經流行。因此,越來越多的主流資料庫廠商將它們的產品移植到Linux作業系統平台,例如Sybase、Oracle和IBM等。此外,可以使用的自由軟體越來越多。自由軟體庫中已經包括了Sybase ASE for Linux、Oracle for Linux、Informix for Linux等資料庫軟體以及其他各種軟體。
在上述幾種Linux平台上的資料庫產品中,Sybase ASE的效能很好,緊湊的程式分發包裡包含了全部文檔、Database Backup和監視等工具,同時它對系統的要求不高系統配置為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種安全機制,分別是存取控制、認證控制、角色劃分和Database Audit。存取控制是指對象所有者可以對不同的登入使用者賦予或者取消某些訪問的權利。認證控制是指保證只有被授權的使用者才能登入進入系統。角色的劃分使得系統管理員可以將系統的一些特殊權利分別賦予某一個使用者,使他們能夠分別完成某些關鍵任務。具體來說,Sybase資料庫系統設定了3種主要角色:系統管理員sa_role)、系統安全員sso_role)和系統操作員oper_role)。Database Audit系統可以對系統的登入、退出、資料庫啟動、遠端程序呼叫、角色的變化和對各種對象的訪問等操作提供記錄與審查。
資料庫應用採用客戶機/伺服器架構,伺服器端在某一個連接埠監聽網路連接請求。用戶端申請串連,輸入合法的使用者名稱和相應的口令,進入伺服器,然後運行需要的命令。這樣,在資料庫使用者的組態管理方面如果出現安全性漏洞,勢必會給系統和資料帶來非常大的威脅。可是,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。
- Sybase資料倉儲大鵬證券應用案例(1)
- Sybase資料庫引擎運行方法簡介
- Sybase資料備份之BCP用法簡介
- Sybase資料庫的幾個配置問題
- 如何設定Sybase的使用者權限來處理進程