サーバーへのSSH接続は通常22番ポートを使いますが,デフォルトのままだと,22番ポートで不正侵入してくださいといっているもので,バレバレです.

したがって,セキュリティ的に別のポート番号へと変えましょう.

環境

  • CentOS 7.2 (VPS)
  • Apache 2.4.6

ネットワーク設定済みを前提とします.

CentOS7.2 ネットワーク設定メモ

手順

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接続用のポート番号を変更できました.

サーバー運営でのセキュリティ対策は難しいですが,しっかり勉強していきたいですね.