Tcpdump เบื้องต้น

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

บทความนี้จะแบ่งออกเป็นสามส่วน:

  • คุณสมบัติพื้นฐาน
  • กรองตามลักษณะการรับส่งข้อมูลบางอย่าง
  • ตัวอย่างสั้น ๆ ของคุณสมบัติขั้นสูง (เช่นนิพจน์โลจิคัลการกรองโดยแฟล็ก TCP)

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

apt-get install tcpdump

สำหรับ CentOS / RedHat ให้ใช้คำสั่งต่อไปนี้:

yum install tcpdump

FreeBSD เสนอแพ็คเกจสำเร็จรูปที่สามารถติดตั้งได้โดยการออก:

pkg install tcpdump

นอกจากนี้ยังมีพอร์ตที่สามารถใช้ได้net/tcpdumpซึ่งสามารถติดตั้งผ่าน:

cd /usr/ports/net/tcpdump
make install clean

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

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

ก่อนที่จะลงรายละเอียดเพิ่มเติมเกี่ยวกับวิธีกรองอินพุตคุณควรดูพารามิเตอร์บางอย่างที่สามารถส่งผ่านไปยัง tcpdump:

  • -i- tcpdump -i eth0ระบุอินเตอร์เฟซที่คุณต้องการฟังตัวอย่างเช่น:
  • -n- อย่าพยายามย้อนกลับการค้นหาที่อยู่ IP ตัวอย่างเช่น: tcpdump -n(หากคุณเพิ่มntcpdump อื่นจะแสดงหมายเลขพอร์ตแทนชื่อ)
  • -X- tcpdump -Xแสดงเนื้อหาของแพ็กเก���ตที่เก็บ:
  • -c- จับเฉพาะxแพ็คเก็ตซึ่งxเป็นหมายเลขที่กำหนดเองตัวอย่างเช่นtcpdump -c 10จับ 10 แพ็กเก็ตทั้งหมด
  • -v- เพิ่มจำนวนข้อมูลแพ็คเก็ตที่คุณแสดงvเพิ่มการใช้คำฟุ่มเฟื่อยมากขึ้น

พารามิเตอร์แต่ละตัวที่กล่าวถึงที่นี่สามารถรวมเข้าด้วยกัน หากคุณต้องการจับภาพ 100 แพ็กเก็ต แต่บนอินเทอร์เฟซ VPN tun0 ของคุณเท่านั้นคำสั่ง tcpdump จะมีลักษณะดังนี้:

tcpdump -i tun0 -c 100 -X

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

ตอนนี้คุณมีความเข้าใจพื้นฐานของ tcpdump แล้วก็ถึงเวลาที่จะดูหนึ่งในคุณสมบัติที่ยอดเยี่ยมที่สุดของ tcpdump: การแสดงออก การแสดงออกจะทำให้ชีวิตของคุณง่ายขึ้นมาก พวกเขายังเป็นที่รู้จักกันในนาม BPF หรือ Berkeley Packet Filters การใช้นิพจน์ช่วยให้คุณสามารถเลือกแสดง (หรือเพิกเฉย) แพ็คเก็ตที่ขึ้นอยู่กับคุณสมบัติบางอย่างเช่นต้นทางปลายทางขนาดหรือแม้กระทั่งหมายเลขลำดับ TCP

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

นิพจน์ที่คุณอาจใช้บ่อยที่สุด ได้แก่ :

  • host - ค้นหาการรับส่งข้อมูลตามชื่อโฮสต์หรือที่อยู่ IP
  • srcหรือdst- ค้นหาการรับส่งข้อมูลจากหรือไปยังโฮสต์ที่เฉพาะเจาะจง
  • proto- มองหาทราฟฟิกของโปรโตคอลที่แน่นอน ใช้งานได้กับ tcp, udp, icmp และอื่น ๆ การไม่ใช้protoคำหลักนั้นก็เป็นไปได้เช่นกัน
  • net - ค้นหาการรับส่งข้อมูลไปยัง / จากช่วงที่อยู่ IP บางช่วง
  • port - ค้นหาปริมาณข้อมูลไปยัง / จากพอร์ตที่กำหนด
  • greaterหรือless- ค้นหาปริมาณข้อมูลที่ใหญ่กว่าหรือเล็กกว่าจำนวนไบต์ที่แน่นอน

ในขณะที่ manpage ของtcpdumpเพียงแค่มีตัวอย่างเล็ก ๆ น้อย ๆ manpage สำหรับpcap-filterมีคำอธิบายโดยละเอียดเกี่ยวกับวิธีการทำงานของตัวกรองแต่ละตัวและสามารถนำไปใช้ได้

หากคุณต้องการดูว่าการสื่อสารของคุณกับเซิร์ฟเวอร์นั้นเป็นอย่างไรคุณสามารถใช้hostคำหลักเช่น (รวมถึงพารามิเตอร์บางอย่างจากด้านบน):

tcpdump -i eth0 host vultr.com

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

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

อาจมีเพียงบางพอร์ตที่คุณสนใจ ในกรณีนี้ใช้portนิพจน์:

tcpdump -i eth0 -X port 21

นอกจากนี้คุณยังสามารถค้นหาช่วงของพอร์ตได้:

tcdump -i eth0 -X portrange 22-25

เนื่องจากเกตเวย์ NAT เป็นเรื่องธรรมดาคุณอาจมองหาพอร์ตปลายทางเท่านั้น:

tcpdump dst port 80

หากคุณกำลังรับชมทราฟฟิกไปยังเว็บเซิร์ฟเวอร์ของคุณคุณอาจต้องการดูทราฟฟิก TCP ไปยังพอร์ต 80:

tcpdump tcp and dst port 80

คุณอาจถามตัวเองว่าคำสำคัญandทำอะไรอยู่ที่นั่น คำถามที่ดี. นั่นนำเราไปสู่ส่วนสุดท้ายของบทความนี้

tcpdump ให้การสนับสนุนขั้นพื้นฐานสำหรับการแสดงออกเชิงตรรกะโดยเฉพาะอย่างยิ่ง:

  • and/ &&- ตรรกะ "และ"
  • or/ ||- ตรรกะ "หรือ"
  • not/ !- ตรรกะ "ไม่"

เมื่อรวมความสามารถในการจัดกลุ่มนิพจน์เข้าด้วยกันสิ่งนี้จะช่วยให้คุณสร้างการค้นหาที่ทรงพลังมากสำหรับการรับส่งข้อมูลขาเข้าและขาออก ลองกรองการรับส่งข้อมูลที่มาจาก vultr.com บนพอร์ต 22 หรือ 443:

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

การรันสิ่งนี้บนบรรทัดรับคำสั่งจะทำให้คุณมีข้อผิดพลาดต่อไปนี้:

bash: syntax error near unexpected token `('

นั่นเป็นเพราะมีข้อแม้: bashพยายามประเมินตัวละครทุกตัวที่ทำได้ ซึ่งรวมถึง(และ)ตัวละคร เพื่อหลีกเลี่ยงข้อผิดพลาดคุณควรใช้เครื่องหมายคำพูดเดี่ยวรอบนิพจน์รวม:

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

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

tcpdump '!(host $youripaddress) && port 22)'

อีกครั้งกรณีการใช้งานไม่มีที่สิ้นสุดและคุณสามารถระบุความลึกของการรับส่งข้อมูลที่คุณต้องการดู คำสั่งต่อไปนี้จะแสดงให้คุณเห็นเพียงแพ็คเก็ต SYNACK ของ TCP handshake:

tcpdump -i eth0 'tcp[13]=18'

สิ่งนี้ทำงานได้โดยดูที่ offset สิบสามของส่วนหัว TCP และไบต์ที่สิบแปดภายใน

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

สุดท้าย แต่ไม่ท้ายสุด - มองย้อนกลับไป จำจุดเริ่มต้นของบทความนี้ได้หรือไม่ ด้วยแพ็กเก็ตนับพันที่ถูกจับในเวลาไม่กี่วินาที? พลังของการtcpdumpตัดทอนลงได้มาก:

tcpdump -i eth0 tcp port 22

ผลลัพธ์คือตอนนี้:

81 packets captured
114 packets received by filter
0 packets dropped by kerne

นี่คือ saner มากและง่ายต่อการตรวจแก้จุดบกพร่อง เครือข่ายมีความสุข!

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true