Saya telah mencari ini secara luas, tetapi tampaknya tidak dapat menghasilkan contoh yang berfungsi.
Tujuan saya adalah untuk memonitor lalu lintas TCP pada port tertentu untuk melihat koneksi yang masuk dan menulisnya ke file teks. Tangkapannya adalah saya juga perlu cap waktu di setiap baris untuk menunjukkan dengan tepat ketika klien terhubung ke yang kedua.
Saya sudah kehabisan netstat, nmap, dan tcptrack, tetapi tidak ada timestamp yang mendukung.
Saya berpikir skrip shell linux mungkin berfungsi jika saya memonitor port lokal tertentu dan menulis teks ke file ketika koneksi dibuat kemudian baru saja menyatukan tanggal pada setiap baris.
Saya bermain dengan ini:
netstat -ano|grep 443|grep ESTABLISHED
dan juga ini:
tcptrack -i eth0 port 443
tetapi tidak sesuai dengan kebutuhan saya karena saya membutuhkan waktu koneksi masuk
Jika Anda memiliki saran atau dapat mengarahkan saya ke arah yang benar, itu akan sangat dihargai.
Terima kasih. :)
Jawaban:
sunting : Saya masih menerima upvotes untuk tahun ini kemudian. Tolong jangan pergi untuk jawaban ini, jawaban yang digunakan di
iptables
sini jauh lebih unggul menurut saya.atau hanya
tcp-syn
, atau hanyatcp-ack
(tebakan saya akan menjadi yang itu), tergantung pada apa yang Anda butuhkan.sumber
-n
setelah tcpdump (man tcpdump: -n Jangan mengonversi alamat (mis., Alamat host, nomor port, dll. )Anda dapat menggunakan dukungan iptables di kernel Linux untuk ini. Sisi baiknya adalah tidak memerlukan perangkat lunak tambahan apa pun untuk cukup bermanfaat. Kelemahannya adalah bahwa ia membutuhkan hak akses root untuk mengatur (tetapi mengingat bahwa Anda berbicara tentang port 443, yang merupakan port istimewa, Anda mungkin perlu hak akses root dengan sebagian besar solusi).
Tambahkan aturan iptables dengan sesuatu seperti:
(Sesuaikan
-I INPUT
bagian yang sesuai dengan selera Anda.)Ketika aturan dipicu, entri syslog akan dipancarkan oleh kernel. Misalnya, dengan aturan input, entri log mungkin terlihat seperti:
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 mengarahkan ini ke file log yang terpisah, secara efektif memenuhi persyaratan Anda untuk menulis data koneksi ke file yang dicocokkan waktu dengan yang kedua tanpa perangkat lunak tambahan.
Perhatikan bahwa
LOG
target tersebut adalah target non-terminating, yang berarti bahwa setiap aturan yang mengikutinya masih akan dievaluasi, dan paket tidak akan ditolak atau diterima oleh aturan LOG itu sendiri. Ini membuatLOG
target berguna juga untuk debugging aturan firewall.Untuk menghindari membanjiri log Anda, pertimbangkan untuk menggunakan
limit
modul bersamaan dengan ini. Lihat halaman manual iptables (8) untuk detailnya.sumber
Resolusi Mikro-Kedua
Secara default, utilitas tcpdump akan melaporkan waktu dengan resolusi mikro-detik. Sebagai contoh:
akan menampilkan output yang mirip dengan yang berikut:
Lihat tcpdump (8) untuk daftar lengkap opsi tcpdump, dan pcap-filter (7) untuk sintaksis lengkap dari filter yang dapat Anda gunakan.
sumber
443 adalah lalu lintas terenkripsi - bagaimanapun sulitnya untuk membuat head atau tail of traffic pada port ini:
Anda dapat melakukan
yum instal ngrep atau apt-get install ngrep
lalu lari
sumber
Anda mungkin memerlukan ini juga untuk memonitor paket yang masuk dan keluar dari mesin lain.
(opsi
-i
untuk menyebutkan jaringan, opsi-c
untuk mencetak paket di konsol)sumber
Anda dapat menggunakan tcpdump atau Wireshark.
sumber
Jika Anda membutuhkan solusi permanen yang akan selalu memonitor lalu lintas di pelabuhan yang diminati, saya sarankan untuk menggunakan QoS (perintah tc di linux). tc agak samar dan tidak berdokumen, jadi saya menggunakan FireQoS untuk mengatur QoS dan netdata untuk memonitornya secara waktu nyata.
Periksa ini untuk informasi lebih lanjut: https://github.com/firehol/netdata/wiki/You-should-install-QoS-on-all-your-servers
sumber