Hapi 1: Instalimi i parakushteve
Hapi 2: Konfigurimi i ModSecurity/NGINX
Hapi 3: Nisja e PHP-FPM dhe NGINX
Në këtë artikull, unë do të shpjegoj se si të ndërtoni një pirg LEMP të mbrojtur nga ModSecurity. ModSecurity është një mur zjarri i aplikacionit në ueb me burim të hapur që është i dobishëm për t'u mbrojtur nga injektimet, sulmet PHP dhe më shumë. Nëse dëshironi të konfiguroni NGINX me ModSecurity, vazhdoni të lexoni.
Të gjitha hapat në këtë artikull kërkojnë qasje rrënjësore.
Hapi 1: Instalimi i parakushteve
Nëse nuk po ekzekutoni tashmë si përdorues rrënjë, përshkallëzoni veten:
/bin/su
Ne kemi nevojë për një përpilues, kështu që ekzekutoni sa më poshtë për t'u siguruar:
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'
Për të instaluar NGINX, së pari duhet të marrim paketën. Shkarkoni paketën:
cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz
Ne gjithashtu do të kërkojmë paketën PHP për pirgun tonë.
wget http://us2.php.net/distributions/php-5.6.16.tar.bz2
Meqenëse po instalojmë ModSecurity, do të kapim burimin dhe do ta shkarkojmë atë:
wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
Tani, hiqni/zhzip skedarët.
tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz
Më pas, ne do të instalojmë ModSecurity.
cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install
Tani që kemi marrë të gjitha parakushtet, le të instalojmë NGINX. Grupi i mëposhtëm i komandave janë për instalimin e NGINX dhe 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
Tani, le të instalojmë serverin MySQL.
yum install -y mysql-server
service mysqld start
mysql_secure_installation
Për mysql_secure_installationkomandën:
- Shtypni enter në hapin e parë të magjistarit të instalimit.
- Shkruani Y kur ju kërkohet nëse duhet vendosur një fjalëkalim i ri rrënjë MySQL.
- Shkruani një fjalëkalim të ri, konfirmoni duke e shtypur përsëri.
- Shtypni Y për të hequr përdoruesit anonimë, mos lejoni qasjen në distancë të rrënjës në MySQL duke shtypur përsëri Y.
- Shtypni Y për herë të fundit për të hequr bazën e të dhënave/përdoruesit të testit.
- Së fundi, shtypni Y për të ruajtur ndryshimet tuaja.
Një gjë e fundit për t'u instaluar, dhe kjo është PHP. Në këtë artikull, ne do të instalojmë PHP nga burimi.
Futni drejtorinë burimore për PHP.
cd /usr/src/php-5.6.16
Tani, konfiguroni PHP. Argumentet e mëposhtme në ./configurekomandë janë atje, kështu që ju mund të ekzekutoni aplikacione si WordPress.
./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
make
make install
Instaloni PHP-FPM për NGINX:
yum install -y php-fpm
Ne duhet të instalojmë PHP-FPM mbi vetë PHP sepse vetë NGINX nuk integrohet drejtpërdrejt me PHP. Në vend të kësaj, NGINX kalon përpunimin PHP tek PHP-FPM për të ekzekutuar skriptet tona.
Punë e mirë! Ju keni instaluar parakushtet.
Hapi 2: Konfigurimi i ModSecurity/NGINX
Le të fillojmë duke ndërtuar një grup rregullash ModSecurity. ModSecurity nuk bën asgjë në vetvete derisa ta konfiguroni atë.
Merrni grupin e rregullave OWASP nga faqja e tyre e internetit:
cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
tar xvf master
Pasi të keni shkarkuar grupin e rregullave, ne do të kombinojmë konfigurimin e paracaktuar me rregullat 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ë teori, kjo duhet të mbrojë kundër shumicës së shfrytëzimeve të uebit. Sidoqoftë, shtojcat/kodi që instaloni duhet gjithashtu të auditohen, sepse ndërsa ModSecurity është një masë e shkëlqyer sigurie, nuk është i papërshkueshëm nga plumbat.
Krijo një drejtori në /var/www:
mkdir /var/www
Dhe një drejtori për hostin tuaj virtual:
mkdir /var/www/yourwebsite.com
Së fundi, bashkëngjitni sa vijon në konfigurimin tuaj NGINX që ndodhet në /usr/local/nginx/conf/nginx.conf. Sigurohuni që ta shtoni këtë konfigurim përpara shfaqjes së }simbolit të fundit .
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;
}
}
Hapi 3: Nisja e PHP-FPM dhe NGINX
Ky hap është mjaft i drejtpërdrejtë - gjithçka që duhet të bëni është të ekzekutoni komandat e mëposhtme.
service php-fpm start
/usr/sbin/nginx
urime! Ju keni konfiguruar uebsajtin tuaj të parë me NGINX të mbrojtur nga ModSecurity. Për lexim të mëtejshëm mbi ModSecurity, vizitoni faqen e tyre zyrtare .