「iptables ログを出力する」の版間の差分
提供: セキュリティ
行8: | 行8: | ||
== 概要 == | == 概要 == | ||
+ | [[iptables]] は、LOG ターゲットを使用し、ルールにマッチしたパケットの情報を [[syslog]] に出力できます。 | ||
+ | 標準では、ファシリティは kern 、プライオリティは warn で、 /var/log/messages のログファイルに出力されます。 | ||
+ | |||
+ | ログのオプションは、LOG ターゲットのあとに指定します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | iptables COMMAND chain rule-specification -j LOG log_option | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == ログオプション == | ||
+ | |||
+ | ;--log-level level: [[syslog]] のプライオリティを level に指定します。 | ||
+ | ;--log-prefix prefix: ログに出力メッセージのプレフィックス(prefix)を指定します。 | ||
== 使い方 == | == 使い方 == | ||
行27: | 行39: | ||
/var/log/messages には、次のような行がたくさん出力されます。 | /var/log/messages には、次のような行がたくさん出力されます。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | Aug 11 23:33:31 u1 kernel: IN=eth1 OUT= MAC=マックアドレス SRC=アクセス元IPアドレス DST=ターゲットのIPアドレス LEN=44 TOS=0x00 PREC=0x00 TTL=38 ID=53412 PROTO=TCP SPT=64558 DPT=8007 WINDOW=1024 RES=0x00 SYN URGP=0 | + | Aug 11 23:33:31 u1 kernel: IN=eth1 OUT= MAC=マックアドレス |
+ | SRC=アクセス元IPアドレス DST=ターゲットのIPアドレス | ||
+ | LEN=44 TOS=0x00 PREC=0x00 TTL=38 | ||
+ | ID=53412 PROTO=TCP SPT=64558 DPT=8007 | ||
+ | WINDOW=1024 RES=0x00 SYN URGP=0 | ||
+ | </syntaxhighlight> | ||
+ | 1行が長いので、折り返しを入れてあります。 | ||
+ | |||
+ | === 不正なパケットをロギングしてブロックする === | ||
+ | |||
+ | 入力された不正パケットをロギングして、ブロックします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | iptables -A INPUT -m state --state INVALID -j LOG | ||
+ | iptables -A INPUT -m state --state INVALID -j DROP | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 出力された不正パケットをロギングして、ブロックします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | iptables -A OUTPUT -m state --state INVALID -j LOG | ||
+ | iptables -A OUTPUT -m state --state INVALID -j DROP | ||
</syntaxhighlight> | </syntaxhighlight> | ||
行33: | 行64: | ||
* [[iptables]] | * [[iptables]] | ||
+ | * [[syslog]] |
2013年8月29日 (木) 23:12時点における版
iptables は、通信ログをロギングすることができます。
概要
iptables は、LOG ターゲットを使用し、ルールにマッチしたパケットの情報を syslog に出力できます。 標準では、ファシリティは kern 、プライオリティは warn で、 /var/log/messages のログファイルに出力されます。
ログのオプションは、LOG ターゲットのあとに指定します。
iptables COMMAND chain rule-specification -j LOG log_option
ログオプション
- --log-level level
- syslog のプライオリティを level に指定します。
- --log-prefix prefix
- ログに出力メッセージのプレフィックス(prefix)を指定します。
使い方
ログを出力する
以下は、TCP の入力をすべてログをとる例です。
sudo iptables -A INPUT -p tcp -j LOG
デフォルトでは、ログは、/var/log/messages に出力されます。
ほかのホストからアクセスをしてみます。
nmap -sS IPアドレス 22
/var/log/messages には、次のような行がたくさん出力されます。
Aug 11 23:33:31 u1 kernel: IN=eth1 OUT= MAC=マックアドレス SRC=アクセス元IPアドレス DST=ターゲットのIPアドレス LEN=44 TOS=0x00 PREC=0x00 TTL=38 ID=53412 PROTO=TCP SPT=64558 DPT=8007 WINDOW=1024 RES=0x00 SYN URGP=0
1行が長いので、折り返しを入れてあります。
不正なパケットをロギングしてブロックする
入力された不正パケットをロギングして、ブロックします。
iptables -A INPUT -m state --state INVALID -j LOG iptables -A INPUT -m state --state INVALID -j DROP
出力された不正パケットをロギングして、ブロックします。
iptables -A OUTPUT -m state --state INVALID -j LOG iptables -A OUTPUT -m state --state INVALID -j DROP