首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2005

MSSQL 2005 安全加固全攻略:從端口、賬號到審核的圖文實戰

     編輯:SQL Server 2005

1. 安裝與 SA 帳號防護

  • 安裝時選擇「混合模式」,並設置高強度 SA 密碼(長度≥12、含大小寫、數字、特殊符號)。
  • SQL 2005 允許重命名或禁用 SA:
    USE master; ALTER LOGIN [sa] WITH NAME=[new_admin];
    sp_password 'old_pwd', 'new_strong_pwd', 'sa';
  • 啟用「強制密碼策略」與「強制密碼過期」(見圖)。

SA 密碼策略設定

圖 1:啟用密碼複雜度與過期策略

2. 認證模式與內建帳號清理

  • 若不需 Windows 管理員存取資料庫,在【安全性】→【登錄名】刪除 BUILTIN\Administrators。
  • 其他多餘帳號:在屬性→狀態中設「拒絕連線」並「禁用登錄」。
  • 慎用:禁用所有 Windows 驗證帳號後,若遺忘 SA 密碼將無法恢復。
  • 可用 sp_change_users_login 'report' 尋找孤立用戶並清理。

禁用內建管理員帳號

圖 2:拒絕 BUILTIN\Administrators 連線

3. 移除高風險擴展預存程序

以下擴展預存程序常被利用提權或破壞,若業務不需請徹底移除:

  • 命令執行類:xp_cmdshell(巨大後門)、xp_dirtree、xp_fileexist、xp_getnetname、xp_terminate_process。
  • OLE 自動化類:sp_OACreate、sp_OADestroy、sp_OAGetErrorInfo、sp_OAGetProperty、sp_OAMethod、sp_OASetProperty、sp_OAStop。
  • 註冊表存取類:xp_regaddmultistring、xp_regdeletekey、xp_regdeletevalue、xp_regenumvalues、xp_regread、xp_regremovemultistring、xp_regwrite(可讀取系統管理員密碼)。
  • 其他:sp_makewebtask、xp_readwebtask、xp_makewebtask、sp_add_job、sp_addtask、sp_addextendedproc 等。

批次移除腳本(執行前請確認業務無依賴):

DROP PROCEDURE sp_makewebtask;
EXEC master..sp_dropextendedproc xp_cmdshell;
EXEC master..sp_dropextendedproc xp_dirtree;
EXEC master..sp_dropextendedproc xp_fileexist;
EXEC master..sp_dropextendedproc xp_getnetname;
EXEC master..sp_dropextendedproc xp_terminate_process;
EXEC master..sp_dropextendedproc sp_oamethod;
EXEC master..sp_dropextendedproc sp_oacreate;
EXEC master..sp_dropextendedproc xp_regaddmultistring;
EXEC master..sp_dropextendedproc xp_regdeletekey;
EXEC master..sp_dropextendedproc xp_regdeletevalue;
EXEC master..sp_dropextendedproc xp_regenumkeys;
EXEC master..sp_dropextendedproc xp_regenumvalues;
EXEC master..sp_dropextendedproc sp_add_job;
EXEC master..sp_dropextendedproc sp_addtask;
EXEC master..sp_dropextendedproc xp_regread;
EXEC master..sp_dropextendedproc xp_regwrite;
EXEC master..sp_dropextendedproc xp_readwebtask;
EXEC master..sp_dropextendedproc xp_makewebtask;
EXEC master..sp_dropextendedproc xp_regremovemultistring;
EXEC master..sp_dropextendedproc sp_OACreate;
DROP PROCEDURE sp_addextendedproc;

4. 網絡傳輸加密

  • SQL 2005 內建密鑰管理架構,支援證書加密。
  • 遠程連線建議強制使用 SSL/TLS:需在用戶端與伺服器安裝有效證書,並在「SQL Server 組態管理器」→「協定」→「Flags」強制加密。

5. 端口與 IP 存取控制

  • 修改預設 TCP 1433 端口:在「SQL Server 組態管理器」→「SQL Server 網絡配置」→「TCP/IP」屬性→「IP Addresses」分頁,將各 IP 的「TCP Port」改為高位端口(如 10000+),並啟用「TCP 動態端口」讓瀏覽器服務解析(見圖)。
  • 或為每個 IP 獨立配置偵聽端口。
  • 用戶端同步修改「SQL Native Client 組態」→「用戶端協定」→「TCP/IP」預設端口。
  • 重啟 SQL Server 服務生效。

TCP/IP 端口修改

圖 3:修改 TCP 靜態端口與動態端口設定

IP 偵聽設定

圖 4:指定 IP 偵聽行為

6. IPSec 策略限制存取來源

Windows 2000 以上內建 IPSec,可建立規則:
僅允許特定應用伺服器 IP 連線 TCP 1433/1434(或自訂端口),拒絕其他所有 IP。將攻擊面降至最低。

7. 審核與合規

  • 伺服器屬性→安全性→「登錄審核」選「失敗與成功登陸」。
  • 啟用 C2 審核追蹤(政府安全等級):
    EXEC sys.sp_configure N'c2 audit mode', N'1'; RECONFIGURE;
  • C2 模式可記錄所有對資料庫實體的存取嘗試,滿足合規需求。

C2 審核設定

圖 5:啟用登錄審核與 C2 追蹤

8. 遠程連線開關

若完全不需遠程連線,可關閉:
EXEC sys.sp_configure N'remote access', N'0'; RECONFIGURE;

或在伺服器屬性→連接→取消「允許遠程連線到此伺服器」。

9. 檔案系統權限

將 C:\Program Files\Microsoft SQL Server 目錄的 Users 群組權限設為「唯讀」,防止惡意程式替換二進位檔;但需保留必要權限避免 WMI 失敗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved