iptables 封鎖的指令與簡單的封鎖程式
安裝了一台新的 Linux Server,有個來自中國的 IP「218.25.253.100」連續好幾天一直在嘗試以 ssh 登入我的 Server,雖然我也裝了 fail2ban,不過只設三個小時的封鎖時間,所以每天會看到 fail2ban 告訴我這個 IP 被封鎖了 n 次!!看了很煩,所以直接用 iptables 把它給封鎖了。
iptables 封鎖的指令
復習一下 iptables 的用法。
封鎖 IP:
iptables -I INPUT -s IP位址 -j DROP
Ex:
$ iptables -I INPUT -s 218.25.253.100 -j DROP
封鎖 IP 的某個 Port:
iptables -I INPUT -s IP位址 -p tcp --dport 埠號 -j DROP
Ex:
$ iptables -I INPUT -s 218.25.253.100 -p tcp --dport 22 -j DROP
如果要解除封鎖就把 -I 換成 -D 即可。
ban_ip.pl
iptables 的指令並不難,不過因為不常用,每次要用時都會忘了怎麼下指令,所以寫了支簡單的程式 ban_ip.pl 來呼叫 iptables,安裝方式如下:
$ cd /usr/bin $ wget http://here.vixual.net/files/project/ban_ip/ban_ip_pl $ mv ban_ip_pl ban_ip.pl $ chmod 755 ban_ip.pl
直接執行程式會顯示用法:
$ ban_ip.pl 本程式會呼叫 iptables 來封鎖 IP,你的系統必須先安裝並啟動 iptables。 語法: ban_ip.pl <欲封鎖的IP>[:<埠號>] ban_ip.pl -a <欲封鎖的IP>[:<埠號>] ban_ip.pl -d <欲解除封鎖的IP>[:<埠號>] ban_ip.pl -l <欲查詢的IP>[:<埠號>]
例如,要封鎖 IP:
$ ban_ip.pl -a 218.25.253.100
封鎖 IP 的某個 Port:
$ ban_ip.pl -a 218.25.253.100:22
查詢 IP 的封鎖狀況:
$ ban_ip.pl -l 218.25.253.100 DROP all -- 218.25.253.100 anywhere DROP tcp -- 218.25.253.100 anywhere tcp dpt:ssh
No comments yet.