Korak 1: Instaliranje preduvjeta
Korak 2: Konfiguriranje ModSecurity/NGINX
Korak 3: Pokretanje PHP-FPM-a i NGINX-a
U ovom članku objasnit ću kako izgraditi LEMP stog zaštićen ModSecurity. ModSecurity je vatrozid web aplikacije otvorenog koda koji je koristan za zaštitu od ubrizgavanja, PHP napada i još mnogo toga. Ako želite postaviti NGINX s ModSecurity, nastavite čitati.
Svi koraci u ovom članku zahtijevaju root pristup.
Korak 1: Instaliranje preduvjeta
Ako već ne radite kao root korisnik, eskalirajte sami:
/bin/su
Potreban nam je prevodilac, pa izvedite sljedeće da biste bili sigurni:
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'
Da bismo instalirali NGINX, prvo moramo nabaviti paket. Preuzmite paket:
cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz
Također će nam trebati PHP paket za naš stog.
wget http://us2.php.net/distributions/php-5.6.16.tar.bz2
Budući da instaliramo ModSecurity, zgrabit ćemo izvor i preuzeti ga:
wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
Sada raspakirajte/raspakirajte datoteke.
tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz
Zatim ćemo instalirati ModSecurity.
cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install
Sada kada smo dobili sve preduvjete, instalirajmo NGINX. Sljedeći skup naredbi je za instalaciju NGINX-a 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
Sada, instalirajmo MySQL poslužitelj.
yum install -y mysql-server
service mysqld start
mysql_secure_installation
Za mysql_secure_installationnaredbu:
- Pritisnite enter na prvom koraku čarobnjaka za instalaciju.
- Upišite Y kada se od vas zatraži treba li postaviti novu lozinku za MySQL root.
- Unesite novu lozinku, potvrdite je ponovnim upisivanjem.
- Pritisnite Y za uklanjanje anonimnih korisnika, onemogućite daljinski root pristup MySQL ponovnim pritiskom na Y.
- Pritisnite Y zadnji put za uklanjanje testne baze podataka/korisnika.
- Na kraju, pritisnite Y da biste spremili promjene.
Posljednja stvar koju treba instalirati, a to je PHP. U ovom članku ćemo instalirati PHP iz izvora.
Unesite izvorni direktorij za PHP.
cd /usr/src/php-5.6.16
Sada konfigurirajte PHP. Sljedeći argumenti u ./configurenaredbi postoje tako da možete pokrenuti aplikacije poput WordPressa.
./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
make
make install
Instalirajte PHP-FPM za NGINX:
yum install -y php-fpm
Moramo instalirati PHP-FPM na sam PHP jer se sam NGINX ne integrira izravno s PHP-om. Umjesto toga, NGINX prosljeđuje PHP obradu na PHP-FPM kako bi izvršio naše skripte.
Dobar posao! Instalirali ste preduvjete.
Korak 2: Konfiguriranje ModSecurity/NGINX
Počnimo s izgradnjom skupa pravila ModSecurity. ModSecurity ne radi ništa sam od sebe dok ga ne konfigurirate.
Uzmite skup pravila OWASP s njihove web stranice:
cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
tar xvf master
Nakon što preuzmete skup pravila, kombinirat ćemo zadanu konfiguraciju s osnovnim pravilima.
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
U teoriji, ovo bi trebalo zaštititi od većine web eksploatacija. Međutim, treba provjeriti i dodatke/kod koji instalirate, jer iako je ModSecurity izvrsna sigurnosna mjera, nije otporan na metke.
Napravite imenik na /var/www:
mkdir /var/www
I direktorij za vaš virtualni host:
mkdir /var/www/yourwebsite.com
Konačno, dodajte sljedeće u svoju NGINX konfiguraciju koja se nalazi na /usr/local/nginx/conf/nginx.conf. Provjerite jeste li dodali ovu konfiguraciju prije pojave posljednjeg }simbola.
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;
}
}
Korak 3: Pokretanje PHP-FPM-a i NGINX-a
Ovaj korak je prilično jednostavan - sve što trebate učiniti je izvršiti sljedeće naredbe.
service php-fpm start
/usr/sbin/nginx
Čestitamo! Postavili ste svoju prvu web stranicu s NGINX-om zaštićenom ModSecurity. Za daljnje čitanje o ModSecurity posjetite njihovu službenu stranicu .