在服務器上增加 iptables chain #
1iptables -N black_ip_list
2iptables -I INPUT -p tcp -m multiport --dports 80,443 -j black_ip_list新建 bash 文件 banip.sh #
在這個文件中,首先清空 black_ip_list 中的規則, 然後從 mitchellkrogza/nginx-ultimate-bad-bot-blocker 中獲取最新的IP BLACKLIST 列表,循環每一個IP地址,將其設為拒絕請求。
1#!/bin/bash
2iptables -F black_ip_list
3iptables -A black_ip_list -j RETURN
4
5wget https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master/_generator_lists/bad-ip-addresses.list -O old.blackip.txt 2>/dev/null
6
7for ip in `cat old.blackip.txt`; do
8iptables -I black_ip_list 1 -s $ip -j REJECT --reject-with icmp-port-unreachable;
9done將 banip.sh 文件權限變更為可執行 #
1sudo chmod a+x banip.sh執行 banip.sh 文件 #
1sudo ./banip.shTIPS: #
- 可以隔段時間執行一下該scripts,以獲取最新的block ip 列表
- 解封ip
1iptables -D black_ip_list -s <ip> -j REJECT --reject-with icmp-port-unreachable- 查看所有的 iptables chain 列表,並帶序號
1iptables -L INPUT -n --line-numbers- 檢視當前 iptable 的所有規則
1iptables -nvL- 清空和刪除 chain
1iptables -F black_ip_list
2iptables -X black_ip_list注意,如果沒有先清空而直接刪除chain會拋出錯誤
1iptables: Too many links.延伸閱讀: