接続時のセキュリティの設定(Ubuntu 18.04 amd64)

VPS接続時のセキュリティを高めるため、SSHのポート設定とファイヤーウォールの設定を行います。

環境

Ubuntu 18.04

【重要】さくらのVPSでSSHポート番号とファイアウォールの設定をする前に

さくらのVPSでは、初心者の方でも基本的なセキュリティが保てるように、VPSのコントロールパネル側でパケットフィルター機能を提供しています。
このパケットフィルター機能が有効になっている場合、本ページで説明するポート番号設定やファイアウォールの設定がうまく動かないため、パケットフィルター機能を無効にする必要があります。

パケットフィルターが利用中になっている場合は、「パケットフィルターを設定」を押して、パケットフィルターを「利用しない」を選択します。

これでポート番号とファイアウォールの設定をする事前準備ができました。

1.SSHのポート変更

初期の22番ポートのままでも問題はないですが、ブルートフォースアタックで不正アクセスを試みようとする大量のログが残ることがありますので、SSHのポート番号を2222(1024~65535の任意の番号可能)に変更します。

まずは、SSHの設定ファイルを開きます。

ubuntu@:~$ sudo vi /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22

#Port 22の#を削除して、任意のポート番号に変更します。

#Port 22
 ↓(行頭の#を削除して、任意のポート番号に変更。例として2222を設定。)
Port 2222

設定ファイルを保存して、終了します。
次に、設定ファイルの内容を反映させるため、SSHを再起動します。

ubuntu@:~$ sudo systemctl restart sshd

2.ファイアウォールの設定

ファイアウォールの状態を確認します。
有効の場合は「active」、無効の場合は「inactive」が表示されます。

ubuntu@:~$ sudo ufw status
Status: inactive

ファイアウォールを有効にします。※無効にしたい場合は、「ufw disable」

ubuntu@:~$ sudo ufw enable

下記のメッセージが表示されますが、yを入力します。

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

先程設定したPort 2222の通信を許可します。

ubuntu@:~$ sudo ufw allow 2222
Rule added
Rule added (v6)

ファイアウォールの再読み込みをします。(ファイアウォールの設定を変更した場合は行う)

ubuntu@:~$ sudo ufw reload
Firewall reloaded

設定したPort 2222が許可されているか「ufw status numbered」で確認します。

ubuntu@:~$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 2222                       ALLOW IN    Anywhere
[ 2] 2222 (v6)                  ALLOW IN    Anywhere (v6)

表示されていれば設定完了です。

3.各サービスの通信許可

各サービスを許可する設定は下記の通りです。適宜、使用しているサービスによって設定しましょう。

http(80番ポート)を許可

ubuntu@:~$ sudo ufw allow 80

https(443番ポート)を許可

ubuntu@:~$ sudo ufw allow 443

ftp(20番または21番ポート)を許可

ubuntu@:~$ sudo ufw allow 20

4.通信許可したポート番号の削除

通信許可したポート番号を削除する場合には、「ufw status numbered」で削除対象ポート番号の左に記載されているリスト番号を確認します。

ubuntu@:~$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 2222                       ALLOW IN    Anywhere
[ 2] 80                         ALLOW IN    Anywhere
[ 3] 443                        ALLOW IN    Anywhere
[ 4] 2222 (v6)                  ALLOW IN    Anywhere (v6)
[ 5] 80 (v6)                    ALLOW IN    Anywhere (v6)
[ 6] 443 (v6)                   ALLOW IN    Anywhere (v6)

削除したいポート番号のリスト番号を下記のように指定することで削除できます。
(リスト番号3の443番ポートを削除する場合の例)

ubuntu@:~$ sudo ufw delete 3

削除して良いかの確認メッセージが表示されるので、yを入力します。

Deleting:
 allow 443
Proceed with operation (y|n)?

これで削除できました。

Rule deleted

念のため、「ufw status numbered」で対象のポート番号が削除されたか確認をしてください。
また、必ずファイアウォールの再読み込みをしてください。

5.Ubuntuのファイアウォール基本操作

ファイアウォールの有効化

ubuntu@:~$ sudo ufw enable

ファイアウォールの無効化

ubuntu@:~$ sudo ufw disable

ファイアウォールの再読み込み

ubuntu@:~$ sudo ufw reload

ファイアウォールの状態確認

ubuntu@:~$ sudo ufw status

以上でファイアーウォールの設定は完了です。