Давайте поработаем над этим учебным пособием с защитой Web, ограничивающей атаки, такие как slowloris и другие критические недостатки! Мы будем использовать в этом учебнике некоторые из лучших дистрибутивов Linux (CentOS 7 Minimal) Wiki: https://wiki.centos.org/ FTP Download: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso Я полагаю, что у вас уже установлен HTTPD на VPS / Dedicated, чья команда для установки и "yum install httpd" Установка ModSecurity и mod_evasive Сначала вам нужно будет установить репозиторий EPEL yum на сервере. Выполните следующую команду для установки и включения репозитория EPEL: sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm Теперь вы можете установить mod_security и mod_evasive, выполнив следующую команду: sudo yum --enablerepo = epel install mod_security mod_evasive После установки этих модулей вы можете проверить их, выполнив следующие команды: sudo httpd -M | grep evasive Если mod_evasive включен, вы увидите следующий вывод: evasive20_module (общий) Чтобы протестировать модуль mod_security, запустите: sudo httpd -M | безопасность grep Если mod_security включен, вы увидите следующий вывод: security2_module (общий) Настройка ModSecurity Теперь, когда установка завершена и проверена, вам необходимо установить набор основных правил (CRS), чтобы использовать mod_security. CRS предоставляет веб-сервер с набором правил о том, как вести себя при определенных условиях. Вы можете загрузить и установить последнюю версию OWASP CRS, выполнив следующие команды: sudo mkdir / etc / httpd / crs sudo cd / etc / httpd / crs sudo wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master sudo tar -xvf master sudo mv SpiderLabs-owasp-modsecurity-crs- * owasp-modsecurity-crs Теперь перейдите в установленный каталог OWASP CRS: sudo cd / etc / httpd / crs / owasp-modsecurity-crs / В каталоге OWASP CRS вы найдете пример файла с правилами modsecurity_crs_10_setup.conf.example. Вам необходимо скопировать его содержимое в новый файл с именем modsecurity_crs_10_setup.conf. sudo cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf Теперь вам нужно сказать Apache, чтобы использовать этот файл вместе с модулем. Вы можете сделать это, отредактировав главный файл конфигурации Apache: sudo nano /etc/httpd/conf/httpd.conf Добавьте следующие строки в конец файла: <IfModule security2_module> Включить /etc/httpd/crs/owasp-modsecurity-crs/modsecurity_crs_10_setup.conf Включить /etc/httpd/crs/owasp-modsecurity-crs/base_rules/*.conf </ IfModule> Сохраните и закройте файл и перезапустите Apache, чтобы отразить изменения. Перезагрузка sudo apachectl Наконец, рекомендуется создать собственный файл конфигурации в каталоге modsecurity.d. Вы можете сделать это, создав файл с именем mod_security.conf. sudo nano /etc/httpd/modsecurity.d/mod_security.conf Добавьте следующие строки: <IfModule mod_security2.c> SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess On SecResponseBodyMimeType text / plain text / html text / xml application / octet-stream SecDataDir / tmp </ IfModule> Сохраните и закройте файл и перезапустите Apache, чтобы отразить изменения. Перезагрузка sudo apachectl Настроить mod_evasive Модуль mod_evasive считывает свою конфигурацию из /etc/httpd/conf.d/mod_evasive.conf, которую можно легко настроить. Вам не нужно создавать отдельный файл конфигурации, потому что во время обновления системы нет правил для обновления. Файл mod_evasive.conf по умолчанию имеет следующие директивы: <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 </ IfModule> Вы можете изменить эти значения в соответствии с количеством и типом трафика, который должен обрабатывать ваш веб-сервер. DOSHashTableSize: эта директива определяет, как mod_evasive отслеживает, кто к чему обращается. Увеличение этого числа обеспечит более быстрый поиск сайтов, которые посетил клиент в прошлом. DOSPageCount: эта директива определяет количество идентичных запросов к определенному URI, которое посетитель может выполнить через интервал DOSPageInterval. DOSSiteCount: это похоже на DOSPageCount, но соответствует количеству запросов, которые посетитель может сделать на вашем сайте через интервал DOSSiteInterval. DOSBlockingPeriod: если посетитель превышает пределы, установленные DOSSPageCount или DOSSiteCount, их IP-адрес будет заблокирован во время DOSBlockingPeriod. В течение этого интервала они получат 403 (Запрещенную) ошибку. Одним из наиболее важных параметров конфигурации, которые необходимо изменить, является DOSEmailNotify. Если этот параметр включен, при каждом IP-адресе в черный список будет отправлено электронное письмо на указанный адрес электронной почты. Вы можете сделать это, отредактировав файл mod_evasive.conf: sudo nano /etc/httpd/conf.d/mod_evasive.conf Раскомментируйте строку DOSEmailNotify, удалив # перед линией и изменив адрес электронной почты на свой собственный: DOSEmailNotify lunastudio@antiddos.com Сохраните и закройте файл и перезапустите Apache, чтобы отразить изменения. Перезагрузка sudo apachectl Примечание. Для работы этого электронного сообщения на вашем сервере должен быть функционирующий почтовый сервер. Тестирование ModSecurity Для тестирования mod_security вы можете использовать curl для отправки HTTP-запросов на сервер Apache. Одним из правил по умолчанию ModSecurity является отклонение запросов, в которых есть агент пользователя «Nessus». Это предназначено, чтобы лишить информацию злоумышленников, которые используют автоматические сканеры Теперь давайте установим и настроим пакет CSF FIREWALL cd /usr/src rm -fv csf.tgz wget https://download.configserver.com/csf.tgz tar -xzf csf.tgz cd csf sh install.sh Как только вы выполните установку, мы настроим порты и активируем все защиты! Получите доступ к файлу «/etc/csf/csf.conf» с вашим любимым редактором и измените значение строки «ТЕСТИРОВАНИЕ». Измените значение 1 на 0, а затем выполните следующую команду # Allow incoming TCP ports # Allow outgoing TCP ports # Allow incoming UDP ports TCP_IN = "20,21,22,25,26,53,80" service csf restart csf --start /etc/init.d/csf start csf -g (IP)> Проверяет, заблокирован ли IP-адрес csf -a (IP) «Причина - ваше имя»> Добавляет IP-адрес в список разрешений сервера. Соблюдайте осторожность и освобождайте только фиксированные IP-адреса. csf -d (IP) «Причина - ваше имя»> Заблокировать IP-адрес в брандмауэре и добавить комментарий в файл /etc/csf/csf.deny csf -tr (IP)> Удаляет временный блок из IP-адреса csf -dr (IP)> Удаляет постоянную блокировку с IP-адреса grep IP /var/log/lfd.log> Проверяет причину временного блока
Лучшая защита веб сервера - nginx. А от ддоса не справится программными настройками. Если забьют канал, то все гг