PFLOGD(8) | FreeBSD System Manager's Manual | PFLOGD(8) |
名称
pflogd — パケットフィルタログ記録デーモン書式
pflogd | [ -DragonFly][ -d delay][ -f filename][ -i interface][ -s snaplen][ expression] |
解説
pflogd は、 pf(4) によって、通常 pflog0 の pflog(4) インタフェースにログ記録されたパケットを読み込み、 tcpdump(1) バイナリ形式でログファイル (通常 /var/log/pflog) にパケットを書き込むバックグラウンドデーモンです。これらのログは、 tcpdump(1) のコードを解析するパケットにバグがある場合にできればオフラインで tcpdump(1) の -r オプションを使用して後で再調査することができます。pflogd は、 newsyslog(8) がログファイルを自動的に循環させることを可能とする SIGHUP を受け付けるとき、ログファイルをクローズして、次に、再オープンします。 SIGALRM は pflogd に現在のログファイルバッファをディスクにフラッシュして、その結果、最新のログを利用可能にします。また、バッファは delay 秒毎にフラッシュされます。
ログファイルが再スタートか SIGHUP を受け取った後にデータを含むなら、新しいログは既存のファイルに追加されます。既存のログファイルが異なった snaplen で作成されたなら、 pflogd は、ログファイルの一貫性を維持するために古い snaplen を使用します。
pflogd は I/O エラーに対してログファイルの整合性を保持しようとします。その上、既存のログファイルの整合性は追加の前に検証されます。無効のログファイルまたは I/O エラーがあるなら、ログファイルは、邪魔にならない所に動かされ、新しいものが作成されます。新しいファイルを作成することができないなら、ログ記録は、 SIGHUP または SIGALRM が受け付けられるまで、サスペンドされます。
また、 pflogd は、 SIGUSR1 が受信されるとき、syslog への pflog(4) インタフェースのために pcap 統計をログ記録します。
オプションは、次の通りです:
- -D
- デバッグモード。 pflogd は制御端末から分離されません。
- -d delay
- ファイルの自動フラッシュの間の遅延の秒単位の時間。これは値 5 と 3600 秒の間で指定することができます。指定されないなら、デフォルトは 60 秒です。
- -f filename
- ログを出力するファイル名。デフォルトは /var/log/pflog です。
- -i interface
- 使用する pflog(4) インタフェースを指定します。デフォルトで、 pflogd は、 pflog0 を使用します。プログラムのプロセス ID を /var/run に含むファイルに書き込みます。 The file name has the form 訳注: 原文がおかしい。文が完成していない。訳: ファイル名には、form があります。デフォルトは、 pflogd です。
- -s snaplen
- 116 のデフォルトよりむしろ各パケットからの最初の多くても snaplen バイトのデータを解析します。デフォルトの 116 は、IP、ICMP、TCP と UDP ヘッダで適切ですが、他のプロトコルのためのプロトコル情報の先端を切り詰めされるかもしれません。他のファイルパーサは、より大きい snaplen を望むかもしれません。
- -x
- 既存のログファイルの整合性をチェックして、返ります。
- expression
- tcpdump(1) の通常の言語を使用して、どのパケットがダンプされるかを選択します。
関連ファイル
- /var/run/pflogd.pid
- 現在実行している pflogd のプロセス ID。
- /var/log/pflog
- デフォルトのログファイル。
使用例
(完全なセッションをダンプするために log-all ルールで役に立つ) 大きい snaplen で異なったログファイルのために指定された tcp パケットのログ記録します:
# pflogd -s 1600 -f suspicious.log port 80 and host evilhost
特定のパケットを除いて、別の pflog(4) インタフェースからのログ記録します:
# pflogd -i pflog3 -f network3.log "not (tcp and port 23)"
バイナリのログを表示します:
# tcpdump -n -e -ttt -r /var/log/pflog
リアルタイムで、ログを表示します (これは pflogd の操作に干渉しません):
# tcpdump -n -e -ttt -i pflog0
tcpdump は、< net/if_pflog.h>で定義された pfloghdr 構造体上でフィルタリングできるように拡張されました。 tcpdump は、指定されたインタフェース、ルール番号、理由、方向、IP ファミリまたは動作でログ記録されるパケットへの出力を制限することができます。
- ip
- アドレスファミリは IPv4 に相当します。
- ip6
- アドレスファミリは IPv6 に相当します。
- ifname kue0
- インタフェース名は "kue0"に相当します。
- on kue0
- インタフェース名は "kue0"に相当します。
- ruleset authpf
- ルールセット名は "authpf"に相当します。
- rulenum 10
- ルール番号は 10 に相当します。
- reason match
- 理由は適合に相当します。また、"bad-offset", "fragment", "bad-timestamp", "short", "normalize", "memory", "congestion", "ip-option", "proto-cksum", "state-mismatch", "state-insert", "state-limit", "src-limit"と "synproxy"を受け付けます。
- action pass
- 動作はパスに相当します。また、"block"を受け付けます。
- inbound
- 方向は着信でした。
- outbound
- 方向は発信でした。
wi0 インタフェースでブロックされた着信パケットのログをリアルタイムで表示します:
# tcpdump -n -e -ttt -i pflog0 inbound and action block and on wi0
歴史
pflogd コマンドは、 OpenBSD 3.0 で登場しました。作者
pflogd は、 <canacar@openbsd.org>によって書かれました。October 22, 2008 | FreeBSD |