发现Docker部署的容器,无法用iptables或ufw禁用IP+端口访问,这样部署的服务任何人用IP+端口就能访问十分不安全。所以搜了搜具体实现办法
简单实现方法(iptables命令行加DOCKER-USER)
假设我们运行了Docker 端口设置443映射8443(即8443:443)
首先反代我们的服务解析到域名
接着
iptables -I DOCKER-USER -p tcp --dport 443 -j DROP
iptables-save
即可,这样一来用IP+8443端口就无法访问容器了
允许特定IP访问 (另外一台机器反代的情况下用)
iptables -I DOCKER-USER -p tcp --dport 443 -j REJECT
iptables -I DOCKER-USER -s <ip> -p tcp --dport 443 -j ACCEPT
上面两条注意先后顺序,-I是添加到第一条规则,下方的规则要在第一条的上面才可以,先运行上面的。
查询docker iptables规则 iptables --line -nvL DOCKER-USER
删除DOCKER-USER链第一条(num)规则 iptables -D DOCKER-USER 1
持久化
apt install iptables-persistentiptables-restore < /etc/iptables/rules.v4
评论区