環境
開いているポートを確認する
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 [::]:*
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の場合、ファイアウォール設定だけでは通信できない。そんなときは、コントロールパネル上で「パケットフィルタを利用しない」にすればよい。