百度官網(wǎng)認(rèn)證網(wǎng)站關(guān)鍵詞歌曲歌詞
描述
當(dāng)我們使用Docker 遠(yuǎn)程管理,比如IDEA 的Docker連接,通常會使用docker Daemon開啟2375 端口來方便遠(yuǎn)程執(zhí)行發(fā)送到管理端口上的Docker命令
但是我服務(wù)器開通端口后總是莫名其妙的收到木馬入侵提醒。去網(wǎng)上搜索時發(fā)現(xiàn)確實有這種問題存在
操作描述
開放 2375
- 編輯守護(hù)線程的配置文件
vim /usr/lib/systemd/system/docker.service
- 找到ExecStart并 修改
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
- 重啟docker 和守護(hù)線程
systemctl daemon-reload & systemctl restart docker
- 防火墻開通端口
不必多說,自己檢查 - 調(diào)試一下
生成證書及秘鑰 防止入侵
以上做法就會開通一個所有IP 都可以訪問的2375端口,就會引起入侵問題。
如果你的IP 固定,你可以在配置文件上進(jìn)行設(shè)置,或者針對防火墻進(jìn)行設(shè)置。
以下整理網(wǎng)上的教程,生成 證書。
-
創(chuàng)建一個目錄用于存儲生成的證書和秘鑰
systemctl daemon-reload & systemctl restart docker
-
使用openssl創(chuàng)建CA證書私鑰,期間需要輸入兩次密碼,生成文件為ca-key.pem
openssl genrsa -aes256 -out ca-key.pem 4096
-
根據(jù)私鑰創(chuàng)建CA證書,期間需要輸入上一步設(shè)置的私鑰密碼,然后依次輸入國家是 CN,省例如是Guangdong、市Guangzhou、組織名稱、組織單位、姓名或服務(wù)器名、郵件地址,都可以隨意填寫,生成文件為ca.pem(注意證書有效期)
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
-
創(chuàng)建服務(wù)端私鑰,生成文件為server-key.pem
openssl genrsa -out server-key.pem 4096
-
創(chuàng)建服務(wù)端證書簽名請求文件,用于CA證書給服務(wù)端證書簽名。IP需要換成自己服務(wù)器的IP地址,或者域名都可以。生成文件server.csr
openssl req -subj "/CN=Your server IP" -sha256 -new -key server-key.pem -out server.csr
-
配置白名單,用多個用逗號隔開,例如: IP:192.168.0.1,IP:0.0.0.0
echo subjectAltName = IP:Your server IP,IP:0.0.0.0 >> extfile.cnf
-
將Docker守護(hù)程序密鑰的擴(kuò)展使用屬性設(shè)置為僅用于服務(wù)器身份驗證
echo extendedKeyUsage = serverAuth >> extfile.cnf
-
創(chuàng)建CA證書簽名好的服務(wù)端證書,期間需要輸入CA證書私鑰密碼,生成文件為server-cert.pem
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
-
創(chuàng)建客戶端私鑰,生成文件為key.pem
openssl genrsa -out key.pem 4096
-
創(chuàng)建客戶端證書簽名請求文件,用于CA證書給客戶證書簽名,生成文件client.csr
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
-
要使密鑰適合客戶端身份驗證,請創(chuàng)建擴(kuò)展配置文件
echo extendedKeyUsage = clientAuth >> extfile.cnf
-
創(chuàng)建CA證書簽名好的客戶端證書,期間需要輸入CA證書私鑰密碼,生成文件為cert.pem
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
-
刪除不需要的文件,兩個證書簽名請求
rm -v client.csr server.csr
-
修改證書為只讀權(quán)限保證證書安全
chmod -v 0400 ca-key.pem key.pem server-key.pem chmod -v 0444 ca.pem server-cert.pem cert.pem
-
將服務(wù)器證書復(fù)制到其他文件夾
cp server-*.pem /etc/docker/ && cp ca.pem /etc/docker/
最終生成文件如下,有了它們我們就可以進(jìn)行基于TLS的安全訪問了
ca.pem CA證書
ca-key.pem CA證書私鑰
server-cert.pem 服務(wù)端證書
server-key.pem 服務(wù)端證書私鑰
cert.pem 客戶端證書
key.pem 客戶端證書私鑰
修改配置文件和重啟
vim /usr/lib/systemd/system/docker.service
# 修改配置文件
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload && systemctl restart docker
保存證書文件 并使用
將IDEA 鏈接地址改為 HTTPS (不是tcp了)
然后將證書文件夾地址設(shè)置上
測試
-
做一個簡單的Helloworld 的SpringBoot 程序
-
做一個Docker File 文件
FROM moxm/java:1.8-fullRUN mkdir -p /zr-erp-serverWORKDIR /zr-erp-serverARG JAR_FILE=target/HelloWorld-1.0.jarCOPY ${JAR_FILE} app.jarEXPOSE 6666ENV TZ=Asia/Shanghai JAVA_OPTS=" -Xms128m -Xmx512m " ENV ENCODING=" -Dfile.encoding=utf-8 " #睡60 然后啟動 CMD java $JAVA_OPTS -jar $ENCODING app.jar
-
使用Docker 發(fā)布到服務(wù)器
聲明
版權(quán)聲明:本文為CSDN博主「Q-T」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:鏈接: CSDN博主「Q-T」的原創(chuàng)文章