ポートとサービス検索

ポートレジストリを双方向に検索します:443 のような番号や postgresql のようなサービス名を入力すると、 表は一致するすべての割り当て、使用するトランスポートプロトコル、属する範囲、ポートの用途を表示します。データはこのページ内に組み込まれた 公開レジストリのコピーなので、検索はネットワーク接続なしで動作し、入力したものがブラウザーの外に出ることはありません。このページはポートスキャンをしません。 どのマシンのどのポートが開いているかもわかりません — 番号が何を意味するかを教えるだけです。
オフラインリファレンスを読み込みました。何もどこにも送信されていません。
番号かサービス名を入力するか、上のサンプルを選んでください。
ウェルノウンポート、0〜1023。 これらは特定のプロトコルに 1 つずつ割り当てられ、 どこでも同じ意味を持つ唯一のポートです:22 は SSH、80 は平文 HTTP、443 は TLS 上の HTTP。 サーバー上では通常、管理者権限を持つプロセスだけが待ち受けられます — だからこそ、そこで待ち受けるべきでないデーモンは二度見の価値があります。

登録ポート、1024〜49151。 同じ方法で登録されますが、どのプロセスも使えます。したがってこの範囲の番号は、目の前の用途ではなく登録された用途を教えます: 8080 と 8443 は代替として登録されていますが、まったく別のものに同じくらいよく使われ、 開発サーバーはこの範囲の任意の番号に現れます。

動的・プライベートポート、49152〜65535。 これらは意図的に未割り当てのままです: オペレーティングシステムが接続の送信側に 1 つを選び、安定した意味を持ちません。 この範囲の番号は 1 つのセッションの文脈からしか読めず、だからオフラインリファレンスは有用なことを言えないのです。

表の読み方。 レジストリはポートをプロトコルとトランスポートに同時に割り当てるため、1 つの番号が複数の無関係なサービスを運ぶことがあります: 514 は TCP ではリモートシェル、UDP では syslog で、465 は古いメール送信サービスと IGMP の亜種の両方を運びます。 行に複数のサービス名が載るときは、自分のトラフィックがどれに属するか判断する前に、各名前の隣の括弧内トランスポートを確認してください。番号がないのはエラーではありません: レジストリにその割り当てがないだけで、ページはそれがどの範囲に属するかを引き続き教えます。
このリストの使い方。ここにある何ものもポートが開いているとは言いません — ただ、その奥のサービスが マシンに到達できる誰にでも応答するなら、リスクはサービスの年齢が示すより高いということだけです。自分の所有するマシンを、内側から、システム付属のツールで確認してください:

設計上の平文。 23 telnet 21 ftp 389 ldap 161 snmp — パスワードもコミュニティ文字列も平文で回線を渡るもの。
ファイル共有とリモート制御。 445 139 137 3389 5900 — ローカルネットワーク向けで、インターネットから到達できるべきではなく、だからこそスキャンで見つかる古典的な侵入経路です。
データベースとキャッシュ。 3306 1433 5432 6379 27017 11211 — これらの大半はアプリケーションの後ろに置くよう設計され、いくつかはデフォルト設定で認証をまったく持ちません。
制御インターフェース。 2375 — ホスト上でコンテナを起動できる API で、暗号化された兄弟の隣に平文で登録されています。到達することはマシン上でコマンドを実行するのと等価です。
人気サービスに借用された番号。 9200 — レジストリはこれをモバイル Web サービスポートとして記録し、同じ番号がレジストリにない検索エンジン製品に広く使われています。こうした行があるからこそ、表は登録された用途を表示し、製品のリストは表示しないのです。

推測の代わりにやること。自分が管理するマシンでは、オペレーティングシステムにどのプロセスがポートを保持しているか尋ねてください(ss -lntupを Linux で、netstat -abnoを Windows で)そして答えから判断してください。ポートが到達可能であることは設定の問題であり、修正はサービスを停止する、ループバックアドレスに束ねる、ファイアウォールの後ろに置く — この順で行います。