我在build立IPTables的一些帮助。 主要是configuration工作,但无论我尝试什么,我不能让本地访问本地Apache只(即本地访问本地主机:80)。
这是我的脚本:
#!/bin/bash # Allow root to access external web and ftp iptables -t filter -A OUTPUT -p tcp --dport 21 --match owner --uid-owner 0 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 80 --match owner --uid-owner 0 -j ACCEPT #Allow DNS queries iptables -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT # Allow in and outbound SSH to/from any server iptables -A INPUT -p tcp -s 0/0 --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -d 0/0 --sport 22 -j ACCEPT # Accept ICMP requests iptables -A INPUT -p icmp -s 0/0 -j ACCEPT iptables -A OUTPUT -p icmp -d 0/0 -j ACCEPT # Accept connections from any local machines but disallow localhost access to networked machines iptables -A INPUT -s 10.0.1.0/24 -j ACCEPT iptables -A OUTPUT -d 10.0.1.0/24 -j DROP # Drop ALL other traffic iptables -A OUTPUT -p tcp -d 0/0 -j DROP iptables -A OUTPUT -p udp -d 0/0 -j DROP
现在我已经尝试了很多排列组合,我显然错过了一切。 我把它们放在input/输出的SSH之上,所以它不是优先顺序。
如果有人能够让我只允许本地机器访问本地的Web服务器,那就太棒了。
另外 – 当上面的configuration运行时,我不能(从一个Windows机器)按名称ping主机 – 可以通过IP。 我需要什么来允许主机解决?
干杯。
通用的build议 – 在你的规则集的开始添加:
iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -F iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
在此之后追加您的规则。 我真的不明白为什么要防止本地主机窗体访问的东西。 它会导致很多问题..与DNS,MySQL和任何其他本地服务。