MENU

Linuxで開いているポートを棚卸しする運用点検の手順 — ss/netstatで待ち受けを一覧化し、不要な口を洗い出す【2026年版】

Linuxサーバーをインターネットに公開するとき、真っ先に確認すべきなのが「いま、どのポートが外向きに開いているか」です。開いているポートは、そのままサービスへの入り口になります。意図せず開いたままの口があれば、それは攻撃者にとっての侵入経路になりかねません。

この記事では、開いているポートを一覧化し、どのサービスが何番を待ち受けているかを対応づけ、不要な口を洗い出すまでの「棚卸し(点検)」の手順を、運用の視点で解説します。点検して不要なポートが見つかったら、次は閉じる作業に進みます(閉じ方は記事末尾からリンクしています)。

目次

ポートの「棚卸し」とは何をすることか

ポートの棚卸しとは、単に開いているポート番号を眺めることではありません。次の3つをセットで確認して初めて「点検した」と言えます。

  • 何番が 待ち受けているか(ポート番号)
  • どのサービスが その番号を開けているか(プロセス名)
  • それは必要な口か(業務で使うか、閉じてよいか)

この3点を突き合わせることで、「動いている理由が説明できないポート」を炙り出せます。これが公開サーバーのセキュリティ点検の第一歩です。

待ち受けているポートを一覧化する

現在の主要ディストリビューションでは、ss コマンドで待ち受けポートを一覧化します。

# 待ち受け(LISTEN)中のTCP/UDPポートを、プロセス付きで一覧化
sudo ss -tulnp

# 出力例
# Netid State  Local Address:Port  Process
# tcp   LISTEN 0.0.0.0:22          users:(("sshd",pid=812,fd=3))
# tcp   LISTEN 0.0.0.0:80          users:(("httpd",pid=1240,fd=4))
# tcp   LISTEN 127.0.0.1:5432      users:(("postgres",pid=1500,fd=5))
# tcp   LISTEN 0.0.0.0:25          users:(("master",pid=980,fd=13))

オプションの意味は、-t がTCP、-u がUDP、-l が待ち受け中のみ、-n が名前解決せず数値表示、-p がプロセス表示です。ss の全オプションはこちらの本体リファレンスで確認できます。

古い環境では同じことを netstat でも行えます。

# netstat 版(古い環境・互換のため)
sudo netstat -tulnp

どのサービスがそのポートを開けているかを対応づける

一覧が出たら、番号とサービスを対応づけます。よく見かける待ち受けポートの例を挙げます。

ポート 典型的なサービス 点検の目安
22/tcp SSH(sshd) リモート管理に必要。ただし公開範囲は絞る
80/443 tcp Web(httpd / nginx) Webサーバーなら必要
25/tcp メール(postfix など) メールを送受信しないなら不要な可能性
5432/tcp PostgreSQL 127.0.0.1で待ち受けなら外部非公開でよい

ここで重要なのが 待ち受けアドレスです。0.0.0.0 で待ち受けていれば外部からアクセスできる可能性があり、127.0.0.1 であればそのサーバー自身からしかアクセスできません。上の例の PostgreSQL(5432)は 127.0.0.1 なので、外部に口が開いているわけではない、と読めます。番号だけでなく、この待ち受けアドレスまで見るのが点検の勘所です。

確立中の接続と、待ち受けの違いを読み分ける

ポートの状態には「待ち受け中」と「通信が確立している」があり、この2つを混同しないことが大切です。

状態 意味
LISTEN 接続を待ち受けている(=外部から入れる口。点検の主対象)
ESTABLISHED いま通信が成立している(誰かが接続中)
TIME_WAIT / FIN_WAIT 接続の後始末をしている状態
# いま確立している接続だけを見る(誰が繋いでいるかの把握)
sudo ss -tunp state established

棚卸しで「閉じるべき口」を探すときに見るのは LISTEN です。ESTABLISHED は現在の接続状況の把握に使います。目的に応じて見る状態を切り替えると、情報が整理しやすくなります。

不要な口を洗い出すチェック観点

一覧とサービスの対応がついたら、次の観点で「この口は要るのか」を判断します。

  • 業務で説明できるか:そのポートを開けているサービスの役割を言えるか。言えないものは調査対象
  • 外向きである必要があるか0.0.0.0 で待ち受けているが、実際は内部利用だけなら 127.0.0.1 に絞れないか
  • 使っていないサービスではないか:試しに入れたまま放置されたサービスがポートを開けていないか
  • SSHの公開範囲:22番を全世界に開けていないか(管理元IPに絞る、鍵認証にする等)

点検は一度きりではなく、サービスを追加・削除したときや、定期的なメンテナンスのたびに回すのが理想です。「開いているポートを全部説明できる状態」を保つことが、公開サーバーを守る基本になります。

2026年の現行環境での違い

  • 確認は ss が標準:かつて主流だった netstat は非推奨扱いとなり、多くのディストリビューションで標準インストールされなくなりました。現在は ss を使うのが基本です(オプションはほぼ対応関係にあります)。
  • 外部からのスキャンは慎重に:サーバー自身での ss と、外部ホストからポートが到達するかの確認は別物です。外部からのポートスキャンは、必ず自分の管理下のサーバーに対してのみ、許可を得て行ってください。
  • コンテナ環境の注意:Docker などを使っている場合、ホストの ss にはコンテナが公開したポートも現れます。どのコンテナが開けた口かまで含めて棚卸しすると、抜け漏れが減ります。

まとめ

開いているポートの棚卸しは、番号・サービス・必要性の3点を突き合わせる点検作業です。ss -tulnp で待ち受けを一覧化し、待ち受けアドレス(0.0.0.0127.0.0.1 か)まで読み、LISTEN と ESTABLISHED を区別する。この型で点検すれば、「理由の説明できないポート」を確実に洗い出せます。

点検して不要な口が見つかったら、次は安全に閉じる番です。閉じ方は別記事「Linuxで不要なポートを閉じる運用手順」で、サービス停止とファイアウォール遮断の両面から解説しています。

実務で通用するLinuxサーバー構築・運用の「型」を体系的に身につけたい方へ。無料メールマガジン「リナックスマスター」では、はじめての方向けにサーバー構築入門マニュアル(PDF)をプレゼントしています。現場で使えるノウハウを順を追って学べます。詳しくはメールマガジン登録ページをご確認ください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次