2018年03月19日
このエントリーをはてなブックマークに追加
iptables でログを出力したいと考えています。
理想的なのは、破棄しながらログの取得なのですが、iptables ではそれが出来ないようです。
だからといって、INPUTフィルターの中で、ログを出しながら・・・というのはちょっと。

ということでかなり chain が煩雑になりますが、以下の方法にしたいと思います。

Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
4209 3020K Allow_IP all -- * * 0.0.0.0/0 0.0.0.0/0
4202 3020K Spamhaus all -- * * 0.0.0.0/0 0.0.0.0/0
・・・その他の処理

まず INPUT チェイン内で、すべてのパケットを処理します。
このとき Allow_IP はホワイトリスト。Spamhaus はブラックリストの中身です。

Spamhaus チェインは以下の通り。ここからさらに Log_DROP に飛ばします。
Chain Spamhaus (1 references)
pkts bytes target prot opt in out source destination
0 0 Log_DROP all -- * * X.X.X.X/X 0.0.0.0/0


Chain Log_DROP (830 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix "[iptables_Deny] : "
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

ログを取得しつつドロップします。

この場合、ドロップしたログが一括になってしまいます。そのため、フィルターの種類によってドロップ理由を知りたい場合、さらにチェインの作成が必要となります。
なかなか悩ましいのですが、あまりフィルターが煩雑になるのもいやなのでしばらくこれで運用したいと思います。


stock_value at 13:31│Comments(0)技術 

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔