ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как установить mod_security и mod_evasive на Ubuntu 14.04 VPS

Mod_security является модулем Apache, который помогает защитить ваш сайт от различных атак, таких как межсайтовый скриптинг, SQL – инъекций, атак с обходными путями и т.д. Mod_evasive является модулем Apache, который помогает предотвратить HTTP DoS (DDoS – атаки) или server brute force.  Если у вас установлен CentOS на вашем сервере, следуйте этим инструкциям, чтобы установить mod_security с набором правил ядра OWASP.

Для того, чтобы установить и настроить mod_security и mod_evasive модули на Ubuntu VPS для того чтобы защитить и обеспечить безопасность веб – сервера Apache, выполните действия, описанные ниже:

Убедитесь, что все пакеты ОС в актуальном состоянии:

sudo apt-get update
sudo apt-get upgrade

Установите mod-security и mod-evasive, используя следующую команду:

sudo apt-get install libapache2-mod-security2 libapache2-modsecurity libapache2-mod-evasive

Чтобы включить правила mod_security, скопируйте рекомендуемый конфигурационный файл mod_security, а затем отредактируйте его и установить опцию ‘SecRuleEngine‘ в On:

sudo cp /etc/modsecurity/modsecurity.conf{-recommended,}
sudo vi /etc/modsecurity/modsecurity.conf
SecRuleEngine On

Кроме того, это хорошая идея, увеличить значение ‘SecRequestBodyLimit‘ до максимального размера файлов, которые вы могли бы принять загруженных на сервер, например, установить его до 32 МБ и использовать исходящую фильтрацию, чтобы сэкономить ресурсы сервера:

SecRequestBodyLimit 32768000
SecRequestBodyInMemoryLimit 32768000
SecResponseBodyAccess Off

Правила mod_security доступны в следующих каталогах:

/usr/share/modsecurity-crs/base_rules
/usr/share/modsecurity-crs/optional_rules
/usr/share/modsecurity-crs/experimental_rules

Чтобы включить все базовые правила CRS, создавать символические ссылки, используя следующую команду:

sudo ln -s /usr/share/modsecurity-crs/base_rules/*.conf /usr/share/modsecurity-crs/activated_rules/

Чтобы включить CRS необязательные и экспериментальные правила на файлы, которые вы хотите использовать, создавать символические ссылки под расположение каталога ‘activated_rules’.

Рекомендуется, загрузить и настроить OWASP (Open Web Project Security Application) Основной набор правил:

sudo apt-get install git
sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bak
sudo mv owasp-modsecurity-crs /usr/share/modsecurity-crs
sudo mv /usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf.example /usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf

Измените следующие файлы:

sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_35_bad_robots.conf

строки комментариев 16, 21 и 28:

#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile modsecurity_35_bad_robots.data" \
#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile modsecurity_35_bad_robots.data" \
#SecRule REQUEST_HEADERS:User-Agent
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_40_generic_attacks.conf

строка комментария 169:

#SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@pmFromFile modsecurity_40_generic_attacks.data" \
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_50_outbound.conf

строка комментария 101:

#SecRule RESPONSE_BODY "!@pmFromFile modsecurity_50_outbound.data" \

Настройка модуля mod_evasive:

sudo vi /etc/apache2/mods-available/mod-evasive.conf

 

<ifmodule mod_evasive20.c>
   DOSHashTableSize 3097
   DOSPageCount  10
   DOSSiteCount  30
   DOSPageInterval 1
   DOSSiteInterval  3
   DOSBlockingPeriod  3600
   DOSLogDir   /var/log/apache2/mod_evasive.log
</ifmodule>

Смотрите файл README, для получения подробной информации о различных параметрах конфигурации mod_evasive.

Создайте файл журнала для mod_evasive:

touch /var/log/apache2/mod_evasive.log
sudo chown www-data:www-data /var/log/apache2/mod_evasive.log

Выполните следующую команду, чтобы включить модули Apache:

sudo a2enmod headers
sudo a2enmod evasive
sudo a2enmod security2

Снова запустите веб-сервер Apache2:

sudo service apache2 restart

Проверьте работу модулей mod_security и mod_evasive на сервере:

sudo apachectl -M | grep security2
security2_module (shared)

sudo apachectl -M | grep evasive
evasive20_module (shared)

Если у вас есть веб-сайт на основе WordPress, размещенных на вашем VPS, скорее всего, вам необходимо отключить некоторые правила mod_security. Чтобы отключить/исключить определенные правила mod_security вы можете отредактировать виртуальный хост вашего домена, определенного в файле конфигурации Apache для вашего домена, например:

<VirtualHost *:80>
   ServerName yourdomain.ru
   ServerAlias www.yourdomain.ru

      DocumentRoot /var/www/html/wordpress/
      <Directory />
         Options +FollowSymLinks
         AllowOverride FileInfo
      </Directory>

      <LocationMatch "/wp-admin/post.php">
         SecRuleRemoveById 300016
      </LocationMatch>

      <LocationMatch "/wp-admin/nav-menus.php">
         SecRuleRemoveById 300016
      </LocationMatch>

      <LocationMatch "(/wp-admin/|/wp-login.php)">
         SecRuleRemoveById 950117
         SecRuleRemoveById 950005
      </LocationMatch>
</VirtualHost>

Не забудьте перезапустить веб-сервер Apache для того, чтобы изменения вступили в силу, поэтому выполните следующую команду:

sudo service apache2 restart

Проверьте файл журнала /var/log/apache2/modsec_audit.log, чтобы найти правила, которые, были инициированы mod_security на вашем веб-сервере.

Вот и все. У вас теперь установлены mod_security и mod_evasive на вашем Ubuntu VPS.

Как установить mod_security и mod_evasive на Ubuntu 14.04 VPS

Exit mobile version