2012年12月23日日曜日

NATインスタンス(EC2)での通信ログを取得

スズキです。

まず、NATインスタンス(EC2)は下記のように作ることができます。
VPCのNATインスタンスを作ってみる(iptables編)
このNATインスタンスを通過する通信をログに出力する方法です。
(いろいろやり方はあると思いますが"iptables"を使った方法です)

一旦"iptables"を初期化

# iptables -t nat -F
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

"iptables"の設定(ログ出力とNAT)

# iptables -t nat -A POSTROUTING -j LOG
# iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            LOG level warning 
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

出力ログ(syslog)の確認

Dec 23 21:54:49 ip-10-0-8-10 kernel: IN= OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=27.0.2.83 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=29593 DF PROTO=TCP SPT=48918 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0 
Dec 23 21:54:50 ip-10-0-8-10 kernel: IN= OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=27.0.2.83 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=10399 DF PROTO=TCP SPT=48919 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0 
Dec 23 21:54:51 ip-10-0-8-10 kernel: IN= OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=27.0.2.83 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=51974 DF PROTO=TCP SPT=48920 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0

"iptables"の設定の永続化

# /etc/init.d/iptables save
iptables: ファイアウォールのルールを /etc/sysconfig/iptable[  OK  ]中: 
# /etc/init.d/iptables restart
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter nat     [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            LOG level warning 
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

ログの量は多くなってしまいますが、FluentdがS3に送って、
S3がGlacierに保存してくれるはずです...
--------
http://www.suz-lab.com

0 コメント: