Trinn 1: Installere forutsetningene
Trinn 2: Konfigurere ModSecurity/NGINX
Trinn 3: Start av PHP-FPM og NGINX
I denne artikkelen vil jeg forklare hvordan du bygger en LEMP-stack beskyttet av ModSecurity. ModSecurity er en åpen kildekode-brannmur for nettapplikasjoner som er nyttig for å beskytte mot injeksjoner, PHP-angrep og mer. Hvis du vil sette opp NGINX med ModSecurity, fortsett å lese.
Alle trinn i denne artikkelen krever root-tilgang.
Trinn 1: Installere forutsetningene
Hvis du ikke allerede kjører som root-bruker, kan du eskalere deg selv:
/bin/su
Vi trenger en kompilator, så kjør følgende for å være sikker:
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'
For å installere NGINX, må vi først få tak i pakken. Last ned pakken:
cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz
Vi vil også kreve PHP-pakken for stabelen vår.
wget http://us2.php.net/distributions/php-5.6.16.tar.bz2
Siden vi installerer ModSecurity, henter vi kilden og laster den ned:
wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
Nå, løs/pak ut filene.
tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz
Deretter installerer vi ModSecurity.
cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install
Nå som vi har fått alle forutsetningene, la oss installere NGINX. Følgende sett med kommandoer er for installasjon av NGINX og 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
La oss nå installere MySQL-serveren.
yum install -y mysql-server
service mysqld start
mysql_secure_installation
For mysql_secure_installationkommandoen:
- Trykk enter på det første trinnet i installasjonsveiviseren.
- Skriv inn Y når du blir bedt om et nytt MySQL root-passord skal angis.
- Skriv inn et nytt passord, bekreft ved å skrive det på nytt.
- Trykk Y for å fjerne anonyme brukere, ikke tillat ekstern rottilgang til MySQL ved å trykke Y igjen.
- Trykk Y en siste gang for å fjerne testdatabasen/brukeren.
- Til slutt trykker du på Y for å lagre endringene.
En siste ting å installere, og det er PHP. I denne artikkelen skal vi installere PHP fra kilden.
Skriv inn kildekatalogen for PHP.
cd /usr/src/php-5.6.16
Nå, konfigurer PHP. Følgende argumenter i ./configurekommandoen er der slik at du kan kjøre applikasjoner som WordPress.
./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
make
make install
Installer PHP-FPM for NGINX:
yum install -y php-fpm
Vi må installere PHP-FPM på toppen av selve PHP fordi NGINX selv ikke integreres direkte med PHP. I stedet sender NGINX PHP-behandling over til PHP-FPM for å utføre skriptene våre.
Godt jobbet! Du har installert forutsetningene.
Trinn 2: Konfigurere ModSecurity/NGINX
La oss starte med å bygge et ModSecurity-regelsett. ModSecurity gjør ingenting av seg selv før du konfigurerer det.
Ta tak i OWASP-regelsettet fra nettstedet deres:
cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
tar xvf master
Etter at du har lastet ned regelsettet, kombinerer vi standardkonfigurasjonen med basisreglene.
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
I teorien skal dette beskytte mot de fleste nettutnyttelser. Men pluginene/koden du installerer bør også revideres, for selv om ModSecurity er et utmerket sikkerhetstiltak, er det ikke skuddsikkert.
Opprett en katalog på /var/www:
mkdir /var/www
Og en katalog for den virtuelle verten din:
mkdir /var/www/yourwebsite.com
Til slutt, legg til følgende til NGINX-konfigurasjonen som ligger på /usr/local/nginx/conf/nginx.conf. Pass på at du legger til denne konfigurasjonen før forekomsten av det siste }symbolet.
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;
}
}
Trinn 3: Start av PHP-FPM og NGINX
Dette trinnet er ganske enkelt - alt du trenger å gjøre er å utføre følgende kommandoer.
service php-fpm start
/usr/sbin/nginx
Gratulerer! Du har satt opp ditt første nettsted med NGINX beskyttet av ModSecurity. For ytterligere lesing om ModSecurity, besøk deres offisielle side .