SSHのポート番号を変更する。(CentOS8)

vps
Gerald FriedrichによるPixabayからの画像

環境

  • CentOS8.2(さくらのVPS)
  • Apache 2.4.37
  • PHP7.4

開いているポートを確認する

ssコマンド、またはnetstatコマンドを利用

# ss -ltnu
Netid   State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port
udp     UNCONN   0        0          127.0.0.53%lo:53            0.0.0.0:*
udp     UNCONN   0        0                0.0.0.0:5355          0.0.0.0:*
udp     UNCONN   0        0              127.0.0.1:323           0.0.0.0:*
udp     UNCONN   0        0                   [::]:5355             [::]:*
tcp     LISTEN   0        128              0.0.0.0:443           0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:5355          0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:22            0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:80            0.0.0.0:*
tcp     LISTEN   0        128                    *:9090                *:*
tcp     LISTEN   0        80                     *:3306                *:*
tcp     LISTEN   0        128                 [::]:5355             [::]:*
ssコマンドの主なオプション
  • -l : 待ち受けポートのみを表示する
  • -n : サービス名に変換しないでポート番号表示
  • -t : TCP を表示
  • -u : UDP を表示
  • -a : 全てのソケットを表示
  • -p : プロセスも表示
  • -4 : IPv4のソケットだけを表示
  • -6 : IPv6のソケットだけを表示

sshd_configの編集

SSHの設定ファイル(/etc/ssh/sshd_config)をバックアップ。

# cp -p /etc/ssh/sshd_config etc/ssh/sshd_config.backup
# vi /etc/ssh/sshd_config
---
#Port 22 ← 初期値22
Port 2222 ← 任意の空き番号を指定する(例)
---

1024番から65535番以下で使われていない番号を指定するとよい。

diffコマンドでファイルの比較を行う。

バックアップファイルに対して変更したところが抽出される。

# diff /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
17c17
< #Port 22
---
> Port 2222
46c46
< PermitRootLogin yes
---
> PermitRootLogin no

問題が無ければ、構文をチェックする。

# sshd -t

エラーが無ければ、sshd再起動。

# systemctl restart sshd.service

ファイアウォール設定

ファイアウォールでポートの開放。

# firewall-cmd --add-port=2222/tcp --zone=public --permanent
success

使わなくなったサービスの削除。

# firewall-cmd --remove-service=ssh --zone=public --permanent
success

忘れず再ロード。

# firewall-cmd --reload
success

確認

SSH初期値(22番ポート)で接続出来なくなっていればより確実。
XXX.XXX.XXX.XXの部分はサーバーのIPアドレスかホスト名

# ssh XXX.XXX.XXX.XX
ssh: connect to host XXX.XXX.XXX.XX port 22: Connection refused

新しく設定したポート番号を「-p」で指定して接続確認を行う。

# ssh -p 2222 XXX.XXX.XXX.XX (IPアドレスまたはホスト名)

さくらのVPSの場合

さくらのVPSの場合、ファイアウォール設定だけでは通信できない。そんなときは、コントロールパネル上で「パケットフィルタを利用しない」にすればよい。

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