EN JA
PFLOGD(8)
PFLOGD(8) FreeBSD System Manager's Manual PFLOGD(8)

名称

pflogdパケットフィルタログ記録デーモン

書式

pflogd [ -DragonFly][ -d  delay][ -f  filename][ -i  interface][ -s  snaplen][ expression]

解説

pflogd は、 pf(4) によって、通常 pflog0pflog(4) インタフェースにログ記録されたパケットを読み込み、 tcpdump(1) バイナリ形式でログファイル (通常 /var/log/pflog) にパケットを書き込むバックグラウンドデーモンです。これらのログは、 tcpdump(1) のコードを解析するパケットにバグがある場合にできればオフラインで tcpdump(1)-r オプションを使用して後で再調査することができます。

pflogd は、 newsyslog(8) がログファイルを自動的に循環させることを可能とする SIGHUP を受け付けるとき、ログファイルをクローズして、次に、再オープンします。 SIGALRMpflogd に現在のログファイルバッファをディスクにフラッシュして、その結果、最新のログを利用可能にします。また、バッファは 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 は、 Can Erkin Acar <canacar@openbsd.org>によって書かれました。
October 22, 2008 FreeBSD