ufwを使おう

ufwは、手軽なiptablesの設定ツール 。

細かい設定には、やはり、iptablesを直に触る必要があるみたいだけど、普通のデスクトップ用途において、どれだけ、その頻度があるかを考えた場合、ufwでいいのかもしれない。

僕も、一度、iptablesの設定にくじけて、デフォルト設定のまま使い続けてきたヘタレっ子なので、正直、このufwの登場は嬉しかった。しかし、すぐに飛びつけなかったのは、また難しいんじゃないの?という先入観です。

そんなわけで、ufwを見ていきましょう。

尚、本稿では、OSに、Ubuntuを使用しており、管理者権限を要する作業はすべて、sudoで行なっております。

とりあえず、有効にする

デフォルトでは、このufwは作動してる状態にはない。なので、これを有効にして、動かしてやらないといけない。

端末から、以下のコマンドにて、ufwが有効になり、次回起動時からは、何をせずとも有効な状態になる。

$ sudo ufw enable

これだけで、本当に有効になったのかと心配な方は、以下のコマンドで確認していただきたい。

$ sudo ufw status

有効になっていれば、firewall loaded というメッセージが表示される。

デフォルトのポリシーを設定する

次に、デフォルトのフィルタリングルール——ひとまず何のルールも設定していない状態で、入ってくる(incoming)信号を全許可するのか、全拒否するのかということ。——を選択する。

こういう話では定番の方法なのですが、まずは全拒否にしておいて、その後で、個別のルールを決めていきましょう。ひとまず、以下。

$ sudo ufw default deny

上のコマンドで、すべての接続要求を跳ね返す、全拒否(default deny)の設定になる。逆に、あまりお勧めしませんが、ひとまず、すべて許可したいという人は、上のコマンドの『deny』の部分を、『allow』にすればOK。

普通の用途のデスクトップであれば、これで設定完了!にしてしまってもOKだと思います。

サービス別の設定をする

それで、他に、何か都合のある人たちは、必要な信号の侵入は許可してあげなきゃいけない。

僕の場合を例にとると、自宅LANにつなげた他のマシンたちから、rsyncなどを使ってアーカイブを置きに来られたりする用途のマシンなので、それらからのsshによる接続だけを許可したい……という場合の対処。

僕のとこの自宅LANには、192.168で始まる、プライベートIPアドレスが割り振られているので、こんな感じにします。

$ sudo ufw allow proto tcp from 192.168.0.0/16 to any port 22

$ sudo ufw allow proto udp from 192.168.0.0/16 to any port 22

もっと簡潔に、$ sudo ufw allow ssh みたいな指定もできます。ただ、これだと、どこから?っていう指定をできないので、やっぱり、ちょっと長いけど、上のようにしたほうが良いかと。

なにはともあれ、これで、LAN内からのssh接続を受け入れる状態になった。もし、設定が反映されているか不安であれば……。

$ sudo ufw status

再び、こんな風に調べてやる。すると……。

Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     ALLOW   192.168.0.0/16
22:udp                     ALLOW   192.168.0.0/16

端末から、以上のような反応が返ってくるので、こうなっていれば、設定が反映されているということ。

とまあ、そんなわけでして、LinuxのFirewallも、ここまで簡単になってきました。後は、人によっては、GUIもあったら言うこと無いという人もいるでしょうが、そういう向きにも、ちゃんと、gufwという、GUIでufwをコントロールできる(iptablesに対するFirestarterみたいなもんですな)ようなものもあるらしいですよ。