インフラエンジニアをしてきて11年近くになりますが、実はインターネットルータを構築した事がほぼないんですよね。 以前、ある中小企業の拠点間接続にインターネットVPNを構築したことがありますが、それも10年くらい前。
かなり懐かしい話ですが、最近、ルーターのコンフィグをチェックしていていろいろと勉強になっています。その一つが、ルータのファイアウォール機能です。 基本的にインターネットに接続するルーターは、ファイアウォール機能で外部からの通信はほぼ遮断することになります。
そこで出てくるキーワードが「ステートフルインスペクション」です。これについてわかりやすく説明されたサイトから抜粋します。
ステートフルパケットインスペクション 【 SPI 】 Stateful Packet Inspection
この機能は、ファイアウォールを通過するパケットのデータを読み取り、内容を判断して動的にポートを開放・閉鎖する機能のことです。
ステートフルパケットインスペクションでは、LAN側から送信したデータをセッションログとして保管しておき、WAN側から到着したパケットがセッションログと矛盾しないか確認する。上の例では、WAN側からACK信号がついたパケットを受信した際に、そのパケットに対応するデータがLAN側から送信されたかどうかセッションログを用いて確認する。もし、WAN側から送信されてきたパケットとセッションログが矛盾する場合にはパケットを遮断し、LAN内部のマシンを不正アクセスから保護する。
と便利な機能なんです。これを利用しない場合、戻りの通信を感がなければならないそうなんですが、この機能のおかげで外からは全部遮断して、内から外へはステートフルインスペクションで動的にポート開閉という感じになります。
ちなみに、メーカーや機器によって、実装状況に多少違いがあります。例えば、アライドのルーターにはこの機能が実装されていて、ファイアウォールが有効にすると機能も有効になります。
そして、Cisco ASAやJuniperのSSGやSRXなどの主要なFWではステートフルインスペクションがデフォルトで有効な仕様なので、特に設定が必要ありません。
そこで、、、気になったのがヤマハなのです。あるYAMAHAルーターのコンフィグでダイナミックフィルターを定義してあったり、戻りの通信を許可してあったものを見たことがあったので、なぜか?と思ったら、YAMAHAは別で設定がいるようです。
この記事で、フィルタの設定を行う場合、「内から外へはtelnet等を許可したいが、 外から内へは拒否したい」というケースがありますが、 establishedフィルタを利用することにより、 これを簡単に実現することができますとあります。
以下に設定例を挙げます。# pp select 1pp1# ip filter 1 pass * * establishedpp1# ip filter 2 pass * * tcp ftpdata *pp1# ip pp secure filter in 1 2
このestablishedを入れておけば、ステートフルインスペクションが機能するようです。機種によって設定も変わりますし、ちょっと注意が必要ですね。