TCPポートの監視方法(およびポートが開いている場合にアラートを発するべき時)
ポート監視は、1つで2つの役割を果たします。データベースやSMTPリレーのように、サービスがリッスンしていることを確認したい場合があります。一方、インターネットに面したインスタンスのSSHのように、ポートがファイアウォールで遮断されたままであることを確認したい場合もあります。同じプローブが両方の質問に答えますが、反対の結果に対してアラートを発します。このガイドでは、各モードをいつ使用するか、何にアラートを発するか、そして人々が見落としがちなポートについて解説します。
TCPポートモニターの実際の動作
TCPポートモニターは、選択したポートでターゲットへのソケットを開き、3ウェイハンドシェイクが完了するのを待ちます。ハンドシェイクが成功した場合、ポートは開いています。接続が拒否された場合、ポートは閉じています。接続がタイムアウトした場合、プローブとホストの間で何か(通常はファイアウォール)がパケットを破棄しています。
プローブは、ソケットの上でプロトコルを話しません。TLSをネゴシエートしたり、SSHバナーを交換したり、データベースクエリを実行したりはしません。ポートが応答するかどうかだけを伝えます。アプリケーション層の正常性については、上位にHTTPまたはカスタムチェックが必要です。
ポートを開けておきたい場合
HTTPチェックが容易にできない場合は、サービスの正常性プローブとしてポート監視を使用してください。一般的に5つのケースがあります。
- データベースサーバー、ポート5432(Postgres)、3306(MySQL)、6379(Redis)、27017(MongoDB)。リスナーがクラッシュすると、依存するすべてのサービスが破綻しますが、HTTPプローブは実行できません。
- SMTPリレー、ポート25または587。SMTPバナーチェックは、内部ヘルスエンドポイントが見逃すリスナーのクラッシュを捕捉します。
- ゲームサーバーやHTTPを話さないその他のカスタムTCPプロトコル。
- 内部ロードバランサー、上流サービスにHTTP以外のヘルスポートを公開するもの。
- VPNエンドポイント、OpenVPN-TCPやWireGuardの443のような、UDPと同時にTCPでも使用されるポート。
ポートを閉じておきたい場合
反転ポート監視はセキュリティのガードレールです。公衆インターネットから決して開いてはならないポートが開いた場合にアラートを発するようにモニターを設定します。このパターンは、通常のインフラ変更の1週間に発生する問題を捕捉します。
デバッグのために誰かが一時的にファイアウォールルールを開き、元に戻すのを忘れる。Kubernetesサービスが誤ってLoadBalancerタイプになる。新しいインスタンスに間違ったセキュリティグループが割り当てられる。Terraformモジュールの変更により、内部用のはずだったポートが公開される。いずれのケースでも、反転ポートモニターは1回のチェック間隔以内に公開を検出します。
今すぐ反転モニタリングすべき重要度の高いポート
インターネットに公開されているホストで、公開すべきではない5つのポートには、反転チェックを設定する価値があります。
- 22 (SSH) 本番アプリケーションサーバー。踏み台経由のアクセスのみが標準であり、誤って開いたSSHポートは数時間以内に大規模スキャンログに現れます。
- 3306 (MySQL) と 5432 (Postgres)。公開されたデータベースポートは、認証情報スタッフィング攻撃のかなりの割合を占めています。
- 6379 (Redis)。認証なしの公開Redisは、業界で最も悪用されている設定ミスの1つです。
- 27017 (MongoDB)。Redisと同様です。デフォルト設定、認証なし、公開ポートはデータ損失を意味します。
- 9200 (Elasticsearch)。公開されたクラスターは数時間以内にスクレイピング、マイニング、ランサム被害を受けます。
ポート監視のアラートしきい値
サービス正常性(ポートはOPENであるべき)には、HTTPと同じしきい値パターンが必要です。3回連続の失敗後にアラートを発し、短いフラップは抑制します。単一のプローブを閉じるネットワークの瞬断はノイズです。
セキュリティ(ポートはCLOSEDであるべき)には、その逆が必要です。最初の検知でアラートを発します。誤って開いたSSHやRedisのポートは、5段階アラームレベルの事象です。ボットは公開インターネットを絶えずスキャンしており、よく知られたポートで公開から侵害までの時間は分単位です。
セキュリティポート監視のスターターチェックリスト
チームが運用するインターネットに公開されているすべてのIPに対して、22、3306、5432、6379、27017の反転モニターを60秒間隔で設定してください。アラートはサービス正常性アラートとは別に、セキュリティチャンネルにルーティングしてください。四半期ごとに、コントロールとして自社のIPに対して実際のポートスキャンを実行してください。コストは小さく、カバー範囲は広く、捕捉する障害モードは壊滅的です。
関連記事
SSL証明書監視:2026年向け実践ガイド
SSL証明書の有効期限を監視する方法、アラートを設定すべき内容、そしてブラウザの警告を未然に防ぐ運用上の習慣について。
Cron Job Monitoring with Heartbeats: a Practical Tutorial
How heartbeat monitoring catches the cron jobs that fail silently, with concrete examples in bash, Python, and Node.
How to Monitor a REST API for Uptime and Response Time
What to check in a REST API monitor, the right thresholds, and how to catch the silent failures that ping checks miss.