ModSecurity и OWASP на CentOS 6 и Apache 2

ModSecurity и OWASP на CentOS 6 и Apache 2

ModSecurity е защитна стена на слоя на уеб приложения, предназначена да работи с IIS, Apache2 и Nginx. Това е безплатен софтуер с отворен код, издаден под лиценз Apache 2.0. ModSecurity помага да защитите вашия уеб сървър, като наблюдава и анализира трафика на вашия уебсайт. Той прави това в реално време, за да открие и блокира атаки от повечето известни експлойти, използвайки регулярни изрази. Сама по себе си ModSecurity предоставя ограничена защита и разчита на набори от правила, за да увеличи максимално защитата.

Основният набор от правила (CRS) на проекта за защита на отворените уеб приложения (OWASP) е набор от общи правила за откриване на атаки, които осигуряват базово ниво на защита за всяко уеб приложение. Наборът от правила е безплатен, с отворен код и в момента се спонсорира от Spider Labs.

OWASP CRS предоставя:

  • HTTP защита - откриване на нарушения на HTTP протокола и локално дефинирана политика за използване.
  • Търсене в черен списък в реално време - използва IP репутацията на трета страна.
  • HTTP Denial of Service Protection - защита срещу HTTP заливане и бавни HTTP DoS атаки.
  • Защита от общи уеб атаки – откриване на често срещани атаки за сигурност на уеб приложения.
  • Откриване на автоматизация – Откриване на ботове, роботи, скенери и друга повърхностна злонамерена дейност.
  • Интеграция с AV сканиране за качване на файлове - открива злонамерени файлове, качени през уеб приложението.
  • Проследяване на чувствителни данни - Проследява използването на кредитни карти и блокира течовете.
  • Защита от троянски коне - Открива троянски коне.
  • Идентифициране на дефекти в приложението – сигнали за неправилни конфигурации на приложението.
  • Откриване и скриване на грешки - Прикриване на съобщения за грешки, изпратени от сървъра.

Инсталация

Това ръководство ви показва как да инсталирате ModSecurity и OWASP набор от правила на CentOS 6, работещ с Apache 2.

Първо, трябва да се уверите, че вашата система е актуална.

 yum -y update

Ако не сте инсталирали Apache 2, инсталирайте го сега.

 yum -y install httpd

Сега трябва да инсталирате някои зависимости, за да работи ModSecurity. В зависимост от конфигурацията на вашия сървър, някои или всички от тези пакети може вече да са инсталирани. Yum ще инсталира пакетите, които нямате, и ще ви информира дали някой от пакетите вече е инсталиран.

 yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel

Променете директорията и изтеглете изходния код от уебсайта на ModSecuity. Текущата стабилна версия е 2.8.

 cd /opt/
 wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz

Разархивирайте пакета и променете в неговата директория.

 tar xzfv modsecurity-2.8.0.tar.gz 
 cd modsecurity-2.8.0

Конфигурирайте и компилирайте изходния код.

 ./configure
 make
 make install

Копирайте конфигурацията на ModSecurity по подразбиране и файла за съпоставяне на Unicode в директорията на Apache.

 cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
 cp unicode.mapping /etc/httpd/conf.d/

Конфигурирайте Apache да използва ModSecurity. Има 2 начина, по които можете да направите това.

 echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf

... или използвайте текстов редактор като nano:

 nano /etc/httpd/conf/httpd.conf

В долната част на този файл на отделен ред добавете това:

 LoadModule security2_module modules/mod_security2.so

Вече можете да стартирате Apache и да го конфигурирате да стартира при стартиране.

 service httpd start
 chkconfig httpd on

Ако сте инсталирали Apache преди да използвате това ръководство, просто трябва да го рестартирате.

 service httpd restart

Вече можете да изтеглите основния набор от правила на OWASP.

 cd /etc/httpd
 git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

Сега конфигурирайте набора от правила OWASP.

 cd modsecurity-crs
 cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

След това трябва да добавите набора от правила към конфигурацията на Apache. Отново можем да направим това по два начина.

 echo Include modsecurity-crs/modsecurity_crs_10_config.conf >> /etc/httpd/conf/httpd.conf
 echo Include modsecurity-crs/base_rules/*.conf >> /etc/httpd/conf/httpd.conf

... или с текстов редактор:

 nano /etc/httpd/conf/httpd.conf

В долната част на файла на отделни редове добавете това:

 Include modsecurity-crs/modsecurity_crs_10_config.conf
 Include modsecurity-crs/base_rules/*.conf

Сега рестартирайте Apache.

 service httpd restart

Накрая изтрийте инсталационните файлове.

 yum erase /opt/modsecurity-2.8.0
 yum erase /opt/modsecurity-2.8.0.tar.gz

Използване на ModSecurity

По подразбиране ModSecurity работи в режим само за откриване, което означава, че ще регистрира всички прекъсвания на правилата, но няма да предприема никакви действия. Това се препоръчва за нови инсталации, за да можете да гледате събитията, генерирани в регистъра за грешки на Apache. След като прегледате дневника, можете да решите дали трябва да се направи някаква промяна в набора от правила или деактивиране на правилото (вижте по-долу), преди да преминете в режим на защита.

За да видите регистъра за грешки на Apache:

 cat /var/log/httpd/error_log

Редът ModSecurity в регистъра за грешки на Apache е разделен на девет елемента. Всеки елемент предоставя информация за това защо събитието е задействано.

  • Първата част казва кой файл с правила е задействал това събитие.
  • Втората част казва от кой ред във файла с правила започва правилото.
  • Третият елемент ви казва кое правило е задействано.
  • Четвъртият елемент ви казва ревизията на правилото.
  • Петият елемент съдържа специални данни за целите на отстраняване на грешки.
  • Шестият елемент дефинира сериозността на регистрирането на това събитие.
  • Седмият раздел описва какво действие е настъпило и в каква фаза се е случило.

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

За да промените ModSecurity в режим на защита, отворете conf файла в текстов редактор:

 nano /etc/httpd/conf.d/modsecurity.conf

... и промяна:

 SecRuleEngine DetectionOnly

да се:

 SecRuleEngine On

Ако срещнете блокове, когато ModSecurity се изпълнява, тогава трябва да идентифицирате правилото в HTTP регистъра за грешки. Командата "tail" ви позволява да гледате регистрационните файлове в реално време:

 tail -f /var/log/httpd/error_log

Повторете действието, което е причинило блока, докато гледате дневника.

Промяна на набор от правила/Деактивиране на идентификатор на правило

Промяната на набор от правила е извън обхвата на този урок.

За да деактивирате конкретно правило, идентифицирате идентификатора на правилото, който е в третия елемент (например [id=200000]) и след това го деактивирате в конфигурационния файл на Apache:

 nano /etc/httpd/conf/httpd.conf

... като добавите следното в долната част на файла с идентификатора на правилото:

<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>

Ако установите, че ModSecurity блокира всички действия на вашия уебсайт(ове), тогава „Наборът от основни правила“ вероятно е в „самостоятелен“ режим. Трябва да промените това на „Съвместно откриване“, което открива и блокира само аномалии. В същото време можете да разгледате опциите "Самостоятелно" и да ги промените, ако желаете.

 nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf

Променете „откриване“ на „самостоятелно“.

Можете също така да конфигурирате ModSecurity да разрешава вашия IP през защитната стена на уеб приложението (WAF) без регистриране:

 SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off

... или с регистриране:

 SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly

Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече