如何将 apache2 添加到 iptables?

如何将 apache2 添加到 iptables?

我有一台 Linux 服务器,具有以下 iptable 规则:

iptables -p INPUT DROP
iptables -p OUTPUT DROP
iptables -p FORWARD DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -t filter -p tcp --dport http -j ACCEPT

我有 apache2 在端口 80 上监听。问题是,虽然本地机器可以通过主机名访问开发机器,但其他本地机器都无法访问它。如果我清除 iptable 规则,它们就可以访问它。

我该如何修复它?我尝试将端口 80 添加到上述规则集中,但没有成功。

编辑,这是当前的 iptable 规则:

    iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -t filter -p tcp --dport http -j ACCEPT
iptables -A OUTPUT -t filter -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -t filter -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -t filter -p tcp --dport https -j ACCEPT
iptables -A OUTPUT -t filter -p udp --dport https -j ACCEPT
iptables -A OUTPUT -t filter -p tcp --dport 445 -j ACCEPT
iptables -A OUTPUT -t filter -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport domain -i eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport http -j ACCEPT

答案1

如果你在运行 apache 的同一台机器上运行 iptables,则需要更改以下规则:

iptables -A OUTPUT -t filter -p tcp --dport http -j ACCEPT

成为

iptables -A INPUT -p tcp --dport http -j ACCEPT

您需要允许传入流量到端口 80,而不是传出流量。

此外,仅允许ESTABLISHEDRELATED是不够的INPUT。您需要对 执行相同的操作OUTPUT。添加如下规则:

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

如果您在同一台服务器上运行 DNS 服务,则需要允许端口 53 协议 UDP,类似于您对 HTTP 所做的操作。

相关内容