share facebook facebook twitter menu hatena pocket slack

2013.02.06 WED

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

鈴木 宏康

WRITTEN BY 鈴木 宏康

まず、NATインスタンス(EC2)はAmazon 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に保存してくれると思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。