主机服务端口
$ iptables -I INPUT -p tcp --dport 80 -j DROP
$ iptables -I INPUT -p tcp -s 1.2.3.4 --dport 80 -j ACCEPT
这里仅允许 1.2.3.4
访问本地主机的 80 端口。
Docker 服务端口
对于类似 docker run -d -p 80:80 shaowenchen/demo-whoami
运行的服务,上面的方法无效,需要在 DOCKER-USER 链中添加规则。
Docker 会将 iptables 规则添加到 DOCKER 链中,如果需要在 Docker 之前添加规则需要添加到 DOCKER-USER 链中
$ iptables -I DOCKER-USER -i ens192 ! -s 1.2.3.4 -p tcp --dport 80 -j DROP
ens192 是本地的网卡,这里仅允许 1.2.3.4
访问本地主机的 80 端口。
清理环境
$ yum install -y iptables-services
$ systemctl restart iptables.service
如果需要在主机重启之后 iptables 设置,依然有效,需要安装 iptables-services
并保存
$ yum install -y iptables-services
$ service iptables save
参考
-
https://docs.docker.com/network/iptables/
链接:https://www.chenshaowen.com/blog/set-port-to-be-accessible-only-to-a-specified-ip.html
(版权归原作者所有,侵删)
《Docker中Image、Container与Volume的迁移》
免责声明:本文内容来源于网络,所载内容仅供参考。转载仅为学习和交流之目的,如无意中侵犯您的合法权益,请及时联系Docker中文社区!
原文始发于微信公众号(Docker中文社区):如何在 Linux 下限制端口仅对指定 IP 开放访问
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论