แก้ไขปัญหาเครือข่ายใน Linux

แก้ไขปัญหาเครือข่ายใน Linux

ในบทความนี้ เราจะอธิบายวิธีแก้ไขปัญหาเครือข่ายใน Linux โดยใช้คำสั่ง tcpdump

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

มาเริ่มขั้นตอนการติดตั้งกันเลย

1. ติดตั้ง tcpdump

หากระบบของคุณยังไม่ได้ติดตั้ง tcpdump คุณสามารถติดตั้งโดยใช้คำสั่งต่อไปนี้:

สำหรับระบบที่ใช้ CentOS หรือ Red Hat Enterprise Linux:

# dnf install tcpdump -y

สำหรับระบบที่ใช้ Ubuntu:

# apt-get install tcpdump -y

2. ตรวจสอบการติดตั้ง

ในการตรวจสอบการติดตั้ง ให้ใช้คำสั่งต่อไปนี้:

# which tcpdump

เอาท์พุท:

/usr/sbin/tcpdump

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

ก่อนจับแพ็กเก็ต ให้ตรวจสอบอินเทอร์เฟซเครือข่ายโดยใช้คำสั่งต่อไปนี้:

# tcpdump -D

จะแสดงอินเทอร์เฟซเครือข่ายที่มีอยู่ทั้งหมด

มาเริ่มจับแพ็กเก็ตกันโดยใช้คำสั่งต่อไปนี้:

# tcpdump --interface any

Tcpdump ยังคงจับแพ็กเก็ตต่อไปจนกว่าจะได้รับสัญญาณขัดจังหวะ คุณสามารถขัดจังหวะการจับภาพได้โดยกด Ctrl+C ในการจำกัดจำนวนของแพ็กเก็ตที่ดักจับและหยุด tcpdump ให้ใช้ตัวเลือก -c (สำหรับนับ):

# tcpdump -i any -c 10

ปิดใช้งานการจำแนกชื่อ

การแก้ไขปัญหาเครือข่าย การใช้ที่อยู่ IP และหมายเลขพอร์ตมักจะง่ายกว่า ปิดใช้งานการจำแนกชื่อโดยใช้ตัวเลือก -n และการแก้ปัญหาพอร์ตด้วย -nn:

# tcpdump -i any -c5 -nn

ตามคำสั่งด้านบนจะจับเอาท์พุตตอนนี้จะแสดงที่อยู่ IP และหมายเลขพอร์ต

การกรองแพ็กเก็ต

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

ในการดักจับเฉพาะแพ็กเก็ต ICMP ให้ใช้คำสั่งต่อไปนี้:

# tcpdump -i any -c10 icmp

จำกัดการดักจับเฉพาะแพ็กเก็ตที่เกี่ยวข้องกับโฮสต์เฉพาะโดยใช้ตัวกรองโฮสต์:

# tcpdump -i any -c5 -nn host 192.168.0.12

คำสั่งด้านบนจะจับและแสดงเฉพาะแพ็กเก็ตเข้าและออกจากโฮสต์ 192.168.0.12

ในการกรองแพ็กเก็ตตามบริการหรือพอร์ตที่ต้องการ ให้ใช้ตัวกรองพอร์ต ตัวอย่างเช่น ดักจับแพ็กเก็ตที่เกี่ยวข้องกับบริการเว็บ (HTTP) โดยใช้คำสั่งนี้:

# tcpdump -i any -c10 -nn port 80

เพื่อกรองแพ็กเก็ตตามที่อยู่ IP หรือชื่อโฮสต์ต้นทางหรือปลายทาง ตัวอย่างเช่น ในการดักจับแพ็กเก็ตจากโฮสต์ 192.168.0.12:

# tcpdump -i any -c10 -nn src 192.168.0.12

บันทึกการจับภาพลงในไฟล์

หากต้องการบันทึกแพ็กเก็ตลงในไฟล์แทนที่จะแสดงบนหน้าจอ ให้ใช้ตัวเลือก -w (สำหรับเขียน):

# tcpdump -i any -c10 -nn -w webserver.pcap port 80

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

ตัวอย่างคำสั่งเพิ่มเติม

เพื่อพิมพ์แพ็คเก็ตเริ่มต้นและสิ้นสุด (แพ็กเก็ต SYN และ FIN) ของการสนทนา TCP แต่ละรายการที่เกี่ยวข้องกับโฮสต์ที่ไม่ใช่ในเครื่อง

# tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

หากต้องการพิมพ์แพ็กเก็ต TCP พร้อมแฟล็ก RST และ ACK ทั้งสองชุด (เช่น เลือกเฉพาะแฟล็ก RST และ ACK ในฟิลด์แฟล็ก และหากผลลัพธ์คือ "RST และ ACK ทั้งสองชุด" ให้จับคู่)

# tcpdump 'tcp[tcpflags] & (tcp-rst|tcp-ack) == (tcp-rst|tcp-ack)'

ในการพิมพ์แพ็กเก็ต IPv4 HTTP ทั้งหมดเข้าและออกจากพอร์ต 80 เช่น พิมพ์เฉพาะแพ็กเก็ตที่มีข้อมูลเท่านั้น เช่น แพ็กเก็ต SYN และ FIN และแพ็กเก็ต ACK เท่านั้น (IPv6 เหลือไว้เป็นแบบฝึกหัดสำหรับผู้อ่าน)

# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<2)) -="" ((tcp[12]&0xf0)="">>2)) != 0)'

ในการพิมพ์แพ็กเก็ต IP ที่ยาวกว่า 576 ไบต์ที่ส่งผ่านเกตเวย์ snup:

# tcpdump 'gateway snup and ip[2:2] > 576'

ในการพิมพ์ IP ออกอากาศหรือแพ็กเก็ตมัลติคาสต์ที่ไม่ได้ส่งผ่านการออกอากาศอีเทอร์เน็ตหรือมัลติคาสต์:

# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

ในการพิมพ์แพ็กเก็ต ICMP ทั้งหมดที่ไม่ใช่คำขอ/ตอบกลับ echo (เช่น ไม่ใช่ ping แพ็กเก็ต):

# tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

ตรวจสอบหน้าคนโดยใช้คำสั่งต่อไปนี้:

# man tcpdump

ในบทความนี้ เราได้เห็นวิธีแก้ไขปัญหาเครือข่ายใน Linux โดยใช้คำสั่ง tcpump

รับเซิร์ฟเวอร์เฉพาะ dual E5 series ประสิทธิภาพสูงและ KVM VPS ราคาถูก


วิธีสร้างกลุ่มใน Linux

วิธีสร้างกลุ่มใน Linux

กลุ่มใช้เพื่อจัดระเบียบผู้ใช้และสิทธิพิเศษเช่นการอ่านการเขียนและการดำเนินการอนุญาต ในการเพิ่ม groud คำสั่งคือ groupadd

3 วิธีในการตรวจสอบการใช้งาน CPU ใน Linux

3 วิธีในการตรวจสอบการใช้งาน CPU ใน Linux

อธิบาย 3 วิธีในการตรวจสอบการใช้งาน CPU ใน Linux การใช้งาน CPU หมายถึงการใช้ทรัพยากรในการประมวลผล หรือปริมาณงานที่ CPU จัดการ

วิธีการติดตั้งและกำหนดค่า DenyHosts ใน CentOS 7

วิธีการติดตั้งและกำหนดค่า DenyHosts ใน CentOS 7

DenyHosts ใช้กันอย่างแพร่หลายแทน Fail2ban หากมีการพยายามเข้าสู่ระบบ SSH ที่ไม่ถูกต้องมากเกินไป จะถือว่าการโจมตีด้วยกำลังเดรัจฉานหรือ

เมานต์ดิสก์ใหม่ไปยังเซิร์ฟเวอร์ Linux

เมานต์ดิสก์ใหม่ไปยังเซิร์ฟเวอร์ Linux

เราจะเรียนรู้วิธีเมานต์ดิสก์ใหม่กับเซิร์ฟเวอร์ Linux สำหรับการสาธิตนี้ เราใช้เซิร์ฟเวอร์คลาวด์ CentOS 7 ตอนนี้เมานต์พาร์ติชั่นดังที่แสดงด้านล่าง

ง่ายต่อการติดตั้ง Fail2ban บน Ubuntu 20.04

ง่ายต่อการติดตั้ง Fail2ban บน Ubuntu 20.04

อธิบายว่าการติดตั้ง Fail2ban บน Ubuntu 20.04 นั้นง่ายเพียงใด Fail2ban เขียนด้วยภาษาโปรแกรม Python และเป็นโอเพ่นซอร์สฟรี การกำหนดค่า

วิธีการติดตั้ง WireGuard VPN บน Ubuntu 20.04

วิธีการติดตั้ง WireGuard VPN บน Ubuntu 20.04

อธิบายวิธีการติดตั้ง WireGuard VPN บน Ubuntu 20.04 เป็นอย่างดี WireGuard เป็น VPN ที่ใช้งานง่าย รวดเร็ว และทันสมัยมากซึ่งใช้การเข้ารหัสที่ล้ำสมัย

วิธีการติดตั้ง OpenSSL 1.1.1d ใน CentOS

วิธีการติดตั้ง OpenSSL 1.1.1d ใน CentOS

OpenSSL เป็นชุดเครื่องมือเต็มรูปแบบที่มีประสิทธิภาพในเชิงพาณิชย์สำหรับโปรโตคอล Transport Layer Security (TLS) & (SSL) เรียนรู้การติดตั้ง OpenSSL 1.1.1d ใน CentOS

วิธีการติดตั้งและกำหนดค่า CSF บน CentOS 8

วิธีการติดตั้งและกำหนดค่า CSF บน CentOS 8

วิธีติดตั้งและกำหนดค่า CSF บนเซิร์ฟเวอร์ CentOS 8 ConfigServer Security & Firewall เป็นไฟร์วอลล์ (SPI) แอปพลิเคชันการเข้าสู่ระบบ/การตรวจจับการบุกรุกและความปลอดภัย

การกำหนดค่ากฎการตรวจสอบไม่สะท้อน – วิธีแก้ไขปัญหา

การกำหนดค่ากฎการตรวจสอบไม่สะท้อน – วิธีแก้ไขปัญหา

การกำหนดค่ากฎการตรวจสอบไม่สะท้อนให้เห็น? เรียนรู้ว่าวิศวกรฝ่ายสนับสนุนของเราแก้ปัญหาและแก้ไขปัญหาได้อย่างไร ไฟล์การกำหนดค่ากฎ /etc/audit/rules.d/audit.rules

CloudLinux โหลดสูงบนเซิร์ฟเวอร์

CloudLinux โหลดสูงบนเซิร์ฟเวอร์

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