iptables ログ

目的

  • INPUTポリシーをDROPにして、必要なポートのみ許可する。許可されないアクセスは全てロギングする。
  • ログは独自のファイルに書き出して、ロテートする。

ロギング

logdropチェーンを作成する

 iptables -N logdrop
 iptables -A logdrop -j LOG --log-prefix "IPTABLES-LOG: "
 iptables -A logdrop -j DROP

logdropチェーンはLOGした後にすぐにDROPする。

最後のルールにlogdropを指定する

 iptables -A INPUT -i lo -j ACCEPT
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 iptables -A INPUT -j logdrop
 iptables -P INPUT DROP

必要なポリシー・ルールを設定した後に、最後にlogdropを指定するルールを設定する。

参考:許可するアクセスをロギングする

 iptables -N logaccept
 iptables -A logaccept -j LOG --log-prefix "IPTABLES-ACCEPT-LOG: "
 iptables -A logaccept -j accept

上のようなlogacceptチェーンを作って、これまで-j ACCEPTで許可していたルールを-j logacceptへ変更する。

参考:ログレベルの指定

シスログの切り出し

 vi /etc/rsyslog.d/iptables.conf
 :msg, contains, "IPTABLES-LOG:" -/var/log/iptables.log
 & ~
 /etc/rc.d/init.d/rsyslog restart

参考

  • 複数のログに切り出す場合は以下のように設定を増やす。
     :msg, contains, "IPTABLES-LOG:" -/var/log/iptables.drop.log
     & ~
     :msg, contains, "IPTABLES-ACCEPT-LOG:" -/var/log/iptables.accept.log
     & ~
  • http://www.rsyslog.com/doc/rsyslog_conf_filter.html
  • 「&」は前の行とつなぐという意味、「~」は前の行のコマンドでフィルターされたログを破棄するという意味。

ログロテート

 vi /etc/logrotate.d/iptables
 /var/log/iptables.log {
   rotate 5
   weekly
   compress
   missing ok
   notifempty
   service rsyslog reload 2> /dev/null || true
 }

参考

アクセスをACCEPTした接続をログする

http://stackoverflow.com/questions/21771684/iptables-log-and-drop-in-one-rule


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2016-10-18 (火) 09:54:38