X

Installazione CSF Firewall su CentOS

La guida seguente è applicabile a chi acquista un VPS SSD o un Server Dedicato non gestito su Xlogic ed è dedicata ai sistemi che eseguono CentOS 6, CentOS 7 e CentOS 8.

ConfigServer Security & Firewall è un popolare firewall SPI (Stateful Packet Inspection) open source, rilevatore di accesso/intrusione e sicurezza, compatibile con la maggior parte dei server Linux.

CSF può essere configurato per bloccare/limitare le porte sul server. CSF include il Login Failure Daemon (LFD), che analizzerà i file di registro e monitorerà i tentativi di accesso non riusciti, come i tentativi di accesso per gli account FTP e di posta elettronica e bloccherà l’IP in base alle regole che hai impostato. CSF offre anche la limitazione della connessione, elenchi di blocchi in tempo reale e monitoraggio della scansione delle porte e molto altro ancora.

CSF può essere facilmente gestito dalla sua GUI, che è completamente compatibile con:

  • CPanel
  • DirectAdmin
  • WebMin / Virtualmin

Per evitare conflitti durante il funzionamento è importante rimuovere il firewall corrente. Se utilizzi un firewall diverso, assicurati di seguire le istruzioni per la disinstallazione del software prima di continuare. Dopo aver completato la routine di disinstallazione, continua con la procedura di installazione di CSF descritta di seguito.

NB: questa guida presuppone che tu abbia familiarità con SSH e la navigazione di base dalla riga di comando. Queste istruzioni si applicano principalmente ai clienti che dispongono di server privati ​​virtuali o server dedicati . Se non si dispone dell’accesso a livello di root, non sarà possibile apportare queste modifiche.

 

<<<  INSTALLAZIONE  >>>

– Installa le dipendenze

Inizia installando le dipendenze richieste per il firewall CSF:

  • CentOS 5/6
yum install perl-libwww-perl

In alternativa, libwww può essere installato utilizzando CPAN:

perl -MCPAN -e 'install Bundle::LWP'
  • CentOS 7
yum -y install wget perl unzip net-tools perl-libwww-perl perl-LWP-Protocol-https perl-GDGraph -y
  • CentOS 8
yum -y install wget perl unzip net-tools perl-libwww-perl perl-LWP-Protocol-https perl-GDGraph -y
  • Installa PERL
sudo dnf -y install @perl

Puoi installare il firewall CSF utilizzando lo script automatizzato. In alternativa è possibile anche l’installazione manuale come descritto di seguito.

INSTALLA CSF FIREWALL

Scarica l’archivio CSF ​​nella cartella /tmp del tuo server utilizzando wget, scompatta l’archivio eseguendo il comando TAR e infine installa CSF avviando lo script di installazione ./install.sh

cd /usr/src
rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

Ora puoi rimuovere i files dell’installazione

rm -rf /tmp/csf
rm /tmp/csf.tgz

 

INSTALLA IL MODULO WEBMIN (OPZIONALE)

    • Installa csf come spiegato in precedenza
    • Accedi a Webmin
    • Installa il modulo webmin csf accedendo a:
      Webmin> Configurazione Webmin> Moduli Webmin
    • Seleziona “Da file locale” e inserisci: /usr/local/csf/csfwebmin.tgz
    • Installa il modulo

I plugin per DirectAdmin o cPanel vengono installati automaticamente.

DISABILITA FIREWALLD (CENTOS 7+)

Prima di entrare nel processo di configurazione CSF, la prima cosa che devi sapere è che “CentOS 7” ha un’applicazione firewall predefinita chiamata “firewalld”. Devi fermare firewalld e rimuoverlo all’avvio.

Arresta firewalld immettendo il seguente comando:

systemctl stop firewalld

Disabilita / Rimuovi firewalld all’avvio:

systemctl disable firewalld

 

TEST IPTABLES

Questo test è consigliato per controllare che siano installati i moduli iptables corretti. Il test può essere richiamato emettendo il comando sottostante, o andando alla sezione “test iptables”, che si trova in fondo all’interfaccia grafica di CSF. Se trovi che non tutti i moduli richiesti sono installati, devi lavorare per installarli.

Questa procedura non rientra nell’ambito di questo articolo e potrebbe richiedere una modifica del kernel sul server dedicato.

$ /etc/csf/csftest.pl
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

 

CONFIGURAZIONE CSF

La configurazione dell’installazione del firewall CSF può essere mantenuta modificando i vari file di configurazione con cui viene fornito CSF. Nelle distribuzioni basate su Red Hat Enterprise Linux (RHEL) è possibile trovarle nella seguente posizione:/etc/csf/

I file di configurazione includono:

csf.conf: il file di configurazione principale, contiene commenti utili che spiegano cosa fa ciascuna opzione
csf.allow: un elenco di indirizzi IP e CIDR che dovrebbero essere sempre consentiti attraverso il firewall
csf.deny: un elenco di indirizzi IP e CIDR che non dovrebbero mai essere consentiti attraverso il firewall
csf.ignore: un elenco di indirizzi IP e CIDR che lfd dovrebbe ignorare e non bloccare se rilevato
csf. * ignore – vari file ignorano che elencano file, utenti, IP che lfd dovrebbe ignorare. Vedi ogni file per il suo scopo specifico.

Se modifichi uno dei file sopra elencati, dovrai riavviare csf per renderli effettivi. Se utilizzi le opzioni della riga di comando per aggiungere o negare indirizzi IP, csf lo farà automaticamente per te.

Tuttavia, per l’utente medio è molto più veloce utilizzare la sua interfaccia grafica (GUI) , a cui è possibile accedere dall’interno del pannello di controllo DirectAdmin, CPanel o Webmin / Virtualmin.

Come scritto sopra, CSF fornisce anche un’interfaccia utente web integrata per la gestione del firewall. Leggi come abilitare l’interfaccia utente Web del firewall CSF sul tuo sistema.

$ sudo vim /etc/csf/csf.conf
# 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 1025 to easy access. Default port create some issue
# with popular chrome and firefox browser (in my case) 

UI_PORT = "1025"

# 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 authetnication 
UI_PASS = "admin"

Dopo aver apportato le modifiche, modifica il file di configurazione /etc/csf/ui/ui.allow e aggiungi il tuo IP pubblico per consentire l’accesso all’interfaccia utente di CSF. Cambia OUR_PUBLIC_IP_ADDRESS con il tuo indirizzo IP pubblico.

$ sudo echo "YOUR_PUBLIC_IP_ADDRESS" >> /etc/csf/ui/ui.allow

Riavvia LFD

$ sudo service lfd restart

Accesso e utilizzo dell’interfaccia utente Web:

Ora accedi all’interfaccia utente di CSF sul tuo browser con la porta specificata. Esempio: https://tuosito.it:1025. Per questo tutorial, ho usato la porta 1025. Ciò richiederà prima l’autenticazione dell’utente.

 

ABILITAZIONE DEL FIREWALL CSF

Il firewall CSF può essere abilitato impostando:

TEST = 0

Questo può essere fatto tramite l’interfaccia GUI o modificando il file di configurazione principale, che si trova in /etc/csf/csf.conf.

Assicurati che la tua configurazione sia corretta. Le impostazioni sbagliate potrebbero bloccarti permanentemente fuori dal tuo server!

TCP_IN AND TCP_OUT / UDP_IN AND UDP_OUT

Di seguito troverai una spiegazione di base per le porte TCP_IN consigliate per le connessioni IN ARRIVO al tuo server web. Queste porte possono essere aperte dalla GUI o dal file csf.conf.

20,21 Accesso FTP *
22 Accesso SSH
25, 587 SMTP per EXIM per ricevere e-mail
53 DNS (con nome), la porta per i server dei nomi. Entrambe le porte TCP e UDP dovrebbero essere aperte
80, 443 Traffico Apache, http e https
110, 993 Accesso alla posta elettronica POP
143, 995 Accesso alla posta elettronica IMAP
3306 MySQL. Non dovresti aprire questa porta se non vuoi consentire l'accesso remoto a MySQL, poiché la maggior parte degli script MySQL è accessibile localmente
2222 Accesso DirectAdmin
2083 cPanel Accesso tramite una connessione SSL crittografata
2082 cPanel Accesso tramite una connessione non crittografata
2087 cPanel WHM Access tramite una connessione SSL crittografata
2086 cPanel WHM Accesso tramite una connessione non crittografata
10000 Accesso Webmin

* FTP richiede un numero di porta alto casuale se il client è in modalità PORT. Quando si utilizza ProFTP, potrebbe essere necessario aggiungere un intervallo di porte nel file /etc/proftpd.conf per consentire le connessioni ftp, ad esempio: PassivePorts 35000 35999 e quindi aprire tale intervallo di porte nel firewall CSF. Gli intervalli possono essere definiti nel CSF utilizzando i due punti, ad esempio:35000:35999

TCP_IN e TCP_OUT/UDP_IN e UDP_OUT è un elenco separato da virgole di:

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222,35000:35999"
 
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443"
 
# Allow incoming UDP ports
UDP_IN = "20,21,53"
 
# Allow outgoing UDP ports
UDP_OUT = "20,21,53,113,123"

 

SYSLOG e RESTRICT_SYSLOG

Quando è abilitata, questa opzione registra i messaggi lfd (Login Failure Daemon) su syslog e su /var/log/lfd.log.

Sfortunatamente, è banale per gli utenti finali e gli script eseguiti dagli utenti finali falsificare le righe di registro che sembrano identiche a qualsiasi riga di registro riportata nei registri gestiti da syslog/rsyslog. Puoi identificare questi registri cercando in /etc/syslog.confoetc/rsyslog.conf

Ciò significa che chiunque sul server può attivare in modo dannoso le applicazioni che monitorano questi registri, come lfd fa per le seguenti opzioni:

LF_SSHD LF_FTPD LF_IMAPD LF_POP3D LF_BIND LF_SUHOSIN LF_SSH_EMAIL_ALERT LF_SU_EMAIL_ALERT LF_CONSOLE_EMAIL_ALERT LF_DISTATTACK LF_DISTFTP LT_POP3D LT_IMAPD PS_INTERVAL UID_INTERVAL WEBMIN_LOG LF_WEBMIN_EMAIL_ALERT PORTKNOCKING_ALERT ST_ENABLE SYSLOG_CHECK LOGSCANNER CUSTOM*_LOG

Un utente malintenzionato potrebbe utilizzare questo per attivare e-mail confuse relative a tentativi di accesso riusciti e non riusciti, righe di registro del kernel (comprese le righe di registro di iptables) etc…

Si consiglia di impostare l’opzione RESTRICT_SYSLOG su 3 per limitare chi può accedere al socket unix syslog/rsyslog. Il gruppo predefinito è mysyslog. Un gruppo personalizzato può essere definito in RESTRICT_SYSLOG_GROUP

COMANDI SSH

Ecco alcuni dei comandi più comuni che puoi utilizare:

Nega manualmente un indirizzo IP:

csf -d IPADDRESS

Consenti manualmente un indirizzo IP:

csf -a IPADDRESS

Ricarica tutte le regole del firewall:

csf -r

Aggiorna CSF:

csf -u

Avvia il servizio CSF:

csf -e

Riavvia il servizio CSF:

# CentOS 5 e 6
service csf restart

# CentOS 7
systemctl restart csf.service

Per una panoramica completa di tutte le opzioni della riga di comando, inserisci csf o csf -h sulla riga di comando e riceverai un elenco con tutte le opzioni disponibili:

$ csf --help
csf: v5.17 
 
ConfigServer Security & Firewall
(c)2006-2013, Way to the Web Limited (http://www.configserver.com)
 
Usage: /usr/sbin/csf [option] [value]
 
Option              Meaning
-h, --help          Show this message
-l, --status        List/Show iptables configuration
-l6, --status6      List/Show ip6tables configuration
-s, --start         Start firewall rules
-f, --stop          Flush/Stop firewall rules (Note: lfd may restart csf)
-r, --restart       Restart firewall rules
-q, --startq        Quick restart (csf restarted by lfd)
-sf, --startf       Force CLI restart regardless of LF_QUICKSTART setting
-a, --add ip        Allow an IP and add to /etc/csf.allow
-ar, --addrm ip     Remove an IP from /etc/csf.allow and delete rule
-d, --deny ip       Deny an IP and add to /etc/csf.deny
-dr, --denyrm ip    Unblock an IP and remove from /etc/csf.deny
-df, --denyf        Remove and unblock all entries in /etc/csf.deny
-g, --grep ip       Search the iptables rules for an IP match (incl. CIDR)
-t, --temp          Displays the current list of temp IP entries and their TTL
-tr, --temprm ip    Remove an IPs from the temp IP ban and allow list
-td, --tempdeny ip ttl [-p port] [-d direction]
                    Add an IP to the temp IP ban list. ttl is how long to
                    blocks for (default:seconds, can use one suffix of h/m/d).
                    Optional port. Optional direction of block can be one of:
                    in, out or inout (default:in)
-ta, --tempallow ip ttl [-p port] [-d direction]
                    Add an IP to the temp IP allow list (default:inout)
-tf, --tempf        Flush all IPs from the temp IP entries
-cp, --cping        PING all members in an lfd Cluster
-cd, --cdeny ip     Deny an IP in a Cluster and add to /etc/csf.deny
-ca, --callow ip    Allow an IP in a Cluster and add to /etc/csf.allow
-cr, --crm ip       Unblock an IP in a Cluster and remove from /etc/csf.deny
-cc, --cconfig [name] [value]
                    Change configuration option [name] to [value] in a Cluster
-cf, --cfile [file] Send [file] in a Cluster to /etc/csf/
-crs, --crestart    Cluster restart csf and lfd
-w, --watch ip      Log SYN packets for an IP across iptables chains
-m, --mail [addr]   Display Server Check in HTML or email to [addr] if present
-lr, --logrun       Initiate Log Scanner report via lfd
-c, --check         Check for updates to csf but do not upgrade
-u, --update        Check for updates to csf and upgrade if available
-uf                 Force an update of csf
-x, --disable       Disable csf and lfd
-e, --enable        Enable csf and lfd if previously disabled
-v, --version       Show csf version

 

DIRECTORY FILES

Struttura:

File Descrizione
/etc/csf/ Files di configurazione
/var/lib/csf/ Files temporanei 
/usr/local/csf/bin/ scripts
/usr/local/csf/lib/ perl moduli e static data
/usr/local/csf/tpl/ email alert templates

Files Configurazione:

File Descrizione
/etc/csf/csf.conf Il file di configurazione principale
/etc/csf/csf.allow Un elenco di indirizzi IP e CIDR che dovrebbero essere sempre consentiti attraverso il firewall
/etc/csf/csf.deny Un elenco di indirizzi IP e CIDR che non dovrebbero mai essere consentiti attraverso il firewall
/etc/csf/csf.ignore Un elenco di indirizzi IP e CIDR che il demone di errore di accesso dovrebbe ignorare e non bloccare se rilevato

 

Per concludere:

Assicurati di seguire le raccomandazioni delineate nella pagina “Controlla sicurezza server” dall’interno della GUI di CSF. È anche saggio ricontrollare che tutti i moduli IPtables richiesti siano caricati correttamente andando alla pagina “Test Iptables” nella parte inferiore della GUI di CSF.

 

DISINSTALLAZIONE

cPanel

cd /etc/csf sh uninstall.sh

Direct Admin

cd /etc/csf sh uninstall.directadmin.sh

Server Generici Linux

cd /etc/csf sh uninstall.generic.sh

 

Alla prossima guida.

 

Installazione CSF Firewall su CentOS ultima modifica: 2021-04-21T17:40:45+02:00 da Andrea (Xlogic.org)

This post was last modified on 13 Gennaio 2023 09:59

Andrea (Xlogic.org):
Post Relativi

Questo sito utilizza i cookies.