iptables 仅允许 ssh 和 https

iptables 仅允许 ssh 和 https

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

这是我的 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

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

我做错什么了?

答案1

不要阻止所有出站规则,它不会选择端口 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

相关内容