Guida alle tecnologie

Installare e configurare CSF su CentOS 7

7 min read Sicurezza Aggiornato 07 Oct 2025
Installare e configurare CSF su CentOS 7
Installare e configurare CSF su CentOS 7

Intento primario

Installare e mettere in produzione CSF su un server CentOS 7 per proteggere servizi come SSH, mail e FTP, e per integrare il blocco/permesso di IP e paesi.

Varianti correlate

installare csf; configurare csf centos 7; csf tutorial; configserver firewall; csf lfd guida; csf vs fail2ban


Prerequisiti

  • Sistema: CentOS 7 (esempi con IP del server 192.168.1.101). Localizza l’IP in base alla tua infrastruttura.
  • Privilegi: accesso root o utente con sudo.
  • Connessione di rete stabile per scaricare pacchetti.

Cosa faremo in questa guida:

  • Installare le dipendenze di CSF.
  • Scaricare e installare CSF.
  • Verificare il funzionamento.
  • Configurare CSF per la produzione.
  • Comandi di uso comune e configurazioni avanzate.
  • Checklist e playbook per rollout e rollback.

Passo 1 - Installare le dipendenze di CSF

CSF è scritto in Perl. Prima di tutto installa Perl e alcuni strumenti utili. In questo esempio usiamo yum:

yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes

Spiegazione rapida: wget serve per scaricare l’archivio, vim o un altro editor per modificare i file di configurazione; i moduli Perl servono a CSF per alcune funzioni di rete e temporizzazione.


Passo 2 - Scaricare e installare CSF

Spostati nella directory /usr/src/ e scarica il pacchetto ufficiale:

cd /usr/src/
wget https://download.configserver.com/csf.tgz

Estrai e installa:

tar -xzf csf.tgz
cd csf
sh install.sh

Alla fine dello script vedrai un messaggio che conferma il completamento dell’installazione.

Schermata che mostra la conclusione dell'installazione di CSF

Verifica che CSF funzioni eseguendo il test incluso:

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

Se il test è positivo vedrai:

RESULT: csf should function on this server

Schermata che mostra il test di CSF in esecuzione con esito positivo

Importante: leggi l’output del test. Alcune distribuzioni o configurazioni particolari potrebbero segnalare avvisi utili da risolvere prima di mettere CSF in produzione.


Passo 3 - Configurare CSF su CentOS 7

CentOS 7 usa firewalld come firewall predefinito. Prima di mettere CSF in produzione, ferma e disabilita firewalld:

systemctl stop firewalld
systemctl disable firewalld

Quindi editare il file di configurazione principale:

cd /etc/csf/
vim csf.conf

Cambia la variabile TESTING su 0 per applicare le regole:

TESTING = "0"

Se usi una porta SSH non standard, aggiungila a TCP_IN (riga di esempio nella configurazione):

TCP_IN = "22,2222"

Avvia i servizi csf e lfd e abilitali all’avvio:

systemctl start csf
systemctl start lfd
systemctl enable csf
systemctl enable lfd

Visualizza le regole correnti:

csf -l

Nota: esegui questi comandi da una sessione separata o assicurati di avere accesso alternativo se modifichi regole SSH per evitare di essere bloccato.


Comandi base di CSF

  1. Avviare il firewall:
csf -s
  1. Svuotare / fermare le regole:
csf -f
  1. Ricaricare le regole dopo modifiche alla configurazione:
csf -r
  1. Permettere un IP e aggiungerlo a csf.allow:
csf -a 192.168.1.109

Output di esempio:

Adding 192.168.1.109 to csf.allow and iptables ACCEPT...
ACCEPT  all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0
ACCEPT  all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
  1. Rimuovere un IP da csf.allow:
csf -ar 192.168.1.109
  1. Negare un IP e aggiungerlo a csf.deny:
csf -d 192.168.1.109
  1. Rimuovere un IP da csf.deny:
csf -dr 192.168.1.109
  1. Rimuovere tutte le entry da csf.deny:
csf -df
  1. Cercare pattern dentro le regole iptables (IP, CIDR, porta):
csf -g 192.168.1.110

Suggerimento operativo: quando aggiungi regole di blocco/permesso, verifica sempre la connettività da un host di prova per evitare lockout.


Configurazioni avanzate utili

Modifica /etc/csf/csf.conf con attenzione. Di seguito le opzioni più utili e il perché usarle.

  1. Ignorare gli IP in csf.allow (impedire che LFD blocchi indirizzi permessi):
IGNORE_ALLOW = "1"

Uso: utile per IP statici aziendali o di amministratori che non devono mai essere bloccati.

  1. Abilitare ICMP in ingresso e uscita (ping):
ICMP_IN = "1"
ICMP_OUT = "1"

Uso: necessario se monitoraggio o verifiche di reachability si basano su ping.

  1. Bloccare/consentire per paese (Country Code):
CC_DENY = "CN,UK,US"
CC_ALLOW = "ID,MY,DE"

Nota: la geolocalizzazione IP non è perfetta. Usa questa funzione come filtro aggiuntivo, non come unica difesa.

  1. Avvisi via email per login SSH e uso di su:
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"
LF_ALERT_TO = "[email protected]"

Sostituisci [email protected] con l’indirizzo del team di sicurezza o del sysadmin.

  1. Protezione dei servizi mail e FTP

CSF può monitorare i log di Exim, Dovecot, Pure-FTPd, vsftpd e Proftpd per bloccare IP con troppi tentativi falliti. Controlla le righe relative ai percorsi dei log e alle soglie LF_* (es. LF_FTPD, LF_POP3D).

  1. Rate limiting e connessioni simultanee

Parametri come CONNLIMIT e PORTFLOOD aiutano a limitare connessioni abusive su porte critiche.


Hardening e best practice

  • Backup della configurazione: salva /etc/csf/csf.conf e i file /etc/csf/csf.allow csf.deny prima di ogni modifica.
  • Test in staging: applica e testa CSF in un ambiente non produttivo prima del rollout.
  • Regole SSH: se cambi porta SSH, aggiorna il client e fai prima un test con connessioni parallele per evitare lockout.
  • Monitoraggio: integra gli alert email con un canale di notifica (es. team di sicurezza, Slack, webhook).
  • Principio del minimo privilegio: limita le porte aperte solo a quelle necessarie.
  • Aggiornamenti: tieni aggiornato CSF e il sistema operativo.

Importante: non combinare firewalld attivo e CSF senza aver verificato il comportamento desiderato.


Quando CSF non è la soluzione ideale

  • In ambienti che usano esclusivamente nftables o firewalld con policy complesse, CSF (basato su iptables) potrebbe non adattarsi senza pesanti modifiche.
  • Per protezione distribuita a livello di rete (per esempio WAF o DDoS protection upstream), CSF al singolo host non è sufficiente.
  • Se hai bisogno di correlazione degli eventi su vasta scala, usa CSF insieme a SIEM / syslog centralizzato.

Alternative:

  • fail2ban: semplice e focalizzato sul blocco via log. Più leggero ma meno ricco di integrazioni UI.
  • Soluzioni a livello di rete o cloud (WAF, CDN con rate limiting) per mitigare attacchi volumetrici.

Playbook di rollout (SOP rapido)

  1. Preparazione
    • Backup dei file: /etc/csf/*
    • Creare un account alternativo con accesso remoto per rollback.
  2. Installazione in staging seguendo i Passi 1-3.
  3. Verifica funzionale: test di connessione SSH, mail e FTP.
  4. Aggiornamento config e abilitazione TESTING=0.
  5. Attivazione in produzione nelle ore di bassa attività.
  6. Monitoraggio per 24–72 ore, raccogliere alert.
  7. Piano di rollback: csf -f per rimuovere regole e ripristinare backup.

Criteri di accettazione

  • CSF si avvia senza errori.
  • SSH, servizi mail e hosting rispondono normalmente dai client autorizzati.
  • Alert email raggiungono il team di sicurezza.
  • Nessun accesso legittimo viene bloccato in modo persistente per 24 ore dopo il deploy.

Checklist per i ruoli

Sysadmin

  • Verificare dipendenze e compatibilità del kernel.
  • Configurare IGNORE_ALLOW se necessario.
  • Abilitare log e avvisi.

Helpdesk

  • Verificare che gli IP di supporto siano in csf.allow.
  • Conoscere i comandi base csf -a, -d, -r, -l.

Security engineer

  • Definire policy CC_ALLOW/CC_DENY.
  • Integrare avvisi CSF con SIEM.

Troubleshooting comune

  • Problema: Bloccato fuori da SSH dopo aver cambiato la porta. Soluzione: Accedi via console o IP alternativo e aggiungi l’IP client a csf.allow, poi rivedi TCP_IN.

  • Problema: LFD blocca IP in csf.allow. Soluzione: Impostare IGNORE_ALLOW = “1” e ricaricare csf: csf -r.

  • Problema: Email di alert non arrivate. Soluzione: Controllare configurazione MTA, LF_ALERT_TO e log di /var/log/lfd.log.


Test e casi di accettazione essenziali

Test 1: Verifica test csftest.pl

  • Esegui perl csftest.pl. Esito: “RESULT: csf should function on this server”.

Test 2: Permettere IP

  • csf -a 192.168.1.109 quindi csf -g 192.168.1.109. Esito: regole ACCEPT presenti.

Test 3: Negare IP

  • csf -d 192.168.1.110; verificare DROP e log su lfd.

Test 4: Notifica SSH

  • Provare login ripetuti con credenziali sbagliate da IP di test; verificare invio email.

Box dei termini essenziali

  • CSF: ConfigServer Firewall, firewall applicativo e tool LFD.
  • LFD: Login Failure Daemon, componente che monitora i log e blocca IP.
  • csf.allow / csf.deny: file che contengono IP permessi o negati.
  • TESTING: flag che impedisce l’applicazione delle regole se impostato a “1”.

Piccola galleria di casi limite

  • Ambiente con bilanciatori di carico: assicurati che gli IP reali dei client siano visibili nei log (X-Forwarded-For o proxy protocol) prima di usare CC_DENY.
  • Server multi-tenant: valuta policy per evitare che LFD blocchi intere sottoreti di clienti.

Conclusione

CSF è una soluzione matura e flessibile per la protezione host-level su server Linux. Fornisce controllo granulare su porte, IP e paesi, e integra funzionalità di rilevamento intrusioni tramite LFD. Segui le checklist e il playbook per un deploy sicuro e prevedi monitoraggio continuo. Per protezione a livello di rete o mitigazione DDoS volumetrica integra CSF con soluzioni esterne.


Riepilogo finale

  • Installa dipendenze, scarica e installa CSF.
  • Disabilita firewalld prima di usare CSF.
  • Imposta TESTING=0, avvia csf e lfd.
  • Usa csf.allow e csf.deny per gestire accessi.
  • Esegui backup della configurazione e monitora gli alert.
Autore
Redazione

Materiali simili

Usare Photosynth su Windows 10 — guida pratica
Guide tecniche

Usare Photosynth su Windows 10 — guida pratica

AirDrop iPhone ↔ Mac: guida completa
Guide Apple

AirDrop iPhone ↔ Mac: guida completa

Come guardare TF1 negli USA con 4 metodi
Streaming VPN

Come guardare TF1 negli USA con 4 metodi

Fix Origin errore 65546:0 — Guida completa
Guide tecniche

Fix Origin errore 65546:0 — Guida completa

Feedburner: risolvere il bug dei 0 iscritti
WordPress

Feedburner: risolvere il bug dei 0 iscritti

Trasferire file tra iPad e Android: guida pratica
Guide tecniche

Trasferire file tra iPad e Android: guida pratica