美文网首页
容器安全之端口映射加固

容器安全之端口映射加固

作者: 微凉哇 | 来源:发表于2021-12-19 17:39 被阅读0次

特权端口禁止映射到容器内

描述

低于1024TCP/IP端口号被认为是特权端口,由于各种安全原因,普通用户和进程不允许使用它们。

隐患分析

默认情况下,如果用户没有明确声明容器端口进行主机端口映射,Docker会自动地将容器端口映射到主机上的49153-65535中。
但是,如果用户明确声明它,Docker可以将容器端口映射到主机上的特权端口。
这是因为容器使用不限制特权端口映射的NET_BIND_SERVICE Linux内核功能来执行。
特权端口接收和发送各种敏感和特权的数据。允许Docker使用它们可能会带来严重的影响

审计方式

通过执行以下命令列出容器的所有运行实例及其端口映射

[root@localhost ~]# docker ps --quiet |xargs docker inspect --format '{{.Id}}:Ports={{.NetworkSettings.Ports}}'                               7121e891641679fda571e67a0e9953d263feca2508b013c70ae2546f6336b1a0:Ports=map[6060/tcp:[map[HostIp:0.0.0.0 HostPort:6060]] 6061/tcp:<nil>]
bb3875c107daa062f2eccb10bd48ad54954cecd7d51a5eba385335f377b7aae9:Ports=map[5432/tcp:[map[HostIp:0.0.0.0 HostPort:5432]]]
7a3a2c9e524a9d44ae857abd52447f86940dd49e1947291e7985b98e3c6a309a:Ports=map[3000/tcp:[map[HostIp:0.0.0.0 HostPort:4000]]]
0780c27f8eb858e172e6a7458d2b2221130e6dde0f64887d396ad5bc350a4a64:Ports=map[3306/tcp:[map[HostIp:0.0.0.0 HostPort:3316]]]

查看列表,并确保容器端口未映射到低于1024的主机端口号

修复建议

启动容器时,不要将容器端口映射到特权主机端口。另外,确保没有容器在Docker文件中特权端口映射声明

只映射必要的端口

描述

容器镜像的Dockerfile定义了在容器实例上默认要打开的端口。端口列表可能与在容器内运行的应用程序相关

隐患分析

一个容器可以运行在Dockerfile文件中为其镜像定义的端口,也可以任意传递运行时参数以打开一个端口列表。
此外,Dockerfile文件可能会进行各种更改,暴露的端口列表可能与在容器内运行的应用程序不相关。
推荐做法是不要打开不需要的端口

审计方式

[root@localhost ~]# docker ps --quiet --all|xargs docker inspect --format '{{.Id}}:Ports={{.NetworkSettings.Ports}}'
83243cce85b85f9091b4c3bd7ff981762ff91c50e42ca36f2a5f47502ff00377:Ports=map[80/tcp:[map[HostIp:192.168.235.128 HostPort:18080]]]
748901568eafe1d3c21bb8e544278ed36af019281d485eb74be39b41ca549605:Ports=map[80/tcp:[map[HostIp:0.0.0.0 HostPort:8080]]]
3b8b371f5e800e25d85e7426020cb7088e6cccb5bd950ad269a185cadf6f7adc:Ports=map[]
5bf74b6014405acad5f724cb005b320a864528ac2dd48de1fbb0e37165befc71:Ports=map[]
0aede0130fd30b8cb40200aa9b61e84f0d911740617dda3dd707037655419854:Ports=map[]
cff4f40d63e7ba39cb013706f0c73351c3a99325adf606c715df63b8c81001be:Ports=map[]

查看列表,并确保映射的端口是容器真正需要的端口

参考文档

相关文章

  • 容器安全之端口映射加固

    特权端口禁止映射到容器内 描述 低于1024的TCP/IP端口号被认为是特权端口,由于各种安全原因,普通用户和进程...

  • 容器安全之命名空间加固

    不共享主机的UTS命令空间 描述 UTS命名空间提供两个系统标识符的隔离:主机名和NIS域名。它用于设置在该名称空...

  • 端口映射

    设置容器端口映射 查看端口映射

  • Docker-端口映射

    Docker-端口映射 Docker端口映射 docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无...

  • 容器安全之docker exec命令加固

    docker exec命令不能使用特权选项 描述 不要使用--privileged选项来执行docker exec...

  • 19年第41周:Docker——使用网络

    一、外部访问容器 常用端口映射 -p 宿主机端口:容器端口 多个端口映射 -p 宿主机端口1:容器端口1 -p 宿...

  • docker网络模式

    docker网络 使用网络 外部访问容器 -p/P端口映射参数 docker port查看当前端口映射 容器互联 ...

  • Docker 容器命令

    运行容器 运行Redis容器: 容器列表 停止容器 停止Redis 启动容器 停止Redis 端口映射 删除容器 ...

  • Docker-15-容器连接

    述 一般来说,容器启动后,都是通过端口映射使用容器提供的服务,实际上,端口映射只是使用容器服务的一种方式,除了这种...

  • 对 iOS app 进行安全加固

    对 iOS app 进行安全加固 对 iOS app 进行安全加固

网友评论

      本文标题:容器安全之端口映射加固

      本文链接:https://www.haomeiwen.com/subject/cjxmaltx.html