共计 998 个字符,预计需要花费 3 分钟才能阅读完成。
在 Linux 服务器被攻击的时候,有的时候会有几个主力 IP。如果能拒绝掉这几个 IP 的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了。
在 Linux 下封停 IP,有封杀网段和封杀单个 IP 两种形式。一般来说,现在的攻击者不会使用一个网段的 IP 来攻击(太招摇了),IP 一般都是散列的。于是下面就详细说明一下封杀单个 IP 的命令,和解封单个 IP 的命令。
在 Linux 下,使用 ipteables 来维护 IP 规则表。要封停或者是解封 IP,其实就是在 IP 规则表中对入站部分的规则进行添加操作。
要封停一个 IP,使用下面这条命令:
iptables -I INPUT -s ***.***.***.*** -j DROP
要解封一个 IP,使用下面这条命令:
iptables -D INPUT -s ***.***.***.*** -j DROP
参数 - I 是表示 Insert(添加),- D 表示 Delete(删除)。后面跟的是规则,INPUT 表示入站,***.***.***.*** 表示要封停的 IP,DROP 表示放弃连接。
此外,还可以使用下面的命令来查看当前的 IP 规则表:
iptables -list
比如现在要将 123.44.55.66 这个 IP 封杀,就输入:
iptables -I INPUT -s 123.44.55.66 -j DROP
要解封则将 - I 换成 - D 即可,前提是 iptables 已经有这条记录。如果要想清空封掉的 IP 地址,可以输入:
iptables -flush
要添加 IP 段到封停列表中,使用下面的命令:
iptables -I INPUT -s 121.0.0.0/8 -j DROP
其实也就是将单个 IP 封停的 IP 部分换成了 Linux 的 IP 段表达式。关于 IP 段表达式网上有很多详细解说的,这里就不提了。
相信有了 iptables 的帮助,解决小的 DDoS 之类的攻击也不在话下!
参考:http://blog.renhao.org/2010/01/linux-ban-unban-ip/
附:其他常用的命令
编辑 iptables 文件
vi /etc/sysconfig/iptables
关闭 / 开启 / 重启防火墙
/etc/init.d/iptables stop
#start 开启
#restart 重启
验证一下是否规则都已经生效:
iptables -L
保存并重启 iptables
/etc/rc.d/init.d/iptables save
service iptables restart