Introduzione
CSF è un firewall Stateful Packet Inspection (SPI), un'applicazione di rilevamento di accesso/intrusione e sicurezza per server Linux.
È costituito dal firewall stesso (CSF) che è completo, diretto, facile e flessibile da configurare.
Ha anche un Login Failure Daemon (LFD) che integra perfettamente CSF. Questo LFD viene eseguito continuamente e periodicamente (ogni X secondi) esegue la scansione delle ultime voci del file di registro per i tentativi di accesso al server che falliscono continuamente in un breve periodo di tempo. Tali tentativi sono spesso chiamati "attacchi di forza bruta" e il processo del demone risponde molto rapidamente a tali schemi e blocca rapidamente gli IP offensivi
Installa CSF su CentOS 8
Come previsto, CSF non è disponibile nei repository CentOS ufficiali. Tuttavia, è possibile installarlo in quanto è fortemente legato a Perl e questa lingua è supportata su CentOS 8.
Quindi, apri una sessione terminale e aggiorna CentOS 8
sudo dnf install
Alla fine, installa il Perl moduli elementari e altri strumenti che useremo in seguito come vim
sudo dnf install @perl curl tar vim
Al termine dell'installazione, devi installare altri moduli Perl aggiuntivi su CentOS 8
sudo dnf install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph
Puoi verificare l'installazione di Perl eseguendo il comando:
[root@unixcop ~]# perl -v
This is perl 5, version 26, subversion 3 (v5.26.3) built for x86_64-linux-thread-multi
(with 55 registered patches, see perl -V for more detail)
Copyright 1987-2018, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
[root@unixcop ~]#
Ora puoi scaricare CSF usando il comando curl
[root@unixcop ~]# curl -O https://download.configserver.com/csf.tgz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2244k 100 2244k 0 0 655k 0 0:00:03 0:00:03 --:--:-- 655k
[root@unixcop ~]#
Come puoi notare, è abbastanza leggero. Ora decomprimilo.
tar xvfz csf.tgz
Quindi accedi alla cartella generata e, al suo interno, esegui lo script di installazione chiamato installa .sh
cd csf
sudo sh install.sh
Questo avvierà il processo di installazione e verrà applicata la configurazione predefinita.
Configurazione di CSF su CentOS 8
Una volta installato, CFS applica alcune impostazioni predefinite molto buone, tuttavia, ognuno di noi ha alcune modifiche da fare.
Il file è /etc/csf/csf.conf di cui è necessario eseguire il backup prima della modifica per essere sicuri.
sudo vim /etc/csf/csf.conf
E in questo file troverai molti parametri molto ben documentati. E una delle sezioni più importanti è quella che elenca le porte aperte per le connessioni in entrata e in uscita.
In questo stesso file puoi abilitare o disabilitare CSF modificando il seguente valore:
TESTING = "1"
Per
TESTING = "0"
In questo modo indichi al programma che è pronto per l'avvio.
Salva le modifiche e chiudi il file.
Ora puoi avviare il servizio CSF.
sudo systemctl enable --now csf
Si consiglia inoltre di controllare lo stato del servizio per vedere se funziona correttamente.
[root@unixcop csf]# sudo systemctl enable --now csf
[root@unixcop csf]# sudo systemctl status csf
● csf.service - ConfigServer Firewall & Security - csf
Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled)
Active: active (exited) since Mon 2021-07-26 17:43:04 EET; 17s ago
Process: 20176 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS)
Main PID: 20176 (code=exited, status=0/SUCCESS)
Jul 26 17:43:03 unixcop csf[20176]: ACCEPT all opt in * out lo ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: csf: FASTSTART loading DNS (IPv4)
Jul 26 17:43:03 unixcop csf[20176]: csf: FASTSTART loading DNS (IPv6)
Jul 26 17:43:03 unixcop csf[20176]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0
Jul 26 17:43:03 unixcop csf[20176]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0
Jul 26 17:43:03 unixcop csf[20176]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0
Jul 26 17:43:04 unixcop systemd[1]: Started ConfigServer Firewall & Security - csf.
[root@unixcop csf]#
Puoi anche controllare le porte aperte quando CSF è in esecuzione.
[root@unixcop csf]# sudo csf -p
Ports listening for external connections and the executables running behind them:
Port/Proto Open Conn PID/User Command Line Executable
22/tcp 4/6 1 (910/root) /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd
323/udp -/- - (853/chrony) /usr/sbin/chronyd /usr/sbin/chronyd
[root@unixcop csf]#
Abilita l'interfaccia utente in CSF Firewall su CentOS
CSF Firewall viene fornito con un'interfaccia utente autonoma. Questa impostazione è disabilitata per impostazione predefinita. Su CentOS, installa i seguenti requisiti yum install perl-IO-Socket-SSL perl-Net-SSLeay perl-Net-LibIDN perl-IO-Socket-INET6 perl-Socket6
yum install perl-IO-Socket-SSL perl-Net-SSLeay perl-Net-LibIDN perl-IO-Socket-INET6 perl-Socket
Modifica file di configurazione CSF
vim /etc/csf/csf.conf
Sostituisci UI ="0" con UI =“1”
Modifica le seguenti impostazioni secondo necessità.
UI_PORT = "6666"
UI_USER = "username"
UI_PASS = "password"
Per impostazione predefinita, solo gli IP inseriti nella whitelist possono accedere all'interfaccia utente, per inserire nella whitelist il tuo IP, esegui
echo "YOUR_IP_ADDR" >> /etc/csf/ui/ui.allow
Se desideri consentire l'interfaccia utente di CSF da tutti gli indirizzi IP, imposta UI_ALLOW su 0 in csf.conf
UI_ALLOW = "0"
CSF utilizza un SSL autofirmato, se hai un certificato SSL, puoi usarlo. Il certificato SSL è disponibile nella cartella
/etc/csf/ui/
Per utilizzare il certificato SSL gratuito LetsEncrypt per l'interfaccia utente CSF, ho impostato il collegamento simbolico su ssl cert.
cd /etc/csf/ui
mv server.key server.key.old
mv server.crt server.crt.old
ln -s /etc/letsencrypt/live/DOMAIN/fullchain.pem server.crt
ln -s /etc/letsencrypt/live/DOMAIN/privkey.pem server.key
Ora riavvia CSF e LDF
systemctl restart lfd
systemctl restart csf
Ciò richiederà prima l'autenticazione dell'utente. Dopo aver effettuato correttamente l'accesso, troverai la schermata come di seguito.
Conclusione
Quindi hai imparato come installare Config Server Firewall su CentOS 8 Come puoi notare, il processo non è complesso ma richiede alcuni passaggi aggiuntivi per completare il processo.