iptables手動解除封鎖和加入允許的IP

之前在鳥哥的網站看到有防砍站的 iptables 腳本,這個腳本是藉由 netstat 來分析,若有符合封鎖條件的IP,再藉由腳本裡的函數進行封鎖,所以需要搭配排程crontab來使用。
下載後放到 /scripts 並寫入排程中,每2分鐘透過腳本檢查一次,每1小時清空封鎖的IP。

#防砍站
*/2 *  *  *  * root /scripts/block_http
 0  1  *  *  * root /sbin/iptables -F blockhttp

不過最近有客戶反應在修改網站時無法看到自已的網站,由於該公司的流量很大,而且使用IP分享器共用一個IP,所以有可能會發生一些員工同時間使用網站,造成連線數過多而被封鎖。

查看目前封鎖的 IP

iptables -nL

看到客戶IP,手動解除封鎖

iptables -D blockhttp -s 客戶IP -d 0/0 -j DROP

或者是再加入允許的 IP

iptables -A blockhttp -s 客戶IP -d 0/0 -j ACCEPT

但過了一陣子還是會被鎖住,原來是因為排程每1小時會清空一次,所以要直接修改 /scripts/block_http 腳本裡的參數,把排除名單直接寫入。

另外記錄:
手動增加某一個IP連線時

iptables -A INPUT -s 192.168.1.100 -j ACCEPT

手動解除某一個IP連線時

iptables -D INPUT -s 192.168.1.100 -j ACCEPT

若出現以下未匹配完全的提示時

iptables: Bad rule (does a matching rule exist in that chain?).

加入 -p all 參數或其它參數試試

iptables -D INPUT -s 192.168.1.100 -p all -j ACCEPT