Настройте NGINX с ModSecurity на CentOS 6

В тази статия ще обясня как да изградя стек LEMP, защитен от ModSecurity. ModSecurity е защитна стена на уеб приложения с отворен код, която е полезна за защита срещу инжекции, PHP атаки и др. Ако искате да настроите NGINX с ModSecurity, продължете да четете.

Всички стъпки в тази статия изискват root достъп.

Стъпка 1: Инсталиране на предпоставките

Ако все още не работите като root потребител, ескалирайте себе си:

/bin/su

Имаме нужда от компилатор, така че изпълнете следното, за да сте сигурни:

yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd-devel libxml2-devel xz-devel python-devel libcurl-devel
yum groupinstall -y 'Development Tools' 

За да инсталираме NGINX, първо трябва да получим пакета. Изтеглете пакета:

cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz

Ще ни е необходим и пакетът PHP за нашия стек.

wget http://us2.php.net/distributions/php-5.6.16.tar.bz2

Тъй като инсталираме ModSecurity, ще вземем източника и ще го изтеглим:

wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz

Сега разархивирайте/разархивирайте файловете.

tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz   

След това ще инсталираме ModSecurity.

cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install

След като сме получили всички предпоставки, нека инсталираме NGINX. Следният набор от команди е за инсталиране на NGINX и ModSecurity.

cd /usr/src/nginx-1.9.9 && ./configure --add-module=../modsecurity-2.9.0/nginx/modsecurity/
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Сега нека инсталираме MySQL сървъра.

yum install -y mysql-server
service mysqld start
mysql_secure_installation

За mysql_secure_installationкомандата:

  • Натиснете Enter на първата стъпка от съветника за инсталиране.
  • Въведете Y, когато бъдете подканени, ако трябва да се зададе нова парола за MySQL root.
  • Въведете нова парола, потвърдете, като я въведете отново.
  • Натиснете Y, за да премахнете анонимни потребители, забранете отдалечения root достъп до MySQL, като натиснете Y отново.
  • Натиснете Y за последен път, за да премахнете тестовата база данни/потребител.
  • Накрая натиснете Y, за да запазите промените си.

Последно нещо за инсталиране и това е PHP. В тази статия ще инсталираме PHP от източник.

Въведете изходната директория за PHP.

cd /usr/src/php-5.6.16

Сега конфигурирайте PHP. Следните аргументи в ./configureкомандата са налице, за да можете да стартирате приложения като WordPress.

 ./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
 make
 make install

Инсталирайте PHP-FPM за NGINX:

yum install -y php-fpm

Трябва да инсталираме PHP-FPM върху самия PHP, тъй като самият NGINX не се интегрира директно с PHP. Вместо това, NGINX предава PHP обработката на PHP-FPM, за да изпълни нашите скриптове.

Добра работа! Вие сте инсталирали необходимите условия.

Стъпка 2: Конфигуриране на ModSecurity/NGINX

Нека започнем с изграждането на набор от правила за ModSecurity. ModSecurity не прави нищо от само себе си, докато не го конфигурирате.

Вземете набора от правила OWASP от техния уебсайт:

 cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
 tar xvf master

След като изтеглите набора от правила, ще комбинираме конфигурацията по подразбиране с основните правила.

cd SpiderLabs-owasp-modsecurity-crs-60c8bc9
cp /usr/src/modsecurity-2.9.0/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
cp /usr/src/modsecurity-2.9.0/unicode.mapping /usr/local/nginx/conf/
cat base_rules/*.conf >> /usr/local/nginx/conf/modsecurity.conf
cp base_rules/*.data /usr/local/nginx/conf

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

Създайте директория на адрес /var/www:

mkdir /var/www

И директория за вашия виртуален хост:

mkdir /var/www/yourwebsite.com

Накрая добавете следното към вашата конфигурация на NGINX, разположена на адрес /usr/local/nginx/conf/nginx.conf. Уверете се, че сте добавили тази конфигурация преди появата на последния }символ.

  server {
  listen   80;
  root /var/www/yourwebsite.com;
  index index.php index.html index.htm;
  server_name yourwebsite.com www.yourwebsite.com;
  location / {
  ModSecurityEnabled on;
  ModSecurityConfig /usr/local/nginx/modsecurity.conf;
  }
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Стъпка 3: Стартиране на PHP-FPM и NGINX

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

service php-fpm start
/usr/sbin/nginx

Честито! Настроихте първия си уебсайт с NGINX, защитен от ModSecurity. За допълнително четене на ModSecurity, посетете техния официален сайт .

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

Възходът на машините: Реални приложения на 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 машини. Прочетете тази статия, за да научите повече