SOHO向けルーターのセキュリティーを強化するPacketProtector

 組み込み型Linuxディストリビューションでは、OpenWRTがよく知られている。SOHO環境で一般的なワイヤレス・ルーターの多くで動作し、その種のものとしては初めて広く使われるようになったディストリビューションだ。 PacketProtector はそのOpenWRTをベースとして作られ、半年前に紹介したX-Wrt紹介記事)と同様、ネットワーク・セキュリティーを強化するための機能を標準搭載している。

 PacketProtectorの特長は、適切に準備しておけば、USBドライブをスワップやストレージに使えること。ただし、現時点でサポートしているルーターはLinksys WRTSL54GSとAsus WL-500g(DeluxeまたはPremiumモデル)だけだ。PacketProtector.orgが評価用に貸与しているLinksys WRTSL54GSを入手し、外部USB IDEドライブとUSBキー・フラッシュ・ドライブと共に使ってみたので報告する。

 ここで注意点を1つ。プロジェクトもホーム・ページで警告しているが、フラッシュ・ドライブの寿命は比較的短く、書き込みは1万~10万回までというのが通例だ。スワップ領域は頻繁に書き込みが行われるので、外部ドライブとして使うならフラッシュ・ドライブよりもUSBハードドライブの方がよい。

 インストールは3つの手順から成る。まず、PacketProtectorファームウェアをルーターにダウンロードしインストールする。その際、PacketProtector.orgホーム・ページにある注意書きに留意すること。そこには、サードパーティーのファームウェアをインストールするとルーターの保証が受けられなくなる場合があること、またルーターが使用不能になる場合があると書かれている。次に、USBドライブにPocketProtectorファイルとディレクトリーをインストールする。最後に、USBドライブをルーターに接続する。この最後の手順を忘れないように。

 インストールの手順は、PacketProtector.orgのサイトに掲載されている。使用するルーターとインストールに使うプラットフォーム(Linux、Mac OS X、Windows)の違いも考慮されており、至れり尽くせりの解説だ。貸与されたルーターのファームウェアは、すでに、Linksysの本来のものからPacketProtectorのものに換わっていた。したがって、この手順は不要だったが、敢えて再インストールしてみた。手順はほぼ同じで、ブラウザーとルーターのWebサーバーを使ったかなり単純な作業だ。何度目のインストールであっても、インストール後、rootのデフォルト・パスワードを変更することを強くお勧めする。

 次の手順は、プロジェクトのサイトでは、USB tarballをダウンロードし、展開し、USBドライブにコピーするとなっている。しかし、ターミナルを開いてUSBドライブのルート・ディレクトリーに移動し、そこで、ダウンロードしたtarballを展開する方が簡単だ。コマンドは「tar xzf ~/packetprotector.tar.gz」。

 次にUSBドライブに接続するのだが、その前に自分のワイヤレス・ルーターを貸与品と交換した。そして、WANポートにケーブル・モデムを接続し、4つあるLANポートの1つにデスクトップ・パソコンを接続してから、貸与されたルーターの電源を入れた。これで、自由にインターネットが使え、SSHまたはHTTP経由でルーターに接続できるようになったわけだ。まず、デフォルトのパスワードを使いSSHを介してrootでサインインした。すると、文字だけのロゴ画面が現れる。

 rootのパスワードを変更してSSH接続を終了、Webブラウザーからhttps://192.168.1.1を開いてログインした。この時点では再起動しておらず、まだUSBドライブを接続していない状態だ。このときのWeb Admin ConsoleはWRTのものと非常によく似ており、メニューにはInfo、Status、System、Networkが並んでいる。ここで、一旦、ログオフし、USBドライブを接続し、再起動した。

packetprotector_thumb.png
PacketProtector Admin Console

 再度PacketProtectorのAdmin Consoleを見ると、利用可能なオプションがかなり増えていた。前回あったメニューに、VPNIDS、IPS(Intrusion Prevention System)、Proxy、CA(Certificate Authority)、Usersが増えている。

 ファイヤウォール、IDS、IPSはあらかじめ構成済みで、すでに有効になっている。ただし、ファイヤウォールのログはとられていない。ログをとるには自分で有効に設定する必要があるのだ。これについて、リード・デベロッパーCharlie Vedaaは次のように説明している。「ログを有効にするにはipt_LOGカーネル・モジュール(insmod ipt_LOG)を挿入し、ログの対象とするルールに『-j LOG』というターゲットを追加する必要があるからだ」

 メニューのIDSを選択すると、空のSnortログが表示された。ほかに、LogsとSettingsというオプションがある。Settingsで用意されているルールはlocal.rulesとvirus.rulesの2種類だけ。これ以外のルールを使うには、snort.orgからダウンロードし、USBドライブの/packetprotector/etc/snort/rulesディレクトリーに移しておく必要がある。こうして追加したルールはSettingsのページに表示される。ここで、Enabledラジオ・ボタンを、次いでSubmitボタンをクリックすると、そのルールが有効になる。

 メニューのIPSを選択すると、IDSとほぼ同じページが表示された。違いは、Snort用ではなく、Snort-Inline用という点だけ。あらかじめ、裏口、ローカル、Webクライアント用のルールが用意されており、有効になっている。ほかに、bittorrent用のルールとSnort-Inlineをテストするための例もあるが、これらは有効にはなっていない。

 メニューのProxyからは、ログの閲覧や設定の確認、あるいはウィルス対策のテストを行うことができる。テストは、ウィルスを含んでいることがわかっているファイルをダウンロードすることで行う。テストにパスしたので、SettingsタブでDan’s Guardianコンテンツ・フィルターを有効にしてポルノやギャンブルをブロックした。このフィルターはGoogleのポルノを閲覧しても働く。Check for ClamAVシグニチャー・ボタンをクリックすると、何百というシグニチャーをダウンロードすることもできる。ただし、その内容については確かめていない。

 メニューのVPNを選択してみたが、rootユーザーに対する証明がないと言われてしまった。そして、rootの証明を作成するか、Usersでユーザー名とパスワードを追加し、一旦ログアウトしてから新たに作ったユーザーで再ログインせよと指示された。それに従うと、今度はOpenVPNソースコードをダウンロードする手順が示され、コンパイルしてPacketProtectorのクライアント(サーバーではない)にインストールせよと指示され、さらにOpenVPNのインストール後ユーザーとサイトで正しく構成するために必要な4つのファイルへのリンクが示された。そこで、今回はパスすることにした。

 今回の試用中、問題点を2つ発見した。一つはAdvanced FirewallにIRCでの接続に問題が発生するバグがあること。このバグはすでに改修されており、次回のリリースで提供される。もう一つの問題点は、PacketProtectorの起動が遅く、少々いらいらさせられること。Vedaaに尋ねると、デスクトップ・パソコンのARPキャッシュが壊れているのかもしれない、再起動してコマンド「arp -d 192.168.1.1」を実行してみるようにと言う。起動からLANが使えるようになるまで2分ほどかかっていたのだが、これが30秒ほどになるだろうというのだ。実際にやってみると改善した。同様の問題が発生したときは試してみるとよいだろう。

 新しいアプリケーションやユーティリティーを、OpenWRT、non-free、WhiteRussianの各リポジトリーから追加することができる。Asteriskはその一つだが、PacketProtectorは外部のUSBハードドライブにアクセスできるため、ルーターの内蔵フラッシュ・ドライブしかない場合よりも、試してみる価値があるだろう。

 PacketProtector.orgは、オープンソース・フリーソフトウェアの優れた例の一つだ。OpenWRT、OpenVPN、DansGuardian、ClamAVといった先人たちの仕事に積み上げる形で、自分たちの目標を定め、やり方を工夫している。その成果を使う人にとっても、素晴らしいことだ。

Linux.com 原文