iptables设置


下图为linux下netfilter的流量处理链。

iptables

举例环境:

NAT网关机2个网络接口:

Lan口:10.1.1.254/24 eth0  , Wan口:60.1.1.1/24 eth1

Lan内web server: 10.1.1.1:80

分两块:

1、NAT

最前面的PREROUTING,做DNAT操作,改变destination ip从网关机ip到内网目标机器ip。

iptables -t nat -A PREROUTING -d 60.1.1.1 -p tcp --dport 80 -j DNAT --to 10.1.1.1:80

中间的FORWARD,非本地机器的转发规则控制,需要打开 /proc/sys/net/ipv4/ip_forward 为 1

iptables -A FORWARD -d 10.1.1.1 -p tcp --dport 80 -j ACCEPT

最后的POSTROUTING,做SNAT操作,改变source ip,从外网客户端ip改变为网关机ip地址

iptables -t nat -A POSTROUTING -d 10.1.1.1 -p tcp --dport 80 -j SNAT --to 10.1.1.254

2、FILTER

在NAT.PREPOSTING之后,如果目标ip地址是本机地址,则数据包将走FILTER通道。

同样包括INPUT、FORWARD、OUTPUT阶段。

例如:拒绝某个地址包  iptables -A INPUT -s 10.250.4.49 -i eth0 -j DROP

举例:

本机端口转发,不需要管SNAT:

/sbin/iptables -t nat -A PREROUTING -d 10.249.192.168 -p tcp --dport 44000 -j DNAT --to 10.249.192.168:43000

相关内容