「iptables ログを出力する」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> [[{{PAGENAME}}]] とは、 '''読み方''' ;[[{{PAGENAME}}]]: __TOC__ == 概要 == [[{{PAGENAME}}]] == インストール == <synt...」)
 
 
(同じ利用者による、間の2版が非表示)
行1: 行1:
<!--
+
[[iptables]] は、通信ログをロギングすることができます。
vim: filetype=mediawiki
+
-->
+
[[{{PAGENAME}}]] とは、
+
  
'''読み方'''
 
;[[{{PAGENAME}}]]:
 
 
__TOC__
 
__TOC__
  
 
== 概要 ==
 
== 概要 ==
 +
[[iptables]] は、LOG ターゲットを使用し、ルールにマッチしたパケットの情報を [[syslog]] に出力できます。
 +
標準では、ファシリティは kern 、プライオリティは warn で、 /var/log/messages のログファイルに出力されます。
  
[[{{PAGENAME}}]]
+
ログのオプションは、LOG ターゲットのあとに指定します。
 
+
== インストール ==
+
 
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
iptables COMMAND chain rule-specification -j LOG log_option
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== 使い方 ==
+
== ログオプション ==
 +
;--log-level level: [[syslog]] のプライオリティを level に指定します。
 +
;--log-prefix prefix: ログに出力メッセージのプレフィックス(prefix)を指定します。
  
 +
== 使い方 ==
 
=== ログを出力する ===
 
=== ログを出力する ===
 
+
以下は、[[TCP]] の入力をすべてログをとる例です。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo iptables -A INPUT -p tcp -j LOG
 
sudo iptables -A INPUT -p tcp -j LOG
 
</syntaxhighlight>
 
</syntaxhighlight>
  
ログは、/var/log/messages に出力されます。
+
デフォルトでは、ログは、/var/log/messages に出力されます。
  
 
ほかのホストからアクセスをしてみます。
 
ほかのホストからアクセスをしてみます。
行34: 行32:
 
/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>
 
</syntaxhighlight>
 +
1行が長いので、折り返しを入れてあります。
  
== 関連項目 ==
+
=== 不正なパケットをロギングしてブロックする ===
  
* [[iptables]]
+
入力された不正パケットをロギングして、ブロックします。
 +
<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>
 +
 
 +
== 関連項目 ==
 +
{{iptables}}
 +
* [[syslog]]
 +
<!-- vim: filetype=mediawiki -->

2014年2月20日 (木) 18:27時点における最新版

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

関連項目