我的端口80的iptables规则有什么问题?

我只想冲浪网站,成为一个Web服务器,但它不工作。

我的规则是:

-P INPUT DROP -P OUTPUT DROP -P FORWARD DROP -A INPUT -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 

另外,我对这些国家还不太确定。 在我的情况下哪些是无用的,为什么?

非常感谢你的帮助。

编辑

我仍然不能上网。 有了这些规则,我希望我的服务器成为一个Web服务器,同时能够从这台机器上网(这只是为了练习)

这是我更新的规则。 他们怎么了? (我添加了两行DNS端口,不知道它们是否有用或正确)

  -P INPUT DROP -P OUTPUT DROP -P FORWARD DROP -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT -A OUTPUT -p tcp --dport 53 -j ACCEPT -A INPUT -p tcp --dport 53 -j ACCEPT 

您的INPUT规则看起来像是试图允许传入连接到本地计算机上的Web服务器。 您的OUTPUT规则看起来像试图允许从本地机器到任何外部Web服务器的传出连接。 你想达到什么目的? 都?

无论如何,您需要更加宽容您的ESTABLISHED,RELATED规则。 您希望允许所有已build立连接的数据包,而不仅仅是具有目标端口80的数据包。特别是,来自Web服务器的回复没有目标端口80(它们具有源端口80),而您不要让他们。 通常情况下,每条链的顶部都有一条规则,允许所有已build立的和相关的数据包:

 -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

一旦你完成了,你可以允许初始数据包形成一个新的连接。 为了允许访问本地Web服务器:

 -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT 

…并允许从本地机器访问外部Web服务器:

 -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT 

但是对于第二种情况(允许从本地机器访问外部networking服务器),你有没有想过这是你真正想要的? 除了HTTP之外,你什么都不需要,甚至不需要DNS?