Oliverによる
2004年03月09日 17時42分の掲載
選べる自由と選ぶ悩み部門より。
選べる自由と選ぶ悩み部門より。
BSD 曰く、 "Max Laierが 関係者にあてたメールによると、OpenBSD によって開発されているpf(Packet Filter)が、FreeBSD のベースシステムに移植されたとのことだ。-CURRENT を再構築すると、カーネルに必要なコードが埋め込まれ、ツール類がインストールされる。また、mergemaster を起動すれば、/etc/master.passwd と /etc/group の追加修正を求められ、必要なアカウント情報が組み込まれる。これで、FreeBSDには IPFW2、ipfilter、pf と3つのパケットフィルタが利用できるようになった。さて、どれが一番使いやすいだろうか。"
この議論は賞味期限が過ぎたので、保存されている。
新たにコメントを書くことはできない。
商用ファイアウォールとの比較 (スコア:3, 興味深い)
昔は ipfw のルールをガリガリ書いたりしましたが、UDP 関連のルールが煩雑になるし、スプーフィング対策でインタフェースレベルまでフィルタを記述するとテストが大変だったりします。
だから、以下のような機能を実装していたら費用が限られる場合に、一つの候補になるかなと思います。
・UDP 疑似セッションを実装している ※これは ipfw でできますね
・セッションテーブルに基づく TCP の確立した通信のチェックができる
・許可と拒否のログが記録できる
・非パッシブのFTPを簡単に許可できる
・ネットワーク構成の設定か、ルーティングに基づくスプーフィングの検出ができる
Re: 商用ファイアウォールとの比較 (スコア:2, 参考になる)
セッションテーブルと疑似セッションはほぼ keep-state で実現しているとは思います。ただ、ipfw しか知りませんが、割と皆さんやっている established な通信は ALL ALL で許可は開けすぎなので、keep-state するルールとセットで establlished な通信は通過させるルールが必要になり全部 2 行ずつ書くことになり面倒。しかも性能的に established を許可する行は上の方に持って行く必要がある。商用ファイアウォールならセッションテーブルに基づく処理は最上位に自動的に配置される。
ipfw だと内部にあるセグメントをソースとする通信が、外部のインタフェースから到達した場合に drop することでスプーフィングを防止すると思います。
商用ファイアウォールの場合は、どのインタフェース側にどのネットワークが存在するかという設定を登録してスプーフィングを判定したり、ルーティングテーブルから想定されるネットワーク(通信するホストは当然ルーティングテーブルに乗っているので必然的に配置がわかる)に基づいて自動的にスプーフィングを判定します。これは製品によって違います。
親コメント
Re: 商用ファイアウォールとの比較 (スコア:2)
コネクション確立パケットを通せば、あとはセッションテーブル
に基づいてよきにはからってくれますよ。また、こちらは聞いた
だけなので不確かですが、シーケンスナンバーとかもしっかり
見ているみたいです。ただ、単体ではアプリケーション層まで
はカバーしてくれないので、適宜Proxyと組み合わせる必要が
ありますね(FTP等)。
親コメント
FYI (スコア:3, 参考になる)
実装されている機能の詳細は上掲の文書を見ればわかるのですが、パケットフィルタリングの一般的な機能に加えて、
- NAT、RDR
- パケットの優先制御・帯域制御(ALTQをマージ)
- アドレスプールを利用した負荷分散
- nmapのようなOS識別機能
などの機能も含まれています。まぁ、結構キッチンシンク的アプローチなのですが。あと、ロギング専用のネットワークインタフェース(pflog)があり、ロギングルールにマッチしたパケットはこのインタフェースを通じて記録したり、tcpdumpを用いて調査したりできます。
ipfilterは (スコア:2, 興味深い)
ipfilterはBSD的にステなのかな・・・・・・と思っていたのですが。
# 教えてBSDのえらいひと
/.configure;oddmake;oddmake install
Darren Reed からのメール (スコア:2, 参考になる)
親コメント
Re:リナックスも (スコア:1, 参考になる)
親コメント
Re:僕の思う BSD (スコア:3, 参考になる)
ま、車輪の再発明ってのは別に目新しい話でもない罠。portsを詳細に見ていくと、機能的にかぶっているモノなんていくらでもあるし、今のFreeBSDはスケジューラーとかスレッドライブラリなど複数の実装が混在しているのが現状。ゆくゆくは1つに収斂していくのかもしれないけど、今はそういう時期なんだとあきらめてる。
個人的なイメージとしては
- ipfw2:NATするにはnatdと組み合わせる必要がある
- IPFilter:FreeBSD標準だと帯域制限機能が使えない
- pf:なんでもあり(帯域制限はALTQを使うらしい)。ただし、世に出てまだ日が浅い
という感じ。(つーか、FreeBSDのdummynet(4)がほぼipfw決め打ちなだけ)
パフォーマンスはルール設定にもよるだろうから、自分の欲しい環境で比較しないと無理。とりあえず、市販の安いルータレベルの機能はどれだって持ってるから、あとは設定するのに必要な事前情報の量じゃないの?pfの日本語訳の存在は大きいよね。
#「素直に格安ルータ買っとけ」という突っ込みはあると思うが(w
親コメント