Skip to content

ไล่จับ Packet ด้วย TCPdump

ในการแก้ปัญหา บางครั้งก็ดูแค่ Log ใน Traffic Monitor ของ FSM (Firebox System Manager) ก็พอจะมองภาพออกและแก้ปัญหาได้ แต่ในการแก้ปัญหาบางประเภท เราต้องการข้อมูลที่ลึกกว่านั้น

ลองคลิกขวาที่ Traffic Monitor และเลือกเมนู Diagnostic Task… และเลือกหัวข้อ Task เป็น TCP Dump ซึ่ง TCP Dump เป็นเครื่องมือที่มีใน Linux OS มานานแล้ว และใน FSM ก็มี TCP Dump ที่จะช่วยเราในการ Capture packet ที่วิ่งผ่าน Interface ต่าง ๆ

Packet ที่ Capture ได้จาก Interface จะถูกส่งมา Save เป็นไฟล์นามสกุล PCAP ที่เราสามารถจะเปิดอ่านได้ด้วยโปรแกรม Wireshark

จะป้อนอะไรในช่องนี้ดีหว่า

Parameter ที่จะป้อนในช่องนี้ คือตัวที่จะกำหนดว่า เราต้องการจะ Dump อะไรออกมาจาก Interface ไหน หรือจะเรียกว่าเป็น Filtering parameters ก็ได้

Parameter ของ TCP Dump นั้น ไม่แตกต่างไปจาก TCP Dump ที่เราใช้งานกันใน Linux OS สามารถค้นจาก Google ด้วยคำว่า “TCP Dump parameters” และอ้างอิงตามนั้นได้เลย แต่เพื่อความง่าย ผมมีตัวอย่างที่เข้าใจง่าย ๆ มาให้ดู

       – i eth3 udp port 53
       – i vlan105 tcp port 80
       – i vlan105 icmp
       – i vlan105 port http
       – i vlan105 port http or icmp
       – i vlan1 port http or icmp or smtp
       – i vlan1 src 10.0.0.166
       – i vlan1 dst 10.0.0.166 and port http
       – i vlan1 dst port http
       – i vlan1 net 10.253.0.0/16
       – i vlan1 port http and not host 10.0.0.166

แต่ละตัวอย่าง คงจะไม่ต้องอธิบายว่า มีความหมายว่าอย่างไร แต่ละบรรทัดก็อ่านได้ตรงไปตรงมา ค่อนข้างเข้าใจง่ายอยู่แล้ว ตามวิธีการของ Packet capture filtering ทั่ว ๆ ไป ยิ่งใครที่ใช้ Wireshark บ่อย ๆ จะยิ่งเข้าใจได้ทันที

อย่าลืมเลือกที่ช่อง “Stream data to file” และชี้ไปที่โฟลเดอร์ที่เราต้องการจะใช้เก็บไฟล์ PCAP ด้วยนะครับ

เปิด TCP Dump จับหลาย ๆ Interface พร้อมกันก็ได้

ในบางครั้ง เราต้องการจะเห็น Packet ขาเข้าและ Packet ขาออก เพื่อติดตามว่า การทำ Address translation ได้เกิดขึ้นตามที่ต้องการ แบบนี้เราก็จะต้องทำ TCP Dump ทั้ง Interface ขาเข้าและ Interface ขาออก ซึ่งก็ทำได้เช่นกันครับ

ไม่มีกฎเกณฑ์ข้อไหนที่ห้ามไม่ให้เราเปิด TCP Dump มากกว่า 1 ตัว อยากจะเปิดขึ้นมากี่ตัว และแต่ละตัวจะจับแต่ละ Interface ได้เป็น PCAP file มาเปิดดูเปรียบเทียบกัน ก็ทำได้เลยครับ จับทั้ง Interface ขาเข้าและ Interface ขาออก ผลิตเป็นไฟล์ PCAP หลายไฟล์ก็ทำได้เลย

TCP Dump ไม่น่าเปิดทิ้งเอาไว้นาน ๆ

TCP Dump เป็นเครื่องมือสำหรับการวิเคราะห์ในเชิงลึก ไม่ได้มีไว้สำหรับการทำ Data Logger ดังนั้น หากพยายามเปิด TCP Dump ทิ้งเอาไว้นาน ๆ เช่น หลาย ๆ นาทีหรือเป็นชั่วโมง หันมาดูอีกที จะพบว่า TCP Dump นั้นจะหยุดทำงานไปเอง ก็เป็นเรื่องที่เกิดขึ้นได้

บางครั้ง TCP Dump ก็สามารถจับ Packet ต่อเนื่องได้นานกว่า 1 ชั่วโมง บางครั้งแค่ 10 กว่านาที ก็หยุดไปซะแล้ว

เมื่อไหร่ถึงจะใช้ TCP Dump

ปัญหาบางปัญหา จะต้องวิเคราะห์ด้วยข้อมูลที่ลึกกว่า Log จาก Traffic monitor เช่น
       – เราอยากเห็น MAC address ของ IP address
       – เราอยากเห็น Packet ที่วิ่งไปมาหลังจากที่เกิด ACK แล้ว
       – เราใน Traffic Monitor เราจะได้เห็นบรรทัดของ Log เมื่อ TCP ACK ทำสำเร็จ แต่ TCP Dump จะทำให้เราได้เห็น FIN ACK ด้วย

แนะนำให้ฝึกใช้ TCP Dump ไว้ให้คล่อง จะทำให้เราแก้ปัญหาได้เร็วกว่าคนอื่น และแก้ได้อย่างตรงจุด