13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

iptablesコマンドよりも簡単に使えるufwコマンドでファイアウォールを設定する

Last updated at Posted at 2020-02-21

ファイアウォールを設定する意味

ファイアウォールとは外部ネットワークからの不要なアクセスを遮断したり、サーバに負荷をかけるアクセスを制限したりする機能です。

具体的には不必要なポートをあらかじめ閉じておくことでそのポートを通したアクセスを遮断することができます。

これを行うことにより、安心してサーバを外部公開できるようになります。

各Linuxディストリビューションでは標準でこの機能を用意しています。

ここではUbuntuを例にしていますが、基本的には他のディストリでも同じコマンドでいいはずです。

iptablesコマンド

ファイアウォールの機能であるパケットフィルタリングできるコマンドです。

オプションを駆使すればかゆいところにも手が届きますが、初心者が使いこなすにはハードルが高いです。

ということで初心者エンジニアは次に紹介するufwコマンドをまずは覚えましょう。

iptablesの設定について詳しく知りたい方は以下を参考にしてみてください(何もわからないことがわかる)。

【丁寧解説】Linuxファイアウォール iptablesの使い方

ufwコマンド

現在のネットワーク設定を確認する

では早速現在の設定を確認してみます。

sudo ufw statusを実行

vagrant@ubuntu-xenial:~$ sudo ufw status
Status: inactive

Uncomplicated FireWallの略ということで、complicate(複雑な) + un(打ち消す)、つまり簡単なファイアウォールという意味です。

最初はinactiveとなっていて、active(アクティブ) + in(打ち消す)非アクティブということになる。

動いてないよーってことですね。

un-in-も打ち消す意味を持っています。

ファイアウォールをアクティブにする

sudo ufw enableを実行

vagrant@ubuntu-xenial:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

これで有効化されました。

default設定をOFFにする

ターミナルでサーバにsshしている場合はタブをもう一つ開いてサーバに接続しておきましょう。

sudo ufw default denyを実行する。

vagrant@ubuntu-xenial:~$ sudo ufw default deny
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)

これでサーバに外部からアクセスすることができなくなるため、誤って実行したターミナルのタブを閉じてしまった場合そのサーバにアクセスできなくなります。

HTTP/HTTPS(Nginx:Webサーバ)用の80, 443番ポートへのアクセスを許可する

次に同じターミナルでsudo ufw allow 'Nginx Full'を実行してください。

vagrant@ubuntu-xenial:~$ sudo ufw allow 'Nginx Full'
Rule added
Rule added (v6)

事前にアプリケーション一覧を見たい場合は以下のように確認しましょう。

vagrant@ubuntu-xenial:~$ sudo ufw app list
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

SSH接続用のデフォルトポート(22番)を許可する

sudo ufw allow 'OpenSSH'を実行する。

vagrant@ubuntu-xenial:~$ sudo ufw allow 'OpenSSH'
Rule added
Rule added (v6)

設定を再確認する

最後にファイアウォールの設定を再確認する。

sudo ufw status

vagrant@ubuntu-xenial:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
Nginx Full                 ALLOW       Anywhere                  
OpenSSH                    ALLOW       Anywhere                  
Nginx Full (v6)            ALLOW       Anywhere (v6)             
OpenSSH (v6)               ALLOW       Anywhere (v6) 

上記設定になっていればOKです。

これでリモートアクセスとWebサーバへのアクセスのみを許可しているサーバが完成しました。

まとめ

これで外部公開するサーバとして最低限のアクセス制限ができました。

次のステップは自分のWebアプリを公開することです。

プログラマーとして成長する秘訣は自分で作ったサービスを保守し続けることだって誰かが言ってた。

頑張りましょう。

13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?