パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

FreeBSD に pf が組み込まれる」記事へのコメント

  • 若干ストーリーにそぐわないかも知れませんが、商用ファイアウォールではアプリケーションレベルまで見る FireWall-1 と ASIC の NetScreen が戦っていますが、とかく高価な商用ファイアウォールに匹敵するオープンソースのパケットフィルタってありますか?

    昔は ipfw のルールをガリガリ書いたりしましたが、UDP 関連のルールが煩雑になるし、スプーフィング対策でインタフェースレベルまでフィルタを記述するとテストが大変だったりします。

    だから、以下のような機能を実装して
    • IP Filterの場合ですが、

      • UDP疑似セッション:
        udpに対するkeep state指定のこと?

      • セッションテーブルに基づくTCPの確立した通信のチェック:
        セッションテーブルってTCPのレベルのこと? keep state指定のこと?

      • 許可と拒否のログ
        ログ自体が記録だと思うんですが、それはさておき可能です。

      • 非passiveなFTPの許可:
        NATのftp proxyを用意すればOKかな。

      • スプーフィングの検出:
        機能の意味がよ

      • by fil (17752) on 2004年03月09日 23時22分 (#511051)
        短くいえば FTP と UDP を含むステートフルインスペクションが可能で、スプーフィング対策のルールが自動的に生成されるパケットフィルタがあったら嬉しいという意味です。

        セッションテーブルと疑似セッションはほぼ keep-state で実現しているとは思います。ただ、ipfw しか知りませんが、割と皆さんやっている established な通信は ALL ALL で許可は開けすぎなので、keep-state するルールとセットで establlished な通信は通過させるルールが必要になり全部 2 行ずつ書くことになり面倒。しかも性能的に established を許可する行は上の方に持って行く必要がある。商用ファイアウォールならセッションテーブルに基づく処理は最上位に自動的に配置される。

        ipfw だと内部にあるセグメントをソースとする通信が、外部のインタフェースから到達した場合に drop することでスプーフィングを防止すると思います。

        商用ファイアウォールの場合は、どのインタフェース側にどのネットワークが存在するかという設定を登録してスプーフィングを判定したり、ルーティングテーブルから想定されるネットワーク(通信するホストは当然ルーティングテーブルに乗っているので必然的に配置がわかる)に基づいて自動的にスプーフィングを判定します。これは製品によって違います。
        親コメント
        • ipfilterのkeep stateでは、
          コネクション確立パケットを通せば、あとはセッションテーブル
          に基づいてよきにはからってくれますよ。また、こちらは聞いた
          だけなので不確かですが、シーケンスナンバーとかもしっかり
          見ているみたいです。ただ、単体ではアプリケーション層まで
          はカバーしてくれないので、適宜Proxyと組み合わせる必要が
          ありますね(FTP等)。
          親コメント
        • すいません, 私の理解不足なのですが

          > established な通信は ALL ALL で許可は開けすぎ

          なのは何故でしょうか? establishedパケットはTCPのみですし, TCPなら前段階でSYN/ACKによる接続の確保が必須なので, この前段階だけフィルタリングしてやればTCP通信ができることに対する制限はかけられると思うのですが.

          親コメント
          • by Anonymous Coward on 2004年03月10日 15時46分 (#511481)
            元記事だとipfwということだから、establishedフラグはTCP
            としてコネクションが確立されているかではなく、単にRSTか
            ACKが付いているかでしか判断してないので
            ipfw add allow tcp from any to any established
            :
            ipfw add allow tcp from any to me 80 in setup

            みたいなのは開けすぎで、TCPでも
            ipfw add check-state
            ipfw add deny tcp from any to any established
            :
            ipfw add allow tcp from any to me 80 in setup keep-state

            にしろってことかな。
            親コメント

※ただしPHPを除く -- あるAdmin

処理中...