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/bashiptables-restore < /etc/iptables.rules这样,每次系统重启后iptables规则都会被自动加载。!注意:不要尝试在.bashrc或者.profile中执行以上命令,因为用户通常不是root,而且这只能在登录时加载iptables规则。2.CentOS, RedHatyum install iptables-servicessystemctl enable iptables.service //设置开机启动# 保存iptables规则service iptables save# 重启iptables服务service iptables stopservice iptables start# 查看当前规则:cat /etc/sysconfig/iptables
nginx 防止ab攻击
if ($http_user_agent ~* (ApacheBench)) {return 200;}
