Како инсталирати МодСецурити 3 и ОВАСП језгро правила са Нгинк-ом на Убунту 20.04

реклама

МодСецурити, често који се помиње као Модсец, је бесплатни заштитни зид за веб апликације отвореног кода (ВАФ). МодСецурити је креиран као модул за Апацхе ХТТП сервер. Међутим, од својих раних дана, ВАФ је порастао и сада покрива низ могућности филтрирања захтева и одговора протокола за пренос хипертекста за различите платформе као што су Мицрософт ИИС, Нгинк и, наравно, Апацхе.

Како ВАФ функционише, механизам МодСецурити се поставља испред веб апликације, омогућавајући машини да скенира долазне и одлазне ХТТП везе. МодСецурити се најчешће користи у комбинацији са ОВАСП основни скуп правила (ЦРС), скуп правила отвореног кода написан у језику СецРулес компаније МодСецурити и веома је цењен међу безбедносном индустријом.

ОВАСП скуп правила са МодСецурити може скоро тренутно помоћи у заштити вашег сервера од:

  • Лоши кориснички агенти
  • ДДоС
  • Унакрсне скрипте за веб сајт
  • СКЛ ињецтион
  • Отмица сесије
  • Друге претње

У следећем туторијалу ћете научити како инсталирати МодСецурити 3 & ОВАСП Цоре Руле Сет са Нгинк-ом на Убунту 20.04 ЛТС Фоцал Фосса.

Преглед садржаја

Предуслови

  • Препоручени ОС: убунту КСНУМКС или више
  • Кориснички налог: Кориснички налог са судо or роот приступ.

Ажурирајте оперативни систем

Ажурирајте свој убунту оперативни систем да бисте били сигурни да су сви постојећи пакети ажурирани:

sudo apt update && sudo apt upgrade -y

Туторијал ће користити команда судо   под претпоставком да имате судо статус.

Да бисте верификовали судо статус на свом налогу:

реклама

sudo whoami

Пример излаза који приказује судо статус:

[joshua@ubuntu ~]$ sudo whoami
root

Да бисте подесили постојећи или нови судо налог, посетите наш водич на Како додати корисника у Судоерс на Убунту.

Да бисте користили роот налог, користите следећу команду са роот лозинком да бисте се пријавили.

su

Инсталирајте најновији Нгинк на Убунту 20.04

Прво, саветује се да уклоните све постојеће инсталације Нгинк-а и инсталирате најновију верзију користећи прилагођено АЈН одржава од Ондреј Суры, који такође долази са додатним динамичким модулима као што је Бротли модул.

Уклоните постојећу инсталацију Нгинк-а

Зауставите тренутну Нгинк услугу:

sudo systemctl stop nginx

Сада уклоните постојећу инсталацију Нгинк-а на следећи начин:

sudo apt-get purge nginx -y && sudo apt autoremove nginx -y

Додајте најновији Нгинк ППА

Сада када сте уклонили своју стару Нгинк услугу, препоручује се инсталирање једног од два ППА-а наведена у наставку.

Водич увек препоручује инсталирање главне линије према препоруци Нгинк-а.

реклама

Инсталирајте један од следећих ППА-а са следећом командом:

Инсталирајте најновији Нгинк (СТАБИЛНО):

sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update

Инсталирајте најновији Нгинк (МАИНЛИНЕ):

sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Сада када сте инсталирали АЈН и ажурирали листу спремишта, инсталирајте Нгинк са следећим:

sudo apt install nginx-core nginx-common nginx nginx-full

Имајте на уму да ће можда бити затражено да задржите или замените постојеће / етц / нгинк /нгинк.цонф конфигурациону датотеку током инсталације. Препоручује се да задржите тренутну конфигурациону датотеку притиском на (н).

Додајте Нгинк изворни код у спремиште

Подразумевано, изворни код се не инсталира када се инсталира ППА. Ово ћете морати ручно да омогућите да преузмете Нгинк изворни код за компајлирање Модсецурити касније у водичу.

Прво отворите конфигурациону датотеку /етц/апт/соурцес.лист.д са нано као испод:

sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list

Сада поставите линију која почиње # деб-срц декоментирај (#) линија.

реклама

# deb-src http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ focal main

Пример како би требало да изгледа:

Како инсталирати МодСецурити 3 и ОВАСП језгро правила са Нгинк-ом на Убунту 20.04

Сада сачувајте датотеку (ЦТРЛ+О) и излаз (ЦТРЛ+Кс). Сада ажурирајте листу спремишта користећи следећу команду:

sudo apt update

Преузмите Нгинк извор

Мораћете да преузмете Нгинк изворни код да бисте компајлирали МодСецурити динамички модул. Да бисте то урадили, мораћете да преузмете и сачувате изворни пакет на локацији директоријума /етц/лоцал/срц/нгинк.

Креирајте и конфигуришите директоријуме

Направите локацију на следећи начин:

sudo mkdir /usr/local/src/nginx && cd /usr/local/src/nginx

Опционо – Доделите дозволу директоријуму ако је потребно на следећи начин:

sudo chown username:username /usr/local/src/ -R 

Инсталирајте зависности и извршите преузимање

Затим преузмите изворни пакет са следећим:

sudo apt install dpkg-dev -y && sudo apt source nginx

Имајте на уму да ћете видети следећу поруку о грешци као у наставку:

dpkg-source: info: extracting nginx in nginx-1.21.1
dpkg-source: info: unpacking nginx_1.21.1.orig.tar.gz
dpkg-source: info: unpacking nginx_1.21.1-1+ubuntu20.04.1+deb.sury.org+1.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 0001-Make-sure-signature-stays-the-same-in-all-nginx-buil.patch
dpkg-source: info: applying 0002-define_gnu_source-on-other-glibc-based-platforms.patch
W: Download is performed unsandboxed as root as file 'nginx_1.21.1.orig.tar.gz' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

Ово се може безбедно занемарити.

реклама

Проверите изворну верзију

Затим наведите датотеке директоријума са ls наредба на следећи начин:

ls

Требало би да видите следећи излаз у вашем /уср/срц/лоцал/нгинк директоријум:

jjames@ubuntu:/usr/local/src/nginx$ ls
nginx-1.21.1
nginx_1.21.1-1+ubuntu20.04.1+deb.sury.org+1.debian.tar.xz
nginx_1.21.1-1+ubuntu20.04.1+deb.sury.org+1.dsc
nginx_1.21.1.orig.tar.gz
nginx_1.21.1.orig.tar.gz.asc

Затим потврдите да је изворни пакет исти као ваша верзија Нгинк-а инсталирана на вашем Убунту оперативном систему. Да бисте то урадили, користите следеће нгинк -в наредба на следећи начин:

nginx -v

Требало би да добијете исту излазну верзију као извор на следећи начин:

jjames@ubuntu:/usr/local/src/nginx$ nginx -v
nginx version: nginx/1.21.1

Инсталирајте либмодсецурити3 за МодСецурити

Пакет либмодсецурити3 је стварни део ВАФ-а који ради ХТТП филтрирање за ваше веб апликације. На Убунту 20.04, ово можете инсталирати из подразумеваног Убунту 20.04 спремишта. Међутим, ово се не препоручује као код већине ЛТС верзија и често заостаје. Уместо тога, ви ћете компајлирати из далеко ажурнијег извора на следећи начин.

Клонирајте МодСецурити репсоитори са Гитхуб-а

Први корак је клон са Гитхуб-а, а ако немате инсталиран гит, мораћете да извршите следећу команду:

sudo apt install git -y

Имајте на уму да се овим инсталира подразумевана верзија спремишта Убунту 20.04. Ако желите најновију ажурирану верзију користећи ППА из ГИТ репозиторијум тима, посетите наш водич за инсталирање и ажурирање најновије Гит на Убунту 20.04.

Затим клонирајте либмодсецурити3 ГИТ спремиште на следећи начин:

реклама

git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/

Када будете клонирани, мораћете CD у директоријум:

cd /usr/local/src/ModSecurity/

Инсталирајте либмодсецурити3 зависности

Да бисте компајлирали, мораћете да инсталирате следеће зависности на следећи начин:

sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y

Сада да завршите, инсталирајте следеће ГИТ подмодуле на следећи начин:

git submodule init

Затим ажурирајте подмодуле:

git submodule update

Изградња МодСецурити окружења

Следећи корак је сада да се прво изгради окружење. Користите следећу команду:

./build.sh

Затим покрените команду за конфигурисање:

./configure

Имајте на уму да ћете вероватно видети следећу грешку

fatal: No names found, cannot describe anything.

Можете безбедно да игноришете ово и пређете на следећи корак.

реклама

Састављање изворног кода МодСецурити

Сада када сте изградили и конфигурисали окружење за либмодсецурити3, време је да га компајлирате командом make (правити).

make

Згодан трик је да наведете јер ово може значајно повећати брзину компајлирања ако имате моћан сервер. На пример, ЛинукЦапабле сервер има 6 ЦПУ-а, а ја могу да користим свих 6 или бар 4 до 5 да повећам брзину.

make -j 6

Након компајлирања изворног кода, сада покрените команду за инсталацију у свом терминалу:

sudo make install

Напомена, инсталација се врши у /уср/лоцал/модсецурити/, које ћете касније референцирати у водичу.

Инсталирајте МодСецурити-нгинк конектор

МодСецурити-нгинк конектор је тачка везе између Апацхе либмодсецурити. То је компонента која комуницира између Нгинк-а и МодСецурити-а (либмодсецурити3).

Клонирајте МодСецурити-нгинк репсоитори са Гитхуб-а

Слично као у претходном кораку клонирања спремишта либмодсецурити3, мораћете поново да клонирате спремиште конектора користећи следећу команду:

sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/

Инсталирајте МодСецурити-нгинк зависности

Затим, ЦД директоријум у Нгинк изворни директоријум на следећи начин:

cd /usr/local/src/nginx/nginx-1.21.1

Напомена, замените верзију водича тренутном верзијом Нгинк-а у вашем систему.

реклама

Сада покрените команду у свом Убунту терминалу да бисте инсталирали потребне зависности:

sudo apt build-dep nginx && sudo apt install uuid-dev -y

Затим ћете саставити МодСецурити-нгинк конектор модул само са –С-цомпат означити на следећи начин:

sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx

Сада make (правити) (креирајте) динамичке модуле са следећом командом:

sudo make modules

Затим, док сте у Нгинк изворном директоријуму, користите следећу команду да преместите динамички модул који сте управо креирали и који је сачуван на локацији објс/нгк_хттп_модсецурити_модуле.со и копирајте га у /уср/схаре/нгинк/модулес директоријум.

sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/

Можете да складиштите динамички модул било где, све док наведете пуну путању приликом учитавања.

Учитајте и конфигуришите МодСецурити-нгинк конектор са Нгинк-ом

Сада када сте саставили динамички модул и лоцирали га у складу са тим, морате да уредите свој /етц/нгинк/нгинк.цонф конфигурациону датотеку да бисте омогућили да МодСецурити ради са вашим Нгинк веб сервером.

Омогућите МодСецурити у нгинк.цонф

Прво, морате да наведете лоад_модуле и путању до вашег модбезбедносног модула.

Отворити нгинк.цонф са било којим уређивачем текста. За туторијал ће се користити нано:

реклама

sudo nano /etc/nginx/nginx.conf

Затим додајте следећи ред у датотеку при врху:

load_module modules/ngx_http_modsecurity_module.so;

Ако сте модул лоцирали негде другде, обавезно укључите пуну путању.

Сада додајте следећи код испод ХТТП {} одељак како следи:

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;

primer:

Како инсталирати МодСецурити са Нгинк-ом на Убунту 20.04

Ако сте модул лоцирали негде другде, обавезно укључите пуну путању.

Спасити нгинк.цонф фајл (ЦТРЛ+О), затим изађите (ЦТРЛ+Кс).

Креирајте и конфигуришите директоријум и датотеке за МодСецурити

Мораћете да креирате директоријум за чување конфигурационих датотека и будућих правила, ОВАСП ЦРС за туторијал.

Користите следећу команду да креирате /етц/нгинк/модсец директоријум на следећи начин:

реклама

sudo mkdir /etc/nginx/modsec/

Сада морате да копирате узорак МодСецурити конфигурационе датотеке назад из нашег клонираног ГИТ директоријума:

sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Користећи свој омиљени уређивач текста у Убунту-у, отворите датотеку модсецурити.цонф на следећи начин:

sudo nano /etc/nginx/modsec/modsecurity.conf

Подразумевано, МодСецурити конфигурација има механизам правила наведен као (Само за детекцију), који, другим речима, покреће МодСецурити и открива све злонамерно понашање, али не блокира или забрањује радње и евидентира све ХТТП трансакције које означи. Ово би требало да се користи само ако имате много лажних позитивних резултата или сте повећали подешавања нивоа безбедности на екстремни ниво и тестирате да бисте видели да ли је дошло до лажних позитивних резултата.

Да бисте променили ово понашање у (на), пронађите следеће на ред 7:

SecRuleEngine DetectionOnly

Промените линију на ову да бисте омогућили МодСецурити:

SecRuleEngine On

Сада морате да пронађете следеће, које се налази на ред 224:

# Log everything we know about a transaction.
SecAuditLogParts ABIJDEFHZ

Ово није тачно и треба га променити. Измените линију на следеће:

SecAuditLogParts ABCEFHJKZ

Сада сачувајте модсецурити.цонф датотека помоћу (ЦТРЛ+О) затим изађите (ЦТРЛ+Кс).

реклама

Следећи део је креирање следеће датотеке модсец-цонфиг.цонф. Овде ћете додати модсецурити.цонф датотеку уз и касније друга правила као што су ОВАСП ЦРС, а ако користите ВордПресс, ВПРС ЦРС скуп правила.

Користите следећу команду да креирате датотеку и отворите је:

sudo nano /etc/nginx/modsec/modsec-config.conf

Када уђете у датотеку, додајте следећи ред:

Include /etc/nginx/modsec/modsecurity.conf

Спасити модсец-цонфиг.цонф датотека са (ЦТРЛ+О) онда (ЦТРЛ+Кс) да изађете.

На крају, копирајте МодСецурити уницоде.мапирање филе витх CP наредба на следећи начин:

sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/

Сада пре него што кренете даље, требало би да свом Нгинк сервису дате суво покретање са следећом командом терминала:

sudo nginx -t

Ако сте све исправно подесили, требало би да добијете следећи излаз:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Да би промене биле активне, поново покрените Нгинк услугу користећи системцтл команду:

реклама

sudo systemctl restart nginx

Инсталирајте ОВАСП основни скуп правила за МодСецурити

МодСецурити сам по себи не штити ваш веб сервер и морате имати правила. Једно од најпознатијих, поштованих и најпознатијих правила је скуп правила ОВАСП ЦРС. Правила се најчешће користе међу веб серверима и другим ВАФ-овима, а већина других сличних система већину својих правила заснива на овом ЦРС-у. Инсталирање овог скупа правила ће вам аутоматски пружити одличан извор заштите од већине нових претњи на Интернету откривањем злонамерних актера и њиховим блокирањем.

Коришћење вгет команда, преузмите ОВАСП ЦРС 3.3.2 архива као што следи:

wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.2.zip

За оне који желе да живе на ивици, можете преузети ноћну верзију. Користите ноћни програм само ако сте спремни да наставите да поново компајлирате и често проверавате ЦореРулеСет Гитхуб да ли има ажурирања и да будете сигурнији у откривању проблема. Технички, ноћни рад може бити сигурнији, али потенцијално може створити проблеме.

За кориснике почетнике, користите стабилну верзију и немојте користити верзију испод.

wget https://github.com/coreruleset/coreruleset/archive/refs/tags/nightly.zip

инсталирате Распакујте пакет ако ово немате инсталирано на вашем серверу:

sudo dnf install unzip -y

Сада отворити рајсфешлус la мастер.зип архивирати на следећи начин:

sudo unzip v3.3.2.zip -d /etc/nginx/modsec

Као и раније, као модсецурити.цонф узорак конфигурације, ОВАСП ЦРС долази са примером конфигурационе датотеке коју треба да преименујете. Најбоље је користити CP команда и сачувајте резервну копију за будућност у случају да морате поново да покренете.

sudo cp /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf.example /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf

Да бисте омогућили правила, отворите /етц/нгинк/модсец/модсец-цонфиг.цонф поново користећи било који уређивач текста:

реклама

sudo nano /etc/nginx/modsec/modsec-config.conf

Када поново уђете у датотеку, додајте следећа два додатна реда:

Include /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf
Include /etc/nginx/modsec/coreruleset-3.3.2/rules/*.conf

Сачувајте датотеку (ЦТРЛ+О) и излаз (ЦТРЛ+Т).

Као и раније, потребно је да тестирате све нове додатке вашој Нгинк услузи пре него што је објавите:

sudo nginx -t

Након покретања теста рада на суво, требало би да добијете следећи излаз што значи да све исправно ради:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Поново покрените своју Нгинк услугу да би промене биле активне на следећи начин:

sudo systemctl restart nginx

Коришћење и разумевање скупа основних правила ОВАСП-а

ОВАСП ЦРС има доста опција, али подразумевана подешавања ће одмах заштитити већину сервера без повреде ваших правих посетилаца и добрих СЕО ботова. У наставку ће бити покривене неке области да би се објаснило. Даље читање би било најбоље да се испитају све опције у самим конфигурационим датотекама јер имају доста текстуалних података да објасне шта су.

Отвори свој ЦРС-сетуп.цонф датотека на следећи начин:

sudo nano /etc/nginx/modsec/coreruleset-3.4-dev/crs-setup.conf

Напомена, ово је конфигурација дев верзије са додатним ставкама у поређењу са верзијом 3.3.

реклама

Одавде можете да измените већину својих ОВАСП ЦРС подешавања.

ОВАСП ЦРС бодовање

Да га разбијемо, МодСецурити има два режима:

Аномали Сцоринг Моде

# -- [[ Anomaly Scoring Mode (default) ]] --
# In CRS3, anomaly mode is the default and recommended mode, since it gives the
# most accurate log information and offers the most flexibility in setting your
# blocking policies. It is also called "collaborative detection mode".
# In this mode, each matching rule increases an 'anomaly score'.
# At the conclusion of the inbound rules, and again at the conclusion of the
# outbound rules, the anomaly score is checked, and the blocking evaluation
# rules apply a disruptive action, by default returning an error 403.

Самостални режим

# -- [[ Self-Contained Mode ]] --
# In this mode, rules apply an action instantly. This was the CRS2 default.
# It can lower resource usage, at the cost of less flexibility in blocking policy
# and less informative audit logs (only the first detected threat is logged).
# Rules inherit the disruptive action that you specify (i.e. deny, drop, etc).
# The first rule that matches will execute this action. In most cases this will
# cause evaluation to stop after the first rule has matched, similar to how many
# IDSs function.

Аномали Сцоринг је генерално за већину корисника најбољи начин за коришћење.

Постоје четири нивоа параноје:

  • Параноја ниво 1 – Подразумевани ниво и препоручен за већину корисника.
  • Параноја ниво 2 – Само напредни корисници.
  • Параноја ниво 3 – Само стручни корисници.
  • Параноја ниво 4 – Уопште се не препоручује, осим у изузетним околностима.
# -- [[ Paranoia Level Initialization ]] ---------------------------------------
#
# The Paranoia Level (PL) setting allows you to choose the desired level
# of rule checks that will add to your anomaly scores.
#
# With each paranoia level increase, the CRS enables additional rules
# giving you a higher level of security. However, higher paranoia levels
# also increase the possibility of blocking some legitimate traffic due to
# false alarms (also named false positives or FPs). If you use higher
# paranoia levels, it is likely that you will need to add some exclusion
# rules for certain requests and applications receiving complex input.
#
# - A paranoia level of 1 is default. In this level, most core rules
#   are enabled. PL1 is advised for beginners, installations
#   covering many different sites and applications, and for setups
#   with standard security requirements.
#   At PL1 you should face FPs rarely. If you encounter FPs, please
#   open an issue on the CRS GitHub site and don't forget to attach your
#   complete Audit Log record for the request with the issue.
# - Paranoia level 2 includes many extra rules, for instance enabling
#   many regexp-based SQL and XSS injection protections, and adding
#   extra keywords checked for code injections. PL2 is advised
#   for moderate to experienced users desiring more complete coverage
#   and for installations with elevated security requirements.
#   PL2 comes with some FPs which you need to handle.
# - Paranoia level 3 enables more rules and keyword lists, and tweaks
#   limits on special characters used. PL3 is aimed at users experienced
#   at the handling of FPs and at installations with a high security
#   requirement.
# - Paranoia level 4 further restricts special characters.
#   The highest level is advised for experienced users protecting
#   installations with very high security requirements. Running PL4 will
#   likely produce a very high number of FPs which have to be
#   treated before the site can go productive.
#
# All rules will log their PL to the audit log;
# example: [tag "paranoia-level/2"]. This allows you to deduct from the
# audit log how the WAF behavior is affected by paranoia level.
#
# It is important to also look into the variable
# tx.enforce_bodyproc_urlencoded (Enforce Body Processor URLENCODED)
# defined below. Enabling it closes a possible bypass of CRS.

Тестирајте ОВАСП ЦРС на свом серверу

Да бисте тестирали да ли ОВАСП ЦРС ради на вашем серверу, отворите свој Интернет претраживач и користите следеће:

https://www.yourdomain.com/index.html?exec=/bin/bash

Требало би да добијете а 403 забрањена грешка. Ако није, онда је пропуштен корак.

реклама

Најчешћи проблем је недостатак промене ДетецтионОнли до На, као што је објашњено раније у туторијалу.

Рад са лажним позитивним резултатима и искључењем прилагођених правила

Један од често бескрајних задатака је суочавање са лажним позитивним резултатима, МодСецурити и ОВАСП ЦРС раде сјајан посао заједно, али то долази по цену вашег времена, али с обзиром на заштиту, добијате да је вредно тога. За почетак, никада не повећавајте ниво параноје за почетак је златно правило.

Добро правило је да примените постављено правило неколико недеља до месеци без икаквих лажних позитивних резултата, а затим повећате, на пример, ниво параноје 1 на ниво параноје 2, тако да не будете преплављени тоном истовремено.

Искључујући лажно позитивне познате апликације

Модсецурити, подразумевано, може на белу листу свакодневних радњи које доводе до лажних позитивних резултата као у наставку:

#SecAction \
# "id:900130,\
#  phase:1,\
#  nolog,\
#  pass,\
#  t:none,\
#  setvar:tx.crs_exclusions_cpanel=1,\
#  setvar:tx.crs_exclusions_dokuwiki=1,\
#  setvar:tx.crs_exclusions_drupal=1,\
#  setvar:tx.crs_exclusions_nextcloud=1,\
#  setvar:tx.crs_exclusions_phpbb=1,\
#  setvar:tx.crs_exclusions_phpmyadmin=1,\
#  setvar:tx.crs_exclusions_wordpress=1,\
#  setvar:tx.crs_exclusions_xenforo=1"

Да бисте омогућили, нпр. ВордПресс, пхпББ и пхпМиАдмин док користите сва три, декоментирај редове и остави (1) број нетакнут, промените друге услуге које не користите, на пример, Ксенфоро (0) јер не желите да ставите ова правила на белу листу. Пример испод:

SecAction \
 "id:900130,\
  phase:1,\
  nolog,\
  pass,\
  t:none,\
  setvar:tx.crs_exclusions_cpanel=0,\
  setvar:tx.crs_exclusions_dokuwiki=0,\
  setvar:tx.crs_exclusions_drupal=0,\
  setvar:tx.crs_exclusions_nextcloud=0,\
  setvar:tx.crs_exclusions_phpbb=1,\
  setvar:tx.crs_exclusions_phpmyadmin=1,\
  setvar:tx.crs_exclusions_wordpress=1,\
  setvar:tx.crs_exclusions_xenforo=0"

Такође можете да измените синтаксу, која би била чистија. На пример:

SecAction \
 "id:900130,\
  phase:1,\
  nolog,\
  pass,\
  t:none,\
  setvar:tx.crs_exclusions_phpbb=1,\
  setvar:tx.crs_exclusions_phpmyadmin=1,\
  setvar:tx.crs_exclusions_wordpress=1"

Као што видите, уклоњене су опције које нису потребне и додате („) на крају ВордПресс-а за исправну синтаксу.

Искључујући правила у пре ЦРС-а

Да бисте се носили са прилагођеним изузецима, прво морате да промените име из РЕКУЕСТ-900-ЕКСЦЛУСИОН-РУЛЕС-БЕФОРЕ-ЦРС-САМПЛЕ.цонф филе витх цп команда као што следи:

реклама

sudo cp /etc/nginx/modsec/coreruleset-3.4-dev/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example /etc/nginx/modsec/coreruleset-3.4-dev/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf

Важно је запамтити, када креирате правила изузимања, свако мора имати ИД: и будите јединствени, иначе када тестирате своју Нгинк услугу, добићете грешку. Пример “ид:1544,пхасе:1,лог,аллов,цтл:рулеЕнгине=офф”, ид 1544 се не може користити за друго правило.

На пример, неки РЕКУЕСТ_УРИ ће подићи лажне позитивне резултате. Пример у наставку су два са Гоогле пагеспеед беацон и ВМУДЕВ додатком за ВордПресс:

SecRule REQUEST_URI "@beginsWith /wp-load.php?wpmudev" "id:1544,phase:1,log,allow,ctl:ruleEngine=off"

SecRule REQUEST_URI "@beginsWith /ngx_pagespeed_beacon" "id:1554,phase:1,log,allow,ctl:ruleEngine=off"

Као што видите, сваки УРЛ који почиње путањом биће аутоматски дозвољен.

Друга опција је стављање на белу листу ИП адреса, на неколико начина на које то можете да урадите:

SecRule REMOTE_ADDR "^195\.151\.128\.96" "id:1004,phase:1,nolog,allow,ctl:ruleEngine=off"
## or ###
SecRule REMOTE_ADDR "@ipMatch 127.0.0.1/8, 195.151.0.0/24, 196.159.11.13" "phase:1,id:1313413,allow,ctl:ruleEngine=off"

@ипМатцх може се више користити за подмреже. Ако желите да демантујете а podmrežni or ИП адреса променити, дозволити да негира. Такође можете, уз мало знања, креирати црне и беле листе и конфигурисати ово помоћу фаил2бан. Могућности често могу бити бескрајне.

Последњи пример је да се онемогуће само правила која покрећу лажне позитивне резултате, а не стављање на листу беле листе целе путање, као што сте видели у првом примеру РЕКУЕСТ_УРИ. Међутим, ово захтева више времена и тестирања. На пример, желите да уклоните правила 941000 942999 из ваше /админ/ области пошто стално покреће лажне забране и блокаде за ваш тим, пронађите у датотеци модбезбедних дневника ИД правила и затим онемогућите само тај ИД помоћу РемовеБиИД као пример испод:

SecRule REQUEST_FILENAME "@beginsWith /admin" "id:1004,phase:1,pass,nolog,ctl:ruleRemoveById=941000-942999"

Примери се могу наћи на МодСецурити ГИТ-у вики паге.

Опционо – Укључите Пројецт Хонеипот

Пројецт Хонеи Пот је први и једини дистрибуирани систем за идентификацију спамера и спамера које они користе да уклоне адресе са ваше веб странице. Користећи Пројецт Хонеи Пот систем, можете да инсталирате прилагођено означене адресе на време и ИП адресу посетиоца вашег сајта. Ако једна од ових адреса почне да прима е-пошту, не само да можемо рећи да су поруке нежељене, већ и тачан тренутак када је адреса сакупљена и ИП адресу која је прикупила.

реклама

МодСецурити може имати опцију да интегрише Пројецт Хонеипот, који ће испитивати базу података и блокирати све адресе које се налазе на црној листи ХонеиПот. Имајте на уму да коришћење овога може довести до лажних позитивних резултата. Међутим, ово је мало јер су подаци поуздани, али понекад добри ботови углавном буду означени, па будите опрезни.

Корак КСНУМКС. Направите налог а бесплатан налог.

Корак КСНУМКС. Када се региструјете и пријавите, пронађите линију на контролној табли (Ваш хттп:БЛ АПИ кључ) и кликните на дугме добити један.

Како инсталирати МодСецурити са Нгинк-ом на Убунту 20.04

Корак КСНУМКС. Врати се назад ЦРС-сетуп.цонф датотеку тако што ћете је отворити помоћу уређивача текста:

sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf

Корак КСНУМКС. Пронађите линију која почиње са #СецХттпБлКеи, који се налази на линији 629.

#SecHttpBlKey XXXXXXXXXXXXXXXXX
#SecAction "id:900500,\
#  phase:1,\
#  nolog,\
#  pass,\
#  t:none,\
#  setvar:tx.block_search_ip=1,\
#  setvar:tx.block_suspicious_ip=1,\
#  setvar:tx.block_harvester_ip=1,\
#  setvar:tx.block_spammer_ip=1"

Корак КСНУМКС. Промените СецХттпБлКеи КСКСКСКСКСКСКСКСКСКСКСКСКСКСКСКСКСКСКСКС својим кључем из Пројецт ХонеиПот.

primer:

SecHttpBlKey amhektvkkupe

Корак КСНУМКС. Затим декоментирајте све редове да бисте омогућили правило. Ако желите да деактивирате правило, уместо (КСНУМКС), ставити (0) уместо тога ако желите да онемогућите неко од правила. Подразумевано, блоцк_сеарцх_ип=0 је за ботове претраживача, не омогућавајте ово осим ако не желите да Бинг, Гоогле и други добри ботови долазе на вашу веб локацију.

реклама

SecHttpBlKey amhektvkkupe
SecAction "id:900500,\
  phase:1,\
  nolog,\
  pass,\
  t:none,\
  setvar:tx.block_search_ip=0,\
  setvar:tx.block_suspicious_ip=1,\
  setvar:tx.block_harvester_ip=1,\
  setvar:tx.block_spammer_ip=1"

Напомена, немојте користити амхектвккупе. Користите уместо тога ваш кључ!

Корак КСНУМКС. Тестирајте Нгинк да бисте били сигурни да није дошло до грешака са следећим:

sudo nginx -t

Пример излаза ако је све тачно:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Сада поново покрените Нгинк услугу:

sudo systemctl restart nginx

ВордПресс ВПРС скуп правила за МодСецурити

Друга опција за WordPress корисници треба да инсталирају и покрећу заједно са вашим скупом правила ОВАСП ЦРС, добро познатим пројектом под називом ВПРС скуп правила. Пошто је ово опционо и није за свакога, туторијал га неће покрити у овом одељку.

Међутим, ако желите да инсталирате ово ради додатне заштите ако користите ВордПресс на свом серверу, посетите наш водич на Инсталирање скупа правила ВордПресс МодСецурити (ВПРС).

Креирајте МодСецурити ЛогРотате датотеку:

МодСецурити дневники могу расти прилично брзо. Пошто компајлирате модул и он није инсталиран ни у једном званичном спремишту из Убунтуа, мораћете да креирате сопствену датотеку за ротирање дневника.

Прво креирајте и отворите датотеку за ротирање МодСецурити модсец:

реклама

sudo nano /etc/logrotate.d/modsec

Додајте следећи код:

/var/log/modsec_audit.log
{
        rotate 31
        daily
        missingok
        compress
        delaycompress
        notifempty
}

Ово ће задржати евиденцију за 31 дана. Ако више волите да имате мање, промените се 31 рећи 7 дана једнако седмична вредност трупаца. Требало би да се свакодневно ротирате за МодСецурити. Ако треба да прегледате датотеке евиденције са недељним фајлом, биће катастрофа за прегледавање, с обзиром на то колико ће бити велики.

Коментари и закључак

У туторијалу ћете разумети инсталирање Нгинк извора, компајлирање МодСецурити-а и постављање ОВАСП правила међу главним деловима. Све у свему, постављање МодСецурити-а на ваш сервер ће обезбедити тренутну заштиту. Међутим, стрпљење, време и посвећеност у учењу биће тако одлична карактеристика. Последња ствар коју желите је да блокирате СЕО ботове или, што је још важније, стварне кориснике који би могли бити потенцијални купци.

Схаре он: