...

Добавяне на ModSecurity към Апах под Ubuntu 20

ModSecurity е най-използваният web application firewall (WAF), който предоставя изчерпателна защита на вашият сайт от атаки на Layer 7 (HTTP) ниво като SQL injection, cross-site scripting и др.
преди 3 седмици

ModSecurity 3

ModSecurity e оригинално разработен за Апах, но от верия 3 може да се използва без проблеми и за Nginx. Версия 3 е издадена 2017г.

1. Инсталиране на ModSecurity под Debian/Ubuntu

sudo apt install libapache2-mod-security2

Активирате модула и рестартирате апаха

sudo a2enmod security2
sudo systemctl restart apache2

2. Конфигуриране на ModSecurity

Проверяваме дали файла /etc/apache2/mods-enabled/security2.conf съдържа ред

IncludeOptional /etc/modsecurity/*.conf

след което се уверяваме, че имаме конфигурационен файл там, тъй като след инсталация няма. Може да преименуваме предоставеният препоръчителен:

sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

След това трябва да пуснете самият модул да действа - във файла /etc/modsecurity/modsecurity.conf в началото има ред

SecRuleEngine DetectionOnly

който само записва намерените проблеми в лога, но не предприема действия. Трябва да го промените на

SecRuleEngine On

по-надолу ще намерите и настройка какво да се логва:

SecAuditLogParts ABDEFHIJZ

променете го на

SecAuditLogParts ABCEFHJKZ

Рестартирайте Апаха за да влезнат настройките в сила.

3. Инсталация на OWASP Core Rule Set (CRS)

За да може ModSecurity да предпазва сайта ви е нужно да имате набор от правила, които да анализират трафика и да спират евентуални атаки. Като начало е добре да използвате готови правила и с течение на времето може да ги променяте и допълвате. Има няколко готови сета с правила, като OWASP Core Rule Set (CRS) е стандарта, с който може да започнете:

  • безплатен е, разработван от голямо къмюнити и е най-често използвания
  • включва правила, които ще ви помогнат да спрете най-честите атаки, включително SQL injection (SQLi), cross-site scripting (XSS)
  • включва и правила за детектване на ботове и скенери
  • настроен е така, че да има много малко фалшиви положителни резултати

Когато инсталирате ModSecurity от дефолтнатите репозиторитита на Дебиан/Убунту пакета идва с вече остаряла версия на правилата и е нужно да се инсталира по-нова. Свалете последната версия на правилата, разархивирайте я и я преместете в /etc/apache2 директорията:

wget https://github.com/coreruleset/coreruleset/archive/v3.3.2.tar.gz
tar xvf v3.3.2.tar.gz
sudo mkdir /etc/apache2/modsecurity-crs/
sudo mv coreruleset-3.3.2/ /etc/apache2/modsecurity-crs/
cd /etc/apache2/modsecurity-crs/coreruleset-3.3.2/
sudo mv crs-setup.conf.example crs-setup.conf

Редактирайте /etc/apache2/mods-enabled/security2.conf за да укажем новите правила, които ще използваме. Коментирайте ненужните оригинални редове и добавете новите правила:

<IfModule security2_module>
        # Default Debian dir for modsecurity's persistent data
        SecDataDir /var/cache/modsecurity

        # Include all the *.conf files in /etc/modsecurity.
        # Keeping your local configuration in that directory
        # will allow for an easy upgrade of THIS file and
        # make your life easier
        IncludeOptional /etc/modsecurity/*.conf

        # Include OWASP ModSecurity CRS rules if installed
#       IncludeOptional /usr/share/modsecurity-crs/*.load
#       Include /etc/modsecurity/rules/*.conf
        IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.2/crs-setup.conf
        IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.2/rules/*.conf
</IfModule>

Тествайте конфигурацията на Апаха преди да рестартиране сървиса:

sudo apache2ctl -t
sudo systemctl restart apache2

Допълнително може да прочетет как работят правилата тук: https://www.linuxbabe.com/security/modsecurity-apache-debian-ubuntu