SELinux を適用して CentOS/RHEL/Fedora の SSH ポートを変更する |
このガイドでは、SELinux が Enforcing モードで実行されている CentOS 7/8、RHEL 7/8、および Fedora 34/33/32/31/30 で SSH サービス ポートを変更する方法を説明します。 SELinux が強制 モードで実行されている場合、SELinux ポリシーが強制され、SELinux に基づいてアクセスが拒否されます。ポリシールールです。ほとんどの Linux/Unix システムの標準 SSH ポートは TCP ポート 22 です。これは、システム内の他のアプリケーションで使用されていないカスタム ポートに簡単に変更できます。
SELinux が強制モードで実行されている場合、アクセスを制御するポリシー ルールがバインドする ssh サービスを受け入れることができるように、設定するポートのラベルを変更する必要があります。 CentOS/RHEL/Fedora サーバーまたは SELinux が Enforcing モードで実行されているデスクトップで SSH ポートを変更するには、以下で説明する手順に従ってください。
ステップ 1: 現在の SSH 構成をバックアップする
CentOS/RHEL/Fedora システムにログインし、現在の ssh デーモン構成ファイルをバックアップします。
date_format=`date +%Y_%m_%d:%H:%M:%S`
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$date_format
確認する :
$ ls /etc/ssh/sshd_config*
/etc/ssh/sshd_config /etc/ssh/sshd_config_2019_09_05:21:40:10
ステップ 2: SSH サービス ポートを変更する
お気に入りのテキスト エディタ (vi、vim、nano など) で SSH サービス構成ファイルを開きます。
sudo vi /etc/ssh/sshd_config
次の行を見つけます。
#Port 22
Port 行のコメントを解除し、新しいサービス ポートが使用されるように設定します。ポート33000を使用します。
Port 33000
変更を保存してファイルを閉じます。
ステップ 3: SELinux で新しい SSH ポートを許可する
SSH のラベルが付いているデフォルトのポートは 22 です。
$ semanage port -l | grep ssh
ssh_port_t tcp 22
sshd が設定されたネットワーク ポートにバインドできるようにするには、ポート タイプを ssh_port_t に変更する必要があります。
sudo semanage port -a -t ssh_port_t -p tcp 33000
新しいポートが SSH の許可ポートのリストに追加されたことを確認します。
$ semanage port -l | grep ssh
ssh_port_t tcp 33000, 22
ステップ 4: Firewalld で SSH ポートを開く
ファイアウォール サービスを実行したままにして、信頼できるサービスのみを許可することを常にお勧めします。
sudo firewall-cmd --add-port=33000/tcp --permanent
sudo firewall-cmd --reload
Firewalld がインストールされていない場合は、yum を使用してインストールし、サービスを開始します。
sudo yum -y install firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --add-port=33000/tcp --permanent
sudo firewall-cmd --reload
これで、ssh サービスを削除できるようになりました。
sudo firewall-cmd --remove-service=ssh --permanent
sudo firewall-cmd --reload
ステップ 5: sshd サービスを再起動する
変更を有効にするには、ssh サービスを再起動します。
sudo systemctl restart sshd
SSH のリッスン アドレスを確認します。
$ netstat -tunl | grep 33000
tcp 0 0 0.0.0.0:33000 0.0.0.0:* LISTEN
tcp6 0 0 :::33000 :::* LISTEN
その他の記事:
- Linux/Unix システムで SSH 逆引き DNS ルックアップを無効にする方法
- CentOS/RHEL で SSH の 2 要素 (2FA) 認証を設定する方法
- Linux CLI で SSH トンネルを作成する簡単な方法
- Linux/Unix で SSH キーのパスフレーズを変更または更新する方法
- Linux SysAdmins 用の ssh チートシート