Introducción
CSF es un cortafuegos de inspección de estado de paquetes (SPI), aplicación de seguridad y detección de inicio de sesión/intrusos para servidores Linux.
Consta del propio cortafuegos (CSF), que es completo, sencillo, fácil y flexible de configurar.
También tiene un Login Failure Daemon (LFD) que complementa perfectamente a CSF. Este LFD se ejecuta todo el tiempo y periódicamente (cada X segundos) escanea las últimas entradas del archivo de registro en busca de intentos de inicio de sesión en su servidor que fallan continuamente en un corto período de tiempo. Dichos intentos a menudo se denominan "ataques de fuerza bruta" y el proceso daemon responde muy rápidamente a tales patrones y bloquea rápidamente las IP ofensivas.
Instalar CSF en CentOS 8
Como era de esperar, CSF no está disponible en los repositorios oficiales de CentOS. Sin embargo, es posible instalarlo ya que está fuertemente vinculado a Perl y este lenguaje es compatible con CentOS 8.
Entonces, abra una sesión de terminal y actualice CentOS 8
sudo dnf install
Al final, instala el Perl módulos elementales y otras herramientas que usaremos más adelante como vim
sudo dnf install @perl curl tar vim
Al final de la instalación, debe instalar otros módulos adicionales de Perl en CentOS 8
sudo dnf install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph
Puede verificar la instalación de Perl ejecutando el 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 ~]#
Ahora puedes descargar CSF usando el 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 ~]#
Como puedes notar, es bastante liviano. Ahora descomprímelo.
tar xvfz csf.tgz
Así que acceda a la carpeta generada y, dentro de ella, ejecute el script de instalación llamado instalar .sh
cd csf
sudo sh install.sh
Esto iniciará el proceso de instalación y se aplicará la configuración predeterminada.
Configurar CSF en CentOS 8
Cuando está instalado, CFS aplica algunas configuraciones predeterminadas muy buenas, sin embargo, cada uno de nosotros tiene algunos ajustes que hacer.
El archivo es /etc/csf/csf.conf que se debe hacer una copia de seguridad antes de editar para estar seguro.
sudo vim /etc/csf/csf.conf
Y en este archivo encontrará muchos parámetros muy bien documentados. Y una de las secciones más importantes es la que enumera los puertos abiertos para las conexiones entrantes y salientes.
En este mismo archivo puede habilitar o deshabilitar CSF cambiando el siguiente valor:
TESTING = "1"
para
TESTING = "0"
De esta forma le indicas al programa que está listo para iniciarse.
Guarde los cambios y cierre el archivo.
Ahora puede iniciar el servicio CSF.
sudo systemctl enable --now csf
También es recomendable comprobar el estado del servicio para ver si se está ejecutando correctamente.
[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]#
También puede verificar los puertos que están abiertos cuando se está ejecutando CSF.
[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]#
Habilitar la interfaz de usuario en CSF Firewall en CentOS
CSF Firewall viene con una interfaz de usuario independiente. Esto está deshabilitado por defecto. En CentOS, instale los siguientes requisitos 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
Editar archivo de configuración CSF
vim /etc/csf/csf.conf
Reemplazar UI ="0" con IU ="1"
Cambie las siguientes configuraciones según sea necesario.
UI_PORT = "6666"
UI_USER = "username"
UI_PASS = "password"
De forma predeterminada, solo la IP incluida en la lista blanca puede acceder a la interfaz de usuario, para incluir su IP en la lista blanca, ejecute
echo "YOUR_IP_ADDR" >> /etc/csf/ui/ui.allow
Si desea permitir la interfaz de usuario de CSF desde todas las direcciones IP, establezca UI_ALLOW en 0 en csf.conf
UI_ALLOW = "0"
CSF usa un SSL autofirmado, si tiene un certificado SSL, puede usarlo. El certificado SSL está disponible en la carpeta
/etc/csf/ui/
Para usar el certificado SSL gratuito de LetsEncrypt para la interfaz de usuario de CSF, configuro el enlace simbólico en el certificado SSL.
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
Ahora reinicie CSF y LDF
systemctl restart lfd
systemctl restart csf
Esto solicitará primero la autenticación del usuario. Después de iniciar sesión correctamente, encontrará una pantalla como la siguiente.
Conclusión
Así que ha aprendido a instalar Config Server Firewall en CentOS 8. Como puede notar, el proceso no es complejo, pero requiere algunos pasos adicionales para completarlo.