iptalbles LOGについてメモ
iptalbles LOGについてメモ
概要
- カーネルロギング機能を用いてsyslogにログを出力する
- ULOGターゲットというものも存在し、これはMySQLデータベースへのロギング等より広範囲な機能を持つ
- 詳細はこちら 結構色々使えそうではある。
- ログの出力先はsyslog.confで指定できる(らしい)
- ArchLinuxのページがわかりやすい
ログ関連のオプション
Option | --log-level |
Example | iptables -A FORWARD -p tcp -j LOG --log-level debug |
Explanation | iptables と syslog が用いるlog levelを指定する。 log levelについて詳細はsyslog.confを参照のこと。 通常は、debug, info, notice, warning, warn, err, error, crit, alert, emerg, panicであり、errとerror, warnとwarning, panicとemergは同じ意味だが、error, warn, panicの3つは使用すべきでない。 優先順位は、ログに記録されるメッセージの重要度を意味する。 メッセージは全てカーネル機能を通して記録される。換言すると、syslog.confに kern.=info /var/log/iptables を設定し、iptables の全 LOG メッセージのログレベルを infoにすることで、 /var/log/iptables に全メッセージを出力できます。 infoレベルを使用するカーネルの他の部分からのメッセージも、ここに出力されることに留意してください。 ロギングの詳細については、syslogとsyslog.confのmanページや他のHOWTO等を読むことをおすすめします。 |
Option | --log-prefix |
Example | iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets" |
Explanation | ログメッセージにプリフィックスを付加するために使用します。プリフィックスをgrepすることで、異なるルールのメッセージを抽出することができます。プリフィックスの長さは空白文字等を含めて、29文字までです。 |
Option | --log-tcp-sequence |
Example | iptables -A INPUT -p tcp -j LOG --log-tcp-sequence |
Explanation | ログメッセージにTCPシーケンスナンバーを付加します。TCPシーケンスナンバーはパケットを特定するための数字であり、ストリームがどのように並んでいるべきかを示します。このオプションはログが認証されていないユーザによって見られた場合、セキュリティリスクを引き起こす可能性があります。 |
Option | --log-tcp-options |
Example | iptables -A FORWARD -p tcp -j LOG --log-tcp-options |
Explanation | TCPパケットヘッダから種々のオプションを記録します。これはデバッグに役立ちます。 |
Option | --log-ip-options |
Example | iptables -A FORWARD -p tcp -j LOG --log-ip-options |
Explanation | --log-tcp-optionsと似ていますが、これはIPオプションを記録します。 |
kern.= info /path/to/logでログレベルごとにログの出力先を変えられる、ってことは
- Well Knowポートの通信とかはinfoに設定して、/var/iptables/logに出力
- それ以外はdebugに設定しておいて、普段は/dev/nullに、必要に応じて/var/iptables/logに出力
とかもできるんだろうか。
iptablesでAWS Greengrassのようなロギングを出来るとよさげなのだけれど。
iptables以外のログが混ざるのがなかなか難しいところ。混ざらなくするためにログレベルがもっとほしい。