【Linux】SSH接続のポート番号をデフォルトから変更する

LinuxサーバーへSSH接続する際に使用するポート番号を変更する方法をメモします。

環境 : CentOS7

一般的にSSH通信・接続の際、サーバーが待ち受けるポート番号はデフォルトで22番ということは広く知られており、(ウェルノウンポートという)
デフォルトから変更しておくことで不正ログインの防止など、セキュリティの面でより安全となります。

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

/etc/ssh/sshd_configを編集する

サーバーへログインし、
設定ファイル /etc/ssh/sshd_config を管理者権限で編集します。

$ sudo vi /etc/ssh/sshd_config

(vi インサートモードで編集)
Port の項目を探す

(変更前) #Port 22
(※変更後) Port 10022

※今回は例としてデフォルトの22から10022に変更しています。
変更する数字は1024以降でかつ他のポートと被らないものが使用可能です。

変更を行ったら、下記のコマンドでsshdサービスを再起動することでSSHポートの変更が反映されます。
$ sudo systemctl restart sshd.service

(注意)
※ファイヤーウォール(firewall)機能をサーバー上で有効にしている場合は、
この時点では接続を切らず次項の設定を行います。

ファイヤーウォールを有効にしている場合の許可設定

セキュリティ機能のファイヤーウォール(firewall)を有効にしている場合は、

・SSHサービスの設定を変更
・変更後のポート番号のアクセス許可

のどちらか(もしくは両方)の設定を行います。

ファイヤーウォールの状態確認

(runningで起動中)

ファイヤーウォールの起動(停止)

SSHサービスの設定ファイルを変更する

元々存在するテンプレート /usr/lib/firewalld/services/ssh.xml のコピーを作成
$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

設定ファイルのコピーが完了したら設定の変更を行う
$ sudo vi /etc/firewalld/services/ssh.xml

(vi インサートモードで編集)

上記の設定から port=”22″ となっている箇所を探して
port=”10022″
と新しいポート番号へ変更しファイルを保存する。

(保存が完了したら)

1.SSHサービスのアクセス許可を確認する

(※上記でもしSSHが無ければアクセス許可に加える)

2.ファイヤーウォールを再読み込みし、設定を反映する

サーバーへの接続を切り、新しく設定したポート番号(10022)でSSH接続を行う。
(-pオプションでポート番号を指定する)
$ ssh -p 10022 ホスト名(IPアドレス)

接続が行えれば設定完了

下記のようにデフォルト(22番ポート)で接続出来なくなっていればより確実です。

ポート (ports)のアクセス許可を行う場合

1.変更したポート番号(10022)をアクセス許可ポートに追加

2.ポートの追加を確認

(10022/tcp とあれば追加OK)

3.ファイヤーウォールを再読み込みし、設定を反映する

サービス(services)へのアクセス許可と同様、
接続を一度切り新しく設定したポート番号で接続確認を行います。

$ ssh -p 10022 ホスト名(IPアドレス)

(注意)
もしポート番号を変更後、上記のファイヤーウォールの設定を行わないことが原因で、
再度クライアントからリモート接続出来なくなってしまった場合は
サーバーのコントロールパネルから直接ログインして
firewallを無効にする、もしくはそのままアクセス許可設定を行い直します。

参考
http://asuki-yt.hatenablog.jp/entry/ce7_firewalld
https://qiita.com/kenjjiijjii/items/1057af2dddc34022b09e

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください