Ubuntu Weekly Recipe

第353回 UbuntuのソフトウェアファイアウォールufwのGUI,Gufw再入門

この記事を読むのに必要な時間:およそ 2 分

ufw(Uncomplicated FireWall)と言えばUbuntuに最初からインストールされている「ファイアウォール」ソフトウェアであり,Gufwはそのグラフィカルフロントエンドです。今回は14.04から14.10にかけて大きく機能が追加されたGufwについて紹介します。

ufwの新機能

デスクトップ版もサーバー版もufwは最初からインストールされてはいるのですが,初期設定では無効化されています。ufwを使いたい場合は,その設定方法を確認したうえで自分で適切に設定する必要があります。

ufwもGufwも既に5年以上前の第76回第77回で詳しく紹介しています。基本的な機能や仕組み,コマンド体系についてはそれほど変わってはいませんので,まずはそちらを一通り読むようにしてください。

変更点は少ないものの,便利な機能がいくつか追加されています。5年前からUbuntu 14.04 LTSで使われているバージョン0.34-rcまでのufwの変更点のうち,主だった部分を挙げておきましょう。

egress filteringのサポート

前述の記事では「⁠今のところ)ufwはあくまでインバウンド通信の制御に特化しています」とありましたが,その2ヵ月後にはingressだけでなくegress filteringのサポートが追加されました。

具体的には「allow,deny,reject,limit」の後ろにホストに入ってくるパケットを制御するなら「in」⁠ホストから出て行くパケットを制御するなら「out」を追加します。

$ sudo ufw reject out smtp

上記の場合,ホストから外に出て行くSMTPパケットを遮断することになります。なおin/outどちらも指定しなかった場合は,従来どおりインバウンドのみの操作となります。

インターフェースの指定が可能に

to/fromによる宛先や上記のようなin/outに加えて,⁠on eth0」といった形でルールを適用するインターフェースを指定できるようになりました。

$ sudo ufw allow in on eth0 from 192.168.0.0/16

たとえば上記の場合,eth0のみ192.168.x.xからのパケットを許可します。さらに「on eth+」のように「+」を利用することで複数のインターフェースにマッチさせることも可能です。指定しない場合は,すべてのインターフェースにルールが適用されます。

IPフォワードの設定が可能に

14.04以降には,routeコマンドという形でIPフォワードの設定方法が追加されました注1)⁠

注1)
ただしまだstateを見ると言った細かい設定はできないようです。PREROUTINGなどの設定ができるわけではないため,ポートフォワードをしたい場合は/etc/ufw/before.rulesを編集する必要があるという点も変わっていません。
$ sudo ufw route allow in on eth0 out on eth1 to 10.0.0.1 port 80 from 192.168.0.1 port 80
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)

10.0.0.1 80 on eth1        ALLOW FWD   192.168.0.1 80 on eth0

上記のようなコマンドは以下のルールに変換されます。

-A ufw-user-forward -i eth0 -o eth1 -d 10.0.0.1 --dport 25 -s 192.168.0.1 --sport 25 -j ACCEPT

ただしこれを利用するためにはsysctlのIPフォワードに関する以下の設定を有効にしておく必要があります。

net/ipv4/ip_forward=1
net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1

一般的には/etc/sysctl.confや/etc/sysctl.conf.d/で設定しますが,ufwを使用している場合は/etc/uwf/sysctl.confの中にある設定を有効にするだけでもかまいません。

その他

  • ufw resetで設定をすべて初期状態に戻せるようになりました
  • IPv6が最初からサポートされるようになりました
  • ufw delete時もuwf status numberdの番号を指定できるようになりました

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入