ルーターとファイヤウォールどっちがイイ?

このエントリーをはてなブックマークに追加
この板で誤って「ファイアウォール」と呼ばれており、ショップで
も「ファイアウォール」という名称で売られている製品は、
実際には本来の意味の「ファイアウォール」ではない。
パケットフィルタ、コンテンツフィルタ、侵入検知、等の技術を
組み合わせて、本来は OS に最初から備わっているべきアクセス
制御機能の欠落を補うためのものだ。
「ファイアウォール」という力強い名称は安心感を与えてくれるが、
過信は禁物。なにしろソフトウェアの欠陥をソフトウェアで守ろうと
いうのだから。人間の作るものに完璧はありえない。
しかし前述したようにルータでは守れない攻撃をファイアウォール
ソフトが守ってくれる場合もあるので、両方を併用すればより安全
だと言える。しかし管理の手間はそれだけ増える事に注意。
ファイアウォールソフトウェアに様々な処理を行なわせると、
それだけスピードが落ちる。遅いマシンをブロードバンドに繋ぐ
時はファイアウォールによる性能低下が無視出来ない事がある。
本来の意味の「ファイアウォール」とは、ネットワークの入口に
パケットフィルタ、プロキシ、侵入検知、等を集中して設置し、
内部の多数のコンピュータ、サーバを個別に守るよりも、
管理の手間とコストを削減する、というセキュリティ手法を指す。
(昨今のワーム騒ぎはこの手法の限界を露呈したと言われている)
本物のファイアウォールは、ハードウェア製品だったり、
ソフトウェア製品だったり、その両方だったり、
あるいは特別な製品を使用せず慎重に設定した汎用OSやルータで
構築されていたりする。
パソコンショップで「ファイアウォール」として売られている物は
使用されている技術こそ共通しているが、本来のファイアウォール
とは別物であることは前述した通りだ。
ブロードバンドルータがどのようにして攻撃を防ぐのか見てみよう。
NAT はブロードバンドルータの主たる機能だ。
これは少数の(通常一個)のグローバル IP アドレスを、複数の
プライベートアドレスが割り当てられた PC で共有するための機能だ。
NAT はプライベート <--> グローバルのアドレス変換を行なう。
特に設定を変更していない限り、ルータの NAT 機能は
内側から外側への接続要求に対してはアドレス変換を行なうが、
外側から内側への接続要求に対しては変換を行なわない。
blaster 等のワームは外側から PC に接続し感染しようとするので
NAT は動かず、PCに接続したいワームはルータに接続する事になり、
内側の PC は守られる。ファームウェアにバグが無ければルータは
ワームの接続要求を受けつけないので、ルータ自身も安全だ。
(過去に CodeRed の攻撃でダウンしてしまうルータも実在した)
この外からの接続要求を受けつけないという NAT の特性は、
いくつかのサービスでは問題になる事がある。例えば昔のルータ
では FTP クライアントを Paasive モードに設定しないと
ルータ経由でのダウンロードが出来なかった。これは FTP プロトコル
がサーバからクライアントに向けての接続を使用するからだ。
最近のルータは FTP プロトコルを自動検出して一時的に外からの
接続要求を受けつけるように改良されている機種も多くなった。
ルータの「ポート転送」機能はこの欠点を補うための機能だ。
ポート転送機能は特定のポートに限り外からの接続要求を受け付け
る事で、そういう接続が必要なサービスを動かすためのものだ。
これはオンラインゲーム、ファイル交換ソフト、等で必要となる。
不用意にポート転送機能を使用するとそれだけ危険が増す事は
以上の説明を読んだ人には既におわかりだと思う。
「NAT 機能でセキュリティが強化される」という意味の事を言うと
青筋たてて反論する人達が居る。
おそらくは NAT そのものを敵視する IPv6 推進派 (彼らは個々の
PC に全てグローバルアドレスを割り当てるべきだと主張している。
そしてそのためには IPv6 が必要、というわけだ) のプロパガンダ
を鵜呑みにしたのだろう。
もちろん NAT は完璧なセキュリティ対策にはほど遠いが、
上で説明したような NAT の動作を理解して上手に使う事が肝心だ。
ブロードバンドルータを販売している会社にお願いしたいのは、
「DMZ 機能」という名称の変更だ。
これは本来の「DMZ」とはかけばなれた非常に危険な機能である。
ブロードバンドルータのいわゆる「DMZ機能」とは、簡単に言えば
全てのプロトコルの全てのポートを内側の特定のPCに転送する
機能である。
これを使うとその PC はインターネットに露出した状態となる。
ルータのセキュリティ機能はほぼ全て無効になってしまう。
この機能は LAN 上に置いたサーバを手っ取り早くインターネットに
公開するために利用できるが、ほとんどの場合ポート転送機能でも
充分な事が多い。
利用にあたっては慎重な上にも慎重を期すように。
どのような攻撃はルータで防ぐことが出来ないか。
・ウィルス。
 メールウィルスに感染したり、ウィルスをダウンロードして
 誤って実行してしまう事はルータは防いでくれない。。
・ブラクラや fusianasan トラップ等の不正な JavaScript。
 これらは HTTP のトラフィックな中に埋めこまれている。
 ルータはトラフィックの中味をチェックしない。
・トロイの木馬、スパイウェア
 これも同じく、ルータはトラフィックの中味について関知しない。
・ポート転送や DMZ 機能を使って公開した PC への攻撃。
 上の説明を参照。
・DoS (Denial of Service) 攻撃
 大量のパケットを送りつける事による DoS 攻撃には無力だ。
たいていのルータに備わっているもう1つのセキュリティ機能、
それが「パケットフィルタ」だ。パケットフィルタとは、TCP/IP
のヘッダに埋めこまれているアドレス、プロトコル、ポート番号、
等を元にルータを通過させるかどうかのチェックをする機能だ。
残念ながらブロードバンドルータの多くではあまり高度なフィルタ
機能は備わっていない。たいていは内側から外に向かっての接続
を制限する機能だけが備わっている事が多い。
もちろん Yamaha のルータのように立派なパケットフィルタ機能が
備わっている機種もあるが、むしろ少数派である。
パケットフィルタを設定するうえで守るべき原理は、
「原則として通過を禁止、必要最低限のものだけを許可」なのだが、
この原則が守れるルータは少数派だ。たいていは設定出来るルール
の数が少過ぎるし、そもそも「禁止」のルールしか作れない機種も
多いので、教科書通りにいく事はまずない。
ルータのパケットフィルタ機能は「自分の PC が万一感染したとき
誤って他人の PC を攻撃しないようにするくらいのつもりで
135〜139, 445, 593, 1433〜1434 程度のポートを TCP/UDP 共に
塞いでおけばいいだろう。
ステートフルインスペクションとは何か?
「ステートフルインスペクション」あるいは「ステートフル
パケットフィルタ」と呼ばれているのは、上で説明したような
パケットフィルタの欠点を補うためのものだ。
従来の「静的」なパケットフィルタでは、使う可能性のあるパケット
は最初から全て許可しておく必要がある。たとえそれが月に1回、
何かのサービスを動かす時にだけ使うものであったとしてもだ。
ステートフルなパケットフィルタでは、接続要求や切断要求等が
発生した時点で動的にパケットを許可したり禁止したりする。
ルータ自身がプロトコルの動作を知っていて、必要に応じて
どんどん設定を変えていってくれていると思っても良い。
これにより普段からポートを開けっぱなしにしておかなくても
よいのでセキュリティが高まる、設定が簡単になる、特殊な
プロトコルを使用するサービスが利用可能、等のメリットがある。
ただしルータによってはステートフルインスペクションを有効に
するとポート転送機能が利用できない機種もあるので注意。
PPTP/L2TP パススルー機能とは何か?
ルータによっては PPTP/L2TP パススルーという機能を備えている。
これは VPN (Virtual Private Network) に使用される PPTP や L2TP
をルータ経由で利用できるようにするための機能である。
なぜこれがわざわざ書くような事かと言えば、これらのプロトコル
が、一般的な TCP や UDP ではなく、独自のプロトコルを使うためだ。
古い機種では TCP や UDP 以外には NAT 機能を適用できなかったり、
そもそもルータを通過できなかったりして VPN が使えなかった。
それで最近の機種では PPTP や L2TP に対応したというわけだ。
本格的な VPN で利用する IPSec プロトコルも NAT との相性が悪く、
たいていのブロードバンドルータは通過出来なかったが、最近は
これについても「IPSec パススルー」機能を備えた機種が登場した。
「ステルス機能」というおおげさな名前の付いた機能を備えたルータがある。
実はこれは ping 等のスキャンに応答しないようにするだけの事。
多少は見つかりにくくなるが、セキュリティの向上にはほとんど寄与しない。
ルータのスペックで見かける "unnumbered" とは何か?
これは複数の IP アドレスを割り当ててくれるプロバイダに接続する
ために必要な機能だ。通常の方法、つまり "numbered" の場合は、
ルータの LAN 側に1つ、WAN 側にも1つの IP アドレスを設定する。
numbered で IP 8 個の契約をすると、8 個+WAN 側の一個の IP をくれるわけだ。
今ではあまり見かけないが、実際にこのようなプロバイダを見た事がある。
ところでこの WAN 側の IP はいったい何のためにあるのだろうか?
IP 一個の場合は NAT のために必要だが、複数 IP の場合は LAN 側に
一個のグローバルアドレスを割り当てるのだから必要ないではないか。
実際 WAN 側はプロバイダのモデムとユーザのモデムが一対一 (これを
point-to-point という) で接続しているのだから。IP が無くても
パケットをやりとりする事は不可能ではない。だったら省略してしまえ!
これが unnumbered である。実際の設定方法は
・LAN 側と WAN 側に同一の IP を設定する。
・陽に "unnumbered" だと設定する。
・デフォルト経路に IP ではなくデバイスを指定する。
などいろいろなのでルータの説明書を参考にして欲しい。