Linux

IPTables 配置幫助

  • June 14, 2010

我正在尋求一些設置 IPTables 的幫助。大多數配置是有效的,但無論我嘗試什麼,我都不能允許 localhost 僅訪問本地 Apache(即 localhost 僅訪問 localhost: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

現在我已經嘗試了很多排列,我顯然錯過了一切。我將它們放在進/出綁定 SSH 的上方,所以這不是優先順序。

如果有人能提醒我只允許本地機器訪問本地 Web 伺服器,那就太好了。

此外 - 當上述配置執行時,我不能(從 Windows 框中)按名稱 ping 主機 - 可以通過 IP。我需要什麼來允許主機解析?

乾杯,伙計們。

通用建議 - 在規則集的開頭添加:

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 和任何其他本地服務。

引用自:https://serverfault.com/questions/150927