回答:
最も可能性の高い理由は、見つけられるすべてのSSHログインをランダムにブルートフォースしようとする人々を困難にすることです。私のインターネットに面したマシンはデフォルトのSSHポートを使用し、ログは次のようなもので満たされていました(実際のログファイルからの抜粋):
sshd[16359]: Invalid user test from 92.241.180.96
sshd[16428]: Invalid user oracle from 92.241.180.96
sshd[16496]: Invalid user backup from 92.241.180.96
sshd[16556]: Invalid user ftpuser from 92.241.180.96
sshd[16612]: Invalid user nagios from 92.241.180.96
sshd[16649]: Invalid user student from 92.241.180.96
sshd[16689]: Invalid user tomcat from 92.241.180.96
sshd[16713]: Invalid user test1 from 92.241.180.96
sshd[16742]: Invalid user test from 92.241.180.96
sshd[16746]: Invalid user cyrus from 92.241.180.96
sshd[16774]: Invalid user temp from 92.241.180.96
sshd[16790]: Invalid user postgres from 92.241.180.96
sshd[16806]: Invalid user samba from 92.241.180.96
最近では、DenyHostsを使用して、何度も認証に失敗するIPをブロックしていますが、ポートを切り替えるのはおそらく同じくらい簡単です。事実上、この種のブルートフォース攻撃は、sshdが別のポートでリッスンしているかどうかを確認するためにスキャンを行うことはありません。
sshdのセットアップがポート22を試すだけの愚かなスクリプトに直面するのに十分でない場合、とにかく問題が発生します。
より合理的な反応は次のとおりです。
sshdがシステムログに書き込むノイズに悩まされる人もいます。たとえば:
Jan 02 21:24:24 example.org sshd[28396]: Invalid user guest from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28396]: input_userauth_request: invalid user guest [preauth]
Jan 02 21:24:24 example.org sshd[28396]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]
Jan 02 21:24:24 example.org sshd[28398]: Invalid user ubnt from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28398]: input_userauth_request: invalid user ubnt [preauth]
Jan 02 21:24:24 example.org sshd[28398]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth
sshdポートを隠したり、S / N 比を再び増加させるために、自動ブロックソリューション(DenyHosts、Fail2ban、BlockHostsなど)を使用したい場合があります。
しかし、より良い選択肢が存在します。言う- -たとえば、sshdのログがノイズのみに書き込まれるようにデーモンあなたのsyslogを設定することができ/var/log/sshd-attempts.log
、信号(すなわち、残りのsshdのログメッセージが)に書かれている/var/log/messages
以前のようになど。
セキュリティ関連のシステムにさらに複雑さを追加することは、悪用のリスクを高めることも意味するため、自動ブロックツールの展開は慎重に検討する必要があります。そして実際、長年にわたり、各DenyHosts、Fail2banおよびBlockHostsについて複数のDoS脆弱性レポートがあります。
SSHポートの変更は、ほとんどセキュリティシアターです。それはあなたに何かをしたという曖昧な感覚を与えます。ドアマットの下にSSHポートを隠しました。
インターネット上でSSHサーバーを実行している場合、ログには、古いバージョンのサーバーで愚かに弱いパスワード、弱いキー、および既知のエクスプロイトを探しているボットからのログイン試行の失敗が多数表示されます。失敗した試行は、失敗した試行です。あなたがどれだけ脆弱かを評価する限り、それらはまったく無関係です。心配する必要があるのは、侵入の試みが成功したことであり、ログにはそれらが表示されません。
デフォルトのポートを変更すると、そのようなボットによるヒット数は減少しますが、それはまともなセキュリティ(定期的に適用されるセキュリティ更新、適度に強力なパスワードまたは無効化されたパスワード認証)によって阻止される最も洗練されていない攻撃者を阻止するだけです。唯一の利点は、ログの量を減らすことです。それが問題である場合は、代わりに接続速度を制限するためにDenyhostsやFail2banのようなものを検討してください。これにより、帯域幅も改善されます。
デフォルトのポートを変更すると、大きな欠点があります。ファイアウォールの内側からログインできなくなる可能性が低くなります。ファイアウォールは、他のランダムなポートよりもデフォルトポートでサービスを通過させる可能性が高くなります。HTTPSサーバーを実行していない場合、一部のファイアウォールはポート443でデコードできないトラフィックを許可するため、SSHもポート443でリッスンすることを検討してください(または着信TCP要求をポート443からポート22にリダイレクトする)。 HTTPSなど。