Configurare NGINX cu ModSecurity pe CentOS 6

În acest articol, vă voi explica cum să construiți un stack LEMP protejat de ModSecurity. ModSecurity este un firewall de aplicație web open-source, care este util pentru a vă proteja împotriva injecțiilor, atacurilor PHP și multe altele. Dacă doriți să configurați NGINX cu ModSecurity, continuați să citiți.

Toți pașii din acest articol necesită acces root.

Pasul 1: Instalarea condițiilor preliminare

Dacă nu executați deja ca utilizator rădăcină, escaladează-te:

/bin/su

Avem nevoie de un compilator, așa că executați următoarele pentru a vă asigura:

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' 

Pentru a instala NGINX, trebuie mai întâi să obținem pachetul. Descărcați pachetul:

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

De asemenea, vom avea nevoie de pachetul PHP pentru stiva noastră.

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

De când instalăm ModSecurity, vom prelua sursa și o vom descărca:

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

Acum, dezlegați / dezarhivați fișierele.

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

Apoi, vom instala ModSecurity.

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

Acum că am obținut toate condițiile preliminare, să instalăm NGINX. Următorul set de comenzi sunt pentru instalarea NGINX și 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

Acum, hai să instalăm serverul MySQL.

yum install -y mysql-server
service mysqld start
mysql_secure_installation

Pentru mysql_secure_installationcomanda:

  • Apăsați introduceți la primul pas al vrăjitorului de instalare.
  • Introduceți Y atunci când vi se solicită dacă trebuie setată o nouă parolă rădăcină MySQL.
  • Tastați o nouă parolă, confirmați tastând-o din nou.
  • Apăsați Y pentru a elimina utilizatorii anonimi, nu permiteți accesul la rădăcină la MySQL, apăsând din nou pe Y.
  • Apăsați Y ultima dată pentru a elimina baza de date / utilizatorul de testare.
  • În sfârșit, apăsați Y pentru a salva modificările.

Un ultim lucru de instalat și acesta este PHP. În acest articol, vom instala PHP de la sursă.

Introduceți directorul sursă pentru PHP.

cd /usr/src/php-5.6.16

Acum, configurați PHP. Următoarele argumente din ./configurecomandă există pentru a putea rula aplicații precum WordPress.

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

Instalați PHP-FPM pentru NGINX:

yum install -y php-fpm

Trebuie să instalăm PHP-FPM pe PHP, deoarece NGINX în sine nu se integrează direct cu PHP. În schimb, NGINX trece procesarea PHP la PHP-FPM pentru a executa scripturile noastre.

Bună treabă! Ați instalat condițiile preliminare.

Pasul 2: Configurarea ModSecurity / NGINX

Să începem construind un set de reguli ModSecurity. ModSecurity nu face nimic de unul singur până când îl configurați.

Prindeți regulile OWASP setate de pe site-ul lor web:

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

După ce ai descărcat setul de reguli, vom combina configurația implicită cu regulile de bază.

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

În teorie, acest lucru ar trebui să se protejeze împotriva majorității exploatărilor web. Cu toate acestea, plugin-urile / codul pe care îl instalați ar trebui să fie, de asemenea, auditate, deoarece în timp ce ModSecurity este o măsură excelentă de securitate, nu este rezistent la glonț.

Creați un director la /var/www:

mkdir /var/www

Și un director pentru gazda virtuală:

mkdir /var/www/yourwebsite.com

În cele din urmă, adăugați următoarele pentru configurația NGINX localizată la /usr/local/nginx/conf/nginx.conf. Asigurați-vă că aplicați această configurație înainte de apariția ultimului }simbol.

  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;
  }
}

Pasul 3: Pornirea PHP-FPM și NGINX

Acest pas este destul de simplu - tot ce trebuie să faceți este să executați următoarele comenzi.

service php-fpm start
/usr/sbin/nginx

Felicitări! Ați configurat primul dvs. site web cu NGINX protejat de ModSecurity. Pentru mai multe lecturi despre ModSecurity, vizitați site-ul lor oficial .

Lasă un comentariu

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe