Skip to main content.

Начальная защита Apache

Posted by root in the Articles section on Sat 22 Apr 2006 at 13:42

В общем проба пера. Прошу строго не судить, так как на авторство этого материала не претендую. На самом деле пришло время составить некое подобие HOWTO по начальной защите веб-сервера после установки. Итак приступим. Проблема веб-серверов делятся на две части: (D)DoS и XSS/XST. 1. Распределенная атака отказа в доступе (Distributed Denial of Servece Attack). Подробно об этом стихийном бедствии вам расскажут на специализированных сайтах, посвященным проблемам ИТ-безопасности. В общем итоге смысл следующий: отказ в обслуживании вашего сервера вызывается массой фальшивых запросов от контроллируемых злоумышленниками ботов. Боты размещаются на взломанных машинах по всему миру и соединяются с IRC-каналами для дальнейшего получения распоряжений. Когда поголовье стада ботов (bot herd) достигает достаточного (по мнению хакера) количества, злоумышленник выходит на канал и командует операцией. Как правило подобные мероприятия призваны вынудить собственника порно-сайта или интернет-магазина, действующего на грани закона, к выплате некой суммы в СКВ. Но ведь и тренероваться им где-то нужно, правда? Так что подготовимся к этому, даже если нам подобное явно не грозит. Помогут нам два модуля: mod_security & mod_evasive. 1.1 mod_security Этот пес живет по такому адресу: http://www.modsecurity.org/ Процедура установки не составит труда, но я ее прокомментирую. # wget http://www.modsecurity.org/download/modsecurity-apache-1.9.2.tar.gz # tar zxvf modsecurity-apache-1.9.2.tar.gz # cd modsecurity-apache-1.9.2 # /usr/sbin/apxs2 -cia apache2/mod_security.c Последняя строка соберет и установит модуль. Очевидно, делать это нужно соответствеющим apxs/2 для програмных файлов в диреториях apache1 и apache2 дерева исходников, модули разняться для разных веток сервера. Теперь модуль нужно отконфигурировать. Это лучше сделать в отдельном файле. Найдите где в вашей системе расположены файлы конфигурирования модулей. В моей Gentoo 2006.0 это происходит здесь: # vi /etc/apache2/modules.d/mod_security.conf Примеры конфигурации модуля находятся здесь После наполнения файла mod_security.conf его следует включить в конфигурацию. Убедитесь в том, что он считывается сервером на старте, то есть найдите соответствующую директиву Include в файле httpd.conf 1.2 mod_evasive Проект расположен по адресу: http://www.nuclearelephant.com/projects/mod_evasive/ Устанавливаем модуль. # wget http://www.nuclearelephant.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz # tar zxvf mod_evasive_1.10.1.tar.gz # cd mod_evasive_1.10.1 # /usr/sbin/apxs2 -iac mod_evasive20.c (Или же # apxs -iac mod_evasive.c для пользователей первой ветки.) Конфигурируем модуль: /etc/apache2/modules.d/mod_evasive20.conf DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 Теперь можно перезапустить сервер как это принято в вашей системе. Примечание: Процедура apsx2 -iac в конце исполнения добавляет в файл конфигурации httpd.conf строку подключения модуля. Убедитесь, что нечто подобное присутствует в настройках: LoadModule evasive20_module lib/apache2/modules/mod_evasive20.so LoadModule security_module lib/apache2/modules/mod_security.so Примечание: Еще одно. Для того, чтобы быть точно уверенными в том, что модули поднялись сервером и вступили в строй, нужно сделать следующее. В основном файле конфигурации впишите фрагменты настройки модулей без обрамляющих директив ... Если сервер загрузится без ругани -- значит эти команды ему знакомы, а без модулей в памяти это невозможно. Ну разве что вы собрали Apache со встроенными security & evasive. 2. Cross Site Tracing. Информацию о том, что такое Cross Site Scripting можно почерпнуть отсюда: http://httpd.apache.org/info/css-security/ В двух словах: это явление, когда незалатаные нерадивыми программистами дыры в веб-приложениях позволяют кому попало использовать неправильный ввод для нарушения безопасности сайта. Но даже при начальной установке, когда веб-приложения нашим сервером еще не обрабатываются, существуют некоторые нюансы, способные скомпрометировать безопасность сайта в будущем. Это Cross Site Tracing. Не путайте XSS и XST. XST подробно описан в этом документе: http://www.kb.cert.org/vuls/id/867593 В общем это случается, когда после настройки веб-приложения администратор сайта не отключает разрешенный по умолчанию метод HTTP TRACE. Этот метод осуществляет ничто иное, как эхо-ответ вашего запроса, отправленного серверу. В идеале ничего страшного в этом нет. Но представьте себе картину, когда ответ на запрос, отправленный клиентом, получает злоумышленник? Это возможно в комбинации с многочисленными уязвимостями браузера. В таком случае в руках у хакера оказывается как минимум информация из HTTP-заголовков, которая может содержать чувствительные данные, например cookies. Чтобы подобное было невозможно, сделаем следующее. Добавим директиву TraceEnable off в корневую часть httpd.conf Также, для пущей уверенности, можно установить и настроить модуль mod_rewrite. Модуль как правило поставляется с Apache изначально, а настраивается в нашем случае вот так: RewriteEngine On RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F] Добавьте этот код в главную настройку, или секции ваших виртуальных хостов. Собственно, все. Буду рад фидбеку =) PS Массу информации о состоянии защиты вашего сайта можно почерпнуть из результатов сканирования утилитой nikto.
источник - http://www.opennet.ru/

Comment on this article

Print version

<<< Использование epoll() Асинхронной Работы С Сетевыми Соединениями

pppd >>>