Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีใช้ tcpdump สำหรับ Packet Capture

วิธีใช้ tcpdump สำหรับ Packet Capture

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

tcpdump คืออะไร

tcpdump เป็นเครื่องมือวิเคราะห์แพ็กเก็ตเครือข่ายที่พัฒนาและเผยแพร่ในปี 1988 โดยทีมนักวิทยาศาสตร์คอมพิวเตอร์ที่ทำงานอยู่ที่ Lawrence Berkeley Laboratory และ Network Research Group ใช้เพื่อแสดงเนื้อหาของแพ็กเก็ตที่คอมพิวเตอร์ส่งและรับ ยูทิลิตีนี้มาพร้อมกับตัวเลือกต่างๆ มากมายเพื่อให้การดักจับแพ็กเก็ตมีความเฉพาะเจาะจงและเน้นย้ำมากขึ้น บางตัวเลือกเหล่านี้รวมถึงโปรโตคอลเครือข่ายและอินเทอร์เฟซเครือข่ายที่แตกต่างกัน

การติดตั้ง

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

ตัวอย่างเช่น หากคุณใช้ Ubuntu หรือ Debian สามารถติดตั้งโดยใช้ apt :

sudo apt install tcpdump

บน CentOS ทำเช่นเดียวกันโดยใช้ yum :

sudo yum install tcpdump

และบน Arch Linux โดยใช้ pacman :

sudo pacman -S tcpdump

พื้นฐาน

เมื่อติดตั้ง tcpdump แล้ว คุณสามารถดูคู่มือโดยใช้ -h ธง:

tcpdump -h

นี่แสดงรายการแฟล็กที่คุณสามารถใช้ได้เมื่อใช้เครื่องมือ

วิธีใช้ tcpdump สำหรับ Packet Capture

หากคุณต้องการดูคู่มือที่ละเอียดและครอบคลุมยิ่งขึ้น คุณสามารถดู man page (หน้าคู่มือ) โดยใช้ man คำสั่ง:

man tcpdump
วิธีใช้ tcpdump สำหรับ Packet Capture

คุณเรียกใช้การดักจับแพ็กเก็ตพื้นฐานได้โดยพิมพ์:

tcpdump

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

ถ้าคุณไม่ต้องการให้ tcpdump แก้ไขชื่อโฮสต์และต้องการให้แสดงเฉพาะที่อยู่ IP คุณสามารถใช้ -n ธง:

tcpdump -n

หากคุณต้องการระบุจำนวนแพ็กเก็ตที่คุณต้องการจับภาพ ให้ใช้ -c ธง:

tcpdump -c [number of packets]

การระบุอินเทอร์เฟซเครือข่าย

คุณสามารถระบุตัวเลือกอินเทอร์เฟซเครือข่ายของคุณได้โดยใช้ -i ธง:

tcpdump -i [interface]

ชื่ออินเทอร์เฟซเครือข่ายทั่วไปสองชื่อบนระบบส่วนใหญ่คือ eth0 และ wlan0:

tcpdump -i eth0
tcpdump -i wlan0

หากคุณต้องการบันทึกข้อมูลในทุกอินเทอร์เฟซ คุณสามารถใช้ any ตัวเลือก:

tcpdump -i any
วิธีใช้ tcpdump สำหรับ Packet Capture

การระบุช่วงพอร์ต/พอร์ต

หากคุณต้องการบันทึกข้อมูลที่ใช้หมายเลขพอร์ตเฉพาะ ให้ใช้คำสั่ง:

tcpdump -i [interface] port [port number]

สมมติว่าคุณต้องการจับทราฟฟิกบน eth0 อินเทอร์เฟซและสำหรับพอร์ต 443 (HTTPS) พิมพ์ดังต่อไปนี้:

tcpdump -i eth0 port 443

นอกจากนี้ tcpdump ยังให้คุณระบุช่วงของพอร์ต:

tcpdump -i [interface] portrange [port range]

การระบุโฮสต์หรือซับเน็ต

จะมีบางครั้งที่คุณต้องการจำกัดแพ็กเก็ตที่ดักจับไว้เฉพาะแพ็กเก็ตที่ส่ง/รับจากโฮสต์หรือซับเน็ตเฉพาะ โชคดีที่ tcpdump ให้คุณทำเช่นนั้นได้

คุณสามารถระบุโฮสต์โดยใช้รูปแบบต่อไปนี้:

tcpdump -i [interface] host [host]

ตัวอย่างเช่น บันทึกการรับส่งข้อมูลบนอินเทอร์เฟซ eth0 และระบุโฮสต์เป็น 127.0.0.1 (ที่อยู่ IP ลูปแบ็คของคุณเอง):

tcpdump -i eth0 host 127.0.0.1
วิธีใช้ tcpdump สำหรับ Packet Capture

หากคุณต้องการระบุซับเน็ตเครือข่ายโดยใช้รูปแบบ CIDR คุณสามารถใช้รูปแบบต่อไปนี้:

tcpdump -i [interface] net [subnet]

ตัวอย่างเช่น:

tcpdump -i eth0 net 10.0.0.0/8

คุณยังสามารถระบุโฮสต์ต้นทางได้โดยตรง:

tcpdump -i [interface] src [host]

และโฮสต์ปลายทาง:

tcpdump -i [interface] dst [host]

การระบุคำฟุ่มเฟือย

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

มีสามตัวเลือกที่เพิ่มขึ้นสำหรับการใช้คำฟุ่มเฟือย แฟล็ก -v , -vv และ -vvv :

tcpdump -i [interface] -v
tcpdump -i [interface] -vv
tcpdump -i [interface] -vvv
วิธีใช้ tcpdump สำหรับ Packet Capture

ตัวเลือกแรกระบุคำฟุ่มเฟือยน้อยที่สุด ในขณะที่ตัวเลือกที่สามระบุมากที่สุด

การบันทึกการจับภาพเป็นไฟล์

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

ทำได้โดยใช้ -w ธง:

tcpdump -i [interface] -w [filename]

ตัวอย่างเช่น คุณสามารถบันทึกข้อมูลที่จับไปยังไฟล์ชื่อ “capture.txt”:

tcpdump -i eth0 -w capture.txt

คำถามที่พบบ่อย

1. ฉันได้รับข้อผิดพลาด "ไม่อนุญาตให้ดำเนินการ" ฉันจะแก้ไขได้อย่างไร

ต่อไปนี้คือข้อผิดพลาดทั่วไปที่ผู้ใช้อาจได้รับเมื่อพยายามใช้ tcpdump:

วิธีใช้ tcpdump สำหรับ Packet Capture

tcpdump แสดงข้อผิดพลาดนี้เมื่อคุณไม่มีสิทธิ์ที่จำเป็นในการดักจับแพ็กเก็ต ในสถานการณ์ส่วนใหญ่ คุณสามารถแก้ไขปัญหานี้ได้โดยใช้ sudo . ตัวอย่างเช่น:

sudo tcpdump -i eth0

2. ฉันจะทราบได้อย่างไรว่ามีอินเทอร์เฟซเครือข่ายใดบ้าง

tcpdump มีฟังก์ชันในตัวที่ช่วยให้คุณสามารถตรวจสอบอินเทอร์เฟซเครือข่ายที่มีอยู่ในระบบของคุณได้

ในการตรวจสอบอินเทอร์เฟซ ใช้ -D ธง:

tcpdump -D