(四)解决cAdvisor 容器监控面板未授权访问

cadvisor是一个谷歌开发的容器监控工具,它被内嵌到k8s中作为k8s的监控组件。默认情况下没有授权验证措施。攻击者可以直接未授权访问cAdvisor容器监控面板,获取相应Docker敏感信息。

开启cAdvisor的认证跟开启Prometheus的认证方法是一样的,都是通过nginx的auth_basic功能代理cAdvisor实现认证的。

所以:
第一步,部署nginx
第二步,安装httpd-tools工具
第三步,修改nginx.conf
第四步,修改prometheus.yml
第五步,重启服务

第一步,部署nginx,去nginx官网下载个nginx的安装包,操作步骤如下:

~:useradd -M -s /sbin/nologin nginx
~:yum -y install pcre-devel zlib-devel openssl
~:tar -zxvf nginx-1.17.7.tar.gz 
~:cd nginx-1.17.7
~:./configure --prefix=/usr/local/nginx --group=nginx --with-http_stub_status_module && make && make install

第二步,安装httpd-tools工具

~:yum -y install httpd-tools
~:cd /usr/local/nginx/
~:htpasswd -c .ht.passwd cAdvisor

第三步,修改nginx.conf

~:vim nginx.conf

    server {
     
        listen 16060;
    
        location / {
     
    
            auth_basic "cAdvisor";
            auth_basic_user_file ".ht.passwd";
            
            proxy_pass  http://localhost:6060/;
   
           }
    }
~:../sbin/nginx -s reload

第四步,修改prometheus.yml

~:vim prometheus.yml
  - job_name: 'docker'
    static_configs:
    - targets:
      - '***.***.***.***:16060'
    basic_auth:
      username: cAdvisor
      password: ************

~:systemctl restart prometheus

第五步,重启服务

OK了,简单明了,哈哈,记得把6060端口给关掉。

你可能感兴趣的:(监控,docker,nginx,运维,centos)