服務器(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多出來的容器截圖
以上就是我服務器被攻擊的記錄,下面是解決方案
docker開啓remote api訪問,並使用TLS加密
這裏是官方的權威文檔:官方安全文檔
默認情況下,Docker通過非網絡UNIX套接字運行。它還可以選擇使用HTTP套接字進行通信。
如果您需要通過網絡以安全方式訪問Docker,可以通過指定該tlsverify標誌並將Docker的tlscacert標誌指向 受信任的CA證書來啓用TLS 。
在守護程序模式下,它僅允許來自由該CA簽名的證書驗證的客戶端的連接。在客戶端模式下,它僅連接到具有該CA簽名的證書的服務器。
創建密鑰的過程:
- 創建自定義文件夾
mkdir /root/work
- 切換到該文件夾:
cd /root/work
- 使用腳本生成祕鑰文件:
#!/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 - 打開文件:
vim /lib/systemd/system/docker.service
- 修改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
- 加載上述配置,再重啓docker服務:
systemctl daemon-reload && systemctl restart docker
- 完成。歡迎留言評論