AlmaLinux 9.4 SSHのポートを変更する

Linux

自宅サーバのAlmaLinuxのSSH接続時のポート変更を行ったときの備忘録です。
私の自宅の環境ではWindowsのデスクトップPCにVmware Workstationをインストールして、その上で仮想マシンとしてAlmaLinuxを稼働させています。

AlmaLinuxのバージョンは下記になります。

AlmaLinux release 9.4 (Seafoam Ocelot)

ポート番号を決めておく

作業をする前に、変更したいポート番号を決めておきましょう。
一般的にはポート番号は下記のように定義されております。

ポート番号名前目的
0~1023Well-Known Ports:ウェルノウン・ポート利用するプロトコルが決められている
1024~49151Registered Ports:登録ポートアプリケーションによって割り当てられている
49152~65535Dynamic and/or Private Ports:ダイナミック/プライベート・ポート自由に利用できる

なので、まぁ、選択するとしたら49152~65535の間ですかね。
好きな番号を事前に選んでおきます。

SSHの設定変更

作業をSSHで接続して行っている場合は、最後まで作業が完了するまで接続を切らないでください。
中途半端な状態で接続が切れてしまうとアクセスできなくなる可能性があります。

最終的にSSHのポート変更を行って、他の端末からアクセスできることが目的なので、SSHのポートの設定変更だけでなく、関連する部分も順に変更していきます。

firewallの設定変更

変更したいポート番号が外からアクセスするためには、このポートからアクセスがあったときに通す設定を入れなければいけません。なのでfirewallに穴を開けます。

現在の状態を確認する

# firewall-cmd --list-all

public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client http https ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
通しているサービス
# firewall-cmd --list-services

cockpit dhcpv6-client http https ssh
開放しているポート
# firewall-cmd --list-ports

個別で果胞しているポートはありません。

開放するポートを追加する

設定追加
# firewall-cmd --permanent --zone=public --add-port=999999/tcp

Success
確認
# firewall-cmd --list-all

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 999999/tcp ←追加されました
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Selinuxの設定変更

Selinuxを有効にしている場合はこちらも設定を変更する必要があります。
Selinuxを利用しているかどうかの確認は下記のコマンドで行います。

# getenforce

Enforcing

Enforcingであれば有効になっています。

現在の設定を確認する

# semanage port -l|grep -i ssh

ssh_port_t                     tcp      22

ポート番号を追加する

追加するコマンド
# semanage port -a -t ssh_port_t -p tcp 999999
設定後の確認
# semanage port -l|grep -i ssh

ssh_port_t                     tcp      999999, 22

SSHの設定変更

設定ファイルの変更

設定ファイルは/etc/ssh/sshd_configのファイルなのでこのファイルを修正します。

# vi /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 22
Port 999999 ←この行を追加する
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

サービスの再起動

設定変更後にsshのサービスを再起動させて反映させます。

# systemctl restart sshd

設定を変更したあとは、Teratermなどの端末エミュレータから変更したポートを指定して接続できるか試してみましょう。
新しい接続が確率できるまで、作業をしたセッションは切らないでください。もし修正が必要になっても変更でなくなってしまいますので…

コメント

タイトルとURLをコピーしました