首先,这里是我想要使用 IP 表执行的操作的列表。
- 接受 TCP 端口 80 上的所有 IP
- 接受 TCP 端口 443 上的所有 IP
- 通过 tcp 端口 SSH_PORT 接受来自我的 ip 的请求
我还希望其他一切都安全且正常运行,例如:能够使用 wget。
以下是我所创建的。
# Accept tcp packets on destination port 80
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Accept tcp packets on destination port 443
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Accept from specific ip on ssh
iptables -A INPUT -p tcp -s 192.XXX.XX.XX/32 --dport SSHPORT -j ACCEPT
# Accept all icmp traffic
iptables -A INPUT -p icmp -j ACCEPT
# Accept established tcp traffic on the specified ports
iptables -A INPUT -m state --state ESTABLISHED --dport 32768:65535 -j ACCEPT
# Drop eveything else
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Allow all output
iptables -P OUTPUT ACCEPT
答案1
假设你的意思是这一行,那么你似乎错过了 DNS 流量:
# Accept established tcp traffic on the specified ports
因为您似乎允许所有流量。您应该在该行添加 -p tcp。
您将需要回送流量……其余的可能取决于个人喜好。例如,我不喜欢允许所有 icmp 流量进入。
这还取决于这台机器的用途。您可以决定是否需要完全允许 UDP(DNS 除外)?如果不需要,则将 -p tcp 添加到输出并建立连接行。
我也不允许所有输出流量。但既然您不介意,这里是我建议的配置/修改:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
# Allow ping and ICMP error returns.
-A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
# Allow loopback (lo) traffic
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
## ------ DNS (UDP 53. 443 if you use DNSCrypt) -------------
-A INPUT -p udp -m multiport --sports 53,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p udp -m multiport --dports 53,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# ------- web INPUT ----------
-A INPUT -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
#---- SSH input
# Accept from specific ip on ssh---
-A INPUT -p tcp -s 192.XXX.XX.XX/32 --dport SSHPORT -j ACCEPT
# Accept established tcp traffic on the specified ports
-A INPUT -m state --state ESTABLISHED --dport 32768:65535 -j ACCEPT
# Drop eveything else
-A INPUT DROP
-A FORWARD DROP
# Allow all output
-A OUTPUT ACCEPT
COMMIT