iptables命令是Linux上常用的防火墙软件
查看所有规则
sudo iptables -L
iptables禁止指定ip访问
sudo iptables -A INPUT -s 54.36.143.97 -j DROP
封禁ip段
iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令
iptables 解封ip
sudo iptables -L -n --line-number
上面命令会展示带编号的所有iptables规则,可执行下面命令对指定编号规则删除
sudo iptables -D INPUT num
比如要删除INPUT里序号为8的规则,执行:
sudo iptables -D INPUT 8
或直接
iptables -D INPUT -s ***.***.***.*** -j DROP
注意以上设置的规则并不是永久有效,系统重启后会恢复原样。
永久有效设置
1.Ubuntu
首先,保存现有的规则:
iptables-save > /etc/iptables.rules
然后新建一个bash脚本,并保存到 /etc/network/if-pre-up.d/目录下:
#!/bin/bash
iptables-restore < /etc/iptables.rules
这样,每次系统重启后iptables规则都会被自动加载。
!注意:不要尝试在.bashrc或者.profile中执行以上命令,因为用户通常不是root,而且这只能在登录时加载iptables规则。
2.CentOS, RedHat
yum install iptables-services
systemctl enable iptables.service //设置开机启动
# 保存iptables规则
service iptables save
# 重启iptables服务
service iptables stop
service iptables start
# 查看当前规则:
cat /etc/sysconfig/iptables
nginx 防止ab攻击
if ($http_user_agent ~* (ApacheBench)) {
return 200;
}