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
以上でファイアーウォールの設定は完了です。