CentOS 系统下 Iptables 策略配置详解

Iptables 简介
Iptables 是一个用于 Linux 系统的网络防火墙工具,它能够帮助管理员控制进出系统的网络流量,在 CentOS 系统中,Iptables 是一个非常强大的工具,可以帮助我们实现复杂的网络策略。
Iptables 工作原理
Iptables 的工作原理是通过规则表来匹配进出系统的数据包,并根据匹配的结果执行相应的动作,每个数据包都会按照规则表中的规则顺序进行匹配,直到找到匹配的规则,然后执行该规则指定的动作。
Iptables 基本命令
查看当前规则
iptables -L
清空规则
iptables -F
删除规则
iptables -D 输入链名 规则编号
添加规则
iptables -A 输入链名 规则编号 -p 协议 -s 源地址 -d 目标地址 -j 动作
Iptables 策略配置实例

以下是一个简单的 Iptables 策略配置实例,用于允许本机访问 80 端口,并拒绝其他所有端口:
清空现有规则
iptables -F
设置默认策略
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
允许本机访问 80 端口
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT
允许本机访问其他端口
iptables -A INPUT -p tcp -s 0/0 --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s 0/0 --dport 3306 -j ACCEPT
保存规则
service iptables save
Iptables 规则优先级
Iptables 规则的优先级从高到低依次为:链头、链中、链尾,当数据包到达某个链时,Iptables 会按照规则顺序进行匹配,一旦找到匹配的规则,就会立即执行该规则的动作,而不会继续匹配后续规则。
Iptables 规则动作
Iptables 支持多种动作,包括:

- ACCEPT:允许数据包通过。
- DROP:丢弃数据包。
- REJECT:拒绝数据包,并返回错误信息。
- LOG:记录数据包信息。
Iptables 规则示例
以下是一个包含多种动作的 Iptables 规则示例:
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j DROP iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3306 -j REJECT --reject-with tcp-reset iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "WEB_ACCESS "
Iptables FAQ
问题 1:如何查看 Iptables 的当前规则?
解答: 使用以下命令可以查看 Iptables 的当前规则:
iptables -L
问题 2:如何允许所有来自特定 IP 地址的流量访问本机的 80 端口?
解答: 使用以下命令可以允许所有来自特定 IP 地址的流量访问本机的 80 端口:
iptables -A INPUT -p tcp -s 特定IP地址 --dport 80 -j ACCEPT

