Введение
ModSecurity, также известный как Modsec, представляет собой надежное приложение брандмауэра с открытым исходным кодом для веб-серверов Apache. Программное обеспечение, которое защищает сеть или приложение от несанкционированного доступа путем фильтрации запросов.
Mod Security — один из самых известных модулей Apache, который обеспечивает обнаружение и предотвращение вторжений для веб-серверов. Mod_security используется для защиты веб-сервера от различных типов атак, таких как XSS, боты, SQL-инъекция, трояны, перехват сеанса и многое другое.
В этой статье мы увидим, как установить и настроить mod_security на сервере Ubuntu 18.04 LTS, а также запустить несколько тестов.
Если вы хотите установить ModSecurity на удаленный сервер, продолжайте читать, в противном случае, если вы хотите установить ModSecurity на свой локальный компьютер, пропустите первый абзац «Подключение к серверу» и прочитайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется пароль для аутентификации.
Чтобы подключиться к серверу как root, введите эту команду:
ssh root@IP_DEL_SERVER
Далее вам будет предложено ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить первый параметр:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Теперь вы подключены к своему серверу, вы готовы начать установку ModSecurity.
Установить ModSecurity
Вы можете установить ModSecurity для Apache, используя официальный репозиторий Ubuntu с файлом apt.
Обновите список пакетов:
sudo apt update
Установите Apache2 и некоторые необходимые пакеты:
sudo apt-get install apache2 mysql-server php-mysql php libapache2-mod-php
Запустите Apache2:
sudo systemctl start apache2
Включите Apache2 автоматически при запуске системы:
sudo systemctl enable apache2
Установить Mod_Security
Чтобы установить Mod_Security, введите эту команду из терминала:
sudo apt-get install libapache2-mod-security2
Проверьте статус mod_security:
apachectl -M | grep security
Вы должны получить выходное сообщение, подобное следующему:
security2_module (shared)
Настроить Mod_Security
Скопируйте и переименуйте файл конфигурации по умолчанию /etc/modsecurity/modsecurity.conf-recommended в /etc/modsecurity/modsecurity.conf, чтобы включить и настроить ModSecurity с помощью следующей команды:
mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Откройте следующий файл:
nano /etc/modsecurity/modsecurity.conf
Найдите и измените следующую строку следующим образом:
SecRuleEngine On
Перезапустите Apache2:
sudo systemctl restart apache2
По умолчанию mod_security поставляется с базовым набором правил (правил безопасности), расположенных в каталоге /usr/share/modsecurity-crs. Но рекомендуется скачать CRS mod_security из репозитория GitHub.
Сделайте резервную копию правил по умолчанию:
sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bk
Скачайте новые правила с Github:
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs
Переместить папку:
cd /usr/share/modsecurity-crs
Переименуйте файл примера:
mv crs-setup.conf.example crs-setup.conf
Откройте следующий файл:
nano /etc/apache2/mods-enabled/security2.conf
Измените его следующим образом:
<IfModule security2_module>
SecDataDir /var/cache/modsecurity
IncludeOptional /etc/modsecurity/*.conf
IncludeOptional "/usr/share/modsecurity-crs/*.conf
IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf
</IfModule>
Перезапустите Apache2:
sudo systemctl restart apache2
Тест Mod_Security
Теперь мы проверим mod_security, отправив несколько вредоносных запросов на веб-сервер Apache и проверив, заблокированы ли запросы или нет.
Введите URL-адрес под браузером. Не забудьте заменить IP-адрес общедоступным IP-адресом вашего сервера или доменным именем:
http://TUO_IP_O_DOMINIO/?q="><script>alert(1)</script>
Или из терминала:
curl 'http://TUO_IP_O_DOMINIO/?q="><script>alert(1)</script>'
Вы должны получить выходное сообщение, подобное следующему:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /on this server.<br />
</p>
<hr>
<address>Apache/2.4.29 (Ubuntu) Server at TUO_IP Port 80</address>
</body></html>
Также попробуйте следующую команду:
http://TUO_IP_O_DOMINIO/index.html?exec=/bin/bash
Или из терминала:
curl 'http://TUO_IP_O_DOMINIO/index.html?exec=/bin/bash'
Вы должны получить выходное сообщение, подобное следующему:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /on this server.<br />
</p>
<hr>
<address>Apache/2.4.29 (Ubuntu) Server at TUO_IP Port 80</address>
</body></html>
Установка и настройка Mod Security на Ubuntu 18.04 LTS завершена.