Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

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

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

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

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

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

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

реклама

Ажурирајте Роцки Линук

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

реклама
sudo dnf upgrade --refresh

Инсталирајте најновији Нгинк Стабле или Маинлине

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

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

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

sudo systemctl stop nginx

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

sudo dnf remove nginx

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

реклама
sudo dnf install dnf-utils -y

Затим увезите спремишта испод.

Увезите Нгинк главно складиште

sudo tee /etc/yum.repos.d/nginx-mainline.repo<<EOF

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/9/x86_64/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

EOF

Корисници са аарцх архитектуром, замените у горњој команди басеурл=хттп://нгинк.орг/пацкагес/маинлине/центос/9/к86_64/ са басеурл=хттп://нгинк.орг/пацкагес/маинлине/центос/9/аарцх64/.

реклама

увоз Нгинк стабилно спремиште

sudo tee /etc/yum.repos.d/nginx-stable.repo<<EOF

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/9/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

EOF

Корисници са аарцх архитектуром, замените у горњој команди басеурл=хттп://нгинк.орг/пацкагес/маинлине/центос/9/к86_64/ са басеурл=хттп://нгинк.орг/пацкагес/маинлине/центос/9/аарцх64/.

Инсталирајте Нгинк

Подразумевано, прво се користи најновије спремиште за стабилне Нгинк пакете. Међутим, водич ће се инсталирати Нгинк маинлине, тако да ћете морати да покренете следећу команду да бисте омогућили главно складиште на следећи начин:

sudo yum-config-manager --enable nginx-mainline

Имајте на уму ако више волите стабилан, немојте користити горњу команду и пређите на следећи део упутства.

реклама

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

sudo dnf install nginx
Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

Као што је горе наведено, туторијал инсталира најновију главну верзију Нгинк-а директно са Нгинк.орг. Имајте на уму да ћете видети искачући прозор који вас обавештава о увозу ГПГ кључ током инсталације. Ово је безбедно и потребно је да бисте успешно завршили инсталирање Нгинк главне линије.

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

реклама
sudo systemctl start nginx

Омогућите покретање Нгинк-а при покретању; користите следећу команду:

sudo systemctl enable nginx

Опционо, проверите своју верзију Нгинк-а. У нашем случају, то је Нгинк Маинлине верзија; користите следећу команду.

реклама
nginx -v

Конфигуришите ФиреваллД за Нгинк

Ако не замењујете постојећу Нгинк услугу и први пут инсталирате Нгинк, можда ћете морати да конфигуришете заштитни зид за ХТТП и ХТТПС саобраћај. Пример како то да урадите је у наставку:

Дозволи ХТТП саобраћају да користи следећу команду:

sudo firewall-cmd --permanent --zone=public --add-service=http

Дозволи ХТТПС саобраћају да користи следећу команду:

sudo firewall-cmd --permanent --zone=public --add-service=https

Када завршите, морате да учините промене ефективним поновним учитавањем заштитног зида:

реклама
sudo firewall-cmd --reload

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

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

реклама

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

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

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

Преузмите изворну архиву

Затим преузмите Нгинк изворну архиву са странице за преузимање да би одговарала верзији Нгинк-а коју сте раније идентификовали. Чак и ако нисте ажурирали на најновију верзију стабилног или главног Нгинк-а и користите старију верзију, требало би да будете у могућности да пронађете извор који одговара вашем.

Нгинк страница за преузимање може бити наћи овде.

Преузмите извор користећи вгет командују на следећи начин (само пример).

sudo wget http://nginx.org/download/nginx-1.23.1.tar.gz

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

реклама
реклама

Затим извуците архиву на следећи начин.

sudo tar -xvzf nginx-1.23.1.tar.gz

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

Затим наведите датотеке директоријума са лс цомманд као што следи.

ls

Пример излаза у вашем /уср/срц/лоцал/нгинк директоријум.

[joshua@rocky-linux-9 nginx]$ ls
nginx-1.23.1  nginx-1.23.1.tar.gz

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

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

Пакет либмодсецурити3 је основни део ВАФ-а који ради ХТТП филтрирање за ваше веб апликације. Ви ћете га саставити из извора.

реклама

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

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

реклама
sudo dnf install git -y

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

sudo 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 зависности

Пре него што преведете, мораћете да инсталирате следеће зависности на следећи начин.

Види такође  Како инсталирати ВиртуалБок 7.0 на Линук Минт 21 ЛТС

Први задатак је инсталирање ЕПЕЛ спремишта, а препорука је инсталирање оба спремишта.

реклама

Прво, омогућите ЦРБ спремиште.

sudo dnf config-manager --set-enabled crb

Затим, инсталирајте ЕПЕЛ користећи следеће (днф) терминалска команда.

реклама
sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm

Затим покрените следећу команду да бисте инсталирали пакете које ће Модсецурити захтевати. Ово би требало да покрије већину опција и функција које можете да користите са Модсецурити и основним скупом правила.

sudo dnf install doxygen yajl-devel gcc-c++ flex bison yajl curl-devel zlib-devel pcre-devel autoconf automake git curl make libxml2-devel pcre-static pkgconfig libtool httpd-devel redhat-rpm-config wget curl openssl openssl-devel geos geos-devel geocode-glib-devel geolite2-city geolite2-country nano -y

Инсталирајте ГеоИП, прво ћете морати да увезете Реми спремиште.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

Сада инсталирајте ГеоИП-девел користећи следећу команду.

реклама
sudo dnf --enablerepo=remi install GeoIP-devel -y

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

sudo git submodule init

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

sudo git submodule update

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

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

реклама
sudo ./build.sh

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

sudo ./configure

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

реклама
fatal: No names found, cannot describe anything.

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

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

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

sudo make

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

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

реклама
sudo 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/

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

Затим идите у Нгинк изворни директоријум; запамтите да ће се пример у наставку разликовати од ваше верзије; то је само пример.

primer:

реклама
реклама
cd /usr/local/src/nginx/nginx-1.23.1/

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

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

Пример излаза ако је све до сада функционисало исправно:

Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

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

sudo make modules

Пример резултата:

Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

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

реклама
sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/

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

реклама

За кориснике који су инсталирали Нгинк маинлине или стабилан, локација би била следећа.

sudo cp objs/ngx_http_modsecurity_module.so /etc/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:

Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

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

реклама

Сачувајте датотеку (ЦТРЛ+О), затим изађите (ЦТРЛ+Кс).

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

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

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

реклама
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

primer:

реклама
Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

Сада морате да пронађете следеће СецАудитЛогПартс, који се налази на линији 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

Сачувајте датотеку модсец-цонфиг.цонф са (ЦТРЛ+О), онда (ЦТРЛ+Кс) излаз.

На крају, копирајте МодСецурити уницоде.мапирање филе витх ЦП команда као што следи.

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

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

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

реклама

Проверите Страница са ознаком ОВАСП издања да видите шта је најновије, пошто се пример у наставку можда променио у будућности.

Види такође  Како инсталирати Авидемук на Убунту 22.10/22.04/20.04

Прво се вратите до свог модсец директоријума који је креиран.

cd /etc/nginx/modsec

Коришћење вгет наредба, преузмите ОВАСП ЦРС 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

У време креирања упутства, в4.0.0-РЦ1 пре-издање је такође доступно, као што је раније поменуто.

реклама
wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v4.0.0-rc1.zip

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

sudo dnf install unzip -y

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

sudo unzip v4.0.0-rc1 -d /etc/nginx/modsec

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

реклама

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

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

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

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

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

реклама
include /etc/nginx/modsec/coreruleset-4.0.0-rc1/crs-setup.conf
include /etc/nginx/modsec/coreruleset-4.0.0-rc1/rules/*.conf

primer:

Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

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

реклама

Запамтите, као што је објашњено мало раније, можете технички преузети више верзија, модификовати ову датотеку, и не заборавите да копирате и ставите на белу листу, значајан део беле листе је да је она углавном генеричка.

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

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-4.0.0-rc1/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 забрањена грешка. Ако није, онда је пропуштен корак.

реклама

primer:

реклама
Како инсталирати МодСецурити 3 + ОВАСП са Нгинк-ом на Роцки Линук 9

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

Види такође  Како инсталирати Линук Кернел 6.0 на Роцки Линук 9 | Роцки Линук 8

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

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

Добро правило је да примените постављено правило неколико недеља до месеци без икаквих лажних позитивних резултата, а затим повећате, на пример, ниво параноје 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"

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

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

На пример, ако желите да уклоните правила 941000 942999 Из ваших / админ / јер наставља да покреће лажне забране и блокаде за ваш тим, пронађите у датотеци евиденције модне безбедности ИД правила и затим онемогућите само тај ИД помоћу РемовеБиИД као пример испод:

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

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

реклама

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

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

реклама

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

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

МодСецурити евиденције могу прерасти, тако да морате да подесите ротирање дневника јер се то не ради уместо вас.

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

sudo nano /etc/logrotate.d/modsec

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

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

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

реклама
реклама

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

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

Не заборавите да тестирате и проверите евиденцију и не постављате превисок ниво безбедности. Колико год ови софтвери били сјајни, они могу врло брзо блокирати легитиман саобраћај и, у зависности од тога да ли је ваша веб локација извор прихода, могу имати катастрофалне резултате.


Није оно што сте тражили? Покушајте да потражите додатне туторијале.

Оставите коментар