iptables命令是Linux上常用的防火墙软件

查看所有规则

  1. sudo iptables -L

iptables禁止指定ip访问

  1. sudo iptables -A INPUT -s 54.36.143.97 -j DROP

封禁ip段

  1. iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令
  2. iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令
  3. iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令

iptables 解封ip

  1. sudo iptables -L -n --line-number
  2. 上面命令会展示带编号的所有iptables规则,可执行下面命令对指定编号规则删除
  3. sudo iptables -D INPUT num
  4. 比如要删除INPUT里序号为8的规则,执行:
  5. sudo iptables -D INPUT 8

或直接

  1. iptables -D INPUT -s ***.***.***.*** -j DROP

注意以上设置的规则并不是永久有效,系统重启后会恢复原样。

永久有效设置

  1. 1.Ubuntu
  2. 首先,保存现有的规则:
  3. iptables-save > /etc/iptables.rules
  4. 然后新建一个bash脚本,并保存到 /etc/network/if-pre-up.d/目录下:
  5. #!/bin/bash
  6. iptables-restore < /etc/iptables.rules
  7. 这样,每次系统重启后iptables规则都会被自动加载。
  8. !注意:不要尝试在.bashrc或者.profile中执行以上命令,因为用户通常不是root,而且这只能在登录时加载iptables规则。
  9. 2.CentOS, RedHat
  10. yum install iptables-services
  11. systemctl enable iptables.service //设置开机启动
  12. # 保存iptables规则
  13. service iptables save
  14. # 重启iptables服务
  15. service iptables stop
  16. service iptables start
  17. # 查看当前规则:
  18. cat /etc/sysconfig/iptables

nginx 防止ab攻击

  1. if ($http_user_agent ~* (ApacheBench)) {
  2. return 200;
  3. }