收到安全扫描报告说服务器有不需要登录验证即可访问的 cadvisor 服务,需要进行整改,记录一下

报告直接给出了整改方法的链接,如下:

https://github.com/google/cadvisor/issues/784

① 里面提到一个是可以直接写一个 dockerfile 然后在初始化镜像时将 http 基本身份验证写入配置到容器,如下:

cd /home/USERNAME \
&& htpasswd -c -i -b auth.htpasswd USERNAME PASSWORD \
&& touch newfile \
&& cat <<EOF > Dockerfile
FROM google/cadvisor:latest
ADD auth.htpasswd /auth.htpasswd

EXPOSE 8080
ENTRYPOINT ["/usr/bin/cadvisor", "--http_auth_file", "auth.htpasswd", "--http_auth_realm", "localhost"]
EOF

注意修改 USERNAME 和 PASSWORD

然后就可以建立镜像:

docker build -t cadvisor-basicauth .

再然后就可以建立运行容器了。

② 最后还提到一种就是如果 cadvisor 是运行在 nginx 后面的话,可以使用 nginx 配置 http 基本身份验证:

server {
    listen 80 default_server;

    location /docker-metrics {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/basic_auth/.htpasswd;
        proxy_pass http://cadvisor:8080/docker-metrics;
    }
}

其中 .htpasswd 可以通过上面 htpasswd 工具命令生成。

③ 当然最终采用的方法是直接删掉了 cadvisor 容器服务。。。因为之前发现如果容器过多会导致它的资源占用突增,而且界面也不好用,找到了一个命令行工具 ctop,发现更好用一些:https://github.com/bcicen/ctop

posted @ 2021-01-27 16:44  不是豆豆  阅读(379)  评论(0)    收藏  举报
友情链接:迷途