「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

関連項目