Apakah saya diserang atau hanya bodoh?


11

Saya menjalankan server menggunakan Debian Squeeze dengan beberapa kontainer OpenVZ. Kontainer berjalan kebanyakan Squeeze, beberapa Lenny, dan beberapa sudah diperbarui ke Wheezy. Tuan rumah tidak melakukan banyak hal di luar iptables dan DHCP. Server file, proxy, server mail, kerberos, LDAP, ... semuanya dimasukkan ke dalam wadah. Sistem berjalan stabil selama bertahun-tahun dan tidak memiliki perubahan besar kecuali beberapa aturan firewall selama lebih dari setahun.

2 hari yang lalu tiba-tiba sistem macet. Saya punya banyak masalah untuk membawanya lagi. Pada awalnya itu tidak akan membiarkan saya masuk via ssh. login root ditolak oleh 'Anda tidak ada. Pergi!' Login lokal baik-baik saja. Beberapa waktu kemudian ssh bekerja lagi. Secara kebetulan saya tidak menggunakan kembali baris dari bash history, tetapi mengetikkan perintah baru, yang diperiksa triply identik dengan baris, yang tidak bekerja sebelumnya tetapi bekerja sebelum crash.

Kemudian sistem berjalan, tetapi lalu lintas jaringan pada sebagian besar protokol diblokir mengikuti SYN ACK. DNS, Telnet, dan SSH baik-baik saja, tetapi sisanya berantakan. Setelah beberapa jam memancing dalam gelap dan memuat ulang firewall beberapa kali tiba-tiba semuanya baik-baik saja. Saya tidak dapat menemukan sesuatu yang mencurigakan di log - tapi saya bukan ahli forensik.

Hari ini nscd dari server file keluar dari soket untuk menghubungi LDAP karena kuota wadah. Sesuatu yang tidak pernah terjadi sebelumnya. Saya juga melihat banyak (> 30) soket yang diklaim oleh smbd.

/ var / log / messages tampak sangat sama dengan syslog . /var/log/kern.log memiliki informasi tambahan ini tentang alasan kerusakan:

/var/log/kern.log:2950:Sep 19 10:46:57 asgard kernel: [6529441.320086] INFO: task sendmail:32181 blocked for more than 120 seconds.
/var/log/kern.log:2982:Sep 19 10:48:57 asgard kernel: [6529561.324525] INFO: task kdmflush:1932 blocked for more than 120 seconds.
/var/log/kern.log:3005:Sep 19 10:48:57 asgard kernel: [6529561.324694] INFO: task xfssyncd:10162 blocked for more than 120 seconds.
/var/log/kern.log:3027:Sep 19 10:48:57 asgard kernel: [6529561.324934] INFO: task postgres:16827 blocked for more than 120 seconds.
/var/log/kern.log:3060:Sep 19 10:49:51 asgard kernel: [6529561.325129] INFO: task imapd:31749 blocked for more than 120 seconds.
/var/log/kern.log:3084:Sep 19 10:49:51 asgard kernel: [6529561.325248] INFO: task cleanup:32194 blocked for more than 120 seconds.
/var/log/kern.log:3106:Sep 19 10:50:57 asgard kernel: [6529681.324028] INFO: task flush-253:3:3216 blocked for more than 120 seconds.
/var/log/kern.log:3142:Sep 19 10:50:57 asgard kernel: [6529681.324224] INFO: task kjournald:6859 blocked for more than 120 seconds.
/var/log/kern.log:3166:Sep 19 10:50:57 asgard kernel: [6529681.324366] INFO: task syslogd:11720 blocked for more than 120 seconds.
/var/log/kern.log:3198:Sep 19 10:50:57 asgard kernel: [6529681.324574] INFO: task postgres:16827 blocked for more than 120 seconds.
/var/log/kern.log:7152:Sep 19 19:29:41 asgard kernel: [ 1440.617090] INFO: task sendmail:11892 blocked for more than 120 seconds.

Kerusakan terakhir 'sendmail' adalah setelah me-reboot mesin. Sejak itu tidak ada lagi kejadian seperti itu. 'imapd' dan 'postgres' pasti dijalankan dalam wadah yang berbeda.

Yah, saya tidak melihat pistol merokok, tapi saya mungkin hanya buta. Menyiapkan sistem dari cadangan yang dikenal / dianggap baik akan memukul saya terlalu sulit untuk mencobanya tanpa alasan yang sangat baik.

Saya sangat menghargai saran apa yang harus diperiksa selanjutnya.

Terima kasih atas bantuan Anda.

Pembaruan : Berusaha lebih keras dalam mencari beberapa kursor sebelum crash, saya menemukan yang berikut di syslog:

Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (10490->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (17442->8232)
Sep 19 10:11:02 asgard ntop[7965]:   **WARNING** packet truncated (11650->8232)
Sep 19 10:11:02 asgard ntop[7965]:   **WARNING** packet truncated (10202->8232)
Sep 19 10:11:29 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:13:27 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:20:33 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)

Saya tahu ini dianggap tidak kritis, tetapi tampaknya merupakan peristiwa yang jarang terjadi. Pemotongan paket hanya ada pada hari crash kedua. Tidak ada tempat lain di semua file log yang tersedia.

Jawaban:


2

Ini terlihat seperti DoS, kemungkinan besar berasal dari nework atau dari dalam salah satu wadah yang dikompromikan.

Saya akan melihat vmstat, menjalankannya terus menerus setiap 5 detik: vmstat 5 dan mencatat di mana sumber daya dihabiskan. Anda juga dapat menggunakan layar dan menjalankan vmstat 60 (setiap menit) di jendela yang terpisah - dengan cara ini Anda bisa melihat lonjakan ketika terjadi dalam jangka waktu yang lebih lama.

Dalam situasi ini CPU Sistem tinggi / spiking (sy), tingkat saklar konteks tinggi (cs) dan IO tinggi (ini menunjukkan baik jaringan dan disk) akan menunjukkan DoS:

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   9584   6820 132432  23256    1    1   136    12    1    1 83  1 15  0  0
 0  0   9584   6696 132432  23256    0    0     0     0   20   32  0  0 99  0  1

Pada saat yang sama memonitor lalu lintas jaringan pada host, saya sarankan ntop, yaitu:

$ nload -t 10000 -u H eth0

0

Sepertinya kesalahan I / O Disk. Jalankan fsck dan periksa kesalahan.


Saya akan mencoba menjadwalkan waktu henti untuk itu. Namun, tidak ada log terkait kegagalan disk I / O di mana saja. Atau apakah kamu melihat?
Lars Hanke

0

Mungkin Anda tidak memiliki kesalahan sistem file, tapi saya yakin Anda melihat peringatan di log Anda, karena Anda memiliki banyak proses dalam keadaan D (menunggu I / O) dan kernel memberitahu Anda tentang menunggu lama.


Saya kira inilah masalahnya. Tapi kenapa? Dalam kondisi normal tidak ada proses dalam keadaan D. Jika benar-benar jaringan turun, itu mungkin menjelaskan itu. Tetapi mengapa itu hanya akan turun untuk beberapa layanan? Mengapa kondisi itu bertahan hidup setelah reboot? Dan mengapa itu muncul lagi?
Lars Hanke

0

Kesalahan menunjukkan bahwa proses Anda menunggu terlalu lama (120dtk) untuk mengakses disk; ini terjadi pada server yang sangat padat di mana disk terlalu sibuk untuk merespons proses.

Anda dapat memastikan dengan mencentang "Menunggu" di bawah vmstat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.