GNU/Linux >> Linux Esercitazione >  >> Debian

Come configurare un firewall con CSF su Debian 9

In questo articolo, ti mostreremo come installare e configurare il firewall CSF su un VPS Debian 9, oltre a fornire alcuni suggerimenti su come utilizzare CSF.

ConfigServer Security &Firewall (CSF) è uno strumento di gestione del firewall gratuito e avanzato basato su iptables. CSF fornisce un elevato livello di sicurezza sul tuo server ed è molto semplice, semplificando la configurazione e l'installazione su tutte le distribuzioni Linux supportate. Useremo Debian 9 che è tra le distribuzioni Linux supportate. CSF ha molte fantastiche funzionalità come scansione delle porte, SYN flood e attacchi di forza bruta per molti servizi che possono aiutarti a proteggere il tuo server. Una delle caratteristiche molto interessanti di CSF è che fornisce un'interfaccia utente Web integrata per la gestione del firewall da un browser Web. Questa integrazione dell'interfaccia utente è supportata da cPanel, DirectAdmin, oltre a lavorare in modo indipendente sul tuo server.

L'installazione di CSF include anche un altro servizio chiamato Login Failure Daemon (LFD). LFD in realtà è un processo che monitora i file di registro e invia notifiche e-mail in base alle regole di configurazione CSF. Iniziamo con l'installazione.

Fase 1:connettiti al tuo server

Prima di iniziare, devi connetterti al tuo server tramite SSH come utente root. In alternativa, puoi utilizzare un account utente con privilegi sudo se non hai accesso all'utente root. Per fare ciò, usa il seguente comando:

ssh root@IP_Address -p Port_Number

ovviamente dovrai sostituire IP_Address e Port_Number con l'indirizzo IP del tuo server effettivo e il numero di porta SSH.

Una volta effettuato l'accesso, assicurati che il tuo server sia aggiornato eseguendo i seguenti comandi:

apt update
apt upgrade

Fase 2:installa CSF/LFD

Dopo aver aggiornato correttamente il server, puoi eseguire i seguenti comandi per modificare la directory corrente in /opt, scaricare l'ultimo codice sorgente CSF e decomprimerlo nella stessa directory.

cd /opt/
wget http://download.configserver.com/csf.tgz
tar xzf csf.tgz

Prima di procedere con l'installazione, assicurati di non utilizzare un altro firewall come UFW. I due comandi seguenti cambieranno la directory in /opt/csf/ ed eseguiranno lo script di installazione.

cd /opt/csf
sh install.sh

L'installazione del firewall è completa, ma è meglio verificare se sono disponibili i moduli iptables necessari per il corretto funzionamento su CSF. Puoi farlo con il comando:

perl /usr/local/csf/bin/csftest.pl

Uscita:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

Se non sono stati segnalati errori irreversibili dai test, il firewall CSF funzionerà correttamente.

Fase 3:configurazione di base

Se si desidera configurare il firewall CSF, è necessario modificare il file di configurazione "csf.conf". In questo tutorial useremo nano come nostro editor, ma puoi usare liberamente il tuo editor preferito per modificare il file di configurazione.

nano /etc/csf/csf.conf

La prima cosa che dobbiamo controllare nei file di configurazione sono le porte aperte sul tuo server. In genere, per impostazione predefinita, le porte più comunemente utilizzate sono già aperte, ma a volte è necessario aprire una porta specifica sul server. Il seguente elenco è delle porte aperte di default da CSF:

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

# Allow incoming UDP ports
UDP_IN = "20,21,53"

# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"

Se alcuni dei servizi elencati di default non vengono utilizzati sul tuo server, la procedura migliore è chiuderli. Minore è l'accesso alle porte del tuo server, migliore diventa la sicurezza del tuo server.

CSF offre molte opzioni differenti nei file di configurazione. Ma tratteremo solo alcune delle impostazioni più comunemente utilizzate.

ICMP_IN – Questa opzione serve per controllare la disponibilità del tuo server da PING. Per impostazione predefinita, questa impostazione è impostata su 1 in modo da consentire tutte le richieste PING in entrata. Se scegli di disabilitare questa opzione, non potrai utilizzare un sistema di monitoraggio esterno.

IGNORA_ALLOW – Se abiliti questa opzione, LFD ignorerà tutti gli indirizzi IP elencati in csf.allow file. Questa opzione può essere utile se utilizzi un indirizzo IP statico a casa o in ufficio e puoi essere sicuro che questo indirizzo IP non verrà mai bloccato dal firewall del server.

SYNFLOOD , FREQUENZA_SOLARE e SYNFLOOD_BURST – Questa opzione dovrebbe essere utilizzata solo se il tuo server è soggetto a un attacco SYN flood. Tieni presente che non è consigliabile abilitare questa opzione perché rallenterà notevolmente il tuo server e alcuni visitatori potrebbero avere un problema di connessione.

LF_ALERT_TO e LF_ALERT_FROM – Qui è dove definisci gli indirizzi email che desideri utilizzare per gli avvisi.

PROVA – Per impostazione predefinita, TESTING è impostato su 1. Ciò significa che CSF abilita un processo CRON che cancella la configurazione di iptables in caso di problemi di configurazione all'avvio di CSF. Questa è una misura precauzionale che dovrebbe aiutarti a evitare di rimanere bloccato fuori dal tuo server. Una volta che sei completamente sicuro che tutte le impostazioni siano a posto, puoi impostare il valore su zero che abiliterà il servizio LFD.

Una volta definite tutte le impostazioni che preferisci, puoi salvare il file di configurazione e riavviare e abilitare i servizi CSF e LFD, che ne provocano l'avvio automatico all'avvio.

systemctl restart csf
systemctl enable csf
systemctl restart lfd
systemctl enable lfd

Fase 4:notifiche CSF/LFD

Una delle tante opzioni del CSF LFD sono le varie notifiche che possono aiutarti a monitorare gli eventi sul tuo server. In questa sezione dell'articolo, ti mostreremo come attivare o disattivare alcune di queste notifiche.

Inizieremo con gli avvisi di integrità del sistema che verificano le modifiche in determinati file di sistema. Queste notifiche aiutano a rilevare i file compromessi, ma riceverai anche email quando vengono apportate modifiche con aggiornamenti di sistema legittimi.

Puoi lasciare questi tipi di notifiche se desideri tenere traccia delle modifiche apportate al tuo sistema. Se hai deciso di non ricevere queste notifiche, puoi disabilitarle trovando il LF_INTEGRITY parametro nel file csf.conf e impostarne il valore su 0, oppure puoi semplicemente eseguire il comando seguente:

sed -i 's/LF_INTEGRITY = "3600"/LF_INTEGRITY = "0"/g' /etc/csf/csf.conf

Il secondo tipo di notifica di cui vorremmo parlare è l'avviso di utilizzo eccessivo delle risorse. Questi tipi di notifiche sono probabilmente i più comuni. LFD ha una funzione in grado di monitorare i processi in esecuzione sul tuo server e inviarti e-mail se utilizzano troppe risorse. Lo scopo di queste notifiche è tracciare i processi più intensi che possono causare problemi di caricamento sul server. Se hai deciso di non ricevere queste notifiche, puoi disabilitarle trovando il PT_USERMEM e PT_USERTIME parametro nel file csf.conf e impostarne il valore su 0 oppure puoi semplicemente eseguire i seguenti comandi:

sed -i 's/PT_USERTIME = "1800"/PT_USERTIME = "0"/g' /etc/csf/csf.conf
sed -i 's/PT_USERMEM = "512"/PT_USERMEM = "0"/g' /etc/csf/csf.conf

L'opzione Process Tracking esamina i file eseguibili sospetti o le porte di rete aperte sul server. Queste notifiche aiutano a rilevare i processi potenzialmente sfruttatori, anche se questi processi vengono visualizzati come servizi di sistema. Se hai deciso di non ricevere queste notifiche, puoi disabilitarle trovando il PT_LIMIT parametro nel file csf.conf e impostarne il valore su 0 oppure puoi semplicemente eseguire il seguente comando SSH:

sed -i 's/PT_LIMIT = "60"/PT_LIMIT = "0"/g' /etc/csf/csf.conf

L'ultimo tipo di notifiche che tratteremo in questo articolo sono gli avvisi sul blocco IP.

CSF/LFD ha il potere di bloccare gli indirizzi IP per determinati motivi. Ogni volta che il sistema blocca un indirizzo IP, verrai avvisato tramite e-mail contenente l'indirizzo IP che è stato bloccato e il motivo per cui è stato bloccato. Se vuoi gestire questi tipi di notifiche puoi aprire il tuo file csf.conf e trovare le seguenti opzioni:

LF_EMAIL_ALERT – Invia un avviso e-mail se un indirizzo IP è bloccato da uno dei [*] trigger

LF_PERMBLOCK_ALERT – Se un indirizzo IP è stato bloccato più di un paio di volte (per la configurazione, utilizzare LF_PERMBLOCK_COUNT ), questa opzione invierà un'e-mail di notifica quando l'indirizzo IP è bloccato in modo permanente.

LF_NETBLOCK_ALERT – Se una classe di rete IP è stata bloccata, riceverai una notifica e-mail.

LF_DISTFTP_ALERT – Se LF_DISTFTP viene attivato, riceverai una notifica e-mail con gli indirizzi IP che sono stati bloccati con un motivo per essere coinvolti in un attacco distribuito FTP.

LF_DISTSMTP_ALERT – Se LF_DISTSMTP viene attivato, riceverai una notifica e-mail con gli indirizzi IP che sono stati bloccati con un motivo per essere coinvolti in un attacco distribuito SMTP.

LT_EMAIL_ALERT – Se un account supera il numero di accessi giornalieri per indirizzo IP, riceverai un avviso e-mail.

CT_EMAIL_ALERT – Se un indirizzo IP è bloccato a causa del rilevamento della connettività, riceverai un avviso e-mail. Questi tipi di avvisi e-mail vengono attivati ​​da CT_LIMIT caratteristica. Il CT_LIMIT l'opzione ha lo scopo di proteggere il tuo server dagli attacchi DOS.

Se scegli di non ricevere queste notifiche, puoi disattivarle trovandole nel file csf.conf e impostandone i valori su 0, oppure puoi semplicemente eseguire i seguenti comandi:

sed -i 's/LF_EMAIL_ALERT = "1"/LF_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_PERMBLOCK_ALERT = "1"/LF_PERMBLOCK_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_NETBLOCK_ALERT = "1"/LF_NETBLOCK_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_DISTFTP_ALERT = "1"/LF_DISTFTP_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_DISTSMTP_ALERT = "1"/LF_DISTSMTP_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LT_EMAIL_ALERT = "1"/LT_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/CT_EMAIL_ALERT = "1"/CT_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf

Una volta apportate le modifiche, è necessario riavviare CSF e LFD utilizzando i seguenti comandi systemctl:

systemctl restart csf 
systemctl restart lfd

Fase 5:gestisci il liquido cerebrospinale dalla riga di comando

È possibile gestire CSF dalla riga di comando o tramite l'interfaccia utente Web integrata. In questa parte del tutorial faremo un breve elenco di comandi utili che possono aiutarti a gestire CSF dalla tua riga di comando.

Avvia, arresta e riavvia/ricarica CSF:

csf -s : Start csf
csf -f : Stop csf
csf -r : Reload/Restart csf

Consenti un IP e aggiungilo a csf.allow (whitelist un IP):

csf -a 123.45.67.89

Uscita:

Adding 123.45.67.89 to csf.allow and iptables ACCEPT...
ACCEPT all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Rimuovere ed eliminare un IP da csf.allow:

csf -ar 123.45.67.89

Uscita:

Removing rule...
ACCEPT all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Nega un IP e aggiungi a csf.deny (Blacklist un IP):

csf -d 123.45.67.89

Uscita:

Adding 123.45.67.89 to csf.deny and iptables DROP...
DROP all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Rimuovere ed eliminare un IP da csf.deny (Unblock IP address):

csf -dr 123.45.67.89

Uscita:

Removing rule...
DROP all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Rimuovi e sblocca tutti gli indirizzi IP da csf.deny:

csf -df

Uscita:

DROP all opt -- in !lo out * 123.45.67.88 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.88 
DROP all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89 
csf: all entries removed from csf.deny

Cerca una corrispondenza di pattern in iptables, ad esempio:IP, CIDR, Numero porta:

csf -g 123.45.67.89

Uscita:

Table Chain num pkts bytes target prot opt in out source destination
filter DENYIN 1 0 0 DROP all -- !lo * 123.45.67.89 0.0.0.0/0
filter DENYOUT 1 0 0 LOGDROPOUT all -- * !lo 0.0.0.0/0 123.45.67.89

Visualizza l'elenco corrente di voci IP consentite e negate temporanee con il relativo TTL e il commento:

csf -t

Verifica la presenza di aggiornamenti a CSS e aggiorna se disponibile:

csf -u

Disattiva completamente CSF e LFD:

csf -x

Abilita CSF e LFD se precedentemente disabilitato:

csf -e

Mostra la versione CSF:

csf -v

Uscita:

csf: v13.04 (generic)

Per ulteriori opzioni puoi controllare il seguente comando:

csf -h

Passaggio 6:abilita l'interfaccia utente Web di CSF Firewall

In questo passaggio, ti mostreremo come abilitare l'interfaccia utente Web CSF. Questo passaggio è facoltativo e va utilizzato solo se non utilizzi un pannello di controllo che supporti l'interfaccia utente di CSF (es. WHM/cPanel, DirectAdmin, Webmin, ecc.)

L'interfaccia utente di CSF richiede l'installazione di diversi moduli Perl sul server. Puoi soddisfare questi requisiti installando i moduli Perl con il seguente comando:

apt install libio-socket-ssl-perl libcrypt-ssleay-perl libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl

Il prossimo passo è abilitare l'interfaccia utente Web CSF. Puoi abilitare l'interfaccia web di CSF modificando il file csf.conf:

nano /etc/csf/csf.conf

e aggiorna i seguenti valori:

# 1 to enable, 0 to disable web ui 
UI = "1"

# Set port for web UI. The default port is 6666, but
# I change this to 7171 for easy access. The default port creates some issue
# with the chrome and firefox browsers (in my case)

UI_PORT = "7171"

# Leave blank to bind to all IP addresses on the server 
UI_IP = ""

# Set username for authetnication 
UI_USER = "admin"

# Set a strong password for authentication 
UI_PASS = "Str0n9_PasSw0rD"

Sentiti libero di cambiare i valori del nostro esempio con valori appropriati. Dopo aver apportato e salvato le modifiche, puoi inserire nella whitelist il tuo indirizzo IP pubblico modificando il file di configurazione ui.allow.

Sostituisci "Your_Public_IP_Address ‘ con il tuo attuale indirizzo IP ed esegui il comando:

sudo echo "Your_Public_IP_Address" >> /etc/csf/ui/ui.allow

Per applicare le modifiche apportate, è necessario riavviare il servizio LFD. Riavvia il demone LFD sul tuo server usando il seguente comando:

sudo service lfd restart

Ora dovresti essere in grado di accedere all'interfaccia utente di CSF sul tuo browser con l'indirizzo IP del tuo server e la porta specifica che hai utilizzato nel file csf.conf. Nel nostro esempio, abbiamo utilizzato la porta 7171.

https://Your_Public_IP_Address:7171

Dopo aver eseguito correttamente l'accesso, dovresti essere in grado di visualizzare l'interfaccia utente di CSF.

Consenti rapido, Nega rapido o Sblocco rapido possono essere opzioni molto utili dall'interfaccia utente di CSF.

In questo articolo, ti abbiamo mostrato come installare e configurare un Firewall con CSF su Debian 9, oltre a ripassare brevemente usando CSF. Ora puoi utilizzare la conoscenza di questa guida e iniziare a creare le tue regole firewall CSF che ti aiuteranno a proteggere il tuo server.

Ovviamente, se sei uno dei nostri clienti di hosting Debian, non devi configurare il firewall con CSF sul tuo server:chiedi semplicemente ai nostri amministratori, siediti e rilassati. I nostri amministratori configureranno immediatamente le regole del firewall sul tuo server.

PS. Se ti è piaciuto questo post su come configurare un Firewall con CSF su Debian 9, condividilo con i tuoi amici sui social network usando i pulsanti di condivisione qui sotto, o semplicemente lascia un commento nella sezione commenti. Grazie.


Debian
  1. Come configurare un firewall con UFW su Debian 10

  2. Come configurare un firewall con UFW su Debian 9

  3. Come installare Config Server Firewall (CSF) su Debian 11

  4. Come configurare un firewall con UFW su Debian 9

  5. Come installare e configurare CSF Firewall su Debian 11

Come installare Config Server Firewall (CSF) su Debian 11

Come configurare LAMP con Debian 11

Come configurare bind con Debian 11

Come configurare Samba Server con Debian 11

Come installare Nginx con PHP-FPM su Debian 11

Come configurare Firewall CSF su Debian 10