ufw(Uncomplicated FireWall)とは Linuxの「netfilter」によるファイアウォールを管理するためのフレームワークでiptablesのラッパーとして機能します。ufwを使用するとiptablesを直接操作するよりも容易にファイアウォールを設定することができます。Ubuntu16.04LTSのufwはデフォルトでは有効化されていません。これを有効化し外部に公開するポートを制限することでセキュリティーを高めます。
目次
1.インストール確認
以下のコマンドでufwのインストール状況を確認します。
1 2 3 4 5 6 7 8 9 |
$ apt-cache policy ufw ufw: インストールされているバージョン: 0.35-0ubuntu2 候補: 0.35-0ubuntu2 バージョンテーブル: *** 0.35-0ubuntu2 500 500 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 Packages 500 http://jp.archive.ubuntu.com/ubuntu xenial/main i386 Packages 100 /var/lib/dpkg/status |
インストールされていない場合はインストールします。
1 |
$ sudo apt install ufw |
2.ufw動作確認
(1)サービス起動確認
以下のコマンドで確認します。
1 2 3 4 5 6 7 8 9 10 |
$ systemctl status ufw ● ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab Active: active (exited) since 土 2017-10-07 10:12:07 JST; 1h 15min ago Process: 385 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU Main PID: 385 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CPU: 0 CGroup: /system.slice/ufw.service |
「Active」状況が”inactive”の場合はサービスが起動されていません。
startで起動、enableで自動起動設定にします。
1 2 |
$ sudo systemctl start ufw $ sudo systemctl enable ufw |
(2)アクティブ状況確認
以下のコマンドで確認します。
1 2 |
$ sudo ufw status 状態: 非アクティブ |
後程アクティブにしますので今はそのままにしておきます。
3.ufwファイアウォール設定
(1)初期設定
以下のように初期値を全拒否設定にします。
1 |
$ sudo ufw default deny |
(2)必要ポート有効化
外部接続で使用するポートを有効化します。まず、Terminal接続ができるようにSSHポートの接続を有効化(許可)します。
1 |
$ sudo ufw allow 22 |
ポート番号の代わりに「OpenSSH」を指定することもできます。使用可能なアプリケーションリストは以下のコマンドで確認できます。
1 2 3 4 |
$ sudo ufw app list 利用可能なアプリケーション: CUPS OpenSSH |
アプリケーションリストの設定ファイルは/etc/ufw/applications.d/にあります。
(3)udp設定
udpポートを指定する場合はポート番号の後ろに/udpを追記します。
以下はopenvpn接続の許可設定です。
1 |
$ sudo ufw allow 1194/udp |
4.ufwの有効化
ufw enableで有効化、disableで無効化できます。以下はufwを有効化して状態を確認しています。有効化時に(y|n)?の確認要求がありますが「y」を応答します。
1 2 3 4 5 |
$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)?y ファイアウォールはアクティブかつシステムの起動時に有効化されます。 $ sudo ufw status 状態: アクティブ |
5.ファイアウォール確認
(1)リモートデスクトップ接続
上記設定により明示的に許可したポート以外で接続できないことを確認します。まずはリモートデスクトップ接続を試してみます。
接続してみると以下のエラーになりました。
ufw設定が有効であると確認できました。。
(2)追加設定
リモートデスクトップ接続はデフォルトで3389番ポートを使用します。有効化して状態を確認します。
1 2 3 4 5 6 7 8 9 |
$ sudo ufw allow 3389 $ sudo ufw status 状態: アクティブ To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3389 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 3389 (v6) ALLOW Anywhere (v6) |
(3)再確認
再度リモートデスクトップ接続を試します。以下のように接続できました。
(4)許可済ポート削除
許可済みポートを削除するには、statusオプションに「numbered」を指定し付与された番号を使用します。以下のように「ufw delete 4」を実行すると[ 4] OpenSSH (v6)の設定が削除されます。
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo ufw status numbered 状態: アクティブ To Action From -- ------ ---- [ 1] OpenSSH ALLOW IN Anywhere [ 2] 3389 ALLOW IN Anywhere [ 3] 1194/udp ALLOW IN Anywhere [ 4] OpenSSH (v6) ALLOW IN Anywhere (v6) [ 5] 3389 (v6) ALLOW IN Anywhere (v6) [ 6] 1194/udp (v6) ALLOW IN Anywhere (v6) $ sudo ufw delete 4 |
6.参考にさせて頂いたサイト
ありがとうございます。