GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come distribuire Modsecurity con Nginx su Ubuntu 20.04 LTS

ModSecurity è un firewall per applicazioni Web gratuito e open source supportato da diversi server Web come Apache, IIS e Nginx. Viene distribuito come livello di sicurezza esterno per proteggere i server Web.

In questo tutorial imparerai come installare il firewall ModSecurity con Nginx preinstallato. Abbiamo utilizzato il server Ubuntu 20.04 per dimostrare il processo.

Prerequisiti

Server Ubuntu 20.04 LTS

Nginx installato sul server Ubuntu

Guida all'installazione

Se non hai Nginx installato sul tuo server, segui questa guida per soddisfare i requisiti di installazione di Modsecurity:

https://linuxways.net/ubuntu/how-to-install-nginx-on-ubuntu-20-04-lts-using-source-code/

Ora che hai installato Nginx, iniziamo con l'installazione di ModSecurity.

Passaggio 1:installa libmodsecurity3

Prima di tutto, installa git sulla tua macchina in modo da poter clonare il repository git di ModSecurity. Possiamo farlo eseguendo questo comando:

sudo apt install git -y

Ora che git è installato, clona il repository eseguendo questo comando:

git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/

Fase 2:vai alla directory Modsecurity

Ora che hai clonato il repository git di modsecurity, vai alla directory modsecurity seguendo il percorso seguente:

cd /usr/local/src/ModSecurity/

Fase 3:installa le dipendenze di libmodsecurity3

Ora che siamo all'interno della directory Modsecurity, installeremo le dipendenze di libmodsecurity3 in questo passaggio. Esegui questo comando:

sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y

Fase 4:installa i moduli Git

Ora, installa i sottomoduli git con l'aiuto di questo comando:

git submodule init

Successivamente, aggiorneremo i sottomoduli:

git submodule update

Fase 5:crea l'ambiente modsecurity

È tempo di costruire l'ambiente modsecurity. Per farlo, esegui il seguente comando:

./build.sh

Ora configura usando questo comando:

./configure

Dopo questo, riceverai questo errore:

Va bene ignorarlo e andare avanti.

Fase 6:compila il codice sorgente di modsecurity

Ora compileremo l'ambiente per libmodsecurity3 con questo comando:

make

Se vuoi aumentare la velocità di compilazione, puoi specificare -j . Ho 4 CPU e le userò tutte e 4 per compilare come mostrato di seguito:

make -j 4

Successivamente, eseguiremo il comando di installazione:

sudo make install

L'installazione viene eseguita in /usr/local/modsecurity/ .

Step 7: Install modsecurity-nginx connector

In questo passaggio, installeremo il connettore Modsecurity-nginx. È il punto di connessione e comunicazione tra Nginx e ModSecurity.

Prima di tutto, dobbiamo clonare il repository del connettore. Fallo eseguendo questo comando:

sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
/usr/local/src/ModSecurity-nginx/

Fase 8:installa le dipendenze modsecurity-nginx

Per prima cosa, vai alla directory di origine di Nginx in questo modo:

cd /usr/local/src/nginx/nginx-1.21.1

Assicurati di sostituire la versione di Nginx nel comando con la versione corrente di Nginx, altrimenti riceverai un errore.

Per installare le dipendenze necessarie, esegui questo comando:

sudo apt build-dep nginx && sudo apt install uuid-dev -y

Successivamente, compileremo il modulo connettore Modsecurity-nginx con il flag –with-compat eseguendo questo comando:

sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx

Ora esegui questo comando per creare i moduli dinamici:

sudo make modules

Ora, copia il modulo dinamico che hai appena creato in objs/ngx_http_modsecurity_module.so in /usr/share/nginx/modules con l'aiuto di questo comando:

sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/

Fase 9:abilita Modsecurity nel file di configurazione di Nginx

Per abilitare Modsecurity in Nginx, devi prima specificare il modulo di caricamento e il percorso del tuo modulo modsecurity nella configurazione.

Apri il file di configurazione di Nginx con l'editor nano in questo modo:

sudo nano /etc/nginx/nginx.conf

Nel file, aggiungi questa riga in alto:

load_module modules/ngx_http_modsecurity_module.so;

Nella sezione HTTP {}, aggiungi le seguenti righe di codice:

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;

Fase 10:Configura directory e file per modsecurity

Crea una directory con il nome modsec. Il percorso della directory è indicato nel comando:

sudo mkdir /etc/nginx/modsec/

Avrai bisogno di questa directory in futuro per archiviare i file di configurazione e le regole.

Ora, copia il file di configurazione Modsecurity di esempio dalla directory git clonata con questo comando:

sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Ora apri il file di configurazione di modsecurity:

sudo nano /etc/nginx/modsec/modsecurity.conf

Individua la direttiva SecRuleEngine nel file alla riga 7 e modificala in DetectionOnly in questo modo:

secruleSolo rilevamento motore

Per abilitare Modsecurity, trova modifica la seguente direttiva su On in questo modo:

secRuleEngine on

Ora individua la seguente direttiva alla riga 224:

secAuditLogParts ABIJDEFHZ

Cambialo in:

secAuditLogParts ABCDEFHJKZ

Ora crea il file modsec-config.conf. Qui aggiungerai modsecurity.conf e altre regole per modsecurity:

sudo nano /etc/nginx/modsec/modsec-config.conf

All'interno del file che hai appena creato, aggiungi questa riga:

Include /etc/nginx/modsec/modsecurity.conf

Salva il file ed esci.

Fase 11:copia il file unicode.mapping

Infine, copia il file unicode.mapping di Modsecurity in questo modo:

sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/

Fase 12:controlla la configurazione di Nginx

Prima di riavviare Nginx, controlla se la configurazione è corretta eseguendo questo comando:

sudo nginx -t

Se ottieni il seguente output, sei a posto:

Fase 13:ricarica Nginx

Ora riavvia Nginx con questo comando:

sudo systemctl restart nginx

In questa guida abbiamo visto come installare Modsecurity su un server Ubuntu su cui è già preinstallato Nginx. Abbiamo anche visto come configurare ModSecurity e Nginx per connetterli con l'aiuto di alcuni comandi facili da seguire.


Ubuntu
  1. Come installare Seafile con Nginx su Ubuntu 20.04 LTS

  2. Come installare MediaWiki con Nginx su Ubuntu 16.04

  3. Come installare Seafile con Nginx su Ubuntu 18.04 LTS

  4. Come installare Magento con Nginx su Ubuntu 15.10

  5. Distribuisci Modsecurity con Nginx su Ubuntu 20.04 LTS

Come installare Nginx con ModSecurity su Ubuntu 15.04

Come installare phpMyAdmin con Nginx (LEMP) su Ubuntu 18.04 LTS

Come installare Nginx con il modulo Ngx_Pagespeed su Ubuntu 16.04 LTS

Come installare Joomla con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 20.04 LTS