允许HTTP访问外部接口

我如何允许HTTP访问$ EXTIF?

*nat -A POSTROUTING -o "$EXTIF" -j MASQUERADE COMMIT *filter :INPUT ACCEPT [0:0] #If this is changed to DROP than clients cannot connect out. :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -j LOG -A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -A FORWARD -i "$INTIF" -o "$EXTIF" -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -A FORWARD -j LOG -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -j LOG COMMIT 

只允许HTTP到$ EXTIF:

 iptables -A INPUT -m state --state ESSTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $EXTIF -p tcp --dport 80 -m state --state NEW -j ACCEPT iptables -A INPUT -j LOG iptables -P INPUT DROP 

这将允许外部人员启动连接到您的服务器的端口80(HTTP)。 build立/相关的规则将允许服务器只回复这些连接,所以这符合您的要求,我想。

这应该也相当有效地洪泛您的日志与数据包到不同于80的端口。我会考虑-j LOG部分的限制规则。

NAT防止任何外部实体发起直接连接到NAT后面的任何事物。 您不需要额外做任何事情来保护NATnetworking免受端口扫描。 保持个人主机防火墙和当前的防病毒软件(如果它是一个MS操作系统)仍然是一个推荐的事情。

花些时间阅读Rusty的“不可靠指南”( http://people.netfilter.org/~rusty/unreliable-guides/ )和iptables手册页。 他们写得很好。