Linux
如何將 apache2 添加到 iptables?
我有一個具有以下 iptable 規則的 linux 伺服器:
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
如果您在執行 apache 的同一台機器上執行 iptables,則需要更改以下規則:
iptables -A OUTPUT -t filter -p tcp --dport http -j ACCEPT
成為
iptables -A INPUT -p tcp --dport http -j ACCEPT
您需要允許傳入流量到埠 80 而不是傳出流量。
ESTABLISHED
此外,僅允許and是不夠RELATED
的INPUT
。您需要對OUTPUT
. 添加如下規則:iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
如果您在同一台伺服器上執行 DNS 服務,則需要允許埠 53 協議 UDP,類似於您對 HTTP 所做的。