Обсуждение статьи тематического каталога: Начальная защита Apache (apache security mod_security dos flood)Ссылка на текст статьи: https://www.opennet.ru/base/sec/apache_secure.txt.html
Вопрос к автору: ты опытным путем все испробовал ????
нет конечно, пришлось и доки почитать.
...начинается с использования 1.3.x, боюсь.
Кроме того, чтобы поставить, человеку еще бы не помешало знать, что это такое и с чем его едят, хотя бы перевод бы сделал небольшой с офф сайтов.Мне вот директивы
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
ни о чем не говорят, только методом доктора Догадайсясам и т.п.В обсчем тема сисек не раскрыта. Низачот!
в самом начале написано, что это является неким HOWTO соотвественно о опяснениях что ето и зачем не обязано быть ... ссылки на материалы предоставлены!
В целом, как мне кажется, написано неплохо, коротко и по сути.
ок, приму к сведению, что для отлельных читателей требуется подробное описание директив.
Автору
Ничего так для начала. Ну в стартовый минимум для апача я бы дописал mod_load.c ну и лимиткон какой-то.Может и вправду сюда удафком не надо перетягивать.
Специально для whisper
Ну а по директивам...
Разве обладая хоть малейшими познаниями в английском плюс переводчиком, нельзя перевести README от модуля?DOSHashTableSize 3097
DOSPageCount 2 <-- Сколько запросов к старнице можно...
DOSPageInterval 1 <-- за вот это время (в сек.)DOSSiteCount 50 <--Сколько запросов ко всем старницам домена можно...
DOSSiteInterval 1 <--за вот это время (в сек.)DOSBlockingPeriod 10 <-- На сколько заблокировать айпи (в сек.)
Опционально есть еще директивы в модуле
DOSSystemComand <-- Можно описать системную команду для блокировки
(напр. через /sbin/iptables -A INPUT -p tcp --dport 80 -s %s -j REJECT
В %s передается от модуля айпи )
DOSLogDir <-- Директория для хранения список заблокированных айпи (По умол. /tmp)
DOSEmailNotify <-- На этот емейл админа отсылать письмо при блокировке
DOSWhitelist <-- Список "белых" айпи. Может быть несколько. Можно по маскам определять
(напр. 127.0.0.* )
Тока надо предупреждать, как кто-то справедливо заметил на опенннете, что этот сам модуль mod_security может быть источником проблем, так как и в нем находили серьезные уязвимости. так то.
Отсутсвие в рабочем Апаче этого самого модуля mod_security - ГАРАНТИЯ получения крупнейших проблем.
Ваш сервис, если вы какой поддерживаете, просто никому не интересен, только поэтому в нем еще не сидит пяток дор.
Почему проблем то?
г-н Квагга, вы уже далеко не в одной теме оставляли замечания типа "JDSAYUGFDSJH не используешь, RFC не читаешь" и в таком духе. На просьбы расшифровать JDSAYUGFDSJH и отослать к номеру RFC еще ни разу не ответили. Может хватит уже? Будьте любезны, вы не на удафкоме. Хотите поделиться - делайте это аргументированно.
давайте продолжим тему и найдем этому недугу лечение. если не лень конечно.
Про Trace метод более или менее ясно ... А про остальное ?! Сделайте так и все.. а что,для чего, зачем...
>>>Ваш сервис, если вы какой поддерживаете, просто никому не интересен, только поэтому в нем еще не сидит пяток дор.
- А если им кто то заинтересуется, то "дор"ы появятся да :)
использовал неделю mod_security на хостинг машине. один геморой с ним, каждый день жалобы что он чтото блокирует. Пришлось нахрен убрать и жить спокойно без него, если Вас начнуть досить Вам прогнут канал Вам и Вашему провайдеру и mod_security никогда не пригодится.
>использовал неделю mod_security на хостинг машине. один геморой с ним
Ну использовать тоже можно по-разному, у нас тут пока один непредвиденный случай только вышел (и то если бы это был коммерческий хостинг с SLA, а не "для себя и друзей, которые тоже фрисофт пилят" -- то тот конкретный паттерн был бы выписан иначе).Может, не в модуле дело?
> если Вас начнуть досить Вам прогнут канал Вам и Вашему провайдеру
Вы про syn flood что-нить слышали? Вовсе необязательно "им" убивать канал, тем более если это не деревенский провайдер. (а оптимистично настроенному, без расчёта на особую клинику с DSL, но с расчётом на кучу медленных дайлапов апачу -- один умник с flashget может оказаться невольным DoS'ером)
2КваггаТы уж освети этот вопрос подробнее. Какие проблемы именно?
А то, для борьбы с ддосом можно использовать и iptables'ы всякие, синкуки=1, ну еще со снортом поразвлекаться.
можно конечно и поразвлекаться, но это же к Apache непосредственно не относится.
Использую mod_security уже месяца 2, но потратил пару-тройку дней на настройку, чтобы он работал как мне надо. Теперь проблем нет.
Спасибо за статью, попробую :)
2 Siava
Опиши плиз подробней как у тебя сделано - версию апача, модуля, его настройки (конфиг)
Я думаю не только мне интерестно будет... Можно и на wiki.opennet.ru запостить.
Еще бы неплохо собрать апач с mod_rewrite и в httpd.confRewriteEngine on
ReWriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
ReWriteRule .* - [F]
сорри, не заметил в конце :)
Привет!Вчера перенес описанную вами атаку осуществленную при помощи ботов(зомби) управляемых через IRC. Но закрыть я их не смог, так как атакующих было слишком много. Наверно инициатору надоело и просто перестал атаковать.
На Apache установлен mod_security и mod_evasive но они не справились и приходилось блокировать атакующие хосты на фаирволе. В итоге сервер отвечал еле еле ато и совсем не отвечал.
Меня интересует существует ли какая нибудь защита от какого вида атак?
Буду благодарен за помощь.
>На Apache установлен mod_security и mod_evasive но они не справились и приходилось
>блокировать атакующие хосты на фаирволе. В итоге сервер отвечал еле еле
>ато и совсем не отвечал.
>
>Меня интересует существует ли какая нибудь защита от какого вида атак?
я бы ставил для этого Snort и проанализировав поведение атакующих адресов выявлял бы подобные действия и закрывал их на ФВ. просто снорту я в подобных вещах больше доверяю =)
Sushestvuet. Eto Gbitnie kanali i performance clustered apache.
to Voland
Поделись ипами атакующих ...
Я тоже сделал скрипт который закрывает в фаере атакующих ... первый апач все по минимуму ...
> и приходилось блокировать атакующие хосты на фаирволе
а я пользую простейшие скриптики парсилки логов которые IP автоматом заносят в фаервол
вот пример тут - http://sys-admin.org/en/node/36
Давно использую mod_security, замечательная вешь!
И хочу заметить он не раз меня спасал.
>использовал неделю mod_security на хостинг машине. один геморой с ним
Все дело в правильной настройке. ;)
Вот пример:
<IfModule mod_security.c>
# Включает или выключает движок фильтра
SecFilterEngine On# Проверка правильности кодирования URL
SecFilterCheckURLEncoding On# Проверка UNICODE кодирования
SecFilterCheckUnicodeEncoding Off# Использовать только байты из этого диапазона
SecFilterForceByteRange 0 255# Вести лог только для подозрительных запросов
SecAuditEngine RelevantOnly# Имя файла лога
SecAuditLog logs/audit_log# Вывод отладочной информации (установлен минимальный уровень)
#SecFilterDebugLog logs/modsec_debug_log SecFilterDebugLevel 0# Осуществлять проверку POST запросов
SecFilterScanPOST On# Для подозрительных запросов по умолчанию писать в лог
# и возвращать HTTP ответ с кодом 500
SecFilterDefaultAction "deny,log,status:500"# Prevent path traversal (..) attacks
SecFilter "\.\./"# Prevent XSS atacks (HTML/Javascript injection)
SecFilter "<(.|\n)+>"# Very crude filters to prevent SQL injection attacks
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"# Require HTTP_USER_AGENT and HTTP_HOST headers
#SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"# Защита от други атак
# Command execution attacks
SecFilter /etc/password
SecFilter /bin/ls
SecFilter /bin/cat# Directory traversal attacks
SecFilter "\.\./"# XSS attacks
SecFilter "<[[:space:]]*script"# SQL injection attacks
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"# MS SQL specific SQL injection attacks
SecFilter xp_enumdsn
SecFilter xp_filelist
SecFilter xp_availablemedia
SecFilter xp_cmdshell
SecFilter xp_regread
SecFilter xp_regwrite
SecFilter xp_regdeletekey# Защита уязвимого сценария
SecFilterSelective ARG_b2inc "!^$"# Защита от XSS нападений через cookie PHP сессии
SecFilterSelective ARG_PHPSESSID "!^[0-9a-z]*$"
SecFilterSelective COOKIE_PHPSESSID "!^[0-9a-z]*$"# Обнаружение вторжений
SecFilterSelective OUTPUT "Volume Serial Number"
SecFilterSelective OUTPUT "Command completed"
SecFilterSelective OUTPUT "Bad command or filename"
SecFilterSelective OUTPUT "file(s) copied"
SecFilterSelective OUTPUT "Index of /cgi-bin/"
SecFilterSelective OUTPUT ".*uid\=\("
</IfModule>
Многие утверждают что именно мод_секьюрити зачастую блокирует phpmyadmin и другого рода стрыпты
>Многие утверждают что именно мод_секьюрити зачастую блокирует phpmyadmin и другого рода стрыптыНеудивительно с учётом http://secunia.com/advisories/search/?search=phpmyadmin ...
на нашем сайте используются подсказки, соответственно пока юзер вводит слово в форму, веб-сервер без конца дергается. И это не давало закрутить настройки Евасива. Не хватает параметра типа DosExclude MyString
пришлось в исходник модуля просто добавить строчки Check whiterequest:
/* Check whitelist */
if (is_whitelisted(r->connection->remote_ip))
return OK;
/* Check whiterequest */
if (strstr(r->the_request, "myString") != NULL)
return OK;
/* First see if the IP itself is on "hold" */
n = ntt_find(hit_list, r->connection->remote_ip);