首页 服务器系统 Linux

linux iptables四表 (fiter、mangle、nat、raw)功能及详细配置示例

Linux的iptables工具使用四个表(filter、mangle、nat、raw)来控制网络流量。每个表都有不同的功能和用途。

以下是每个表的功能及详细配置示例:

filter表:

功能:filter表是最常用的表,用于过滤网络流量。它允许或拒绝流量,并根据不同的条件进行过滤。

示例配置:在filter表中配置允许SSH和HTTP流量,并拒绝其他所有流量。

# 清除所有规则
iptables -F

# 允许SSH流量(端口22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP流量(端口80)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 拒绝所有其他流量
iptables -A INPUT -j DROP

mangle表:

  • 功能:mangle表用于修改网络流量的特定字段,如TTL值、IP标识符等。它可以在数据包通过系统时对其进行修改。
  • 示例配置:在mangle表中配置将TTL值减少为64的规则。
# 将TTL值减少为64
iptables -t mangle -A POSTROUTING -j TTL --ttl-dec 64

nat表:

  • 功能:nat表用于网络地址转换(NAT),允许多个设备共享单个公共IP地址,并在内部和外部网络之间进行转发。
  • 示例配置:在nat表中配置端口转发规则,将外部流量转发到内部服务器(192.168.1.100)的特定端口(例如80)。

# 启用IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

# 进行端口转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
iptables -t nat -A POSTROUTING -d 192.168.1.100 -p tcp --dport 80 -j SNAT --to-source 公共IP地址

raw表:

  • 功能:raw表用于配置连接跟踪系统的规则,可以在连接跟踪之前对流量进行处理。
  • 示例配置:在raw表中配置防火墙规则,拒绝特定IP地址的PING请求。
# 拒绝特定IP地址的PING请求
iptables -t raw -A PREROUTING -p icmp --icmp-type echo-request -s 特定IP地址 -j DROP

请注意,以上示例只是展示了每个表的一些常见配置示例,实际应用中可能需要更复杂的规则和配置。具体的防火墙配置可能会因操作系统和防火墙软件的不同而有所差异。

相关推荐