如何使用 iptables 拒绝所有到本地主机端口 80 的流量,但允许来自本地机器的流量?

sor*_*rin 5 iptables

如何使用 iptables 拒绝所有到本地主机端口 80 的流量,但允许来自本地机器的流量?

这是我目前的解决方案,它似乎不会阻止流量。ip,本地机器的ip。如果我不放第二行,所有流量都会被阻止,启用它后,所有流量都会被接受?!

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

iptables -A INPUT -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 10.80.225.83 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "TCP LOGDROP: "
Run Code Online (Sandbox Code Playgroud)

只是要确定:

  • 10.80.225.83 是网络服务器的ip,我希望能够访问127.0.0.1:80
  • 我确实想10.80.225.83拒绝端口 80 上的任何连接,然后拒绝来自本地主机的连接。

Die*_*sen 9

iptables -I INPUT ! -i lo -p tcp --dport 80 -j DROP
Run Code Online (Sandbox Code Playgroud)

当您的流量从您的机器传输到您的机器时,始终具有输入接口“lo”。src 或 dst IP 地址无关紧要。


One*_*roi 0

如果可以的话能否提供全部内容/etc/sysconfig/iptables?(一旦信息可用,我将更新我的答案(如果适用)

由于我必须假设没有默认的 DROP 规则,因此您需要:

iptables -A INPUT -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 10.80.225.83 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "TCP LOGDROP: "
Run Code Online (Sandbox Code Playgroud)

iptables -A 输入 -p tcp --dport 80 -j 删除