服务器环境:centos7.1

    CentOS7 默认的防火墙不是 iptables,而是 firewalle.

    1. 禁用/停止自带的 firewalld 服务
    1. ## 停止firewalld服务
    2. systemctl stop firewalld
    3. ## 禁用firewalld服务
    4. systemctl mask firewalld
    1. 安装 iptables iptables-services
    1. ## 先检查是否安装了iptables
    2. service iptables status
    3. ## 安装iptables
    4. yum install -y iptables
    5. ## 升级iptables
    6. yum update iptables
    7. ## 安装iptables-services
    8. yum install iptables-services
    1. 设置现有规则
    1. ## 查看iptables现有规则
    2. iptables -L -n
    3. ## 先允许所有,不然有可能会杯具
    4. iptables -P INPUT ACCEPT
    5. ## 清空所有默认规则
    6. iptables -F
    7. ## 清空所有自定义规则
    8. iptables -X
    9. ## 所有计数器归0
    10. iptables -Z
    11. ## 允许来自于lo接口的数据包(本地访问)
    12. iptables -A INPUT -i lo -j ACCEPT
    13. ## 开放22端口
    14. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    15. ## 开放21端口(FTP)
    16. iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    17. ## 开放80端口(HTTP)
    18. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    19. ## 开放443端口(HTTPS)
    20. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    21. ## 允许ping
    22. iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
    23. ## 允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
    24. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    25. ## 其他入站一律丢弃
    26. iptables -P INPUT DROP
    27. ## 所有出站一律绿灯
    28. iptables -P OUTPUT ACCEPT
    29. ## 所有转发一律丢弃
    30. iptables -P FORWARD DROP
    31. ## 保存上述规则
    32. service iptables save
    1. 其他规则设定
    1. ## 如果要添加内网ip信任(接受其所有TCP请求)
    2. ## ***.***.***.***为ip地址
    3. iptables -A INPUT -p tcp -s ***.***.***.*** -j ACCEPT
    4. ## 过滤所有非以上规则的请求
    5. iptables -P INPUT DROP
    6. ## 要封停一个IP,使用下面这条命令:
    7. iptables -I INPUT -s ***.***.***.*** -j DROP
    8. ## 要解封一个IP,使用下面这条命令:
    9. iptables -D INPUT -s ***.***.***.*** -j DROP
    1. 服务的启动与禁用相关命令
    1. ## 注册iptables服务开机启动
    2. ## 相当于以前的chkconfig iptables on
    3. systemctl enable iptables.service
    4. ## 在开机时禁用服务
    5. systemctl disable iptables.service
    6. ## 查看服务是否开机启动
    7. systemctl is-enabled iptables
    8. ## 启动服务
    9. ## 相对于之前service iptables stop/start/status/restart/reload等
    10. systemctl start iptables
    11. ## 关闭服务
    12. systemctl stop iptables
    13. ## 重启服务
    14. systemctl restart iptables
    15. ## 服务状态
    16. systemctl status iptables
    1. 以下是 iptables 配置的脚本
    1. #!/bin/sh
    2. iptables -P INPUT ACCEPT
    3. iptables -F
    4. iptables -X
    5. iptables -Z
    6. iptables -A INPUT -i lo -j ACCEPT
    7. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    8. iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    9. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    10. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    11. iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
    12. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    13. iptables -P INPUT DROP
    14. iptables -P OUTPUT ACCEPT
    15. iptables -P FORWARD DROP
    16. service iptables save
    17. systemctl restart iptables.service