SQL Server 2008安全加固手冊
1.身份鑑別
1.1避免使用空密碼和弱口令
要求:應對登入作業系統和資料庫系統的使用者進行身份標識和鑑別。
目的:作業系統和資料庫系統管理使用者身份鑑別資訊應具有不易被冒用的特點,口令應有複雜度要求並定期更換。
參考操作步驟:
對使用者的屬性進行安全檢查,包括空密碼、密碼更新時間等。修改目前所有賬號的口令,確保口令達到至少12位長度,包括數字、字母、符號混排,無規律的方式。
開啟SQL Server Management Studio管理介面,在左側展開“登入名”,對 sa和其它登入名逐一右鍵點選檢視屬性,勾選“強制實施密碼策略”。
1.2通訊協議加密
要求:當對伺服器進行遠端管理時,應採取必要措施,防止鑑別資訊在網路傳輸過程中被竊聽。
目的:為了防止包括鑑別資訊等敏感資訊在網路傳輸過程中被竊聽,應使用加密通訊協議,提高安全性。
參考操作步驟:
SQL Server配置管理器>>SQL Server網路配置>>MSSQLSERVER的協議,右鍵點選>>屬性>>標誌
把“強行加密”(ForceEncryption)設為“是”。
2.訪問控制
2.1資料庫角色分配最低許可權
要求:應根據管理使用者的角色分配許可權,實現管理使用者的許可權分離,僅授予管理使用者所需的最小許可權。
目的:根據使用者的業務需要,配置其所需的最小許可權。
參考操作步驟:
在“SQL Server管理器”>>“安全性”中,選中每個登陸使用者,在右鍵選單中選擇“屬性”,檢視每個登陸使用者的角色和許可權,檢視是否是該使用者所需的最小許可權。
1、更改資料庫屬性,取消業務資料庫帳號不需要的伺服器角色;
2、更改資料庫屬性,取消業務資料庫帳號不需要的“資料庫訪問許可”和“資料庫角色中允許”中不需要的角色。
2.2限制guest賬戶對資料庫的訪問
目的:取消guest賬戶對master和tempdb之外的資料庫的訪問許可權。
參考配置操作:
方法一:打SQL Server管理介面,在左側展開除了master和tempdb之外的所有資料庫>>安全性>>使用者,刪除guest賬戶。
方法二:用命令去除guest賬戶對指定資料庫的訪問許可權:
use 資料庫名
exec sp_revokedbaccess guest
2.3設定身份認證
要求:應實現作業系統和資料庫系統特權使用者的許可權分離。
目的:防止作業系統使用者對SQL Server資料庫進行非授權管理。
參考配置操作:
1.展開伺服器組,右鍵單擊伺服器->在彈出的右鍵選單中單擊“屬性”,在“安全性”選項卡中選擇“伺服器身份驗證”認證方式為“SQL Server和Windows身份驗證模式”。
2.在“SQL Server管理器”-〉“安全性”中,選擇賬號“BUILTIN\Administrators”,右擊選擇“屬性”,更改“狀態”設定“拒絕允許連線到資料庫引擎”和“禁用登入”。
2.4刪除或鎖定多餘賬號
要求:應及時刪除多餘的、過期的賬戶,避免共享賬戶的存在。
目的:刪除系統不需要的帳號,減少系統安全隱患。
參考配置操作:
SQL Server管理器->安全性->登入,詢問資料庫管理員每個賬戶的用途,檢視是否存在多餘的、過期的賬戶,點右鍵可選擇刪除。
3.安全審計
3.1啟用日誌記錄功能
要求:審計範圍應覆蓋到伺服器和重要客戶端上的每個作業系統使用者和資料庫使用者。
目的:資料庫應配置日誌功能,對使用者登入進行記錄,記錄內容包括使用者登入使用的賬號、登入是否成功、登入時間以及遠端登入時使用者使用的IP 地址。
參考配置操作:
1、在“SQL Server管理器”->右鍵單擊伺服器->單擊“屬性”->“安全性”,選擇每個登入的“稽核級別”為“失敗和成功的登入”。
2、詢問資料庫管理員,是否採取第三方工具或其他措施增強SQL Server的日誌功能,如果有則檢視這些工具記錄的審計記錄是否符合等級保護的安全審計要求。
3.2設定日誌目錄許可權
目的:限制日誌所在目錄的許可權,防止對日誌檔案的非授權訪問。
4.資源控制
4.1設定連線協議和監聽的IP範圍
要求:應通過設定終端接入方式、網路地址範圍等條件限制終端登入。
目的:設定SQL Server允許的連線協議,以及TCP/IP協議中監聽埠時繫結的IP地址。限制不必要的遠端客戶端訪問到資料庫資源。
參考配置操作:
1、 從開始選單開啟SQL Server配置管理器,展開“SQL SERVER 2008網路配置>>SQL SERVER的協議,在右側將不需要的協議禁用,如:VIA和Share Memory方式可能一般不需要使用。
在以上介面雙擊“TCP/IP”協議>>IP地址,如有不必要監聽的IP項,則把“活動”屬性設定為“否”。如:訪問資料庫的應用程式也裝在該伺服器上,則只需要監聽127.0.0.1即可,其它IP不需要監聽。在應用程式中配置為使用127.0.0.1訪問資料庫。
4.2連線超時
要求:應根據安全策略設定登入終端的操作超時鎖定。
目的:設定連線超時功能,提高資料庫的效能。
參考配置操作:
1.從開始選單開啟SQL Server管理介面,再展開選單欄的“工具”>>“選項”>>“設計器”>>“Analysis Services設計器”,在“連線”下的“連線超時值”輸入合適的數字(預設值15)。
2.在SQL Server管理介面左側,右鍵點選伺服器名稱>>屬性>>高階,在右側找到“遠端登入超時值”,設定為合適的數字,
選項—連線屬性—將連線超時值設定為一個較大的數字(預設值20)。
4.3限制遠端使用者連線數量
要求:應限制單個使用者對系統資源的最大或最小使用限度。
目的:限制遠端使用者連線數量,確保資料庫伺服器穩定執行,提升效能。
參考配置操作:
在SQL Server管理介面左側,右鍵點選伺服器名稱>>屬性>>連線,設定“併發最大連線數”,如2500。
4.4記憶體限制
目的:使執行在伺服器上的應用程式都能達到比較滿意的效果,同時也為了能給其他應用程式保留足夠的記憶體。
參考配置操作:
在SQL Server管理介面左側,右鍵點選伺服器名稱>>屬性>>記憶體,設定最小值和最大值在一個範圍段內,如我們將它設定成最小0MB,最大為實體記憶體的80%左右。
5.最佳經驗實踐
5.1隱藏例項
目的:防止資料庫系統的相關資訊洩露。
參考配置操作:
在SQL Server配置管理器中選擇“SQL Server 2005網路配置”中的“MSSQLSERVER的協議”,右鍵選擇“屬性”,選中其中的“隱藏例項”選項。
5.2修改預設通訊埠
目的:修改預設通訊埠,防止黑客通過1433登入資料庫伺服器。
參考配置操作:
在SQL Server配置管理器中選擇“SQL Server 2005網路配置”中的“MSSQLSERVER的協議”,選中“TCP/IP”,右鍵選擇“屬性”,在TCP/IP屬性對話方塊,選擇“IP地址”選項卡,修改所有“TCP埠”右邊的文字欄為新的要修改的埠號(預設埠號為1433),然後重啟SQL Server生效。