Назад | Перейти на главную страницу

mod_rewrite и access.log

Мой сайт недавно подвергся атаке DOS, которая, похоже, была в основном исправлена ​​установкой уклонения от модов (что нормально)

Я хотел найти IP-адрес, который использовался для атаки, поэтому, естественно, я пошел в access.log только для того, чтобы найти сотни строк этого:

127.0.0.1 - - [08/Oct/2011:22:08:33 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)"
127.0.0.1 - - [08/Oct/2011:22:09:22 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)"
127.0.0.1 - - [08/Oct/2011:22:09:23 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)"
127.0.0.1 - - [08/Oct/2011:22:09:24 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)" 

Я почти уверен, что это потому, что я использую mod_rewrite, короче говоря, я бы хотел, чтобы apache регистрировал запрос предварительного перенаправления вместо запроса с внутренним перенаправлением - кто-нибудь знает, возможно ли это?

Мой сайт недавно подвергся DOS-атаке

Как вы определили, что ваш сервер атакован?

(внутреннее фиктивное соединение)

Я почти уверен, что это потому, что я использую mod_rewrite,

Нет, это запросы, которые Apache отправляет сам себе для пробуждения процессов, которые ожидают новых подключений. Взгляни на этот если вы хотите их игнорировать.

Я хотел найти IP-адрес, который использовался для атаки

Вы также можете использовать netstat для подсчета подключений к порту 80, примерно так:

netstat -n | grep :80 | awk '{ print $5 }' | cut -d: -f1 | sort | uniq -c | sort -rn | head

Это внутренние запросы родительского процесса apache для поддержания активности дочерних процессов и создания новых дочерних процессов, когда загрузка требует новых дочерних процессов.

В зависимости от типа атаки типа «отказ в обслуживании» вам вряд ли удастся получить IP-адрес из журнала доступа. Журнал доступа регистрирует только запросы - многие DoS-атаки фактически не отправляют HTTP-запросы. Некоторые делают.

Вы, вероятно, можете получить то, что хотите, из RewriteLog, но обычно это не то, что будет включено в журнал доступа. Журнал доступа представляет собой регистрацию запросов после завершения обработки (успешной или нет). Вы может получить данные, которые вы ищете mod_log_forensic но я не знаю, порекомендуют ли люди использовать этот модуль для ежедневного ведения журнала запросов.

Эти соединения не имеют никакого отношения к mod_rewrite, и вам не стоит об этом беспокоиться.

http://wiki.apache.org/httpd/InternalDummyConnection

Я бы рекомендовал еще раз изучить ваш журнал доступа, если вы хотите найти злоумышленника. Некоторые анализаторы журналов могут сэкономить вам много времени. я использую ddosViewer программа для просмотра журналов, хотя в сети много таких программ. Я знаю, что этот сайт на русском языке, но он настолько хорош и прост в использовании, что я не мог не порекомендовать его для решения вашей проблемы.