CentOS 7 で sshd の待ち受けポートを変更するには
sshd は標準で 22/TCP を Listen(待ち受け)します。しかし、標準設定のままにしておくとあちこちからアクセスされ、セキュリティ強度が高いとは言えません。そこで、今回は CentOS7 で sshd が Listen するポートを 22222/TCP に変更してみます。
サービス(22222/TCP)の定義¶
一般的なサービスが Listen するポートは /usr/lib/firewalld/services ディレクトリ配下で定義されています。今回はポート変更に際して新たに以下のサービスを定義します。
項目 | 値 |
---|---|
サービス名(任意) | SSH-22222 |
ポート/プロトコル | 22222/TCP |
ベースにするファイル | /usr/lib/firewalld/services/ssh.xml |
新たに作成するファイル | /etc/firewalld/services/ssh-22222.xml |
ベースにする /usr/lib/firewalld/services/ssh.xml は以下のように定義されています。
1 2 3 4 5 6 |
|
/etc/firewalld/services/ssh-22222.xml というファイルを以下の内容で新規作成します。
1 2 3 4 5 6 |
|
firewalld へのサービス追加¶
新たに定義した「ssh-22222」サービスを firewalld に反映します。
1 2 3 |
|
sshd の再起動¶
/etc/ssh/sshd_config ファイル中の port 設定を以下のように書き換えます。
1 2 3 |
|
sshd を再起動します。但し、SELinux が有効化された状態でポート番号を変更した sshd を再起動しようとしてもエラーになってしまい、設定変更が反映されません。よって、一時的に SELinux を無効化してから sshd を再起動します。まず、/etc/sysconfig/selinux を以下のように変更します。
1 2 3 |
|
SELinux の設定変更が完了したら一度、システムを再起動します。これで SELinux が無効化され、sshd も変更されたポートで起動してくるはずです。22222/TCP で ssh アクセス出来ることを確認します。今後は 22222/TCP で ssh アクセスしているターミナルで作業します。
不要になった ssh(22/TCP)の削除¶
22/TCP は不要になった為、firewalld から削除します。
1 2 |
|