收到安全扫描报告说服务器有不需要登录验证即可访问的 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 @   不是豆豆  阅读(340)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
友情链接:迷途


点击右上角即可分享
微信分享提示