Linux:SSH接続時のポート番号を変更する方法

LinuxサーバでSSHで接続する時のポート番号を変更する方法をメモします。

SSHのポート番号は初期状態は22番ポートで設定されています。

そのままにしていると悪意のある人から攻撃を受ける可能性があるので、
セキュリティ対策としてポート番号は必ず変更しておいた方がいいです。

SSHのポート番号を変更する際は、iptablessshd_configの設定を変更します。

下記にLinuxサーバでSSHのポート番号変更した時の手順を記述します。


SSH接続のポート番号を変更

※ポート番号を「50022」に変更する場合

SSHでログインし、スーパーユーザー(root)なります。

su -

スーパーユーザーになったら、iptables(ファイアウォール)の設定を変更します。
下記コマンドでiptablesを編集します。

vi /etc/sysconfig/iptables

新しく接続を許可するポート番号を追加します。

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 50022 -j ACCEPT

保存が完了したら、iptablesを再起動します。

/etc/init.d/iptables restart

次にSSHの設定ファイルを変更します。
下記コマンドでsshd_configを編集します。

vi /etc/ssh/sshd_config

「Port 22」の箇所を「#」でコメントアウトし、
「Port 50022」を追加します。

#Port 22
Port 50022

保存が完了したら、sshdを再起動します。

/etc/init.d/sshd restart

設定が間違っていた場合など、接続できなくなるので、
現在の接続は絶対に切らずに、別の画面で新規に接続をします。

変更したポート番号でSSH接続ができるか確認します。

変更したポート番号で接続ができ、22番ポートで接続できなければ完了です。

新しく設定したポート番号で接続ができない時は、
設定を最初の状態に戻して、再起動します。
最初の情報で接続できるかを確認します。


設定が完了したら、iptablesの設定で22番ポートを拒否するように設定します。

#-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 50022 -j ACCEPT

22番ポートをコメントアウトし、iptablesを再起動します。