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

描述

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

隐患分析

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

审计方式

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

```shell script [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:] 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`文件可能会进行各种更改,暴露的端口列表可能与在容器内运行的应用程序不相关。
推荐做法是不要打开不需要的端口

### 审计方式

```shell script
[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[]

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

参考文档

Copyright © weiliang 2021 all right reserved,powered by Gitbook本书发布时间: 2024-04-22 16:03:42

results matching ""

    No results matching ""