ssh通信のポート変更(CentOS8)

大まかな手順

以前書いた記事にて標準の22番ポートでのssh接続を確認後によりセキュアなサーバーとするために通信ポート変更を行う方法です。大きく分けて、下記3つの設定変更が必要となります。

SElinuxの設定変更

firewallの設定変更

sshdの設定変更

・再起動

SElinuxの設定変更

SElinuxの設定コマンド

"semanage"を使用します。まずsshdの受信ポートの設定状態を下記コマンドで確認します。デフォルト設定から変更していなければ"tcp 22"のみ設定されているはずです。

$ sudo semanage port --list | grep ssh
ssh_port_t                     tcp      22

sshd受信ポートとして設定したいポートをSElinuxに追加します。さらにsshdのポート番号として設定した後、設定状態を再確認します。

$ sudo semanage port --add --type ssh_port_t --proto tcp [ポート番号]
$ sudo semanage port -m -t ssh_port_t -p tcp [ポート番号]
$ sudo semanage port --list | grep ssh
ssh_port_t                     tcp [ポート番号], 22

以上でSElinuxのポート変更は終了です。

Firewallの設定変更

firewallに許可ポートを追加

下記コマンドを使用してssh用ポートとして追加予定のポートをfirewall許可ポートに追加します。対象のゾーンは"public"としていますが、変更している場合は変更が必要です。

$sudo firewall-cmd --add-port=[ポート番号]/tcp --zone=public --permanent

次に念のため22番ポートの許可を取り消します。警告が出ますが、wirewallの再起動までは通信は維持されます。

$ sudo firewall-cmd --remove-port=22/tcp --zone=public --permanent
Warning: NOT_ENABLED: 22:tcp
success
$ sudo firewall-cmd --list-ports --zone=public --permanent
[ポート番号]/tcp

以上でfirewallの設定変更は終了です。再起動等を行うとssh通信は出来なくなるので注意が必要です。

sshdの設定変更

sshdの受付ポート変更

vimを使用してsshd_configを変更します。"/etc/ssh"には"ssh_config"もあるので注意。

$ sudo vim /etc/ssh/sshd_config

変更箇所はこちら

...
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port [ポート番号]
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
...

以上で、設定変更は終了です。再起動すると22番ポートではなく、設定したポートしか接続出来なくなります。途中で設定ミスがあると接続出来なくなるので注意が必要です。

コメントを残す

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

15 − 6 =