Защита сервера Linux для Lineage II
Описание
Мы будем использовать в этом учебнике некоторые из лучших дистрибутивов 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> Проверяет причину временного блока
Рекомендуемые комментарии