ubuntu系统下ufw无法禁用docker映射的端口

一,背景

公司垃圾,接手项目的时候 发现之前的人为了方便玩docker装的ubuntu,第一种:有直接在系统上跑的服务(如 端口8081的java服务),第二种:有跑在docker上的服务(这里又分两种情况,第一种情况,docker内部端口和宿主机映射端口号相同,如docker内部端口8082映射宿主机的8082第二种情况,映射端口不相同,如docker内部的端口8083映射到宿主机的8084端口)。需要解决漏洞通过防火墙对端口访问添加一定的规则。

二,对宿主机端口添加规则

1,sudo apt-get install ufw(更新源)

2,sudo apt install ufw(下载ufw)

3,sudo ufw enable(开启ufw)

4,sudo ufw default deny(禁用默认规则,强调一遍这一步很重要!否则你直接添加规则可能无效)

5,ufw allow from 172.17.1.1 to any port 8081 (添加规则,允许172.17.1.1访问本机的8081端口)

6,sudo ufw allow 8081(添加规则,允许所有机器访问53端口,此步和第5步选合适自己的)

7,sudo ufw reload (重启防火墙使规则生效)

8,sudo ufw status 或者sudo ufw status verbose(检查ufw的状态及查看添加的规则)

三,对docker映射的端口添加规则

(一)内外部端口相同

1,iptables -nL(查看iptables列表)
链路中 有
RETURN     all  --  0.0.0.0/0            0.0.0.0/0 

2,iptables -D DOCKER-USER 1(删除上述RETURN的规则,但是 添加完后还要加回来)

3,iptables -A DOCKER-USER -s 172.17.1.1 -p tcp --dport 8082 -j ACCEPT(添加规则,允许172.17.1.1访问8082 。如果有多个需要允许的 请添加完再执行第4步,这玩意好像有先后顺序 碰到DROP就不往下走了)

4,iptables -A DOCKER-USER -p tcp --dport 8082 -j DROP(拒绝不信任的所有访问,也就是拒绝没有添加的ip访问8082,有多个 也是添加完再执行第5步)

5,iptables -A DOCKER-USER -j RETURN(将刚才删除的RETURN 本身就有的一条规则,这条很重要!)

6,iptables-save(保存规则)


一定要注意顺序!一定要注意顺序!一定要注意顺序!

(二)内外部端口不同

和上一个差不多就是 不禁用 8083本地宿主机端口,而禁用8084 docker内部的端口
1,iptables -nL(查看iptables列表)
链路中 有
RETURN     all  --  0.0.0.0/0            0.0.0.0/0 

2,iptables -D DOCKER-USER 1(删除上述RETURN的规则,但是 添加完后还要加回来)

3,iptables -A DOCKER-USER -s 172.17.1.1 -p tcp --dport 8084 -j ACCEPT(添加规则,允许172.17.1.1访问8084 。如果有多个需要允许的 请添加完再执行第4步,这玩意好像有先后顺序 碰到DROP就不往下走了)

4,iptables -A DOCKER-USER -p tcp --dport 8084 -j DROP(拒绝不信任的所有访问,也就是拒绝没有添加的ip访问8084 ,有多个 也是添加完再执行第5步)

5,iptables -A DOCKER-USER -j RETURN(将刚才删除的RETURN 本身就有的一条规则,这条很重要!)

6,iptables-save(保存规则)

一二种情况都存在 只需  执行这里的3,4步即可
一定要注意顺序!一定要注意顺序!一定要注意顺序!

(三)其他命令

iptables -nL(查看添加的规则)
iptables -nL --line-number | more(显示行数的查看添加的规则)

iptables -nL --line-number | more查看后效果图

 还可根据 iptables -D DOCKER-USER 1/2/3/4 来删除对应的规则

希望各位道友避坑!!!!!!!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值