第一階段:網路層面防護
1. 關閉非必要埠口 / 啟用 TCP/IP 篩選或 Windows 防火牆
僅開放業務必需埠:3389 (RDP)、21 (FTP)、80 (HTTP)、1433 (MySQL)。
建議:使用 Windows 防火牆(支援 FTP 被動模式動態埠),而非 TCP/IP 篩選(會阻擋 FTP 資料傳輸)。
2. 修改 RDP 預設埠 (3389)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber = 9859 (十進位)
同步修改 Wds\rdpwd\Tds\tcp 下同名值,重啟生效。
3. 停用 NetBIOS over TCP/IP
網路連線 → 區域連線 → 內容 → TCP/IP → 進階 → WINS →「停用 TCP/IP 上的 NetBIOS」,防止 nbtstat 洩漏 MAC 與 NetBIOS 名稱。
第二階段:服務精簡
停用下列非必要服務(services.msc):
| 服務名稱 | 功能 | 建議 |
| Computer Browser | 維護網路電腦清單 | 停用 |
| Task Scheduler | 排程工作 | 視需求 |
| Routing and Remote Access | 路由/遠端存取 | 停用 |
| Removable Storage | 可移動媒體管理 | 停用 |
| Remote Registry | 遠端登錄編輯 | 停用 |
| Print Spooler | 列印佇列 | 無印表機則停用 |
| IPSEC Policy Agent | IPsec 原則 | 未用 IPsec 則停用 |
| Distributed Link Tracking Client | NTFS 連結追蹤 | 停用 |
| COM+ Event System | 事件發布/訂閱 | 停用 |
| Alerter / Messenger | 網路訊息傳遞 | 停用 |
| Error Reporting Service | 錯誤回報 | 停用 |
| Telnet | 遠端登入 | 停用(改用 SSH) |
第三階段:NTFS 權限精細化
系統碟 (C:)
Administrators / SYSTEM / CREATOR OWNER:完全控制
IIS_WPG:讀取/執行/列出/建立檔案/寫入資料(僅 C:\ 與 C:\WINNT\Temp)
網站資料碟 (如 E:\wwwsite)
- 建立每站獨立帳號
vhost1...vhostN,歸屬 WebUsers 群組。
E:\wwwsite\vhost1:Administrators / SYSTEM / vhost1 完全控制。
- 上傳目錄
uploads、資料庫目錄 data 僅授予對應 vhost 寫入權限。
敏感系統工具僅限 Administrators
cmd.exe, net.exe, net1.exe, tftp.exe, netstat.exe, regedit.exe, at.exe, attrib.exe, cacls.exe, format.com 等,移除 Users/Everyone 權限。
第四階段:IIS 6.0 硬化
- 刪除預設網站與
C:\Inetpub 目錄。
- 應用程式對應:僅保留
.asp, .aspx, .php, .cgi, .pl,移除 .cer, .asa, .cdx 等。
- PHP/Perl 採用 ISAPI 模式 (
php5isapi.dll),避免 CGI 效能與安全隱憂。
- 自訂錯誤頁面 (403/404/500) 隱藏伺服器資訊。
- 修改 HTTP 標頭
Server 欄位 (使用 UrlScan 或 BannerEdit)。
- 資料庫檔 (
.mdb) 對應無關 DLL (ssinc.dll) 防止直接下載。
第五階段:ASP / PHP / MySQL / Serv-U 專項防護
ASP 元件封鎖
regsvr32 /u wshom.ocx && del wshom.ocx
regsvr32 /u scrrun.dll (視需求,FSO 常用需保留)
regsvr32 /u shell32.dll (禁止 Shell.Application)
PHP 關鍵 php.ini 設定
safe_mode = On
register_globals = Off
allow_url_fopen = Off
display_errors = Off
magic_quotes_gpc = On
open_basedir = "D:\wwwsite"
disable_functions = passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
com.allow_dcom = False
MySQL 安全
- 刪除匿名帳號,root 設強密碼並限制
localhost 登入。
- 一般布號僅授予
SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 於特定庫。
- 回收
SHUTDOWN, RELOAD, PROCESS, FILE 權限。
data 目錄權限僅限 MySQL 服務帳號。
Serv-U FTP
- 修改管理員密碼、安裝目錄權限、Banner 資訊。
- 啟用「阻擋 FTP Bounce 攻擊與 FXP」。
- 被動模式埠限定
4001-4003 並在防火牆開放。
- 服務以專用低權限帳號啟動,授予 FTP 根目錄完全控制。
第六階段:登錄機碼進階防護
| 路徑 | 值名稱 | 類型 | 建議值 | 功能 |
| HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters | SynAttackProtect | DWORD | 2 | SYN Flood 防護 |
| 同上 | EnablePMTUDiscovery | DWORD | 0 | 停用 PMTU 探索 |
| 同上 | NoNameReleaseOnDemand | DWORD | 1 | 防止 NetBIOS 名稱釋放 |
| 同上 | EnableDeadGWDetect | DWORD | 0 | 停用失效閘道偵測 |
| 同上 | KeepAliveTime | DWORD | 300000 | TCP Keep-Alive 5 分鐘 |
| 同上 | PerformRouterDiscovery | DWORD | 0 | 忽略 ICMP 路由通告 |
| 同上 | EnableICMPRedirects | DWORD | 0 | 忽略 ICMP 重導向 |
| 同上 | IGMPLevel | DWORD | 0 | 停用 IGMP 多播 |
| HKLM\SYSTEM\CurrentControlSet\Control\Lsa | RestrictAnonymous | DWORD | 1 | 禁止空連線 (IPC$) |
| HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters | DefaultTTL | DWORD | 258 | 偽裝 TTL 迷惑掃描者 |
| HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | AutoShareServer | DWORD | 0 | 取消預設共享 (C$, ADMIN$) |
第七階段:帳號與稽核政策
- 重命名
Administrator,建立同名誘餌帳號 (無權限、強密碼)。
- 建立兩組管理帳號:日常低權限 + 需時以
RunAs 提權。
- 本地安全性原則 → 稽核原則:啟用「登入事件、帳號登入、系統事件、原則變更、物件存取(失敗)、目錄服務存取(失敗)、特權使用(失敗)」。
第八階段:防毒與補丁
- 安裝伺服器級防毒軟體 (如 McAfee Enterprise + BlackICE),定時更新病毒碼。
- 訂閱 Microsoft 安全公告,定期部署補丁 (WSUS/SCCM)。
結語
安全是持續過程,而非一次設定。建議每季執行基準掃描、日誌審計與滲透測試,確保防禦姿態持續有效。