SSHのセキュリティ対策の一環として、SSHの待ち受けポートを22番から変更する設定例などを目にします。
では、実際のところポート番号の変更にはどの程度の効果があるのでしょうか。
今回は、実際の公開サーバーを用いて、SSHの待ち受けポートを変更した場合に不正アクセス試行がどのように変化するのかを検証しました。
結論
今回の検証では、
- 22番ポート(標準)
- 32518番ポート(一般的ではないポート)
- 10022番ポート(SSH代替ポートとして選ばれそうなポート)
- 2222番ポート(設定例などでよく見る代替ポート)
の4パターンで、それぞれ5日ほど運用して比較しました。
いきなり結論ですが、SSHポートの変更によって不正アクセス試行回数に大きな差が出ることが確認できました。
一方で、
- 2222番のような有名な代替ポートでも攻撃対象になる
- 10022番では22番より多い接続試行が発生した
- 一般的ではない32518番では大幅に減少した
という結果になりました
このことから、SSHポート変更には一定の効果がありますが、「何番に変更するか」によって結果が変わる可能性がありそうです。
※詳細な数値は後述します。
検証環境について
検証環境
- OS:AlmaLinux9
- SSHサーバー:OpenSSH(OS標準バージョン)
- サーバー:インターネット公開サーバー
- グローバルIP:同一IP
- 検証期間:各5日間
- ファイアウォール:制限なし
検証方法
①SSHの待ち受けポートを変更し、それぞれ5日ほど運用しました。
なお、各ポート番号に変更した時間が多少違っているので、厳密に5日間というわけではないです。
②各期間のsshdのログから、実際に認証を試してきている件数として、「Failed」「Invalid user」のログ件数を集計しました。
ちなみに変更順は22番ポート→32518番ポート→10022番ポート→2222番ポートでした。
ポート番号の選定理由
22番ポート
SSHの標準ポートです。
もともと標準ポートで運用していました。
インターネット上のボットやスキャナが最も多くアクセスすると考えられます。
32518番ポート
SSH用途として一般的ではない番号です。
広く知られたSSH代替ポートではなく、攻撃を受けづらいと考えられたので選びました。
何かしらのサービス用として割り当てられてはいなさそうなポートです。
10022番ポート
SSHの代替ポートとして採用されることがありそうな番号です。
攻撃対象になる可能性がありそうだったので選びました。
個人的なイメージですが、家庭用ルーターなどでポート開放する場合などにこの辺りのポート番号が使われる気がします。
2222番ポート
SSHの代替ポートとして、設定例でよく見るポート番号の一つです。
攻撃対象として見られている可能性がありそうなので選びました。
検証結果
接続試行件数
- 22番ポート:7,921件
- 32518番ポート:1件
- 10022番ポート:12,692件
- 2222番ポート:892件
結果の考察
22番ポート
SSHの標準ポートである22番では、5日間で7,921回の不正アクセス試行がありました。
インターネット上ではSSHを狙った自動スキャンやブルートフォース攻撃が常時行われており、標準ポートで公開することで大量の接続試行を受けることが確認できました。
というか、以前からずっと接続試行を受けているので、これは分かってました。
32518番ポート
32518番では、5日間で1回のみ不正アクセス試行があり、今回検証したポートの中では最も少ない結果となりました。
ただ、ポート番号を変更してsshdを再起動した直後に1回だけログに出ていたので、これは22番ポートで来ていたアクセスの分な気がします。実質ゼロかも。
一般的なSSH代替ポートとして認識されていない番号を使用したことで、単純なSSHポート探索の対象になりにくかった可能性があります。
ただし、今回の結果は5日間という限られた期間での結果なので、長期間運用した場合も同じ結果になるとは限りません。

図:32518番ポートに変更した後のログ(伏せているのは自分のアクセス)。ほとんどログが動いていない。
10022番ポート
10022番では12,692回となり、今回の検証では最も多い不正アクセス試行がありました。
一般的には22番から変更することでアクセスが減少すると考えられますが、今回の結果ではまさかの22番を上回る結果となりました。
たまたま10022番ポートに設定している期間にインターネット上のスキャン量が増えていた可能性などもありますが、広く攻撃対象として見られていると考えて良いと思います。

図:10022番ポートに変更した後のログ。2日後にはログイン試行が来ている。
2222番
2222番では892回の不正アクセス試行がありました。
22番と比較すると大幅に減少していますが、一定数のアクセスがありました。
2222番はSSHの代替ポートとして、一部の攻撃ツールやスキャン対象に含まれている可能性があります。
やはり有名な代替ポートについては攻撃対象になると考えられますが、正直思ったより少ないなという印象でした。

図:2222番ポートに変更した後のログ。1日と経たずにログイン試行が来ている。
ポート番号変更だけで安全になるのか
今回の検証では、待ち受けポートを変更することで接続試行の増減が確認できましたが、それだけでSSHが安全になるわけではありません。
ポートスキャンを実施する攻撃者に対しては、待ち受けポートが22番以外であっても発見される可能性があります。

図:nmapでスキャンすると32518番ポートが開いているのが分かる
そのため、SSHのセキュリティ対策としては、
- 接続元IPアドレスの制限
- 公開鍵認証の利用
- パスワード認証の無効化
- rootログインの禁止
- ソフトウェアの継続的なアップデート
- Fail2banやIDS/IPSによる対策
などの基本的な対策を組み合わせることが必要です。
ちなみに、今回のサーバーでは公開鍵認証のみに制限しています。
ファイアウォールなどで接続元IPを制限できれば一番良いですが、自宅が固定IPじゃないので仕方ありません。
まとめ
ポート番号変更は「攻撃そのものを防ぐ対策」ではありませんが、ある程度効果が期待できることが分かりました。
とくに不特定の相手を狙ったボットによるブルートフォース攻撃などには一定の効果が見込めそうですので、ログのノイズ対策としてはありかもしれません。
ただし、使用するポートは選ぶ必要がありますが。
一方で、ポートスキャンを行う攻撃者には容易に待ち受けポートを発見される可能性が高いため、攻撃相手を特定して行われる標的型攻撃のような場合はほとんど効果はないと考えられます。
公開鍵認証に限定するなどの対策はしたうえで、接続元IPの制限ができない場合に不正アクセスのログが気になるようならやってもいいかなと思います。



![群馬の法人ITサポートサービス Wide Net[ワイドネット] 群馬の法人ITサポートサービス Wide Net[ワイドネット]](https://www.nedia.ne.jp/wp-content/themes/nedia/images/bnr_bt_widenet03.png)



