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

參考網頁

  1. 如何及時封鎖想要用「暴力法」以 SSH 入侵的使用者
  1. No comments yet.

  1. No trackbacks yet.

return top

%d 位部落客按了讚: