[Time4VPS][CentOS] SSH ポートを変更する

Time4VPS の CentOS のログイン時に以下のように表示された。

There were 109 failed login attempts since the last successful login.

自分がログインしたのは前日なので、1晩で 109 回もの不正ログインが試みられたということだ。

ログインのログは以下で確認できる。

# cat /var/log/secure* | grep "sshd" | grep "Failed password"

認証に成功したログは以下のコマンドで確認できる。

# cat /var/log/secure* | grep "sshd" | grep "Accepted"

とりあえず自分の IP アドレスだけだったので安心した。

しかし、もしものときに備えて SSH ポート番号を変更しておくことにした。

環境:
・Time4VPS「Linux 8」(CPU: 2 x 2.60 GHz、RAM: 8192 MB、Storage: 80 GB、Bandwidth: 8 TB、Port speed: 100 Mbps、Virtualization: KVM)
・macOS Catalina Version 10.15.6(英語環境) で SSH 接続

(1)/etc/ssh/sshd_config で以下のように編集する。

変更前:
#Port 22

変更後:
Port 6022

(2)sshd を再起動

# systemctl restart sshd

(3)ファイアーウォールから SSH を削除。

# firewall-cmd --permanent --remove-service=ssh

(4)XMLファイルを作成

# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-6022.xml

(5)/etc/firewalld/services/ssh-6022.xml を編集する。

変更前:

<port protocol="tcp" port="22"/>

変更後:

<port protocol="tcp" port="6022"/>

(6)ファイアーウォールに登録。

# firewall-cmd --permanent --add-service=ssh-6022

(7)ファイアーウォールを再起動。

# firewall-cmd --reload

(8)現在の設定を確認してみる。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh-6022
  ports: 80/tcp 443/tcp 2399/tcp 5003/tcp 16000/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

(9)クライアント(私の場合 Mac)からアクセスする際は以下のように -p 6022 オプションを付ける。

$ ssh [ホスト名(〜.time4vps.cloud)] -l [ユーザー名] -p 6022

参考:
不正なSSHログインを確認する方法【CentOS】
https://reiwanet.biz/linux/centos-ssh-failed-access/

SSH待ち受けポートの変更手順【CentOS】
https://reiwanet.biz/linux/centos-ssh-port-change/

sshのポート番号変更方法 – Qiita
https://qiita.com/hana_shin/items/4a90fa66e2d77324912c