Я попробовал бы это:
# IP address entry older than one day
iptables -A ... -m recent --name mydaily ! --rcheck ! --seconds 86400 -j logandset
# IP address never seen before
iptables -A ... -m recent --name mydaily ! --rcheck -j logandset
# Custom chain for logging and refreshing
iptables -N logandset
iptables -A logandset -j LOG
iptables -A logandset -m recent --name mydaily --set
Так Ваш список mydaily
будет отслеживать последние замеченные IP-адреса, и если никогда не замечалось прежде, или если замеченное последнее будет более старым, чем один день, то пакет будет зарегистрирован, и запись списка для того IP-адреса быть обновленным.
Необходимо, вероятно, установить ip_list_tot
к более высокому значению для mydaily
, как объяснено в iptables странице справочника (В Вашем случае для/proc/net/xt_recent/mydaily).
[Fri Aug 05 05:54:44 2011] [error] [client 88.190.231.199] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Fri Aug 05 06:38:57 2011] [error] [client 91.194.219.139] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Fri Aug 05 06:39:41 2011] [error] [client 91.194.219.139] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
Похож на кого-то, зондирует Ваш сервер с DFind. Но Apache отклонил этот запрос, потому что имя хоста отсутствует.
Можно использовать iptables
с string
модуль для отбрасывания его:
iptables -A INPUT -d <your_server_IP> -p tcp --dport 80 -m string -algo bm --string '/w00tw00t.at.ISC.SANS.' -j DROP
Необходимо ограничить смещение поиском с --from
и --to
(сделайте это с tcpdump
на сервере и открытый Wireshark).
[warn] child process 24958 still did not exit, sending a SIGTERM
Это означает, что дочерние процессы не были завершены, и Оконечный Сигнал был отправлен. Есть ли в error_log какие-либо другие ошибки?
[error] child process 25140 still did not exit, sending a SIGKILL
Сила сразу уничтожает дочерний процесс.
[error] could not make child process 25234 exit, attempting to continue anyway
Процесс, подвешенный по некоторым причинам и, не мог быть уничтожением.
Эти сообщения похожи на систему, сознательно закрывается:
[Fri Aug 05 07:03:35 2011] [warn] child process 24958 still did not exit, sending a SIGTERM
[Fri Aug 05 07:04:16 2011] [error] child process 25170 still did not exit, sending a SIGKILL
[Fri Aug 05 07:04:17 2011] [error] could not make child process 25234 exit, attempting to continue anyway
[Fri Aug 05 07:04:17 2011] [notice] caught SIGTERM, shutting down
Поскольку система закрывается, она уничтожает каждый процесс, пробуя сначала ТЕРМИНОМ, затем УНИЧТОЖЬТЕ, затем просто идя дальше; последний объект показывает, что системный журнал был уничтожен.
Это не случай перегрева или из памяти, или соединение файловой системы монтируются - что-то конкретно отправило завершение работы.
Если процессы не могут быть уничтожены, даже a SIGKILL
, это означает, что они подвешиваются на некотором бесперебойном вводе-выводе. Существуют постепенно все меньше и меньше их (NFS раньше был один, но не больше), таким образом, действительно необходимо быть stracing подвешенные процессы и проверяющий dmesg для подсказок относительно того, что могло продолжаться. Ни один из них не то, что Вы назвали бы "нормальным функционированием".