วิธีจับภาพและวิเคราะห์แพ็กเก็ตตามตัวอย่างด้วย Tcpdump

Withi Cab Phaph Laea Wikheraah Phaek Ket Tam Tawxyang Dwy Tcpdump



Tcpdump เป็นเครื่องมือวิเคราะห์เครือข่ายอันทรงพลังที่ใช้สำหรับการวิเคราะห์การรับส่งข้อมูลเครือข่ายในระบบ Linux และ macOS ผู้ดูแลระบบเครือข่ายใช้ tcpdump สำหรับเครือข่ายดมกลิ่น จับ และวิเคราะห์แพ็กเก็ต TCP/IP ใช้ไลบรารี “libpcap” ที่ช่วยในการบันทึกการรับส่งข้อมูลเครือข่ายอย่างมีประสิทธิภาพ นอกจากนี้ tcpdump ยังช่วยในการแก้ไขปัญหาเครือข่ายและตรวจสอบกิจกรรมเครือข่ายเป็นระยะ เครื่องมือนี้จะจัดเก็บข้อมูลที่บันทึกไว้ในไฟล์ “pcap” ไฟล์เหล่านี้ได้รับการวิเคราะห์เพิ่มเติมโดยใช้เครื่องมือวิเคราะห์แพ็คเก็ต TCP/IP เช่น Wireshark หรือผ่านเครื่องมือบรรทัดคำสั่งอื่น

ในคู่มือนี้ เราจะสาธิตวิธีการติดตั้ง tcpdump บนระบบ Linux และวิธีการบันทึกและวิเคราะห์แพ็กเก็ต TCP/IP โดยใช้ tcpdump

วิธีการติดตั้ง Tcpdump.msc

Tcpdump ได้รับการติดตั้งไว้ล่วงหน้าบน Linux หลายรุ่น แต่หากยังไม่ได้ติดตั้งบนระบบของคุณ คุณสามารถติดตั้ง tcpdump บนระบบ Linux ของคุณได้ หากต้องการติดตั้ง tcpdump บนระบบ Ubuntu 22.04 ให้ใช้คำสั่งต่อไปนี้:







$ sudo apt ติดตั้ง tcpdump

หากต้องการติดตั้ง tcpdump บน Fedora/CentOS ให้ใช้คำสั่งต่อไปนี้:



$ sudo dnf ติดตั้ง tcpdump

วิธีจับแพ็กเก็ตโดยใช้คำสั่ง Tcpdump

หากต้องการจับแพ็กเก็ตด้วย tcpdump ให้เปิดเทอร์มินัลด้วยสิทธิ์ sudo โดยใช้ “Ctrl+Alt+t” เครื่องมือนี้มีตัวเลือกและตัวกรองต่างๆ เพื่อดักจับแพ็กเก็ต TCP/IP หากคุณต้องการจับแพ็กเก็ตที่ไหลทั้งหมดของอินเทอร์เฟซเครือข่ายปัจจุบันหรือเริ่มต้น ให้ใช้คำสั่ง “tcpdump” โดยไม่มีตัวเลือกใดๆ



$ sudo tcpdump

คำสั่งที่กำหนดจะจับแพ็กเก็ตของอินเทอร์เฟซเครือข่ายเริ่มต้นของระบบของคุณ





เมื่อสิ้นสุดการดำเนินการคำสั่งนี้ จำนวนแพ็กเก็ตที่ดักจับและกรองทั้งหมดจะแสดงบนเทอร์มินัล



มาทำความเข้าใจกับผลลัพธ์กันดีกว่า

Tcpdump เปิดใช้งานการวิเคราะห์ส่วนหัวของแพ็กเก็ต TCP/IP มันแสดงบรรทัดเดียวสำหรับแต่ละแพ็คเก็ต และคำสั่งยังคงทำงานต่อไปจนกว่าคุณจะกด “Ctrl+C” เพื่อหยุดมัน

แต่ละบรรทัดที่จัดทำโดย tcpdump มีรายละเอียดดังต่อไปนี้:

  • การประทับเวลา Unix (เช่น 02:28:57.839523)
  • โปรโตคอล (IP)
  • ชื่อโฮสต์ต้นทางหรือ IP และหมายเลขพอร์ต
  • ชื่อโฮสต์ปลายทางหรือ IP และหมายเลขพอร์ต
  • TCP Flags (เช่น Flags [F.]) ระบุสถานะการเชื่อมต่อด้วยค่าเช่น S (SYN), F (FIN) (อ๊าก), P (กด), R (RST)
  • หมายเลขลำดับของข้อมูลในแพ็กเก็ต (เช่น seq 5829:6820)
  • หมายเลขรับทราบ (เช่น ack 1016)
  • ขนาดหน้าต่าง (เช่น win 65535) แสดงถึงไบต์ที่มีอยู่ในบัฟเฟอร์การรับตามด้วยตัวเลือก TCP
  • ความยาวของเพย์โหลดข้อมูล (เช่น ความยาว 991)

หากต้องการแสดงรายการอินเทอร์เฟซเครือข่ายทั้งหมดของระบบของคุณ ให้ใช้คำสั่ง “tcpdump” พร้อมด้วยตัวเลือก “-D”

$ sudo tcpdump -D

หรือ

$ tcpdump --รายการอินเทอร์เฟซ

คำสั่งนี้แสดงรายการอินเทอร์เฟซเครือข่ายทั้งหมดที่เชื่อมต่อหรือทำงานบนระบบ Linux ของคุณ

จับแพ็กเก็ตของอินเทอร์เฟซเครือข่ายที่ระบุ

หากคุณต้องการจับแพ็กเก็ต TCP/IP ที่ผ่านอินเทอร์เฟซเฉพาะ ให้ใช้แฟล็ก “-i” พร้อมกับคำสั่ง “tcpdump” และระบุชื่ออินเทอร์เฟซเครือข่าย

$ sudo tcpdump - ฉันรู้

คำสั่งที่กำหนดจะจับการรับส่งข้อมูลที่อินเทอร์เฟซ 'lo' หากคุณต้องการแสดงข้อมูลโดยละเอียดหรือรายละเอียดเกี่ยวกับแพ็กเก็ต ให้ใช้แฟล็ก '-v' หากต้องการพิมพ์รายละเอียดที่ครอบคลุมมากขึ้น ให้ใช้แฟล็ก '-vv' พร้อมด้วยคำสั่ง 'tcpdump' การใช้งานและการวิเคราะห์เป็นประจำมีส่วนช่วยในการรักษาสภาพแวดล้อมเครือข่ายที่แข็งแกร่งและปลอดภัย

ในทำนองเดียวกัน คุณสามารถบันทึกการรับส่งข้อมูลที่อินเทอร์เฟซใดก็ได้โดยใช้คำสั่งต่อไปนี้:

$ sudo tcpdump -i ใด ๆ

จับแพ็กเก็ตโดยใช้พอร์ตเฉพาะ

คุณสามารถจับภาพและกรองแพ็กเก็ตได้โดยการระบุชื่ออินเทอร์เฟซและหมายเลขพอร์ต ตัวอย่างเช่น หากต้องการจับแพ็กเก็ตเครือข่ายที่ผ่านอินเทอร์เฟซ 'enp0s3' โดยใช้พอร์ต 22 ให้ใช้คำสั่งต่อไปนี้:

$ tcpdump -i enp0s3 พอร์ต 22

คำสั่งก่อนหน้านี้จะจับแพ็กเก็ตที่ไหลทั้งหมดจากอินเทอร์เฟซ 'enp0s3'

จับแพ็กเก็ตแบบจำกัดด้วย Tcpdump

คุณสามารถใช้แฟล็ก '-c' พร้อมกับคำสั่ง 'tcpdump' เพื่อจับแพ็กเก็ตตามจำนวนที่ระบุ ตัวอย่างเช่น หากต้องการจับแพ็กเก็ตสี่แพ็กเก็ตที่อินเทอร์เฟซ 'enp0s3' ให้ใช้คำสั่งต่อไปนี้:

$ tcpdump -i enp0s3 -c 4

เปลี่ยนชื่ออินเทอร์เฟซโดยใช้ระบบของคุณ

คำสั่ง Tcpdump ที่เป็นประโยชน์ในการจับภาพการรับส่งข้อมูลเครือข่าย

ต่อไปนี้ เราได้แสดงรายการคำสั่ง “tcpdump” ที่มีประโยชน์ซึ่งจะช่วยคุณในการดักจับและกรองการรับส่งข้อมูลเครือข่ายหรือแพ็กเก็ตอย่างมีประสิทธิภาพ:

เมื่อใช้คำสั่ง “tcpdump” คุณสามารถจับแพ็กเก็ตของอินเทอร์เฟซด้วย IP ปลายทางหรือ IP ต้นทางที่กำหนดไว้

$ tcpdump -i {ชื่ออินเทอร์เฟซ} dst {destination-ip}

คุณสามารถจับภาพแพ็กเก็ตที่มีขนาดสแน็ปช็อต 65535 ไบต์ ซึ่งแตกต่างจากขนาดเริ่มต้น 262144 ไบต์ ใน tcpdump เวอร์ชันเก่า ขนาดการจับภาพถูกจำกัดไว้ที่ 68 หรือ 96 ไบต์

$ tcpdump -i enp0s3 -s 65535

วิธีบันทึกแพ็กเก็ตที่จับไว้ในไฟล์

หากคุณต้องการบันทึกข้อมูลที่บันทึกไว้เป็นไฟล์เพื่อการวิเคราะห์เพิ่มเติม คุณสามารถทำได้ โดยจะจับการรับส่งข้อมูลที่อินเทอร์เฟซที่ระบุแล้วบันทึกลงในไฟล์ “.pcap” ใช้คำสั่งต่อไปนี้เพื่อจัดเก็บข้อมูลที่บันทึกไว้ในไฟล์:

$ tcpdump -i <ชื่ออินเทอร์เฟซ> -s 65535 -w <ชื่อไฟล์>.pcap

ตัวอย่างเช่น เรามีอินเทอร์เฟซ 'enps03' บันทึกข้อมูลที่บันทึกไว้นี้ลงในไฟล์ต่อไปนี้:

$ sudo tcpdump -i enps03 -w dump.pcap

ในอนาคต คุณสามารถอ่านไฟล์ที่บันทึกไว้นี้โดยใช้ Wireshark หรือเครื่องมือวิเคราะห์เครือข่ายอื่นๆ ดังนั้น หากคุณต้องการใช้ Wireshark เพื่อวิเคราะห์แพ็กเก็ต ให้ใช้อาร์กิวเมนต์ “-w” และบันทึกลงในไฟล์ “.pcap”

บทสรุป

ในบทช่วยสอนนี้ เราได้สาธิตวิธีการจับภาพและวิเคราะห์แพ็กเก็ตโดยใช้ tcpdump ด้วยความช่วยเหลือของตัวอย่างต่างๆ นอกจากนี้เรายังได้เรียนรู้วิธีบันทึกการรับส่งข้อมูลที่บันทึกไว้เป็นไฟล์ “.pcap” ซึ่งคุณสามารถดูและวิเคราะห์ได้โดยใช้ Wireshark และเครื่องมือวิเคราะห์เครือข่ายอื่นๆ