国产openeuler22.03容器环境下/etc/sysconfig/iptables保存的防火墙策略在服务器重启后不生效的问题分析和解决

在openEuler 22.03容器环境中,通过iptables设置的防火墙策略在服务器重启后失效,主要表现为“Chain DOCKER”链中的限制策略不生效。经过分析,确定问题是由docker服务在iptables之后启动导致。解决措施包括在iptables服务启动后立即重启iptables,以确保配置生效。通过修改配置文件并重启docker服务,成功解决了策略不持久的问题。
摘要由CSDN通过智能技术生成

openeuler22.03容器环境下可以通过iptables进行访问限制以保障容器安全,但发现服务器重启后,在“Chain DOCKER"链中的配置不生效(其实centos/redhat环境也有相同问题)。本文对其原因进行分析并提供解决办法。

一、问题现象

1、配置策略前

测试服务器192.168.80.132上运行了一个容器,将容器内的22映射到了主机的4434端口:

# docker ps 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                  NAMES
692ce4d13d67        atmoz/sftp:debian-stretch   "/entrypoint sftp:11…"   13 minutes ago      Up 6 minutes        0.0.0.0:4434->22/tcp   sftpsrv

测试服务情况本机及网内主机均可正常访问:

# telnet 192.168.80.132 4434
Trying 192.168.80.132...
Connected to 192.168.80.132.
Escape character is '^]'.

运行iptables -nL查看防火墙“Chain DOCKER"链数据如下:

Chain DOCKER (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.2           tcp dpt:22

运行servcie iptables save保存当前iptables数据,运行cat /etc/sysconfig/iptables查看“Chain DOCKER"链配置

-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 22 -j ACCEPT

2、配置策略

修改该段配置为,仅允许宿主机访问:

-A DOCKER -s 192.168.80.132/32 -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 22 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 22 -j DROP

 重启iptables服务并进行策略查看如下&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代先生.重庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值