iptables 配置

目录

1. 基本概念
2. 配置步骤
3. 管理
4. 配置文件

1. 基本概念

  • 五个基本规则链条:

    1. PREROUTING(路由前)
    2. INPUT(数据包流入口)
    3. FORWARD(转发关卡)
    4. OUTPUT(数据包出口)
    5. POSTOUTING(路由后)

  • 规则表

    1. raw 表: 是否跟踪 OUTPUT,PREROUTING
    2. mangle 表: 修改报文原数据 PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
    3. nat 表: 定义地址转换 PREROUTING,OUTPUT,POSTROUTING
    4. filter 表: 定义允许或者不允许 INPUT,FORWARD,OUTPUT

  • iptables 命令中常见的控制类型:

    1. ACCEPT: 允许通过
    2. LOG: 记录日志信息,然后传给下一条规则继续匹配
    3. REJECT: 拒绝通过,必要时会给出提示
    4. DROP: 直接丢弃,不给出任何回应

  • iptables 命令:

    iptables [-t table] command match -j target

  • iptables 的基本参数:

    参数 作用
    command
    -P 设置默认策略: iptables -P INPUT (DROP|ACCEPT)
    -F 清空规则链
    -L 查看规则链
    -A 在规则链的末尾加入新规则
    -D num 删除某一条规则
    match
    -s 匹配来源地址 IP/MASK,加叹号"!"表示除这个 IP 外。
    -d 匹配目标地址
    -i 网卡名称 匹配从这块网卡流入的数据
    -o 网卡名称 匹配从这块网卡流出的数据
    -p 匹配协议,如 tcp,udp,icmp
    --dport num 匹配目标端口号
    --sport num 匹配来源端口号

返回目录

2. 配置步骤

1. 关闭 firewall
# systemctl stop firewalld.service ## 停止 firewall
# systemctl disable firewalld.service ## 禁止 firewall 开机启动
# systemctl mask --now firewalld ## 在不完全卸载的情况下,彻底禁用,可防止自启动
# systemctl list-unit-files | grep mask ## 查看被 mask 的服务

2. 安装 iptables 防火墙
# yum install iptables-services ## 安装

filter 表:

3. 清空已有规则
# iptables -F
# iptables -X
# iptables -Z

4. 设置默认访问规则
# iptables -P INPUT DROP ## 默认为丢弃
# iptables -P FORWARD DROP ## 默认为丢弃
# iptables -P OUTPUT ACCEPT ## 默认为通过

5. 配置允许 SSH 登录端口进入
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

6. 允许所有的 ping 操作
# iptables -A INPUT -p icmp -j ACCEPT
# iptables -A OUTPUT -p icmp -j ACCEPT

7. 允许本机 IO 通信
# iptables -A INPUT -i lo -p all -j ACCEPT
# iptables -A OUTPUT -o lo -p all -j ACCEPT

8. 开放特定的端口
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp --dport 443 -j ACCEPT

9. 开启转发功能
# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT

10. 丢弃坏的 TCP 包
# iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP

11. 处理 IP 碎片数量,防止攻击,允许每秒100个
# iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

12. 设置 ICMP 包过滤,允许每秒1个包,限制触发条件是10个包
# iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

nat 表:

13. 清空nat表
# iptables -F -t nat
# iptables -X -t nat
# iptables -Z -t nat

14. 添加规则
。。。

15. 允许所有已经建立的和相关的连接(必须配置否则 httpd 无法连接)
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

16. drop 非法连接
# iptables -A INPUT -m state --state INVALID -j DROP
# iptables -A OUTPUT -m state --state INVALID -j DROP
# iptables -A FORWARD -m state --state INVALID -j DROP

17. 保存配置
# service iptables save (# /etc/rc.d/init.d/iptables save)
# systemctl reload iptables ## 重新加载配置

18. 重启
# systemctl restart iptables

19. 设置开机自启动
# systemctl enable iptables

返回目录

3. 管理

1. 查看本机 iptables 配置情况
# iptables -L -n ## 查看本机 iptables 设置情况
# iptables -L INPUT ## 查看 filter 表中 INPUT 链的规则
# iptables -D INPT 5 ## 删除 filter 表中 INPUT 链的第5条规则

2. 查看本机 nat 配置情况
# iptables -t nat -L

3. 打开 iptables 配置文件
# vi /etc/sysconfig/iptables

4. 查看端口监听状态
# netstat -tulpn | less

返回目录

4. 配置文件

# vi /etc/sysconfig/iptables

 1 # Generated by iptables-save v1.4.21 on Thu Aug  9 09:44:27 2018
 2 *filter
 3 :INPUT DROP [0:0]
 4 :FORWARD DROP [0:0]
 5 :OUTPUT ACCEPT [2071:305437]
 6 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 7 -A INPUT -p icmp -j ACCEPT
 8 -A INPUT -i lo -j ACCEPT
 9 # -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
10 -A INPUT -p tcp -m state --state NEW -m tcp --dport 7777 -j ACCEPT
11 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
12 -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
17 -A INPUT -p tcp -m state --state New -m tcp --dport 2121 -j ACCEPT
18 -A INPUT -p udp -m state --state NEW -m udp --dport 4444 -j ACCEPT
19 -A INPUT -j REJECT --reject-with icmp-host-prohibited
20 -A INPUT -p icmp -j ACCEPT
21 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
26 -A OUTPUT -p tcp -m tcp --sport 4444 -j DROP

返回目录

参考链接-CentOS7 下 iptables 配置过程

posted @ 2021-09-11 16:12  xiaobo0602  阅读(2959)  评论(0)    收藏  举报