Ubuntuでは標準で利用できるufwをDebianにインストールして、簡単にファイアウォールの設定をしていきます。
ufw(Uncomplicated FireWall)とはiptablesのフロントエンドとなるツールで、iptablesのルールを簡単に設定できるツールです。
iptablesから設定してもいいのですが、慣れるまでは少し難しいと思いますので、今回はufwを用いて設定していきます。
ufwのインストール
以下を実行してufwをインストールします。iptables等依存するパッケージも同時にインストールされます。
$ sudo apt install ufw
フィルタリングルールの設定
今回は、ssh、http、httpsのみを許可し、その他のアクセスは拒否する設定にしていきます。この要件を満たすために、基本的に全てのパケットを拒否し、許可するパケットのみ指定する「ホワイトリスト方式」で設定を行います。
全てのパケットを拒否します。
$ sudo ufw default deny
簡単に設定するために、アプリケーション名で許可するサービスを設定します。以下のコマンドで利用可能なアプリケーション名の一覧が表示されます。
$ sudo ufw app list
Available applications:
(省略)
SSH
Socks
Telnet
Transmission
Transparent Proxy
VNC
WWW
WWW Cache
WWW Full
WWW Secure
(省略)
上記に表示されたリストのうち、今回使用するのは「SSH」と「WWW Full」です。ufw allowコマンドでアプリケーションを指定します。
※その他に許可したいサービスがある場合は以下を書き換えて実行してください。
$ sudo ufw allow 'SSH'
$ sudo ufw allow 'WWW Full'
以下のコマンドを実行し、ufwを有効化します。
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
最後にufwのステータスを確認して終了です。デフォルトで全てのパケットを拒否し、sshの22/tcp、httpとhttpsの80,443/tcpが許可されているのが確認できます。
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (SSH) ALLOW IN Anywhere
80,443/tcp (WWW Full) ALLOW IN Anywhere
22/tcp (SSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (WWW Full (v6)) ALLOW IN Anywhere (v6)
コメント