等保整改安全加固时,使用iptabels限制docker端口不生效,限制非docker容器端口可生效。经查阅大量资料,发现Docker容器创建时会自动创建iptables策略,Docker使用的i规则链是DOCKER-USER,所以需使用iptables对DOCKER-USER链做限制。

目录

一、【模板参考】限制与Docker主机的连接

二、【实际案例】iptables限制Docker端口和IP

1、案例1:限制IP访问

2、案例2:限制docker指定端口访问策略

3、查询DOCKER-USER策略

4、删除DOCKER-USER策略

5、保存DOCKER-USER策略,默认临时生效

三、访问测试


一、【模板参考】限制与Docker主机的连接

默认情况下,允许所有外部源IP连接到Docker主机。要仅允许特定的IP或网络访问容器,请在DOCKER-USER过滤器链的顶部插入一个否定的规则。

#限制除192.168.1.1地址外的其他地址访问
$ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP

请注意,您将需要更改ext_if与主机的实际外部接口相对应。!排除以外。您可以改为允许来自源子网的连接。

#限制除192.168.1.0/24网段外的其他地址访问
$ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.0/24 -j DROP

最后,您可以指定要接受的IP地址范围--src-range (请记住-m iprange在使用--src-range或时也要添加--dst-range):

#限制除192.168.1.1-192.168.1.3外的其他地址访问
$ iptables -I DOCKER-USER -m iprange -i ext_if ! --src-range 192.168.1.1-192.168.1.3 -j DROP

您可以结合使用-s或--src-range与-d或--dst-range一起控制连续源地址和连续目标地址。例如,如果Docker守护程序同时监听 192.168.1.99和10.1.2.3,则可以制定特定于10.1.2.3并保持 192.168.1.99打开的规则。

二、【实际案例】iptables限制Docker端口和IP

1、案例1:限制IP访问

1.1 首先需添加一条禁止所有IP访问docker策略

iptables -I DOCKER-USER -i eth0  -s 0.0.0.0/0 -j DROP

注:允许上方命令后,如果出现容器无法上网问题,请将下方策略添加到上方策略前。

iptables -I DOCKER-USER -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

1.2 在依次添加所有允许访问docker的IP,允许172.27.100.101地址访问docker

iptables -I DOCKER-USER -i eth0  -s 172.27.100.101 -j ACCEPT

2、案例2:限制docker指定端口访问策略

2.1 禁止所有IP访问docker的389端口

iptables -I DOCKER-USER -i eth0 -p tcp --dport 389 -j DROP

2.2 允许172.27.30.92地址访问docker的389端口

iptables -I DOCKER-USER -i eth0  -s 172.27.30.92 -p tcp --dport 389 -j ACCEPT

3、查询DOCKER-USER策略

[root@test ~]# iptables --line -nvL  DOCKER-USER
Chain DOCKER-USER (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1        8   432 ACCEPT     tcp  --  eth0   *       172.27.30.92         0.0.0.0/0            tcp dpt:389
2       13   740 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:389
3      188 12524 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

4、删除DOCKER-USER策略

#删除DOCKER-USER链第一条(num)规则
iptables -D DOCKER-USER 1

5、保存DOCKER-USER策略,默认临时生效

[root@test ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  确定  ]

三、访问测试

telnet测试:

[root@zabbix_server ~]# telnet 127.0.0.1 8075
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection timed out

nc端口测试:

[root@node ~]# nc -zv 172.27.30.94 389
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.27.30.94:389.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

iptables限制Docker IP和端口访问相关推荐

  1. 教你如何处理Nginx禁止ip加端口访问的问题

    这篇文章主要介绍了Nginx禁止ip加端口访问的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx禁止IP加端口访问 使用iptables 限制 ...

  2. 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)

    解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 参考文章: (1)解决Windows10下无法对docker容器进行端口访问(端口映射的问题) (2)https://ww ...

  3. 群晖wordpress如何连接mysql,「全网首发」群晖wordpress二级目录下实现IP加端口访问教程...

    1.需要的工具:web station ,MariaDB 10,phpmyadmin,php5.6,Apache http Server 2.4这几个工具可以套件中心安装wordpress时一键自动安 ...

  4. Myeclipse WebServer 之 简单局域网服务器使用(简单实现局域网IP:Port端口访问局域网数据)

    Myeclipse WebServer 之 简单局域网服务器使用(简单实现局域网IP:Port端口访问局域网数据) 目录 Myeclipse WebServer 之 简单局域网服务器使用(简单实现局域 ...

  5. 制作一个ip多域名访问,或一个ip不同端口访问,或多个ip访问的网站。

    环境:windows server 2008 64位 一.在windows2008上安装IIS服务 下一步 安装完成关闭 二.搭建测试网站 127.0.0.1连接测试 域名测试 修改host文件 C: ...

  6. centos 对某ip开放 防火墙端口_CentOS7 firewalld防火墙指定IP与端口访问

    1.指定IP与端口firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address= ...

  7. Linux上基于IP访问网站、基于同一IP不同端口访问网站、基于DNS域名访问网站、将不同域名解析到同一IP不同端口

    本文基于Linux上CentOS 7版本配合httpd服务.nginx进行配置演示 一.基于IP搭建web服务器 1.为虚拟机网卡新添加一个ip地址并重启网卡 2. 新建配置目录并写入内容 3.编辑配 ...

  8. centos7 firewall指定IP与端口访问(常用)

    1.启动防火墙 systemctl start firewalld.service 2.指定IP与端口 firewall-cmd --permanent --add-rich-rule="r ...

  9. iptables屏蔽ip某个端口访问

    全部端口 iptables -A INPUT -s 要禁用的ip地址 -j DROP 某个端口 iptables -A INPUT -s 要禁用的ip地址 -p tcp --dport 1521 -j ...

最新文章

  1. 【案例】常驻查询引发的thread pool 性能问题之二
  2. 统计数组中每个数字出现的次数_剑指Offer(二十八) 数组中次数出现超过一半的数字...
  3. 如何改造现有文件为 CMD 模块
  4. SpringBoot2.0 基础案例(15):配置MongoDB数据库,实现增删改查逻辑
  5. 余额 微信钱包图片_微信红包技巧:关闭这个功能,不上传身份证也能正常使用!...
  6. Docker的主要作用
  7. 多表无关联查询(范围查询):查询某个人属于哪个工资区间
  8. Linux 忘记密码解决方法
  9. yolov5 烟雾和火焰检测
  10. 静态HTML网页设计作品 HTML5+CSS大作业——个人网页设计(7页)
  11. iOS 开发:知识地图(不定期更新)
  12. RSA算法详解及手算过程
  13. 最新Apple苹果开发者账号AppleID注册流程
  14. 20210725:FLAC刻录音乐CD教程03-Flac转wav格式
  15. 淘宝评论爬虫python
  16. 网页或公众号微信网页抓包软件Fiddler的正确安装使用!
  17. 装系统时的UEFI模式
  18. 输入参数varargin
  19. 欧姆龙PLC项目程序NJ系列模切机程序
  20. 精选案例集 | 实现网安人才培养,保障网络强国战略—赛宁实训靶场

热门文章

  1. 防泄密-工业自动化控制行业源代码防泄密以及技术文档防泄密解决方案
  2. 多语种互译批量中英文翻译插件
  3. 2021-05-19 ASP.NET Core笔试题 请问对EFCore有了解吗?
  4. 会计----会计凭证
  5. IBM造海水电池,“搅局”锂电池产业?
  6. IP分片、TCP分段
  7. 参照国家一级博物馆运行评估指标体系,博物馆综合业务服务平台就该如此建设
  8. iphone应用开发
  9. shell之 ps、kill、killall命令详解
  10. Java基础 学习笔记7