iptables 规则不起作用

iptables 规则不起作用

我不知道为什么我的 iptable 规则阻止访问,https://example.com:9700尽管accept规则被添加了

我首先清理一切

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

然后删除所有内容,为 ssh 和我的 9700 端口添加例外

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9700 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

清除后服务开始工作,并在第二组规则之后停止工作。

请注意,SSH 规则运行良好。添加规则后,我可以通过 SSH 重新连接到我的服务器

DNS 问题 根据其中一个答案,已验证的 DNS 不起作用。但是,这并不能解释为什么我仍然无法通过 IP 地址访问它:https://xx.xxx.xx.x:9700

答案1

您能解析 example.com 的名称吗?如果您阻止对任何名称服务的访问,您的机器将无法访问 example.com - 您必须在 /etc/hosts 中添加主机 example.com 及其 IP 地址,或为您的 DNS 添加 iptables 例外。

发布日期这里,DNS 查找的一个例外是:

iptables -A INPUT -p udp --source-port 53 -j ACCEPT

编辑

由于您排除了 DNS 问题,我更深入地研究了您的规则,并且根据我对 iptables 的理解,它无法工作。您允许在目标端口 9700(在您的机器上!)上进行 INPUT 流量(到您的机器),并允许从本地端口 9700 进行 OUTPUT 流量(从您的机器到外部)。

您想要的恰恰相反(或者我错了?):您希望您的机器通过端口 9700 到达外部服务器,并且您希望该服务器能够回答您。

因此你的最后两条规则应该是:

iptables -A OUTPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

这允许从您的计算机上的任何端口(因为您无法控制协议将使用哪个端口来发送流量)开始的流量到端口 9700 上的任何其他计算机,并且允许来自世界上任何其他计算机的流量到您的计算机,如果数据包是已建立的连接的一部分。

答案2

尝试:

iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP

iptables -t filter -A INPUT -i lo -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 9700 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 9700 -m state --state ESTABLISHED -j ACCEPT

我假设解析 example.com IP 地址的 DNS 服务器不是同一台机器。

另外,我认为将 OUTPUT 链的策略设置为 ACCEPT 没什么问题。试试看。

这套规则对我来说很管用。它应该也对你有用。

此致!

相关内容