Сегодня случилась странная вещь, такого никогда не было. На сервере перестал работать ssh и sendmail, при этом mysql и apache работали как ни в чем не бывало. Проблема решилась путем перезагрузки через службу техподдержки. (система FreeBSD 4.10-STABLE)
Предположение о переполнении файловой системы не подтвердилось. Анализ логов выявил следующие вещи.В 00.45 первые признаки неполадок, но ssh и sendmail еще работают:
> Jan 9 00:45:00 merlin /kernel: maxproc limit exceeded by uid 0, please see tuning(7) and login.conf(5).
Это сообщение периодически повторяется до 1.50, когда появляется следующее:
> Jan 9 01:50:01 merlin sm-mta[124]: m08No1rP000124: SYSERR(root): doworklist: cannot fork: Resource temporarily unavailable
Sendmail продолжает работать и пересылать письма, но периодически выдает это сообщение.
> Jan 9 04:35:37 merlin sm-mta[367]: m092ZZTF000366: SYSERR(root): deliver: fork 2: Resource temporarily unavailable
Параллельно идут атаки на ssh (но они постоянно происходят и ни к чему плохому еще не приводили):
---
Jan 9 04:46:41 merlin sshd[408]: Illegal user guest from 218.61.232.60
Jan 9 04:46:44 merlin sshd[410]: Illegal user test from 218.61.232.60
Jan 9 04:46:48 merlin sshd[412]: Illegal user oracle from 218.61.232.60
Jan 9 04:46:51 merlin sshd[414]: Failed password for root from 218.61.232.60 port 35717 ssh2
Jan 9 04:46:55 merlin sshd[416]: Failed password for root from 218.61.232.60 port 36277 ssh2
Jan 9 04:46:58 merlin sshd[418]: Failed password for root from 218.61.232.60 port 36775 ssh2
Jan 9 04:47:02 merlin sshd[420]: Failed password for root from 218.61.232.60 port 37258 ssh2
Jan 9 04:47:06 merlin sshd[422]: Failed password for root from 218.61.232.60 port 38047 ssh2
Jan 9 04:47:09 merlin sshd[424]: Failed password for root from 218.61.232.60 port 38626 ssh2
Jan 9 04:47:13 merlin sshd[426]: Failed password for root from 218.61.232.60 port 39178 ssh2
Jan 9 04:47:16 merlin sshd[428]: Failed password for root from 218.61.232.60 port 39655 ssh2
Jan 9 04:47:20 merlin sshd[430]: Failed password for root from 218.61.232.60 port 40146 ssh2
Jan 9 04:47:24 merlin sshd[432]: Failed password for root from 218.61.232.60 port 40912 ssh2
Jan 9 04:47:27 merlin sshd[434]: Failed password for root from 218.61.232.60 port 41387 ssh2
Jan 9 04:47:31 merlin sshd[436]: Failed password for root from 218.61.232.60 port 41957 ssh2
Jan 9 04:47:34 merlin sshd[438]: Failed password for root from 218.61.232.60 port 42435 ssh2
Jan 9 04:47:38 merlin sshd[440]: Failed password for root from 218.61.232.60 port 42928 ssh2
Jan 9 04:47:41 merlin sshd[442]: Failed password for root from 218.61.232.60 port 43408 ssh2
Jan 9 04:47:45 merlin sshd[444]: Failed password for root from 218.61.232.60 port 44182 ssh2
Jan 9 04:47:49 merlin sshd[446]: Failed password for root from 218.61.232.60 port 44741 ssh2
Jan 9 04:47:52 merlin sshd[448]: Failed password for root from 218.61.232.60 port 45215 ssh2
Jan 9 04:47:56 merlin sshd[450]: Failed password for root from 218.61.232.60 port 45705 ssh2
Jan 9 04:47:59 merlin sshd[452]: Failed password for root from 218.61.232.60 port 46172 ssh2
---
Однако вслед за этой атакой появляется сообщение:
> Jan 9 04:48:01 merlin sshd[455]: fatal: fork of unprivileged child failed
После этого сообщения от ssh прекращаются, я так думаю что он уже не принимает запросов.
> Jan 9 11:04:47 merlin sshd[110]: error: fork: Resource temporarily unavailable
Это видимо кто-то из наших админов попытался зайти.
Все, ssh после этого не работал до перезагрузки около 14.00.
Почта перестала работать в 09:04, после чего периодически повторялись только эти сообщения:
> Jan 9 09:04:09 merlin sm-mta[115]: NOQUEUE: SYSERR(root): daemon: cannot fork: Resource temporarily unavailable
> Jan 9 09:18:35 merlin sm-mta[115]: runqueue: Skipping queue run -- fork() failed: Resource temporarily unavailable
Вопрос простой, что это могло быть? Может быть атака? И другой момент, как с этим бороться если оно будет повторяться? Другой вариант - некорректная работа какой-то программы, которая захватила все ресурсы. Но пока-что это не подтвердилось, тем более apache и самый болезненный - mysql работали без проблем до самого последнего момента (перезагрузки).