ウェブサイト検索

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 チートシート

関連記事: