Ubuntuにファイアウォールをインストールする

Ubuntuのデスクトップインストールには、デスクトップユーザにとって役立つソフトウェアが数多く用意されているが、デフォルトではファイアウォールがインストールされない。だが幸いにして、Ubuntuでファイアウォールを設定して実行するのはとても簡単だ。

Ubuntuのデフォルトインストールでファイアウォールが設定されないのは、むしろ私にとってはありがたい。私のコンピュータの大部分はどんな場合もファイアウォールの背後で使うので、すでにその環境ができているのに、ファイアウォール関連の質問に答える必要があるインストーラにはいつも困っていたのだ。それに、新たにファイアウォールが必要だとしても、設定は自分で行える。Ubuntuはある程度企業向けデスクトップを目指したものなので、ファイアウォールが不要なインストール環境も多い。

しかし、Ubuntuデスクトップマシンがインターネットに直接つながっている唯一のコンピュータなら、ファイアウォールを設定しておくのが得策だろう。厳密に言えば、Ubuntuにはファイアウォールが含まれている。そのため、iptableを使ってすべての設定を手作業で行うことも可能である。ただし、その手順は多くのユーザにとって少々難解である。そこで、簡単な手順をいくつか実施するだけでファイアウォールを設定できるGUIアプリケーションをインストールしてみよう。

ここでは、ファイアウォールを設定するための2つのパッケージを紹介する。1つ目はLokkitというアプリケーションで、簡単ないくつかの手順に従えば、基本的なファイアウォールの設定ができる。Lokkitは非常に使いやすく、ファイアウォールについてほとんど理解していなくても設定が可能だが、オプションが少ないため、複雑なファイアウォールの設定には向いていない。

これに対してGuarddogは柔軟性の高いGUI方式のファイアウォール設定プログラムで、その内容はLokkitよりずっと複雑だ。ファイアウォールの設定を理解している場合にのみ、Guarddogを選ぶとよい。

LokkitまたはGuarddogのインストールを行うには、SynapticまたはAdeptを起動して適切なパッケージをインストールする。APTを使ってインストールする場合は、Lokkitの場合はsudo apt-get install gnome-lokkitを、Guarddogの場合はsudo apt-get install guarddogを実行するだけでよい。

Lokkitによるファイアウォールの設定

Lokkitを使った基本的なファイアウォールの設定は簡単だ。まずはスーパーユーザの権限でLokkitを実行する必要がある。Alt-F2キーで「Run Command」ダイアログを開き、gksudo gnome-lokkitを実行すればよい。パスワードを入力し終えると、「Configure Firewalling」ダイアログが現れる。

Lokkitの設定ウィザードの使い方は説明がいらないほど簡単である。IRC経由でDCCファイルをやりとりする必要がない限り、まずは「High Security」オプションの設定から始めることをお勧めする。また、DHCPを使ってケーブルモデムまたはDSLモデムからIPアドレスを取得している場合は、DHCPを有効にするかというLokkitの質問には「Yes」を選択する。ケーブルモデムまたはDSLモデムがあれば、DHCP経由でIPアドレスが取得されるはずである。

ネットワーク上にそのコンピュータしか存在しない場合は、おそらくどのサービスも有効にする必要はないだろうから、有効にするかどうかを尋ねられたら「No」を選択するのが無難だ。デフォルトでは、ここで「No」を選択していても、ネットワークインタフェース経由で接続されるホストを信頼しても安全か、というLokkitの質問に「Yes」と答えさえすれば、SSHポートはローカルネットワーク上のマシンに対して開かれたままになる。

いくつかの質問に答え終わると、ファイアウォールを有効にする準備が整ったことがLokkitから知らされるので、変更内容を適用してファイアウォールを起動するか、取り消すかを選択する。

ファイアウォールに問題がありそうなら、Lokkitをもう一度実行し、「Disable Firewall」を選択してファイアウォール・ルールを削除することができる。

Lokkitは簡単に使え、適度な数のファイアウォール・ルールを設定してくれる。ただし、もっとも厳しいルールを選んでもSSHやVNCのポートはオープンになるので、pingや、BitTorrentのようなサービスの実行が可能になってしまう。本当に厳しいファイアウォール・ルール、またはもっと複雑なファイアウォールが必要な場合は、Guarddogをあたるとよい。

Guarddogによるファイアウォールの設定

Guarddogを使ってファイアウォールを設定するには、gksudo guarddogを実行する。Guarddogは一般ユーザとして実行できるが、その場合はあとでスーパーユーザとしてファイアウォール・ルールを別途読み込まなければならない。

GuarddogはLokkitよりもずっと複雑なものだ。Guarddogを立ち上げると、最初に「Zones」タブが表示される。ゾーンとは基本的にIPアドレスの集合であり、そのアドレス群に適用するファイアウォール・ルールを定義するために使われる。たとえば、プライベートネットワーク内のIPアドレスを持つローカルエリアネットワーク上にコンピュータがある場合、そこにあるアドレスすべてに対して1つのゾーンを設定できる。Guarddogにはデフォルトで2つの定義済みゾーンが用意されている。ほかのゾーンに一致しないすべてのIPアドレスを表すInternetゾーンと、ローカルマシン上のIPアドレスを表すLocalゾーンだ。

LAN用のゾーンを設定するには、「New Zone」をクリックしてから「Zone Addresses」の下にある「New Address」をクリックする。「Address」フィールドでは、単一のアドレス、またはネットワーク全体をカバーするネットワークマスクを追加できる。たとえば、LANが10.0.0.0の範囲にあってIPアドレスの範囲が10.0.0.1~10.0.0.255だとすると、アドレスを10.0.0.0/24として設定することが可能である。

Internetゾーン経由で接続されたマシンではなく、ローカルマシン用に異なるルールが必要であれば、そうしたコンピュータに対してアドレス指定を行うためのファイアウォール・ルールを設定できるようにLocalおよびInternet以外のゾーンを設定することになる。Internetゾーンについて考える最善の方法は「最も条件の厳しい」ゾーンとしてとらえることだ。つまり、インターネットのホストから来るトラフィックについては、ぎりぎり最小限しか許容しないようにする必要がある。

続いて、プロトコルの設定を行う。ここでは、有効にしたいプロトコルをGuarddogに対して厳密に指示する必要がある。明示的に許可されない限り、すべて無効になってしまうので、この操作は少し面倒になることがある。デフォルトでは、DNSやHTTP、POP3も含めて何も許可されていない。各ゾーンについて有効にしたいプロトコルをすべて選択し、「Apply」をクリックする。ルールを承認したら、Webの閲覧、メールの受信、その他必要な機能が行えるかどうかを確認する。うまく行かなければ、許可したプロトコルにもう少し手を加える必要があるかもしれない。

Guarddogではログ出力のオプションも設定できる。発生している何らかのブロックやリジェクトを確認するためにログを読むことがなければ、ログ出力を無効にしてもよい。デスクトップユーザの場合、ファイアウォールの問題を解決しようとしない限り、おそらくログ出力は必要ないだろう。

最後に、Guarddogに必要なプロトコルに相当するルールが含まれていない場合は「Advanced」タブにおいて、カスタムのプロトコルを設定できる。プロトコルの追加が必要な場合は、この設定について説明したGuarddogのヘルプを参照してもらいたい。

もし対象のデスクトップマシンを多数のマシンのためのルータとファイアウォールとして利用したい場合は、IP マスカレードを使ったNetwork Address Translation(NAT)の設定が必要になるかもしれない。ただし、本稿およびGuarddogの対象範囲を超えてしまうので、システムをルータと設定する場合には、代わりにGuidedogをあたってみるとよい。

Guarddogを使ってすべてを思い通りに設定するのは少し面倒かもしれないが、おそらく時間と手間をかけるだけの価値はあるだろう。

Linuxデスクトップをファイアウォールで保護するには、LokkitとGuarddogのどちらかで十分なはずだ。どちらも趣向に合わないという場合でも、Ubuntuにはファイアウォール設定ツールがほかにも用意されているので、おそらく好みのものが見つかるだろう。

NewsForge.com 原文