見出し画像

TWSNMP FCのポーリング辞典:TLS(暗号通信)接続をモニターする

最近はほとんどの通信でセキュリティーのためにTLS(暗号化通信)が利用されています。TWSNMP FCでTLSをモニターするポーリングについての説明です。

 動画ダイジェスト

TLSをモニターするポイント

まずTLSについては、

です。Webブラウザーでのアクセスやメールの転送などで暗号通信のために使われています。このTLSをモニタするためのポイントは、

・接続可否
・証明書の検証
・証明書の有効期限
・TLSのバージョン

です。TWSNMP FCでは、これらの項目に対応したポーリングがあります。
ちなみに、サーバー証明書の検証ができないサイトにブラウザーでアクセスすると

のようなことになります。

ポーリング設定

TLSのポーリングは

のような設定です。

種別

TLSを設定します。

モード

モードには、

verify
証明書を検証します。証明書が無効なものの場合、接続できても障害とします。

version
TLSのバージョンを指定して接続確認します。判定スクリプトに接続するバージョンを指定します。1.0,1.1,1.2,1.3を指定できます。指定したバージョンで接続できた場合を正常としますが指定するバージョンに!をつけると接続できた場合に障害とします。!1.0とすれば、1.0で接続できた場合は障害です。

expire
証明書の期限切れをモニタするモードです。パラメータに証明書期限までの残り日数を指定います。30を指定すれば、期限まで30日以下になった時に異常と判断します。

パラメータ

ノードのIPアドレスにアクセスする場合は、ポート番号だけ指定します。
証明書の検証のためにホスト名でアクセスするためには、ホスト名:ポート番号を指定します。

lhx98.linkclub.jp:443

のような感じです。

判定スクリプト

verifyモードの場合は不要です。

versionモードで、TLS V1.0で接続での接続を禁止したい場合は、

のように設定します。

証明書の期限が30日を切ったことを知りたければ、

のように判定スクリプトに30と設定します。

ポーリング結果

ポーリングの結果には、

のようにTLS(暗号通信)の情報が記録されます。

cipherSuite
暗号通信の強度を示す
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
のような値です。この後の安全なTLS暗号通信設定を見てください。
rtt
応答時間
valid
証明書の検証結果です。
version
TLS通信のバージョンです。
issuer
証明書の発行者の情報です。expireモードだけ記録します。
notafter
証明書の有効期限です。expireモードだけ記録します。
subject
証明書の対象です。expireモードだけ記録します。

安全なTLS暗号通信設定

IPAが

という資料を公開してます。この資料に安全な通信のためのTLSのバージョンや暗号強度の設定が記載されています。最近では、TLS1.0,1.1で通信するのは安全ではないとしてTLSv1.2,1.3だけに制限するような風潮になっています。TWSNMP FCでTLSのバージョンや暗号強度をモニターするポーリングに対応した理由には、このような背景があります。

ポーリングテンプレート

この記事あで説明したポーリングのテンプレートは、

のようにTLSで検索すれば見つかります。
定義は、

  {
    "Name": "TLS証明書期限",
    "Type": "tls",
    "Mode": "expire",
    "Params": "ポート番号または、ホスト名:ポート番号を指定",
    "Script": "30",
    "Level": "low",
    "Descr": "サーバー証明書の期限が30日以内を検知",
    "AutoMode": "443,2181,8080,8888"
  },
  {
    "Name": "TLS v1.0 接続検知",
    "Type": "tls",
    "Mode": "version",
    "Params": "ポート番号または、ホスト名:ポート番号を指定",
    "Script": "!1.0",
    "Level": "low",
    "Descr": "TLS v1.0で接続できることを検知",
    "AutoMode": "443,2181,8080,8888"
  },
  {
    "Name": "TLS証明書検証",
    "Type": "tls",
    "Mode": "verify",
    "Params": "ポート番号または、ホスト名:ポート番号を指定",
    "Level": "low",
    "Descr": "サーバー証明書を検証",
    "AutoMode": "443,2181,8080,8888"
  },

です。

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。