หน้า 1 จากทั้งหมด 1

เทคนิคการเก็บ Log Outbound Traffic ของ iptables

โพสต์โพสต์แล้ว: 08 พ.ย. 2012 12:36
โดย nuiz
ถ้าเราอยากจะรู้ว่า CentOS ของเราส่งข้อมูลอะไรออกไปภายนอกบ้าง ส่งไปหา IP อะไรบ้าง Port อะไรบ้าง ทำได้ไม่ยากครับ

แก้ไขที่ OUTPUT ACCEPT ของไฟล์ /etc/sysconfig/iptables ครับ ประมาณนี้เลย

ตัวอย่างนี้เป็นข้อมูลในไฟล์ /etc/sysconfig/iptables ที่คอนฟิกไว้ที่เครื่องผมครับ

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A OUTPUT -d 192.168.100.0/24 -j ACCEPT
#-A OUTPUT -p icmp -j DROP
-A OUTPUT -j LOG
-A OUTPUT -j ACCEPT
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
#-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j LOG
-A RH-Firewall-1-INPUT -j ACCEPT
COMMIT

ดูตรง OUTPUT ACCEPT ครับ

:OUTPUT ACCEPT [0:0]
-A OUTPUT -d 192.168.100.0/24 -j ACCEPT
#-A OUTPUT -p icmp -j DROP
-A OUTPUT -j LOG
-A OUTPUT -j ACCEPT

บรรทัด -A OUTPUT -d 192.168.100.0/24 -j ACCEPT จะไม่เก็บ Log เพราะมัน ACCEPT ก่อนที่จะถึงบรรทัดเก็บ Log
บรรทัด #-A OUTPUT -p icmp -j DROP ถ้าเอา # ออก จะป้องกันไม่ให้ Ping ออกไปได้ หรือตอบสนองต่อ Ping จากภายนอก
บรรทัด -A OUTPUT -j LOG เก็บ Log ครับ

โดยจะเก็บไฟล์ในไฟล์ /var/log/messages ข้อความประมาณนี้
โค้ด: เลือกทั้งหมด
Nov  6 12:46:18 vos kernel: IN= OUT=eth0 SRC=192.168.100.20 DST=223.204.175.227 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=62423 DPT=26946 WINDOW=0 RES=0x00 ACK RST URGP=0

ข้อมูลในไฟล์ /var/log/messages อาจจะเยอะมากและมีเพิ่มขึ้นเรื่อยๆ ซึ่งบางอันก็ไม่ได้เกี่ยวอะไรกับข้อมูลที่เราต้องการเลย หากจะดูเฉพาะ Outbound Traffic ให้ฟิลเตอร์เอาครับ ตัวอย่างการดูแบบ Realtime
โค้ด: เลือกทั้งหมด
tail -f /var/log/messages | grep OUT=eth0