PPP - Pedantic PPP Primer | ||
---|---|---|
前のページ | 第 6章熱心な学習者への練習問題 |
PPP プログラムには, PPP 経由のトラフィックに対して, 選択的にフィルタをかける能力があります. これが正式のファイアウォールほどセキュアーだとはとても言えませんが, リンクの使用についてある種のアクセス制御を提供することはできるのです.
(FreeBSD システムをよりセキュアーにする方法を知りたい方は 'man ipfw' してください)
PPP 下で使用できる様々なフィルタとその制御法についての完全な説明は PPP の man にあります.
PPP プログラムに適用できる制御法には四つのクラスがあります.
afilter - アクセスカウンタ (または "Keep Alive") のフィルタ
設定ファイル中の set timeout= 文に無視されるイベントの種類を制御します.
dial - ダイアリングフィルタ
デマンドダイアルモードの PPP に無視されるイベントの種類を制御します.
in - インプットフィルタ
システムに入ってくるパケットを, 破棄すべきものと通過してよいものに仕分けるやり方を制御します.
out - アウトプットフィルタ
システムから出てゆくパケットを, 破棄すべきものと通過してよいものに仕分けるやり方を制御します.
以下は実際に稼働しているオペレーティングシステムから一部拝借して来たものです. このシステムは「通常の」インターネットオペレーションに十分な素地を提供しつつ, PPP がすべてのデータをダイアルアップ接続越しにやり取りすることのないようにしています. 各ルールセットのロジックを解説する簡単なコメントをつけてあります.
# # KeepAlive フィルタ # ICMP,DNS と RIP パケットが流れても「通信中」とはみなさない # set filter alive 0 deny icmp set filter alive 1 deny udp src eq 53 set filter alive 2 deny udp dst eq 53 set filter alive 3 deny udp src eq 520 set filter alive 4 deny udp dst eq 520 set filter alive 5 permit 0/0 0/0 # # ダイアルフィルタ # 注意: この設定では ICMP もダイアルアウトのトリガになる # set filter dial 0 permit 0/0 0/0 # # ident パケットの通過を許可する # set filter in 0 permit tcp dst eq 113 set filter out 0 permit tcp src eq 113 # # インターネットへの telnet 接続を許可する # set filter in 1 permit tcp src eq 23 estab set filter out 1 permit tcp dst eq 23 # # インターネットへの ftp アクセスを許可する # set filter in 2 permit tcp src eq 21 estab set filter out 2 permit tcp dst eq 21 set filter in 3 permit tcp src eq 20 dst gt 1023 set filter out 3 permit tcp dst eq 20 # # DNS への問い合わせを許可する # set filter in 4 permit udp src eq 53 set filter out 4 permit udp dst eq 53 # # DNS ゾーン転送を許可する # set filter in 5 permit tcp src eq 53 set filter out 5 permit tcp dst eq 53 # # ローカルネットワークから / へのアクセスを許可する # set filter in 6 permit 0/0 192.168.1.0/24 set filter out 6 permit 192.168.1.0/24 0/0 set ifilter 6 permit 0/0 192.168.1.0/24 set ofilter 6 permit 192.168.1.0/24 0/0 # # ping と traceroute への返答を許可する # set filter in 7 permit icmp set filter out 7 permit icmp set filter in 8 permit udp dst gt 33433 set filter out 9 permit udp dst gt 33433 # # cvsup を許可する # set filter in 9 permit tcp src eq 5998 set filter out 9 permit tcp dst eq 5998 set filter in 10 permit tcp src eq 5999 set filter out 10 permit tcp dst eq 5999 # # 時間の同期のために NTP を許可する # set filter in 11 permit tcp src eq 123 dst eq 123 set filter out 11 permit tcp src eq 123 dst eq 123 set filter in 12 permit udp src eq 123 dst eq 123 set filter out 12 permit udp src eq 123 dst eq 123 # # SMTP もいいかも! # set filter in 13 permit tcp src eq 25 set filter out 13 permit tcp dst eq 25 # # # `whois` を多用するので, これも通す # set filter in 14 permit tcp src eq 43 set filter out 14 permit tcp dst eq 43 set filter in 15 permit udp src eq 43 set filter out 15 permit udp dst eq 43 # # 上記のどのルールにもマッチしない場合, パケットはブロックされる. #-------
フィルタクラス一つにつき, 20 個までのフィルタリングルールを適用することができます. 各クラスのルールは 0 から 20 までの連続した数字である必要がありますが, あるフィルタクラスに対するルールは, ルールセット '0' が定義されるまでは有効になりません!
PPP の設定でフィルタリングルールを使用しない場合, ISP への接続中はすべてのトラフィックがシステムに出入りすることになります.
フィルタリングルールを使用したいなら, 上記の設定を /etc/ppp/ppp.conf ファイルの "default:", "demand:", または "interactive:" セクションのどれか (あるいはすべて - 選ぶのはあなたです) に追加してください.
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で)
連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で)
送ってください。