エックサーバーのVPSをいじる機会があったので防備録。とりあえずSSHのポートをデフォルト22番から変更してみます。なおOSはCentOS 9です。
SSHのポート変更の具体的な手順
ファイアーウォールの設定を変更する
まず標準ファイアーウォールに新たな許可ポート番号を追加してやる。
以下のコマンドでは新たに「10022」を許可ポートとして追加した。「–permanent」をつけ忘れると「reload」されるタイミング(OS再起動など)で戻ってしまうので注意。
# firewall-cmd --add-port=10022/tcp --zone=public --permanent
SSHDの設定ファイルを編集
/etc/ssh/sshd_configを変更してポート番号を変更する。
# vi /etc/ssh/sshd_config
/etc/ssh/sshd_config # 任意のポート番号に変更する。ここでは10022とした。 Port 10022
SSHDとファイアーウォールを再起動
以下のコマンドでSSHDとファイアーウォールを再起動する。別のターミナルから接続してみて、新しいポート番号で接続できればOK。
※設定に間違いがないかどうかを再度確認してから実行してください。クライアント(Windows,Rlogin)の場合はいきなり切断されるようなことはなく操作を続けられましたが(新規セッションは張れませんが)、いきなり遮断されても不思議ではないと考えておいた方がいいかと。
# firewall-cmd --reload
# systemctl restart sshd.service
なお標準ファイアーウォールの設定を一覧表示させるには以下のコマンド。
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: cockpit dhcpv6-client http https
ports: 10022/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
標準のSSHポート番号22番を削除する場合は…
標準の22番をファイアーウォールルールから削除する場合は以下のコマンドでOK。
# firewall-cmd --remove-service=ssh --permanent