iptables 封锁的指令与简单的封锁程式

安装了一台新的 Linux Server,有个来自中国的 IP "218.25.253.100" 连续好几天一直在尝试以 ssh 登入我的 Server,虽然我也装了 fail2ban,不过只设三个小时的封锁时间,所以每天会看到 fail2ban 告诉我这个 IP 被封锁了 n 次!!看了很烦,所以直接用 iptables 把它给封锁了。

iptables 封锁的指令

复习一下 iptables 的用法。

封锁 IP:

iptables -A INPUT -s IP位址 -j DROP

Ex:

$ iptables -A INPUT -s 218.25.253.100 -j DROP

封锁 IP 的某个 Port:

iptables -A INPUT -s IP位址 -p tcp --dport 埠号 -j DROP

Ex:

$ iptables -A INPUT -s 218.25.253.100 -p tcp --dport 22 -j DROP

如果要解除封锁就把 -A 换成 -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 位部落客按了赞: