iptables 只允许 ssh 和 https

wyr*_*yr0 4 linux firewall ssh https iptables

我正在尝试在我的设备上配置 iptables,以便仅允许SSHHTTPS流量。特别是,HTTPS 协议用于从 Java 客户端向远程服务器调用某些REST API

这是我的 iptables:

iptables -F

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#HTTPS
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

除了被 iptables 阻止的 HTTPS 流量外,一切都按预期工作。

我做错了什么?

小智 7

不要阻塞所有的出站规则,它不会选择端口 443 作为从其他服务器获取数据的来源。而且我认为阻止入站规则足以确保您的服务器安全。休息一切都好。如果需要,您可以使用以下规则。

iptables -F
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -j DROP
Run Code Online (Sandbox Code Playgroud)