一.四表
filter 表:
主要用于控制数据包的过滤,决定数据包是否允许进出及转发 。比如设置规则允许特定 IP 访问服务器的 SSH 端口(22 端口),或禁止某些 IP 访问网站端口(80 或 443 端口 )。可作用于 INPUT、OUTPUT、FORWARD 链。
nat 表:
即 Network Address Translation(网络地址转换)表,负责处理数据包中的地址转换,如源地址转换(SNAT)和目标地址转换(DNAT) 。比如局域网内设备共享公网 IP 上网,就需要用到 NAT 转换。可作用于 PREROUTING、INPUT、OUTPUT、POSTROUTING 链。
mangle 表:
用于修改数据包的原数据,比如修改 IP 头中的 TOS(Type of Service,服务类型)字段等 。一般用于一些对数据包有特殊标记、修改需求的场景。可作用于 PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING 链。
raw 表:
主要控制 nat 表中连接追踪机制的启用状况 ,比如通过设置可以让某些连接不被连接跟踪机制处理。可作用于 PREROUTING、OUTPUT 链。
二.五链
PREROUTING(路由前):
在数据包进入路由决策之前进行处理,当外部数据包进入本机时,首先会经过此链。可在此链上设置规则对进入的数据包进行地址转换等操作 。
INPUT(数据包流入口):
处理进入本机的数据包,比如设置规则允许或拒绝哪些外部请求进入本机的特定端口 。
FORWARD(转发关卡):
当数据包需要经过本机转发到其他设备时(如路由器场景),会经过此链 。比如局域网内的网关服务器转发数据包到互联网时,就会用到此链规则。
OUTPUT(数据包出口):
处理本机发出的数据包,可在此设置规则控制本机发出的数据包的走向等 。
POSTROUTING(路由后):
在数据包完成路由决策,即将离开本机时进行处理,常用于源地址转换(SNAT),如将局域网内不同 IP 转换为统一的公网 IP 发出 。
1.安装systemctl 管理iptables启动
dnf install iptables-services
2.系统启动时自动加载这些 iptables 相关内核模块
cat >> /etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_state
EOF
核心掌握:
实操: