最近、同社のサーバーがマイニングされ、その原因は最終的にDockerのポート2375にあることが判明した。 整理してみましょう。まず、原因不明ですが、docker 内にイメージや実行中のコンテナがいくつかあり、CPU を大量に消費していることがわかりました。さらに、ポート 2375 には IP アクセス ルールが設定されていなかったため、誰でもポート 2375 経由で docker を操作し、起動コンテナでホスト フォルダをマウントできます。docker はルート権限で起動されるため、誰でもポート 2375 経由でルート ユーザーとしてホストを制御できます。 対応手順は次のとおりです: 1. Docker の 2375 ポートを別のポートに変更します。これは一時的な対策にすぎません。$ vi /usr/lib/systemd/system/docker.service Dockerを再起動します。 $ systemctlデーモンリロード $ systemctl dockerを再起動します 2. DockerのTLSを暗号化する#!/bin/bash mkdir -p /root/tls/pem DOMAIN_HOST=`ifconfig eth0 | grep "inet" | awk '{ print $2}' | sed -n '1p;1q'` #DOMAIN_HOST=`hostname` #最適なドメイン名プランを選択してください HOST=$DOMAIN_HOST # カスタム情報 PASSWORD="yourPassword" 国=CN 州=gd 都市=gz 組織=dounine グループ=dg 名前=湖 SUBJ="/C=$COUNTRY/ST=$PROVINCE/L=$CITY/O=$ORGANIZATION/OU=$GROUP/CN=$HOST" # カスタム情報#================================================================================================================================ #このフォームは、自分自身に証明書を発行するためのものです。CA 組織になることも、第三者組織に発行を委託することもできます。#ルート証明書の RSA 秘密鍵を生成し、秘密鍵のパスワードとしてパスワードを使用します (ID カード) openssl genrsa -passout pass:$PASSWORD -aes256 -out /root/tls/pem/ca-key.pem 4096 # 2. ルート証明書のRSA秘密鍵を使用して自己署名ルート証明書(ビジネスライセンス)を生成する openssl req -new -x509 -days 365 -passin pass:$PASSWORD -key /root/tls/pem/ca-key.pem -sha256 -subj $SUBJ -out /root/tls/pem/ca.pem #============================================================================================ #サーバーに証明書を発行する# 1. サーバーは独自の秘密鍵を生成します openssl genrsa -out /root/tls/pem/server-key.pem 4096 # 2. サーバーは証明書を生成します(公開鍵とサーバー情報が含まれます) openssl req -new -sha256 -key /root/tls/pem/server-key.pem -out /root/tls/pem/server.csr -subj "/CN=$DOMAIN_HOST" # 3. どうやって接続するのですか? 複数の IP アドレスを設定し、カンマで区切ることができます echo subjectAltName=IP:$DOMAIN_HOST,IP:0.0.0.0 > /tmp/extfile.cnf # 4. 認証局は証明書にスタンプを押して有効にします openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/server.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/server-cert.pem -extfile /tmp/extfile.cnf #============================================================================================ #クライアントに証明書を発行する openssl genrsa -out /root/tls/pem/client-key.pem 4096 openssl req -subj '/CN=client' -new -key /root/tls/pem/client-key.pem -out /root/tls/pem/client.csr echo 拡張キー使用法 = clientAuth > /tmp/extfile.cnf openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/client.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/client-cert.pem -extfile /tmp/extfile.cnf #============================================================================================ # ファイルをクリーンアップします rm -rf /root/tls/pem/ca-key.pem rm -rf /root/tls/pem/{サーバー、クライアント}.csr rm -rf /root/tls/pem/ca.srl # 最終ファイル# ca.pem == CA 証明書# client-cert.pem == クライアント証明書# client-key.pem == クライアント秘密鍵# server-cert.pem == サーバー証明書# server-key.pem == サーバー秘密鍵 知らせ:
ファイルに実行権限を付与します。 $ chmod +x tls.sh シェル スクリプトを実行すると、/root/tls/pem ディレクトリに ca.pem、client-cert.pem、client-key.pem、server-cert.pem、server-key.pem が生成されます。 次に、docker 構成を変更します。 $ vim /usr/lib/systemd/system/docker.service に追加: --tlsverify \ --tlscacert=/root/tls/pem/ca.pem \ --tlscert=/root/tls/pem/server-cert.pem \ --tlskey=/root/tls/pem/サーバーキー.pem \ Dockerを再起動します。 $ systemctlデーモンリロード $ systemctl dockerを再起動します 次に、docker リモート API を使用して接続します。 認証なし: $ docker -H tcp://192.168.0.150:2376 バージョン 認証が成功しなかったことを示すエラー メッセージが表示されます。 認証方法を持ちます: docker --tlsverify --tlscacert=/root/tls/pem/ca.pem --tlscert=/root/tls/pem/client-cert.pem --tlskey=/root/tls/pem/client-key.pem -H tcp://192.168.0.150:2376 バージョン これで、docker リモート API のワンクリック TLS 暗号化の実装に関するこの記事は終了です。docker リモート API のワンクリック TLS 暗号化に関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS ボックスモデル内のパディングと略語の詳細な説明
この記事では、VMware Toolsのインストールと構成に関するグラフィックチュートリアルを参考と...
この記事の例では、クールなフロントエンドページのスライド検証の具体的なコードを参考までに共有していま...
実際、Apacheクラスタを構築するのは難しくありません。私もインターネットで情報を見つけて自分で設...
1. 問題Windows 上の Eclipse を使用して開発されたプロジェクトは Windows ...
この記事では、audioContextを介して3Dサウンド効果を実現するためのjsの具体的なコードを...
MySQL インデックスの確立は、MySQL の効率的な操作にとって非常に重要です。インデックスによ...
現在、クロスプラットフォーム開発技術はもはや新しい話題ではありません。市場にはいくつかのオープンソー...
多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...
1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...
<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...
目次JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。 var サンプル...
Baidu には slot-scope に関する記事が既にたくさんありますが、以前よく学習しておら...
目次序文実装のアイデア実装手順1. Nginxをコンパイルする2. 設定ファイルは以下のとおりです要...
vue と vue-router の紹介 <script src="https://...
目次1. nodejsをダウンロードする2. ダブルクリックしてインストール3. グローバル npm...