自宅サーバのAlmaLinuxのSSH接続時のポート変更を行ったときの備忘録です。
私の自宅の環境ではWindowsのデスクトップPCにVmware Workstationをインストールして、その上で仮想マシンとしてAlmaLinuxを稼働させています。
AlmaLinuxのバージョンは下記になります。
AlmaLinux release 9.4 (Seafoam Ocelot)
ポート番号を決めておく
作業をする前に、変更したいポート番号を決めておきましょう。
一般的にはポート番号は下記のように定義されております。
ポート番号 | 名前 | 目的 |
0~1023 | Well-Known Ports:ウェルノウン・ポート | 利用するプロトコルが決められている |
1024~49151 | Registered Ports:登録ポート | アプリケーションによって割り当てられている |
49152~65535 | Dynamic 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などの端末エミュレータから変更したポートを指定して接続できるか試してみましょう。
新しい接続が確率できるまで、作業をしたセッションは切らないでください。もし修正が必要になっても変更でなくなってしまいますので…
コメント