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.
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
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
- Avviare il firewall:
csf -s
- Svuotare / fermare le regole:
csf -f
- Ricaricare le regole dopo modifiche alla configurazione:
csf -r
- 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
- Rimuovere un IP da csf.allow:
csf -ar 192.168.1.109
- Negare un IP e aggiungerlo a csf.deny:
csf -d 192.168.1.109
- Rimuovere un IP da csf.deny:
csf -dr 192.168.1.109
- Rimuovere tutte le entry da csf.deny:
csf -df
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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)
- Preparazione
- Backup dei file: /etc/csf/*
- Creare un account alternativo con accesso remoto per rollback.
- Installazione in staging seguendo i Passi 1-3.
- Verifica funzionale: test di connessione SSH, mail e FTP.
- Aggiornamento config e abilitazione TESTING=0.
- Attivazione in produzione nelle ore di bassa attività.
- Monitoraggio per 24–72 ore, raccogliere alert.
- 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.
Materiali simili

Usare Photosynth su Windows 10 — guida pratica

AirDrop iPhone ↔ Mac: guida completa

Come guardare TF1 negli USA con 4 metodi

Fix Origin errore 65546:0 — Guida completa

Feedburner: risolvere il bug dei 0 iscritti
