ConfigServer Firewall (CSF) è un firewall per server Linux e sistemi BSD per controllare il traffico in entrata e in uscita. Prima di entrare nei dettagli specifici di CSF, cerchiamo di capire cos'è un firewall e come funziona.
Un firewall funge da scudo che protegge il sistema da un attacco esterno. Alcuni di questi sono firewall con stato, gateway a livello di circuito, firewall con filtro UDP/ICMP o filtri a livello di applicazione.
Il firewall viene fornito con una serie di regole per filtrare il traffico in entrata e in uscita. E a seconda del tipo di firewall che stai utilizzando, decide se un IP può accedere alla rete o meno. L'elenco delle regole è definito per un particolare sistema e il firewall filtra il traffico secondo le regole.
ConfigServer Firewall (CSF) è uno dei firewall open source più utilizzati nei server Linux. CSF viene fornito con un elenco di funzionalità che possono essere utilizzate per configurare le regole. Quindi è molto potente e facile da usare allo stesso tempo.
Prerequisiti
Per installare e configurare CSF su Debian 11, devi avere:
- Un server che esegue Debian 11 e il tuo sistema dovrebbero essere connessi a Internet.
- Accesso root al server.
Aggiornamento del tuo sistema
Prima di installare ConfigServer Firewall, è necessario aggiornare il sistema. Esegui il comando seguente per aggiornare il tuo sistema.
sudo apt update
Una volta completato l'aggiornamento, esegui i seguenti comandi per installare le dipendenze richieste.
sudo apt install libio-socket-inet6-perl libsocket6-perl -y
sudo apt install sendmail dnsutils unzip libio-socket-ssl-perl -y
sudo apt install libcrypt-ssleay-perl git perl iptables libnet-libidn-perl -y
Se nel tuo sistema è installata una versione precedente di CSF, esegui prima il comando seguente per disinstallarlo. Poiché Debian 11 utilizza una nuova versione di Perl, l'installazione CSF può causare conflitti con l'installazione CSF esistente.
cd /etc/csf && sh uninstall.sh
Se stai utilizzando un altro script di configurazione del firewall come UFW, dovresti disattivarli prima di continuare.
sudo ufw disable
Installazione di CSF Firewall su Debian 11
Ora che hai installato tutti i prerequisiti necessari, scarichiamo e installiamo il firewall CSF.
Il repository Debian 11 non contiene pacchetti CSF. Quindi, devi scaricare l'ultima versione del firewall ConfigServer dal loro sito ufficiale.
Per farlo, emetti il seguente comando.
wget http://download.configserver.com/csf.tgz
Ora esegui il comando seguente per estrarre il file scaricato.
sudo tar -xvzf csf.tgz
Dopo aver estratto il file, installa CSF utilizzando il comando seguente.
cd csf && sh install.sh
Una volta completata l'installazione, il firewall dovrebbe essere ora installato. Per avviare il firewall CSF, eseguire il comando seguente.
sudo systemctl start csf
Esegui il comando seguente per assicurarti che sia tutto a posto.
perl /usr/local/csf/bin/csftest.pl
Otterrai un output come mostrato di seguito. Questo output conferma che CSF è attivo e funzionante.
Per abilitare l'avvio del firewall CSF all'avvio, eseguire il comando seguente.
sudo systemctl enable csf
Puoi controllare lo stato di CSF usando il comando seguente.
sudo systemctl status csf
Questo output conferma che CSF è attivo e funzionante. Ora configuriamo questo firewall.
Esempio di output:
Configurazione di CSF Firewall su Debian 11
Una volta installato il firewall CSF, sono attive le regole predefinite che vengono fornite con un file di configurazione /etc/csf/csf.conf
Dovresti rivedere questo file di configurazione per assicurarti che sia configurato secondo le tue esigenze. In questo file puoi vedere tutte le regole predefinite attive dalla prospettiva del tuo sistema. Diamo un'occhiata più da vicino ad alcuni di loro.
sudo nano /etc/csf/csf.conf
Minore è il numero di porte aperte, più sicuro è il sistema. Ma dovresti sempre avere alcune porte comuni aperte. Puoi vedere tutte le porte aperte per impostazione predefinita, nel file csf.conf come mostrato di seguito.
Come puoi vedere nel file di configurazione, se vuoi consentire/bloccare qualsiasi porta, dovresti rispettivamente aggiungere/rimuovere il numero della porta nell'elenco.
Ad esempio, se desideri bloccare la porta 80, dovrebbe essere rimossa dall'elenco, come mostrato di seguito.
Se stai usando IPv6, dovresti anche aggiornarlo nel file di configurazione poiché la maggior parte degli attacchi al giorno d'oggi vengono eseguiti tramite il protocollo IPv6. Dovresti configurare TCP6_IN, TCP6_OUT in modo simile a quello che abbiamo configurato per le porte IPv4 sopra.
Esempio di output:
Ora configuriamo le impostazioni CONNLIMIT. CONNLIMIT è una funzionalità di sicurezza in CSF che consente di limitare il numero di connessioni simultanee che una connessione remota può avere su una porta specifica. Questo aiuta a mitigare il rischio di attacchi DoS/DDoS.
Ad esempio, se desideri limitare qualsiasi IP con non più di 3 connessioni simultanee, devi aggiornarlo come mostrato di seguito. Questa impostazione consentirebbe solo 3 connessioni simultanee sulla porta 22 e 3 connessioni simultanee sulla porta 443.
Quindi, configuriamo le impostazioni di PORTFLOOD. Questa opzione ci consente di configurare il numero massimo di richieste di connessione consentite su una porta entro un determinato intervallo di tempo.
Ad esempio, se si desidera bloccare qualsiasi IP se vengono stabilite più di 3 connessioni sulla porta 443 utilizzando il protocollo TCP entro 60 secondi, è necessario aggiornarlo come mostrato di seguito. Il blocco verrà automaticamente rimosso una volta trascorsi i 60 secondi dall'ultima connessione.
La caratteristica più basilare di qualsiasi firewall è bloccare e consentire gli indirizzi IP. Puoi aggiungere l'indirizzo IP che desideri bloccare aggiungendolo manualmente nel file csf.deny oppure puoi aggiungere un intero intervallo di IP nel file csf.deny.
Ad esempio, puoi bloccare tutto l'intervallo IP 192.168.1.0/24.
Oppure
Puoi bloccare un singolo IP di 192.168.2.0 aggiungendolo nel file csf.deny come mostrato di seguito.
Apri il file csf.deny con il seguente comando.
sudo nano /etc/csf/csf.deny
Aggiungi le seguenti righe alla fine del file. Una riga alla volta.
192.168.2.0
192.168.1.0/24
Esempio di output:
Al termine, salva e chiudi il file premendo CTRL+X , S e Invio .
A differenza del file csf.deny, il file csf.allow viene utilizzato per escludere un IP o un intervallo di IP da tutti i filtri. Tieni presente che anche se hai già aggiunto un IP al file csf.deny, l'indirizzo IP bloccato può comunque accedere al tuo server aggiungendolo nel file csf.allow.
sudo nano /etc/csf/csf.allow
CSF offre un'ampia varietà di opzioni per configurare il proprio firewall, che va oltre lo scopo di questo tutorial. Puoi consultare la documentazione di ConfigServer sulle impostazioni e su come funzionano.
Una volta terminato l'aggiornamento di tutte le impostazioni richieste, salva e chiudi il file csf.conf premendo CTRL+X , S e Invio .
CSF offre anche la funzione di ignorare un indirizzo IP da qualsiasi filtro. Diversamente dall'autorizzazione di un indirizzo IP nel file csf.allow, non puoi ignorare un indirizzo IP se era elencato nel file csf.deny.
sudo nano /etc/csf/csf.ignore
Ora che hai configurato tutte le impostazioni nel file csf.conf, è il momento di aggiornare il set di regole per applicare le modifiche.
Per farlo, esegui il seguente comando.
sudo csf -r
Una volta completata l'esecuzione del comando precedente, sarai in grado di visualizzare un messaggio come mostrato nella schermata seguente. Se non vengono visualizzati messaggi di errore, congratulazioni! La configurazione del firewall del tuo server è ora aggiornata e pronta per l'uso.
Conclusione
In questo tutorial, hai imparato come installare ConfigServer Security &Firewall (CSF) su un server Debian 11. Hai anche imparato a creare regole firewall, aggiungendo IP agli elenchi consentiti e bloccati utilizzando i file di configurazione CSF.
In caso di problemi, puoi sempre fare riferimento alla documentazione di ConfigServer Firewall per ulteriori informazioni.