CentOS stream9でSSHポート変更

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の時と変化ありませんでした。

コメントを残す

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

four × 5 =