如何允许来自特定 IP 地址的所有连接?

如何允许来自特定 IP 地址的所有连接?

我想允许来自特定 IP 地址的所有连接但失败了。

操作系统:Ubuntu Server 16.04。(传入和传出服务器)

我已经执行了以下命令:

iptables -I INPUT -p tcp -s 192.168.0.45 -j ACCEPT
iptables -I OUTPUT -p tcp -d  192.168.0.45 -j ACCEPT

service netfilter-persistent save
/etc/init.d/netfilter-persistent restart

但它不起作用。

这就是我的rules.v4样子:

# Generated by iptables-save v1.6.0 on Thu Jun 22 08:48:43 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 192.168.0.45/32 -p tcp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8025 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i tun0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 17000 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 192.168.0.45/32 -p tcp -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Thu Jun 22 08:48:43 2017

我只有在使用以下方法刷新所有连接时才会接收所有连接

iptables -F

如何正确允许来自特定 IP 地址的所有连接?

答案1

如何正确允许来自特定 IP 地址的所有连接?

“所有连接”是指不要匹配您特定 IP 允许规则上的 TCP!

只需删除-p tcp,您就可以允许 ping(ICMP)和所有其他 IP 协议。

还请注意,此处的 OUTPUT 规则没有用。使用第一条规则,您允许 tcp 访问 192.168.0.45,使用第二条规则,您允许任何人访问任何内容。因此,第一条规则无效!

为了得到你想要的,编辑输入规则:

iptables -A INPUT -s 192.168.0.45/32 -j ACCEPT

并删除为 192.168.0.45 制定的 OUTPUT 规则。

相关内容