SOHO向けルーターのセキュリティーを強化するPacketProtector
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のAdmin Consoleを見ると、利用可能なオプションがかなり増えていた。前回あったメニューに、VPN、IDS、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といった先人たちの仕事に積み上げる形で、自分たちの目標を定め、やり方を工夫している。その成果を使う人にとっても、素晴らしいことだ。