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 (1147d)