semanageのインストール
SSHポート変更はSElinuxの設定を変更する必要がありますが、minimumインストールの場合は入っていないので、追加でインストールします。
CentOS8の時と同じでいけました。-yオプションを付けてもOKです。
[root@HomeLabServer hoge]# dnf install policycoreutils-python-utils
SElinuxのsshd設定ポートに任意のポートを追加
まずは現在の許可ポートを確認します。
[root@HomeLabServer hoge]# semanage port --list | grep ssh ssh_port_t tcp 22
当然ながら、デフォルトでは22/tcpのみ許可されています。CentOS8と同じ方法でポート追加の設定してみます。
[ポート番号]部分は任意の設定です。
[root@HomeLabServer hoge]# semanage port --add --type ssh_port_t --proto tcp [ポート番号] [root@HomeLabServer hoge]# semanage port -m -t ssh_port_t -p tcp [ポート番号] [root@HomeLabServer hoge]# semanage port --list | grep ssh ssh_port_t tcp [ポート番号], 22
二つ目の"semanage port -m -t..."の設定は何で行っているか忘れました。やらなくても良い気もする。下記のようにそれぞれのオプションを確認してみましたが分からないです。
[root@HomeLabServer hoge]# semanage port --help usage: semanage port [-h] [-n] [-N] [-S STORE] [ --add -t TYPE -p PROTOCOL -r RANGE ( port_name | port_range ) | --delete -p PROTOCOL ( port_name | port_range ) | --deleteall | --extract | --list -C | --modify -t TYPE -p PROTOCOL -r RANGE ( port_name | port_range ) ] positional arguments: port port | port_range optional arguments: -h, --help show this help message and exit -C, --locallist port ローカルのカスタマイズを一覧表示します -n, --noheading port オブジェクトタイプを一覧表示する際は、ヘディングを印刷しません -N, --noreload コミット後にポリシーをリロードしません -S STORE, --store STORE 管理する別の SELinux ポリシーストアを選択します -a, --add port オブジェクトタイプの記録を追加します -d, --delete port オブジェクトタイプの記録を削除します -m, --modify port オブジェクトタイプの記録を変更します -l, --list port オブジェクトタイプの記録を一覧表示します -E, --extract トランザクシャン内での使用目的で、カスタマイズ可能なコマンドを展開します -D, --deleteall すべての port オブジェクトローカルカスタマイズを削除します -t TYPE, --type TYPE オブジェクト向け SELinux タイプ -r RANGE, --range RANGE MLS/MCS のセキュリティー範囲 (MLS/MCS システムのみ) SELinux ログインマッピングの SELinux 範囲は デフォルトでは SELinux ユーザーの記録範囲に設定されます。 SELinux ユーザーの SELinux 範囲はデフォルトで s0 に設定さ れます。 -p PROTO, --proto PROTO 指定したポートのプロトコル (tcp|udp|dccp|sctp) または 指定したノードのインターネットプロトコ ルバージョン (ipv4|ipv6)。
以上でSElinuxのsshd設定ポート追加は完了です。
firewall設定の変更
下記コマンドを使用してssh用ポートとして追加予定のポートをfirewall許可ポートに追加します。対象のゾーンは"public"としていますが、変更している場合は変更が必要です。
注意点としてすべての設定が完了するまで通信を維持する必要があるので、"--reload"は行いません。ポートの追加、既存ポートの削除、設定確認のみを行います。
[root@HomeLabServer hoge]# firewall-cmd --add-port=[ポート番号]/tcp --zone=public --permanent success [root@HomeLabServer hoge]# firewall-cmd --remove-port=22/tcp --zone=public --permanent success [root@HomeLabServer hoge]# firewall-cmd --list-ports --zone=public --permanent [ポート番号]/tcp
sshd_configの変更
最後にsshd_configファイルの設定変更を行います。
[root@HomeLabServer hoge]# 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 :: ...
これで再起動すれば、新しいポートで通信出来るはず。。。再起動で再度、接続してみます。
[root@HomeLabServer hoge]# reboot
通信出来ました。結果的に手順はCentOS8の時と変化ありませんでした。