我想限制从指定的IP访问docker集装箱港口。
我用ipset设置iptables规则。
我公开了端口8888.来自端口8888的请求被转发到简单的泊坞窗networking服务器。
我用白名单IP地址定义ipset。
ipset create testfilter iphash ipset add testfilter 192.168.52.65
然后我创build了iptables规则。 带名称testfilter新链,带有端口8888 FORWARD规则应跳转到testfilter 。 来自testfilter链的第一个规则应该匹配来自白名单ipset的IP。 当IP与白名单不匹配时,来自testfilter链的第二条规则应该放弃通信。
iptables -N testfilter iptables -I FORWARD -p tcp --dport 8888 -j testfilter iptables -A testfilter -m set --match-set test_ips src -j RETURN iptables -A testfilter -j DROP
但是端口8888仍然可以从任何IP访问。 我也尝试使用INPUT规则而不是FORWARD规则,同时从规则中删除--dport参数,并把-m state --state NEW参数而不是那个。 任何想法如何解决?
你可以访问你的8888端口,因为你的docker容器在本地主机上运行,而FORWARD不会阻塞它。 请使用-i选项指定lo界面。