Pas 1: instal·lació dels requisits previs
Pas 2: Configuració de ModSecurity/NGINX
Pas 3: inici de PHP-FPM i NGINX
En aquest article, explicaré com crear una pila LEMP protegida per ModSecurity. ModSecurity és un tallafoc d'aplicacions web de codi obert que és útil per protegir contra injectes, atacs PHP i molt més. Si voleu configurar NGINX amb ModSecurity, continueu llegint.
Tots els passos d'aquest article requereixen accés root.
Pas 1: instal·lació dels requisits previs
Si encara no esteu executant com a usuari root, escala:
/bin/su
Necessitem un compilador, així que executeu el següent per assegurar-vos:
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'
Per instal·lar NGINX, primer hem d'obtenir el paquet. Descarrega el paquet:
cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz
També requerirem el paquet PHP per a la nostra pila.
wget http://us2.php.net/distributions/php-5.6.16.tar.bz2
Com que estem instal·lant ModSecurity, agafarem la font i la baixarem:
wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
Ara, descomprimiu/descomprimiu els fitxers.
tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz
A continuació, instal·larem ModSecurity.
cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install
Ara que hem obtingut tots els requisits previs, instal·lem NGINX. El següent conjunt d'ordres és per a la instal·lació de 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
Ara, instal·lem el servidor MySQL.
yum install -y mysql-server
service mysqld start
mysql_secure_installation
Per a l' mysql_secure_installationordre:
- Premeu Intro al primer pas de l'assistent d'instal·lació.
- Escriviu Y quan se us demani si s'ha d'establir una nova contrasenya d'arrel de MySQL.
- Escriviu una contrasenya nova, confirmeu-la escrivint-la de nou.
- Premeu Y per eliminar usuaris anònims, no permeteu l'accés root remot a MySQL prement Y de nou.
- Premeu Y una darrera vegada per eliminar la base de dades/usuari de prova.
- Finalment, premeu Y per desar els canvis.
Una darrera cosa a instal·lar, i això és PHP. En aquest article, instal·larem PHP des de la font.
Introduïu el directori font de PHP.
cd /usr/src/php-5.6.16
Ara, configureu PHP. Els arguments següents de l' ./configureordre hi són perquè pugueu executar aplicacions com WordPress.
./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
make
make install
Instal·leu PHP-FPM per a NGINX:
yum install -y php-fpm
Hem d'instal·lar PHP-FPM a sobre del mateix PHP perquè el mateix NGINX no s'integra directament amb PHP. En canvi, NGINX passa el processament de PHP a PHP-FPM per executar els nostres scripts.
Bona feina! Heu instal·lat els requisits previs.
Pas 2: Configuració de ModSecurity/NGINX
Comencem per crear un conjunt de regles ModSecurity. ModSecurity no fa res per si mateix fins que el configureu.
Agafeu el conjunt de regles OWASP del seu lloc web:
cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
tar xvf master
Un cop hàgiu baixat el conjunt de regles, combinarem la configuració predeterminada amb les regles base.
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
En teoria, això hauria de protegir contra la majoria d'explotacions web. Tanmateix, els connectors/codi que instal·leu també s'han d'auditar, perquè si bé ModSecurity és una mesura de seguretat excel·lent, no és a prova de bales.
Creeu un directori a /var/www:
mkdir /var/www
I un directori per al vostre host virtual:
mkdir /var/www/yourwebsite.com
Finalment, afegiu el següent a la vostra configuració NGINX ubicada a /usr/local/nginx/conf/nginx.conf. Assegureu-vos d'afegir aquesta configuració abans que aparegui l'últim }símbol.
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;
}
}
Pas 3: inici de PHP-FPM i NGINX
Aquest pas és bastant senzill: tot el que heu de fer és executar les ordres següents.
service php-fpm start
/usr/sbin/nginx
Felicitats! Heu configurat el vostre primer lloc web amb NGINX protegit per ModSecurity. Per a més informació sobre ModSecurity, visiteu el seu lloc oficial .