服务器(centos7)使用docker被病毒攻击,导致cpu100解决方案


这是我参考的文章:

https://blog.csdn.net/boling_cavalry/article/details/100601169
https://www.cnblogs.com/zhenglisai/p/8416353.html

使用top命令查看cpu一直是100,并且docker多出来了很多不为人知的镜像和容器

由于本人是第一次服务器遇到这种情况。所以请教了一个大佬,说是我的docker API没有设置密码,导致了被攻击,使用我服务器进行挖矿

下面是我的top截图,以及服务器系统日志的记录的被攻击日志,还有docker多出来的容器截图

top查看cpu100
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是我服务器被攻击的记录,下面是解决方案

docker开启remote api访问,并使用TLS加密

这里是官方的权威文档:官方安全文档
默认情况下,Docker通过非网络UNIX套接字运行。它还可以选择使用HTTP套接字进行通信。
如果您需要通过网络以安全方式访问Docker,可以通过指定该tlsverify标志并将Docker的tlscacert标志指向 受信任的CA证书来启用TLS 。
在守护程序模式下,它仅允许来自由该CA签名的证书验证的客户端的连接。在客户端模式下,它仅连接到具有该CA签名的证书的服务器。

创建密钥的过程:

  1. 创建自定义文件夹mkdir /root/work
  2. 切换到该文件夹:cd /root/work
  3. 使用脚本生成秘钥文件:
    #!/bin/bash
    #创建根证书RSA私钥:
    #页面提示Enter pass phrase for ca-key.pem,此时输入秘钥的密码,我这里输入了1234,回车后会要求再输入一次,两次密码一致就会在当前目录生成CA秘钥文件ca-key.pem
    openssl genrsa -aes256 -out ca-key.pem 4096
    #以此秘钥创建CA证书,自己给自己签发证书,自己就是CA机构,也可以交给第三方机构去签发:
    #此时生成的ca.pem文件就是CA证书;
    openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj “/CN=" -out ca.pem
    #创建服务端私钥:
    openssl genrsa -out server-key.pem 4096
    #生成服务端证书签名请求(csr即certificate signing request,里面包含公钥与服务端信息)
    openssl req -subj "/CN=
    ” -sha256 -new -key server-key.pem -out server.csr
    #生成签名过的服务端证书(期间会要求输入密码1234):
    openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
    #此时生成的server-cert.pem文件就是已盖章生效的服务端证书;
    #生成客户私钥:
    openssl genrsa -out key.pem 4096
    #生成客户端证书签名请求:
    openssl req -subj “/CN=client” -new -key key.pem -out client.csr
    #生成名为extfile.cnf的配置文件:
    echo extendedKeyUsage=clientAuth > extfile.cnf
    #生成签名过的客户端证书(期间会要求输入密码1234):
    openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
    #将多余的文件删除:
    rm -rf ca.srl client.csr extfile.cnf server.csr
    chmod -v 0400 ca-key.pem key.pem server-key.pem
    chmod -v 0444 ca.pem server-cert.pem cert.pem
  4. 打开文件:vim /lib/systemd/system/docker.service
  5. 修改ExecStart配置:ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -D -H tcp://0.0.0.0:2375 –tlsverify –tlscacert=/root/work/ca.pem — tlscert=/root/work/server-cert.pem –tlskey=/root/work/server-key.pem
  6. 加载上述配置,再重启docker服务:systemctl daemon-reload && systemctl restart docker
  7. 完成。欢迎留言评论

猜你喜欢

转载自blog.csdn.net/weixin_43691942/article/details/102802576