防火牆 Ban IP 使用說明

用同一份 Ban IP 清單,同步套到 Windows 防火牆或 Linux `ipset/iptables`,流程盡量簡化成看一頁就能照做。
這份黑名單 IP 列表,是根據 3WA 主機偵測攻擊,當某個 IP 的攻擊次數、風險達到設定門檻時,會自動加入封鎖列表,同時再結合 ipsum 官方的黑名單列表
如果你也有自己的攻擊偵測機制,或是想把這份清單套用在其他平台的防火牆,也可以直接下載 CSV 版本的黑名單 IP,裡面只有 IP 欄位,沒有其他資訊,方便你做後續處理。
目前提供 Windows PowerShell 版本和 Linux Shell Script 版本,分別適用於 Windows Firewall 和 ipset/iptables 的環境,腳本內容完全開放,你可以自行修改成適合你環境的版本。
目前封鎖 IP
16,871
來源補充
本機偵測收集 + ipsum >= 3 分
快速上手
如果你只想先用起來,照下面 4 步走就好。
  1. 先下載對應平台的腳本:Windows 用 `my_ban_ips.ps1`,Linux 用 `my_ban_ips.sh`。
  2. 確認這台機器可以抓到 `https://3wa.tw/myapache_banip/data/banip_csv.txt`,腳本會依這份清單更新封鎖 IP。
  3. 先手動執行一次,確認規則有正確建立,再放進排程。
  4. 若之後想全部移除,頁面下方有 Windows / Linux 各自的清除指令。
Windows 部署
適合用 PowerShell + Windows Firewall
PowerShell
下載: my_ban_ips.ps1
  • 建議先用系統管理員身分開 PowerShell。
  • 手動執行一次後,確認防火牆規則有建立,再放進工作排程器。
  • 如果你只是要同步最新封鎖名單,定時跑這支就可以。
PowerShell -ExecutionPolicy Bypass -File .\my_ban_ips.ps1
Linux 部署
適合用 `ipset` + `iptables` 的環境
Shell Script
下載: my_ban_ips.sh
  • 先確認系統已有 `ipset`、`iptables`,並以 root 權限執行。
  • 建議先手動跑一次,確認黑名單集合與 DROP 規則建立成功。
  • 之後可放進 `crontab`,或開機時自動執行。
chmod +x ./my_ban_ips.sh sudo ./my_ban_ips.sh
清除與回復
如果你要把這套封鎖全部拿掉,可以直接照下面指令執行。
Windows
Remove-NetFirewallRule -DisplayName "Block Bad IPs_*" # 確認有沒有刪掉,沒東西輸出就代表刪掉了 ✔ Get-NetFirewallRule -DisplayName "Block Bad IPs_*"
Linux
sudo su - iptables -D INPUT -m set --match-set blacklist src -j DROP ipset destroy blacklist # 如果還有排程,也一起刪: crontab -e
執行結果參考
點圖片可以放大,方便確認實際執行後應該長什麼樣子。
Windows 執行結果
Windows 執行結果
Linux 執行結果
Linux 執行結果