当前位置: 首页 > wzjs >正文

天气网站建设有没有网站做lol网站的

天气网站建设,有没有网站做lol网站的,英语网站建设,电子政务 和网站建设总结一、需求背景 某项目组采用容器化部署架构,通过docker-compose对服务进行编排管理。为确保核心服务安全性,需对以下三个暴露的宿主机端口实施IP白名单访问控制: 服务名称宿主机IP宿主机端口容器内部端口apollo-configservice172.22.33.2041…

一、需求背景

某项目组采用容器化部署架构,通过docker-compose对服务进行编排管理。为确保核心服务安全性,需对以下三个暴露的宿主机端口实施IP白名单访问控制:

服务名称宿主机IP宿主机端口容器内部端口
apollo-configservice172.22.33.204100028080
apollo-adminservice172.22.33.204100038090
apollo-portal172.22.33.204100048070
  • 允许访问的IP白名单地址 172.16.200.200,允许访问apollo 全资源
  • apollo docker-compose 文件
version: '3'services:apollo-configservice:container_name: apollo-configserviceimage: docker.cnb.cool/srebro/apollo:apollo-configservice-2.3.0volumes:- ./logs:/opt/logs- /etc/localtime:/etc/localtime:roports:- "10002:8080"environment:- SPRING_DATASOURCE_URL=jdbc:mysql://172.22.33.201:3306/ApolloConfigDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=srebro- SPRING_DATASOURCE_PASSWORD=srebro@2025- EUREKA_INSTANCE_HOME_PAGE_URL=http://172.22.33.204:10002- EUREKA_INSTANCE_IP_ADDRESS=172.22.33.204- TZ=Asia/Shanghairestart: alwaysnetworks:- srebroapollo-adminservice:depends_on:- apollo-configservicecontainer_name: apollo-adminserviceimage: docker.cnb.cool/srebro/apollo:apollo-adminservice-2.3.0volumes:- ./logs:/opt/logs- /etc/localtime:/etc/localtime:roports:- "10003:8090"environment:- SPRING_DATASOURCE_URL=jdbc:mysql://172.22.33.201:3306/ApolloConfigDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=srebro- SPRING_DATASOURCE_PASSWORD=srebro@2025- EUREKA_INSTANCE_HOME_PAGE_URL=http://172.22.33.204:10003- EUREKA_INSTANCE_IP_ADDRESS=172.22.33.204- TZ=Asia/Shanghairestart: alwaysnetworks:- srebroapollo-portal:depends_on:- apollo-adminservicecontainer_name: apollo-portalimage: docker.cnb.cool/srebro/apollo:apollo-portal-2.3.0volumes:- ./logs:/opt/logs- /etc/localtime:/etc/localtime:roports:- "10004:8070"environment:  - SPRING_DATASOURCE_URL=jdbc:mysql://172.22.33.201:3306/ApolloPortalDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=srebro- SPRING_DATASOURCE_PASSWORD=srebro@2025- APOLLO_PORTAL_ENVS=baseline- baseline_META=http://172.22.33.204:10002- TZ=Asia/Shanghairestart: alwaysnetworks:- srebronetworks:srebro:external: true

二、分析

  • 🚫 使用iptables的方式进行限制。
  • 配置后的策略需要持久化,系统或者容器重启后 策略还在。
  • 查看docker 官方文档,有关于Docker 为网桥网络创建 iptables 规则的说明
  • 默认情况下,允许所有外部源 IP 连接到已发布到 Docker 主机地址的端口;要仅允许特定 IP 或网络访问容器,需要在 DOCKER-USER 过滤器链的顶部插入一条否定规则。
  • 以下规则会丢弃来自除 192.0.2.2 之外的所有 IP 地址的数据包。被这些自定义链中的规则接受或拒绝的数据包将不会被附加到 FORWARD 链的用户定义规则看到。因此,要添加其他规则来筛选这些数据包,使用 DOCKER-USER 链。

image-20250219133550581

三、实现方式

只允许17216.200.200 访问apollo 暴露在宿主机上的 10002,10003,10004 端口

配置iptables 策略

  • ⚠️ 需要注意 ,–dport 指的是容器的端口,而不是宿主机的映射后的端口,网上查看很多资料都是写的宿主机的端口都是不对的,这边只在docker 的论坛看到一个关于--dport 的说明

image-20250219140315839

正确配置方式(推荐两种方法):

iptables -I 是插入到链的最前面,确保每个端口的 ACCEPT 规则在 DROP 规则之前

方法一:为每个端口单独设置规则(清晰直观)
# 先添加拒绝规则
iptables -I DOCKER-USER -p tcp --dport 8080 -j DROP
iptables -I DOCKER-USER -p tcp --dport 8090 -j DROP
iptables -I DOCKER-USER -p tcp --dport 8070 -j DROP# 再添加允许规则(它们会被插入到链的顶部)
iptables -I DOCKER-USER -p tcp --dport 8080 -s 172.16.200.200 -j ACCEPT
iptables -I DOCKER-USER -p tcp --dport 8090 -s 172.16.200.200 -j ACCEPT
iptables -I DOCKER-USER -p tcp --dport 8070 -s 172.16.200.200 -j ACCEPT
方法二:使用 multiport 模块合并规则(更高效)
# 先添加拒绝规则
iptables -I DOCKER-USER -p tcp -m multiport --dports 8080,8090,8070 -j DROP# 再添加允许规则(它会被插入到链的顶部)
iptables -I DOCKER-USER -p tcp -s 172.16.200.200 -m multiport --dports 8080,8090,8070 -j ACCEPT
验证规则顺序

执行以下命令检查规则顺序,确保 ACCEPT 规则在 DROP 规则之上

[root@localhost apollo]# iptables -L DOCKER-USER -n --line-numbers
Chain DOCKER-USER (1 references)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  172.16.200.200       0.0.0.0/0            tcp dpt:8080
2    ACCEPT     tcp  --  172.16.200.200       0.0.0.0/0            tcp dpt:8090
3    ACCEPT     tcp  --  172.16.200.200       0.0.0.0/0            tcp dpt:8070
4    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
5    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8090
6    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8070
7    RETURN     all  --  0.0.0.0/0            0.0.0.0/0
访问测试

image-20250219144753289

iptables 规则持久化保存
[root@localhost apollo]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]

四、其他

docker 多容器端口相同,怎么限制?

上面的案例,阐述的是,docker 容器里的端口分别是不同的端口,如果我们容器内的端口都是8080,那应该怎么限制呢,典型的场景就是所有微服务的容器端口都是相同的,只是暴露的端口不同

服务名称宿主机IP宿主机端口容器内部端口
apollo-configservice172.22.33.204100028080
apollo-adminservice172.22.33.204100038080
apollo-portal172.22.33.204100048080
使用iptables 限制访问的目的地址

需要提前创建好docker 的网桥,指定容器的网络, ipv4_address: xx.xx.xx.xx

docker-compose.yaml
version: '3'services:apollo-configservice:container_name: apollo-configserviceimage: docker.cnb.cool/srebro/apollo:apollo-configservice-2.3.0volumes:- ./logs:/opt/logs- /etc/localtime:/etc/localtime:roports:- "10002:8080"environment:- SPRING_DATASOURCE_URL=jdbc:mysql://172.22.33.201:3306/ApolloConfigDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=srebro- SPRING_DATASOURCE_PASSWORD=srebro@2025- EUREKA_INSTANCE_HOME_PAGE_URL=http://172.22.33.204:10002- EUREKA_INSTANCE_IP_ADDRESS=172.22.33.204- TZ=Asia/Shanghairestart: alwaysnetworks:srebro:ipv4_address: 10.22.33.66apollo-adminservice:depends_on:- apollo-configservicecontainer_name: apollo-adminserviceimage: docker.cnb.cool/srebro/apollo:apollo-adminservice-2.3.0volumes:- ./logs:/opt/logs- /etc/localtime:/etc/localtime:roports:- "10003:8080"environment:- SPRING_DATASOURCE_URL=jdbc:mysql://172.22.33.201:3306/ApolloConfigDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=srebro- SPRING_DATASOURCE_PASSWORD=srebro@2025- EUREKA_INSTANCE_HOME_PAGE_URL=http://172.22.33.204:10003- EUREKA_INSTANCE_IP_ADDRESS=172.22.33.204- TZ=Asia/Shanghairestart: alwaysnetworks:srebro:ipv4_address: 10.22.33.67apollo-portal:depends_on:- apollo-adminservicecontainer_name: apollo-portalimage: docker.cnb.cool/srebro/apollo:apollo-portal-2.3.0volumes:- ./logs:/opt/logs- /etc/localtime:/etc/localtime:roports:- "10004:8080"environment:  - SPRING_DATASOURCE_URL=jdbc:mysql://172.22.33.201:3306/ApolloPortalDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=srebro- SPRING_DATASOURCE_PASSWORD=srebro@2025- APOLLO_PORTAL_ENVS=baseline- baseline_META=http://172.22.33.204:10002- TZ=Asia/Shanghairestart: alwaysnetworks:srebro:ipv4_address: 10.22.33.68networks:srebro:external: true
配置方式
  • 只允许白名单地址172.16.200.200 可以访问apollo 的1000210004 端口,也就是可以访问 apollo-configserviceapollo-portal服务,其他都不允许访问。
  • 这里的10.22.33.6610.22.33.6710.22.33.68 三个IP 是容器的IP地址, 8080 是容器的端口。三个IP 分别对应 apollo-configserviceapollo-adminserviceapollo-portal服务。
#先添加拒绝规则
iptables -I DOCKER-USER -p tcp --dport 8080 -j DROP# 再添加允许规则(它们会被插入到链的顶部)
iptables -I DOCKER-USER -p tcp -s 172.16.200.200 -d 10.22.33.66 --dport 8080 -j ACCEPT
iptables -I DOCKER-USER -p tcp -s 172.16.200.200 -d 10.22.33.68 --dport 8080 -j ACCEPT
验证规则顺序

执行以下命令检查规则顺序,确保 ACCEPT 规则在 DROP 规则之上

[root@localhost apollo]#  iptables -L DOCKER-USER -n --line-numbers
Chain DOCKER-USER (1 references)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  172.16.200.200       10.22.33.68          tcp dpt:8080
2    ACCEPT     tcp  --  172.16.200.200       10.22.33.66          tcp dpt:8080
3    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
4    RETURN     all  --  0.0.0.0/0            0.0.0.0/0       
访问测试

image-20250219151828136

iptables 规则持久化保存
[root@localhost apollo]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]

其他方式🚫 限制docker外部IP 访问

1、docker运行在宿主机模式上,直接走宿主机的防火墙或者iptables管理

2、docker 的外部暴露地址监听在 127.0.0.1 上 , 本地再运行一个NGINX 做代理,设置NGINX 白名单

K8S 场景下,怎么限制外部的IP 访问

  • 用clusterip,内部访问没问题,外部走访问nginx的nodeport或者ingress,这样就可以用白名单了
http://www.dtcms.com/wzjs/544129.html

相关文章:

  • 网站建设公司话术简历网站后怎样才能被谷歌 百度收录吗
  • 博物馆网站 建设方案中国站长网入口
  • 哪里能找到免费网站wordpress win主机
  • 做网站公司三年财务预算表wordpress inherit
  • 基于ssh架构网站开发大连做网站开发的公司
  • 中山半江红网站建设博罗做网站公司
  • 网站建设制作软件网站开发建设哪家好
  • 扎实做好机构编制网站建设做教育招生网站
  • 扬州国土资源局网站开发区分局便捷网站建设推荐
  • 长沙模板建站欢迎咨询写作投稿网站
  • 域名注册好了如何做网站贵阳网站设计与开发怎么做
  • 宁波建网站模板wordpress新用户添加管理员权限
  • 无锡公司网站建设服务吉林省最新今天的消息
  • 用wordpress做的外贸网站蜘蛛网网站建设分析
  • 百变模板手机网站建设时尚网站网页设计
  • 电商建站wordpress 自定义面板
  • 网站界面设计说明个体工商户未做年报会罚款吗
  • 景宁县建设局网站网站标题关键优化
  • 个人站长做什么类型的网站升级网站服务器
  • 网站建设销售工作职责宿迁论坛
  • 退工在那个网站上做网站社区的建设
  • 网站手机端制作软件北京市市场监督管理局官网
  • 网站备案截图柳城 wordpress
  • 山西建网站做一个公司官网
  • 濮阳建站建设西宁市城东区住房和建设局网站
  • 51这个网站还有吗国外产品设计网站
  • 海外公司网站 国内做备案代做网页
  • 青岛城阳做网站上海seo推广价格
  • 企业网站代维护泉州百度开户
  • 网站建设什么科目浅谈海尔的电子商务网站建设