Selain menggunakan iptables untuk mencatat koneksi yang masuk ..
Apakah ada cara untuk login koneksi masuk yang masuk ke layanan yang Anda tidak memiliki sumber untuk (misalkan layanan tidak mencatat hal-hal seperti ini sendiri)? Yang ingin saya lakukan adalah mengumpulkan beberapa informasi berdasarkan siapa yang terhubung untuk dapat memberi tahu hal-hal seperti berapa kali hari layanan paling banyak digunakan, di mana di dunia basis pengguna utama adalah, dll.
Saya sadar saya bisa menggunakan netstat
dan menghubungkannya ke skrip cron, tapi itu mungkin tidak akurat, karena skrip hanya bisa berjalan sesering satu menit.
Inilah yang sedang saya pikirkan saat ini:
- Tulis sebuah program yang terus-menerus mengadakan polling
netstat
, mencari koneksi yang tidak muncul pada polling sebelumnya. Ide ini sepertinya membuang-buang waktu cpu, karena mungkin tidak ada koneksi baru .. - Tulis program pembungkus yang menerima koneksi masuk pada port apa pun yang menjalankan layanan, tetapi kemudian saya tidak akan tahu bagaimana meneruskan koneksi itu ke layanan nyata.
Sunting: Baru saja terpikir oleh saya bahwa pertanyaan ini mungkin lebih baik untuk stackoverflow, meskipun saya tidak yakin. Maaf kalau ini tempat yang salah.
Jawaban:
Anda dapat mencatat koneksi baru dengan iptables
Ini akan menambahkan pesan seperti ini untuk koneksi ssh baru
atau seperti ini untuk koneksi http baru
dan seterusnya untuk setiap koneksi baru ke sistem Anda. Ini akan masuk ke mana pun syslog Anda dikonfigurasi untuk mengirim pesan kern.warning.
sumber
Anda dapat menggunakan auditd dan pada akhir hari menghitung beberapa statistik berdasarkan loglines tersebut. Atau Anda juga bisa pergi ke solusi snmp tetapi mungkin Anda telah menulis mib Anda sendiri
sumber
Bagaimana dengan tcpdump atau wireshark?
sumber
tcpdump -i <interface> -s 65535 -w <some-file>
Selain itu, Anda harus menghentikan penangkapan dengan ^ C ketika Anda yakin telah menangkap paket yang cukup.