SSH接続のポート番号変更
サーバーへのSSH接続は通常22番ポートを使いますが,デフォルトのままだと,22番ポートで不正侵入してくださいといっているもので,バレバレです.
したがって,セキュリティ的に別のポート番号へと変えましょう.
環境
- CentOS 7.2 (VPS)
- Apache 2.4.6
ネットワーク設定済みを前提とします.
手順
1. SSHのポート番号を変更
設定ファイルは/etc/ssh/sshd_config
です.バックアップをとります.
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old
vi
等のエディタで/etc/ssh/sshd_config
を以下のように編集します.{your ssh port}
は適宜設定してください.設定できるポート番号については後述.
# 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 {your ssh port} # 先頭の#を消して,22から任意のポート番号へと変更
設定ファイルの構文チェック(以下のコマンド)でエラーが出なければOKです.
# sshd -t
ミスをしたら,以下のコマンドでバックアップファイルを使って設定ファイルを元に戻します.
# cp /etc/ssh/sshd_config.old /etc/ssh/sshd_config
ポート番号について
Wikipediaによると,以下の通りポート番号は定められているみたいです.
種類 | 範囲 | 内容 |
---|---|---|
WELL KNOWN PORT NUMBERS | 0番 – 1023番 | 一般的なポート番号 |
REGISTERED PORT NUMBERS | 1024番 – 49151番 | 登録済みポート番号 |
DYNAMIC AND/OR PRIVATE PORTS | 49152番 – 65535番 | 自由に使用できるポート番号 |
自由に使用できるポート番号である49152番 – 65535番のうちから任意に1つ選んでSSH接続用としましょう.選んだポート番号はサーバー管理者以外には漏らさない!
2. 設定を反映
sshd
を再起動して,設置を反映します.
# systemctl restart sshd
3. ファイアウォールを設定
CentOS上でファイアウォールを使っている方は,SSH接続用のポート番号を開放してあげます.CentOS上でファイアウォールを使っていない方はここは飛ばしましょう.
以下のコマンドでできます.{your ssh port}
は上で設定したポート番号を指定しましょう.
# firewall-cmd --add-port={your ssh port}/tcp --permanent
# firewall-cmd --reload
両方のコマンドで,success
と出ればOKです.解説すると,1つ目のコマンドでポート番号を開放します.--permanent
属性をつけることで恒久的に開放できます.2つ目のコマンドでファイアウォールの設定を再読み込みすることで,ポート開放の設定を反映しています(たぶん).
4. SSH接続用のコマンド
macOSやLinuxからだと,以下のコマンドでサーバーに接続できるようになるはずです.Windowsの人は...私はRLoginを使ってます.
$ ssh -p {your ssh port} {workuser}@{your server's ip address}
おわりに
SSH接続用のポート番号を変更できました.
サーバー運営でのセキュリティ対策は難しいですが,しっかり勉強していきたいですね.