デフォルトでは、SSHプロトコルはポート22をリッスンすることが知られています。セキュリティの観点からは完全に問題ありませんが、デフォルトのポートを別のポートに変更することをお勧めします。これにより、ハッカーがSSHを使用して自動ブルートフォース攻撃を開始するリスクが大幅に最小限に抑えられます。このガイドでは、LinuxでデフォルトのSSHポートを別のポートに変更する方法を示します。
前提条件
始めるときは、Linuxサーバーのインスタンスがあることを確認してください。このガイドでは、Ubuntu20.04サーバーを使用しています。
新しいポートを使用してサーバーへの接続を設定するために、SSHクライアント(Puttyなど)またはクライアントLinuxシステムもあることを確認してください。
ステップ1:SSHがデフォルトのポートで実行されているかどうかを確認します
まず、SSHサービスがサーバーで実行されていることを確認する必要があります。これを行うには、次のコマンドを実行します。
$ sudo systemctl status ssh
出力は、SSHサービスがアクティブであることの確認です。さらに進んで、デフォルトのポートで実行されていることを確認しましょう。次のnetstatコマンドを実行します。
$ sudo netstat -pnltu | grep 22
ステップ2:ポートを選択してSSHを構成する
ご存知かもしれませんが、TCPポートの範囲はポート0〜65535です。ただし、0〜1024のポートは、HTTP(ポート80)、FTP(21)、SMTP(25)などの特別なサービス用に指定された特権ポートと見なされます。ほんの少しだけ言及してください。
特権ポートとの競合を回避するために、ポート1024より上にあるポートを選択します。この例では、デフォルトのポートをポート5466に変更することを選択しました。これを有効にするには、 /etc/を変更します。 ssh / sshd_config SSH構成ファイル。
$ sudo vim /etc/ssh/sshd_config
#Port 22で始まる行を見つけます 示されているように。
コメントを外して、ポート番号を指定します。
その後、行った変更を保存し、構成ファイルを終了します。変更を保持するには、SSHサービスを再起動します。
$ sudo systemctl restart ssh
SSHが新しく構成されたポートをリッスンしていることを確認するには、次のコマンドを実行します。
$ sudo netstat -pnltu | grep 5466
ステップ3:UFWファイアウォールで新しいSSHポートを許可する
UFWファイアウォールが有効になっている場合は、必ず図のように構成済みのポートを開いてください。
$ sudo ufw allow 5466/tcp
$ sudo ufw reload
CentOS / RHELの場合は、次のようにポートを開きます。
$ sudo firewall-cmd --add-port=5466/tcp --add-zone=public --permanent
$ sudo firewall-cmd --reload
この時点で、サーバーにリモートでアクセスできます。これについては、後ほど説明します。
ステップ4:新しいポートを使用してログインする
サーバーにログインするには、SSHクライアントにアクセスします。 -pを使用してポート番号を指定します オプションの後にSSHポートとリモートサーバーIDが続きます。
$ ssh -p 5466 [email protected]
ご想像のとおり、パスワードの入力を求められます。その後、リモートサーバーへのアクセスが許可されます。
結論
これで、このトピックは終了します。セキュリティを強化するには、SSH公開鍵と秘密鍵のペアでSSHパスワードなし認証を使用することを検討してください。