FreeBSD に pf が組み込まれる 26
ストーリー by Oliver
選べる自由と選ぶ悩み 部門より
選べる自由と選ぶ悩み 部門より
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: 商用ファイアウォールとの比較 (スコア:1)
IP Filterの場合ですが、
UDP疑似セッション:
udpに対するkeep state指定のこと?
セッションテーブルに基づくTCPの確立した通信のチェック:
セッションテーブルってTCPのレベルのこと? keep state指定のこと?
許可と拒否のログ
ログ自体が記録だと思うんですが、それはさておき可能です。
非passiveなFTPの許可:
NATのftp proxyを用意すればOKかな。
スプーフィングの検出:
機能の意味がようわかりません、文章として。
IP Filterの良いところは幅広いプラットフォームで動くところ、その一方でルールや設定ファイルが良くも悪くもprimitive的なところでしょうか。
IP Filter 4.Xもそろそろのようです。
Re: 商用ファイアウォールとの比較 (スコア:2, 参考になる)
セッションテーブルと疑似セッションはほぼ keep-state で実現しているとは思います。ただ、ipfw しか知りませんが、割と皆さんやっている established な通信は ALL ALL で許可は開けすぎなので、keep-state するルールとセットで establlished な通信は通過させるルールが必要になり全部 2 行ずつ書くことになり面倒。しかも性能的に established を許可する行は上の方に持って行く必要がある。商用ファイアウォールならセッションテーブルに基づく処理は最上位に自動的に配置される。
ipfw だと内部にあるセグメントをソースとする通信が、外部のインタフェースから到達した場合に drop することでスプーフィングを防止すると思います。
商用ファイアウォールの場合は、どのインタフェース側にどのネットワークが存在するかという設定を登録してスプーフィングを判定したり、ルーティングテーブルから想定されるネットワーク(通信するホストは当然ルーティングテーブルに乗っているので必然的に配置がわかる)に基づいて自動的にスプーフィングを判定します。これは製品によって違います。
Re: 商用ファイアウォールとの比較 (スコア:2)
コネクション確立パケットを通せば、あとはセッションテーブル
に基づいてよきにはからってくれますよ。また、こちらは聞いた
だけなので不確かですが、シーケンスナンバーとかもしっかり
見ているみたいです。ただ、単体ではアプリケーション層まで
はカバーしてくれないので、適宜Proxyと組み合わせる必要が
ありますね(FTP等)。
Re: 商用ファイアウォールとの比較 (スコア:1)
すいません, 私の理解不足なのですが
> established な通信は ALL ALL で許可は開けすぎ
なのは何故でしょうか? establishedパケットはTCPのみですし, TCPなら前段階でSYN/ACKによる接続の確保が必須なので, この前段階だけフィルタリングしてやればTCP通信ができることに対する制限はかけられると思うのですが.
Re: 商用ファイアウォールとの比較 (スコア:1, 参考になる)
としてコネクションが確立されているかではなく、単に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
にしろってことかな。
Re:商用ファイアウォールとの比較 (スコア:0)
導入時の検証の手間や、いざトラブルの際の対応など、
さらに運用を考えれば自分で構築する意味は薄い。
FW-1 は分からないが、NetScreen ならそれほど高価でないし。
Re:商用ファイアウォールとの比較 (スコア:1, 参考になる)
Solarisだと、SunScreenなんてモノで簡単にでっちあげることもありますし、
ハコ物だとPIXも使いますね。
PIXやNetScreenってフェイルオーバー環境が簡単に構築できてメリットが非常にあると感じています。
#FreeBSDを仕事で使っているんですけどね・・・
Re:商用ファイアウォールとの比較 (スコア:1)
もちろん、ソフトウェア費を下げる代わりに、運用支援費はいただきます。
それはありますね。まして、セッションの引き継ぎとかになると…。実際、ディスクレスで MTBF が抜群に良いファイアウォールほど二重化が容易なんですよね。
Re:商用ファイアウォールとの比較 (スコア:1, 参考になる)
NetScreenはともかくPIXはちょっと問題ありすぎです。
# SonicWallみたいに不安定なのは論外ですけど。
Re:商用ファイアウォールとの比較 (スコア:0)
CLIの話ですよね。
私はそーゆーものだと思ってなれてしまった人間なので特には感じないのですけど、
ポリシをしょっちゅうメンテする様な場所に導入するのは、人間の教育時間が間に合わないかもしれませんね。
導入時にかっちりとポリシが決まってしまうような処に導入するので
あれば、社内の適当な人間にテキストファイル1つ持っていってもらって流してもらったら
設定が終わってしまうので好きなんですけどね。。。
FYI (スコア:3, 参考になる)
実装されている機能の詳細は上掲の文書を見ればわかるのですが、パケットフィルタリングの一般的な機能に加えて、
あと、ロギング専用のネットワークインタフェース(pflog)があり、ロギングルールにマッチしたパケットはこのインタフェースを通じて記録したり、tcpdumpを用いて調査したりできます。
Re:FYI (スコア:1)
ipfilterの時はIPF.KANJIがほぼ唯一のまとまった日本語ドキュメントだったのを 考えると、雲泥の差というか。
今から始める人だったら pf を勧めますね。
# ALTQ までベースシステムに取り込まれたらすごく嬉しい。
# 実運用環境でのカーネルパッチは負担が重いです
Re:FYI (スコア:0)
ipfilterは (スコア:2, 興味深い)
ipfilterはBSD的にステなのかな・・・・・・と思っていたのですが。
# 教えてBSDのえらいひと
/.configure;oddmake;oddmake install
Darren Reed からのメール (スコア:2, 参考になる)
Re:ipfilterは (スコア:1, 参考になる)
これはOSD第8項を満たしません。 OpenBSD的にはステでしょう。
Re:ipfilterは (スコア:1, 参考になる)
Re:ipfilterは (スコア:0)
そもそもipfの作者のdarren reedはNetBSDの開発者だし。
Re:ipfilterは (スコア:0)
リナックスも (スコア:0)
どこからのパクリなのか知らないが。
Re:リナックスも (スコア:0)
Linuxはipfwadm→ipchains→iptablesだろ。
一緒にするのはどうかと。
Re:リナックスも (スコア:0)
見たことがあるような無いような・・・
今のiptablesはipfとは全く別物ですが。
一時期パケットフィルタを色々調べてて頭の片隅に
誰かその辺詳しい方いらっしゃいません?
# もしかしたら勘違いかも
Re:リナックスも (スコア:1, 参考になる)
僕の思う BSD (スコア:0)
っていうかどれが一番使いやすいの?教えて偉い人。
#「パケットフィルタなんて飾りです・・」は無しで。マジで聞いてます。
Re:僕の思う BSD (スコア:3, 参考になる)
ま、車輪の再発明ってのは別に目新しい話でもない罠。portsを詳細に見ていくと、機能的にかぶっているモノなんていくらでもあるし、今のFreeBSDはスケジューラーとかスレッドライブラリなど複数の実装が混在しているのが現状。ゆくゆくは1つに収斂していくのかもしれないけど、今はそういう時期なんだとあきらめてる。
個人的なイメージとしては
(つーか、FreeBSDのdummynet(4)がほぼipfw決め打ちなだけ)
パフォーマンスはルール設定にもよるだろうから、自分の欲しい環境で比較しないと無理。とりあえず、市販の安いルータレベルの機能はどれだって持ってるから、あとは設定するのに必要な事前情報の量じゃないの?pfの日本語訳の存在は大きいよね。
#「素直に格安ルータ買っとけ」という突っ込みはあると思うが(w