許多中小企業僅將路由器視為「撥號分享器」,忽略其內建的防火牆與 ACL(存取控制清單)功能。透過在進介面套用擴充 ACL,即可在封包進入內網前攔截針對特定主機、特定埠號的惡意掃描與暴力破解。本文以 Cisco IOS CLI 為例,示範如何拒絕外部對內網伺服器 192.168.0.1 的 Telnet (23)、HTTP (80)、Proxy (3128) 連線,同時放行其他合法流量。
Ethernet0/1(連接內網交換機)。192.168.0.1(內網伺服器)。> telnet <路由器管理IP>
> enable
# configure terminal
注意:telnet/enable 密碼請向廠商或網管取得;建議生產環境改用 SSH。
(config)# access-list 101 deny tcp any host 192.168.0.1 eq telnet
(config)# access-list 101 deny tcp any host 192.168.0.1 eq www
(config)# access-list 101 deny tcp any host 192.168.0.1 eq 3128
deny tcp any host 192.168.0.1 eq <port>:拒絕任何來源 IP,目的地為 192.168.0.1,目的埠為指定服務的 TCP 連線。eq telnet = 23、eq www = 80、eq 3128 為 Proxy 常用埠。(config)# access-list 101 permit ip any any
若無此行,ACL 結尾隱性 deny ip any any 會阻斷所有通訊。
(config)# interface ethernet0/1
(config-if)# ip access-group 101 out
(config-if)# exit
out 方向:封包從路由器「離開」介面進入內網前檢查,攔截來自外部(WAN/VPN)經路由轉發至 192.168.0.1 的惡意連線。# write memory
或
# copy running-config startup-config
telnet 192.168.0.1、https://192.168.0.1、proxy 192.168.0.1:3128,應全部連線失敗/逾時。show access-lists 101 觀察 match 計數器遞增,確認規則生效。logging host 送至 Syslog/SIEM,關聯分析異常登入嘗試。| 錯誤 | 後果 | 正確做法 |
|---|---|---|
忘記 permit ip any any | 所有流量被隱性 deny 截斷,網路癱瘓 | 永遠在 ACL 結尾加入 permit 規則 |
| 方向搞反 | 套用 in 方向只檢查從內網出去的封包,無法阻擋外部攻擊 | 外部攻擊進內網用 out(介面角度)或在 WAN 介面用 in |
| 使用標準 ACL(1-99) | 僅能比對來源 IP,無法指定目的埠 | 必須用擴充 ACL(100-199 或 2000-2699) |
| 未存檔就重啟 | 設定遺失 | 執行 write memory |
幾條 ACL 指令即可在網路邊界建立第一道防線,成本極低卻效果顯著。原理通用於所有支援 ACL 的網路設備(Cisco、H3C、Huawei、Juniper 等)。網管人員應養成「預設拒絕、顯性允許、最小權限、持續稽核」的防禦思維,將路由器從單純轉發設備升級為安全閘道器。