WEB開発・運用ノウハウdev.Lab

2017.07.28

VPSでWordPressサイトを運用するサーバー構築(5)〜SSHポート番号変更・firewalldの設定〜

前回の記事でrootユーザーでのサーバーログインを制御しましたが、今回はさらにセキュリティ対策を行なっていきます。まずはSSHのポート番号について、デフォルトでは「22」が割り充てられているのですが、このポート番号をそのまま使用していると狙われる可能性があります。そのためできれば変更しておいた方が良いでしょう。

 

1. SSHのポート番号を変更する

1-1. サーバーに作業用一般ユーザーでログインした後でrootユーザーに切り替えます。その後SSHの設定ファイルである、「sshd_config」を編集するためvimエディタで開きます。

# vim /etc/ssh/sshd_config

 

1-2. ポート番号を指定する箇所をコメントインにして、空いているポート番号に指定します。

#Port 22 (変更前)
 ↓
Port 22222 (変更後:空いているポート番号を指定)

 

1-3. diffコマンドで編集前と編集後の差分を確認する。問題なければ変更内容を保存してエディタを終了します。その後、sshd_configファイル内に記述エラーがないかを確認します。

# diff /etc/ssh/sshd_config.copy /etc/ssh/sshd_config // 差分チェック
# sshd_config -t // 記述エラーチェック

 

1-4. SSHサーバーを再起動させて変更内容を反映させる

# service sshd restart

 

2. ポート番号変更に伴うfirewalldの設定

2-1. CentOS7の場合、firewalldでSSHポート番号の変更ルールを設定しないといけません。まずはfirewalldの設定ファイルである「ssh.xml」を「 /usr/lib/firewalld/services/」から「/etc/firewalld/services/」直下へコピーしておきます。

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

 

2-2. コピーしたfirewalldの設定ファイルのバックアップを取っておきます。

# cp /etc/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml.copy

 

2-3. 編集するために設定ファイルをvimエディタで開きます。

# vim /etc/firewalld/services/ssh.xml

 

2-4. xml内にポート番号に関する記述があるので、そこを新しく設定したポート番号に変更します。

<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="新しく設定したポート番号"/>
</service>

 

2-5. diffコマンドで編集前と編集後の差分を確認する。問題なければ変更内容を保存してエディタを終了する。

# diff /etc/firewalld/services/ssh.xml.copy /etc/firewalld/services/ssh.xml

 

2-6. firewalldを再起動させて変更内容を反映させます。successと表示されれば完了です。

# firewall-cmd --reload

 

この時に「firewall: command not found」と表示される場合は下記コマンドでfirewalldをインストールする必要があります。

# yum install firewalld

 

2-7. SSHサーバーを再起動させて変更内容を反映させます。

# systemctl restart sshd

 

2-8. 一度ログアウトして、新しく設定したポート番号でログインできるかを確認します。すでにデフォルトポート番号の22番は使えないため、ログインにはポート番号を指定したコマンドを入力します。

# ssh -p 22222 [USERNAME]@[HOSTNAME]

 


 

これでSSHのポート番号がデフォルトの22番から変更されたため、22番でのSSHログインはできなくなりました。こうすることで22番ポートを狙った攻撃を防ぎ、よりセキュリティがしっかりしたものとなります。

 

次回はさらにセキュリティが強固になる設定を引き続き行なってまいります。

 

(参考)
SSHのポート番号を変更 – SSHサーバーの設定
CentOS7(firewalld) – SSHのポート番号を変更する

 

 

 

  • このエントリーをはてなブックマークに追加
>>記事一覧に戻る