保護 SQL Server 數據庫的十大絕招
添加時間:2014-11-8 23:38:28
添加:
思海網絡
1.安裝最新的服務包
為了提高服務器安全性,最有效的一個方法就是升級到 SQL Server 2000 Service Pack 3a (SP3a)。
另外,您還應該安裝所有已發布的安全更新。
2.使用 Microsoft 基線安全性分析器(MBSA)來評估服務器的安全性
MBSA 是一個掃描多種 Microsoft 產品的不安全配置的工具,包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)。它可以在本地運行,也可以通過網絡運行。該工具針對下面問題對 SQL Server 安裝進行檢測:
1) 過多的sysadmin固定服務器角色成員。
2) 授予sysadmin以外的其他角色創建 CmdExec 作業的權利。
3) 空的或簡單的密碼。
4) 脆弱的身份驗證模式。
5) 授予管理員組過多的權利。
6) SQL Server數據目錄中不正確的訪問控制表(ACL)。
7) 安裝文件中使用純文本的sa密碼。
8) 授予guest帳戶過多的權利。
9) 在同時是域控制器的系統中運行SQL Server。
10) 所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪問。
11) SQL Server 服務帳戶的不正確配置。
12) 沒有安裝必要的服務包和安全更新。
Microsoft 提供 MBSA 的免費下載。
5.分配一個強健的sa密碼
sa帳戶應該總擁有一個強健的密碼,即使在配置為要求 Windows 身份驗證的服務器上也該如此。這將保證在以后服務器被重新配置為混合模式身份驗證時,不會出現空白或脆弱的sa。
要分配sa密碼,請按下列步驟操作:
1) 展開服務器組,然后展開服務器。
2) 展開安全性,然后點擊登錄。
3) 在細節窗格中,右鍵點擊SA,然后點擊屬性。
4) 在密碼方框中,輸入新的密碼。
6.限制 SQL Server服務的權限
SQL Server 2000 和 SQL Server Agent 是作為 Windows 服務運行的。每個服務必須與一個 Windows 帳戶相關聯,并從這個帳戶中衍生出安全性上下文。SQL Server允許sa 登錄的用戶(有時也包括其他用戶)來訪問操作系統特性。這些操作系統調用是由擁有服務器進程的帳戶的安全性上下文來創建的。如果服務器被攻破了,那么這些操作系統調用可能被利用來向其他資源進行攻擊,只要所擁有的過程(SQL Server服務帳戶)可以對其進行訪問。因此,為 SQL Server 服務僅授予必要的權限是十分重要的。
我們推薦您采用下列設置:
1) SQL Server Engine/MSSQLServer
如果擁有指定實例,那么它們應該被命名為MSSQL$InstanceName。作為具有一般用戶權限的Windows 域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。
2) SQL Server Agent Service/SQLServerAgent
如果您的環境中不需要,請禁用該服務;否則請作為具有一般用戶權限的Windows域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。
重點: 如果下列條件之一成立,那么 SQL Server Agent 將需要本地 Windows管理員權限:
SQL Server Agent 使用標準的 SQL Server 身份驗證連接到SQL Server(不推薦)。
SQL Server Agent 使用多服務器管理主服務器(MSX)帳戶,而該帳戶使用標準 SQL Server 身份驗證進行連接。
SQL Server Agent 運行非sysadmin固定服務器角色成員所擁有的 Microsoft ActiveX?腳本或 CmdExec 作業。
如果您需要更改與 SQL Server服務相關聯的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將為 SQL Server 所使用的文件和注冊表鍵設置合適的權限。不要使用 Microsoft 管理控制臺的"服務"(在控制面板中)來更改這些帳戶,因為這樣需要手動地調制大量的注冊表鍵和NTFS文件系統權限以及Micorsoft Windows用戶權限。
帳戶信息的更改將在下一次服務啟動時生效。如果您需要更改與 SQL Server 以及 SQL Server Agent 相關聯的帳戶,那么您必須使用 Enterprise Manager 分別對兩個服務進行更改。
7.在防火墻上禁用 SQL Server 端口
SQL Server 的默認安裝將監視 TCP 端口 1433 以及UDP端口 1434。配置您的防火墻來過濾掉到達這些端口的數據包。而且,還應該在防火墻上阻止與指定實例相關聯的其他端口。
8.使用最安全的文件系統
NTFS 是最適合安裝 SQL Server 的文件系統。它比 FAT 文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄 ACL 以及文件加密(EFS)。在安裝過程中,如果偵測到 NTFS,SQL Server 將在注冊表鍵和文件上設置合適的 ACL。不應該去更改這些權限。
通過 EFS,數據庫文件將在運行 SQL Server 的帳戶身份下進行加密。只有這個帳戶才能解密這些文件。如果您需要更改運行 SQL Server 的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進行加密。
9.刪除或保護舊的安裝文件
SQL Server 安裝文件可能包含由純文本或簡單加密的憑證和其他在安裝過程中記錄的敏感配置信息。這些日志文件的保存位置取決于所安裝的SQL Server版本。在 SQL Server 2000 中,下列文件可能受到影響:默認安裝時<systemdrive>:\Program Files\Microsoft SQL Server\MSSQL\Install文件夾中,以及指定實例的<systemdrive>:\Program Files\Microsoft SQL Server\ MSSQL$<Instance Name>\Install文件夾中的sqlstp.log, sqlsp.log和setup.iss
如果當前的系統是從 SQL Server 7.0 安裝升級而來的,那么還應該檢查下列文件:%Windir% 文件夾中的setup.iss以及Windows Temp文件夾中的sqlsp.log。
Microsoft發布了一個免費的實用工具 Killpwd,它將從您的系統中找到并刪除這些密碼。
10.審核指向 SQL Server 的連接
SQL Server 可以記錄事件信息,用于系統管理員的審查。至少您應該記錄失敗的 SQL Server 連接嘗試,并定期地查看這個日志。在可能的情況下,不要將這些日志和數據文件保存在同一個硬盤上。
要在 SQL Server 的 Enterprise Manager 中審核失敗連接,請按下列步驟操作:
1) 展開服務器組。
2) 右鍵點擊服務器,然后點擊屬性。
3) 在安全性選項卡的審核等級中,點擊失敗。
為了提高服務器安全性,最有效的一個方法就是升級到 SQL Server 2000 Service Pack 3a (SP3a)。
另外,您還應該安裝所有已發布的安全更新。
2.使用 Microsoft 基線安全性分析器(MBSA)來評估服務器的安全性
MBSA 是一個掃描多種 Microsoft 產品的不安全配置的工具,包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)。它可以在本地運行,也可以通過網絡運行。該工具針對下面問題對 SQL Server 安裝進行檢測:
1) 過多的sysadmin固定服務器角色成員。
2) 授予sysadmin以外的其他角色創建 CmdExec 作業的權利。
3) 空的或簡單的密碼。
4) 脆弱的身份驗證模式。
5) 授予管理員組過多的權利。
6) SQL Server數據目錄中不正確的訪問控制表(ACL)。
7) 安裝文件中使用純文本的sa密碼。
8) 授予guest帳戶過多的權利。
9) 在同時是域控制器的系統中運行SQL Server。
10) 所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪問。
11) SQL Server 服務帳戶的不正確配置。
12) 沒有安裝必要的服務包和安全更新。
Microsoft 提供 MBSA 的免費下載。
5.分配一個強健的sa密碼
sa帳戶應該總擁有一個強健的密碼,即使在配置為要求 Windows 身份驗證的服務器上也該如此。這將保證在以后服務器被重新配置為混合模式身份驗證時,不會出現空白或脆弱的sa。
要分配sa密碼,請按下列步驟操作:
1) 展開服務器組,然后展開服務器。
2) 展開安全性,然后點擊登錄。
3) 在細節窗格中,右鍵點擊SA,然后點擊屬性。
4) 在密碼方框中,輸入新的密碼。
6.限制 SQL Server服務的權限
SQL Server 2000 和 SQL Server Agent 是作為 Windows 服務運行的。每個服務必須與一個 Windows 帳戶相關聯,并從這個帳戶中衍生出安全性上下文。SQL Server允許sa 登錄的用戶(有時也包括其他用戶)來訪問操作系統特性。這些操作系統調用是由擁有服務器進程的帳戶的安全性上下文來創建的。如果服務器被攻破了,那么這些操作系統調用可能被利用來向其他資源進行攻擊,只要所擁有的過程(SQL Server服務帳戶)可以對其進行訪問。因此,為 SQL Server 服務僅授予必要的權限是十分重要的。
我們推薦您采用下列設置:
1) SQL Server Engine/MSSQLServer
如果擁有指定實例,那么它們應該被命名為MSSQL$InstanceName。作為具有一般用戶權限的Windows 域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。
2) SQL Server Agent Service/SQLServerAgent
如果您的環境中不需要,請禁用該服務;否則請作為具有一般用戶權限的Windows域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。
重點: 如果下列條件之一成立,那么 SQL Server Agent 將需要本地 Windows管理員權限:
SQL Server Agent 使用標準的 SQL Server 身份驗證連接到SQL Server(不推薦)。
SQL Server Agent 使用多服務器管理主服務器(MSX)帳戶,而該帳戶使用標準 SQL Server 身份驗證進行連接。
SQL Server Agent 運行非sysadmin固定服務器角色成員所擁有的 Microsoft ActiveX?腳本或 CmdExec 作業。
如果您需要更改與 SQL Server服務相關聯的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將為 SQL Server 所使用的文件和注冊表鍵設置合適的權限。不要使用 Microsoft 管理控制臺的"服務"(在控制面板中)來更改這些帳戶,因為這樣需要手動地調制大量的注冊表鍵和NTFS文件系統權限以及Micorsoft Windows用戶權限。
帳戶信息的更改將在下一次服務啟動時生效。如果您需要更改與 SQL Server 以及 SQL Server Agent 相關聯的帳戶,那么您必須使用 Enterprise Manager 分別對兩個服務進行更改。
7.在防火墻上禁用 SQL Server 端口
SQL Server 的默認安裝將監視 TCP 端口 1433 以及UDP端口 1434。配置您的防火墻來過濾掉到達這些端口的數據包。而且,還應該在防火墻上阻止與指定實例相關聯的其他端口。
8.使用最安全的文件系統
NTFS 是最適合安裝 SQL Server 的文件系統。它比 FAT 文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄 ACL 以及文件加密(EFS)。在安裝過程中,如果偵測到 NTFS,SQL Server 將在注冊表鍵和文件上設置合適的 ACL。不應該去更改這些權限。
通過 EFS,數據庫文件將在運行 SQL Server 的帳戶身份下進行加密。只有這個帳戶才能解密這些文件。如果您需要更改運行 SQL Server 的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進行加密。
9.刪除或保護舊的安裝文件
SQL Server 安裝文件可能包含由純文本或簡單加密的憑證和其他在安裝過程中記錄的敏感配置信息。這些日志文件的保存位置取決于所安裝的SQL Server版本。在 SQL Server 2000 中,下列文件可能受到影響:默認安裝時<systemdrive>:\Program Files\Microsoft SQL Server\MSSQL\Install文件夾中,以及指定實例的<systemdrive>:\Program Files\Microsoft SQL Server\ MSSQL$<Instance Name>\Install文件夾中的sqlstp.log, sqlsp.log和setup.iss
如果當前的系統是從 SQL Server 7.0 安裝升級而來的,那么還應該檢查下列文件:%Windir% 文件夾中的setup.iss以及Windows Temp文件夾中的sqlsp.log。
Microsoft發布了一個免費的實用工具 Killpwd,它將從您的系統中找到并刪除這些密碼。
10.審核指向 SQL Server 的連接
SQL Server 可以記錄事件信息,用于系統管理員的審查。至少您應該記錄失敗的 SQL Server 連接嘗試,并定期地查看這個日志。在可能的情況下,不要將這些日志和數據文件保存在同一個硬盤上。
要在 SQL Server 的 Enterprise Manager 中審核失敗連接,請按下列步驟操作:
1) 展開服務器組。
2) 右鍵點擊服務器,然后點擊屬性。
3) 在安全性選項卡的審核等級中,點擊失敗。
4) 要使這個設置生效,您必須停止并重新啟動服務器。
關鍵字:SQL Server、數據庫、服務器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解