|
|
eth0接外网
eth1接内
我自己写的防火墙,对各个部分都做了解释,希望大家喜欢,并欢迎大家一起交流
编辑/etc/sysctl.conf文件,并确认net.ipv4.ip_forward = 1
#重新设置策略链并删除已有规则
iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT
iptables --flush
iptables --flush -t nat
#设置基本的过滤规则,从而拒绝所有的网络流量
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP
#在回送接口允许所有内部网络流量
iptables -A OUTPUT -j ACCEPT -i lo
iptables -A INPUT -j ACCEPT -o lo
#配置向外方向的TCP规则,其中,-state ESTABLISHED,NEW参数指定要检查哪个状态。ESTABLISHED
标志匹配属于已有的TCP连接的封包。NEW标志指定试图创建一条新TCP连接的第一个封包,这条规则指明
属于新建的和已建立的TCP连接的封包将会通过eth0端口想外发送。
iptables -A OUTPUT -j ACCEPT -o eth0 -p tcp -m state --state ESTABLISHED,NEW
#检查到达外部网络接口的封包状态。属于已有TCP连接的封包都允许通过
iptables -A INPUT -i eth0 -p -m state --state ESTABLISHED,RELATED -j ACCEPT
#配置封包从一个端口转发到另一个
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -j eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#下面对源地址进行转换
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to a.b.c.d |
|