GNU/Linux >> Belajar Linux >  >> Linux

Pantau Lalu Lintas TCP pada port tertentu

edit :Saya masih mendapatkan upvotes untuk tahun ini nanti. Tolong jangan pilih jawaban ini, jawabannya menggunakan iptables di sini jauh lebih unggul menurut saya.

tcpdump port 443 and '(tcp-syn|tcp-ack)!=0'

atau hanya tcp-syn , atau hanya tcp-ack (tebakan saya adalah yang itu), tergantung pada apa yang Anda butuhkan.


Anda dapat menggunakan dukungan iptables di kernel Linux untuk ini. Keuntungannya adalah tidak memerlukan perangkat lunak tambahan untuk menjadi cukup berguna. Sisi negatifnya adalah memerlukan hak akses root untuk menyiapkannya (tetapi mengingat bahwa Anda berbicara tentang port 443, yang merupakan port dengan hak istimewa, Anda mungkin memerlukan hak akses root untuk sebagian besar solusi).

Tambahkan aturan iptables dengan sesuatu seperti:

sudo iptables -I INPUT -p tcp --dport 443 --syn -j LOG --log-prefix "HTTPS SYN: "

(Sesuaikan -I INPUT bagian yang sesuai dengan selera Anda.)

Saat aturan dipicu, entri syslog akan dikeluarkan oleh kernel. Misalnya, dengan aturan input, entri log mungkin terlihat seperti:

5 Des 09:10:56 nama host kernel:[1023963.185332] HTTPS SYN:IN=ifX OUT=MAC=80:80:80:80:80:80:80:80:80:80:80:80:08:00 SRC=A.B.C.D DST=W.X.Y.Z LEN=52 TOS=0x00 PREC=0x20 TTL=119 ID=11901 DF PROTO=TCP SPT=37287 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0

Anda kemudian dapat menggunakan alat pemantauan log run-of-the-mill untuk melakukan sesuatu yang berguna dengan informasi ini. Jika implementasi syslog Anda mendukungnya, Anda bahkan dapat mengarahkannya ke file log terpisah, yang secara efektif memenuhi kebutuhan Anda untuk menulis data koneksi ke file yang diberi stempel waktu ke file kedua tanpa perangkat lunak tambahan.

Perhatikan bahwa LOG target adalah target non-terminating, yang berarti bahwa setiap aturan yang mengikutinya akan tetap dievaluasi, dan paket tidak akan ditolak atau diterima oleh aturan LOG itu sendiri. Ini membuat LOG target berguna juga untuk men-debug aturan firewall.

Untuk menghindari membanjiri log Anda, pertimbangkan untuk menggunakan limit modul sehubungan dengan ini. Lihat halaman manual iptables(8) untuk detailnya.


Resolusi Mikro-Detik

Secara default, utilitas tcpdump akan melaporkan waktu dengan resolusi mikro-detik. Misalnya:

$ sudo tcpdump -i any port 443

akan menampilkan output yang mirip dengan berikut:

12:08:14.028945 IP localhost.33255> localhost.https:Tandai [S], seq 1828376761, win 43690, opsi [mss 65495,sackOK,TS val 108010971 ecr 0,nop,wscale 7], panjang 0
12:08:14.028959 IP localhost.https> localhost.33255:Bendera [R.], seq 0, ack 1828376762, win 0, panjang 0

Lihat tcpdump(8) untuk daftar lengkap opsi tcpdump, dan pcap-filter(7) untuk sintaks lengkap dari filter yang dapat Anda gunakan.


Linux
  1. Bagaimana Memantau Lalu Lintas TCP Antara Localhost Dan Alamat Ip?

  2. Bagaimana saya bisa mem-port forward dengan iptables?

  3. Soket Unix vs host TCP/IP:port

  1. Cara Memantau dan Mencatat Lalu Lintas Jaringan di Linux Menggunakan vnStat

  2. Bagaimana saya bisa mematikan TCP port 16969 di Bash?

  3. cara menggunakan netstat pada port tertentu di Linux

  1. Arahkan hanya lalu lintas tertentu melalui VPN

  2. Arti entri log dari konfigurasi iptables

  3. Bunuh proses yang berjalan di port 80