我想允许来自特定 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 规则。