CSF, también llamado “Cortafuegos del servidor de configuración,” es un cortafuegos de inspección de paquetes con estado (SPI) para sistemas operativos Linux. Proporciona la funcionalidad básica del cortafuegos, así como otras características de seguridad, incluido el inicio de sesión, la intrusión y la detección de inundaciones. También puede integrar CSF con DirectAdmin, cPanel y Webmin. Con CSF, puede detectar muchos tipos de ataques, como escaneos de puertos, inundaciones SYN y ataques de fuerza bruta de inicio de sesión en muchos servicios.
En esta publicación, le mostraremos cómo instalar y configurar el firewall CSF en Rocky Linux 8.
Requisitos
- Un servidor que ejecuta Rocky Linux 8 en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Rocky Linux 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
Paso 2:instale CSF en Rocky Linux 8
CSF está escrito en Perl, por lo que deberá instalar todos los módulos Perl necesarios en su sistema. Puede instalarlos todos con el siguiente comando:
dnf install @perl perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch -y
Después de instalar todos los módulos requeridos, descargue la última versión de CSF usando el siguiente comando:
wget https://download.configserver.com/csf.tgz
Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:
tar xzf csf.tgz
A continuación, navegue hasta el directorio extraído e instale CSF con el siguiente comando:
cd csf sh install.sh
Una vez que CSF esté instalado, obtendrá el siguiente resultado:
Don't forget to: 1. Configure the following options in the csf configuration to suite your server: TCP_*, UDP_* 2. Restart csf and lfd 3. Set TESTING to 0 once you're happy with the firewall, lfd will not run until you do so Adding current SSH session IP address to the csf whitelist in csf.allow: Adding 27.61.171.115 to csf.allow only while in TESTING mode (not iptables ACCEPT) *WARNING* TESTING mode is enabled - do not forget to disable it in the configuration 'lfd.service' -> '/usr/lib/systemd/system/lfd.service' 'csf.service' -> '/usr/lib/systemd/system/csf.service' Created symlink /etc/systemd/system/multi-user.target.wants/csf.service → /usr/lib/systemd/system/csf.service. Created symlink /etc/systemd/system/multi-user.target.wants/lfd.service → /usr/lib/systemd/system/lfd.service. Created symlink /etc/systemd/system/firewalld.service → /dev/null. '/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz' Installation Completed
Luego, verifique que todos los módulos de iptables requeridos estén disponibles.
perl /usr/local/csf/bin/csftest.pl
Si todo está configurado correctamente, obtendrá el siguiente resultado:
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
Ahora puede verificar la versión de CSF usando el siguiente comando:
csf -v
Obtendrá el siguiente resultado:
csf: v14.12 (generic) *WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
Paso 3:configurar CSF
nano /etc/csf/csf.conf
Cambie PRUEBA ="1" a PRUEBA ="0" y agregue los puertos entrantes y salientes permitidos según sus requisitos:
# lfd will not start while this is enabled TESTING = "0" # Allow incoming TCP ports TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995" # Allow outgoing TCP ports TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
Guarde y cierre el archivo cuando haya terminado, luego inicie y habilite los servicios CSF y LFD:
systemctl start csf lfd systemctl enable csf lfd
Puede verificar el estado de CSF con el siguiente comando:
systemctl status csf
Debería ver el siguiente resultado:
● csf.service - ConfigServer Firewall & Security - csf Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled) Active: active (exited) since Wed 2021-11-17 08:41:05 UTC; 3s ago Process: 13236 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS) Main PID: 13236 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 11411) Memory: 0B CGroup: /system.slice/csf.service Nov 17 08:41:05 rockylinux csf[13236]: ACCEPT all opt in * out lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: csf: FASTSTART loading DNS (IPv4) Nov 17 08:41:05 rockylinux csf[13236]: csf: FASTSTART loading DNS (IPv6) Nov 17 08:41:05 rockylinux csf[13236]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0 Nov 17 08:41:05 rockylinux systemd[1]: Started ConfigServer Firewall & Security - csf.
También puede verificar los puertos que están abiertos cuando CSF se está ejecutando usando el siguiente comando:
csf -p
Salida de muestra:
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 (709/root) /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd 80/tcp 4/6 - (8954/root) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8957/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8958/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8959/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (9172/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 323/udp -/- - (552/chrony) /usr/sbin/chronyd /usr/sbin/chronyd
Paso 4:Cómo usar CSF
Para vaciar todas las reglas de CSF, ejecute el siguiente comando:
csf -f
Para recargar el cortafuegos CSF, ejecute el siguiente comando:
csf -r
Para permitir conexiones entrantes desde la IP específica, ejecute el siguiente comando:
csf -a remote-ip-address
Para denegar conexiones desde la IP específica, ejecute el siguiente comando:
csf -d remote-ip-address
También puede editar el csf.deny y csf.permitir archivo para definir la lista de IP permitidas y denegadas en el firewall.
Paso 5:habilite la interfaz de usuario de CSF
CSF también proporciona una interfaz basada en web para administrar el firewall. Está deshabilitado por defecto.
Antes de habilitar la interfaz de usuario de CSF, instale los módulos necesarios con el siguiente comando:
dnf install perl-IO-Socket-SSL perl-Net-SSLeay perl-IO-Socket-INET6 perl-Socket -y
A continuación, edite el archivo de configuración de CSF:
nano /etc/csf/csf.conf
Habilite la interfaz de usuario, defina el puerto de escucha y configure el nombre de usuario y la contraseña del administrador como se muestra a continuación:
# 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 = "8080" # 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 = "securepassword" UI_ALLOW = "0"
Guarde y cierre el archivo, luego reinicie el servicio CSF y LFD para aplicar los cambios:
systemctl restart lfd systemctl restart csf
Paso 6:acceda a la interfaz de usuario de CSF
Ahora, abra su navegador web y acceda a la interfaz de usuario de CSF usando la URL https://your-server-ip:8080 . Debería ver la página de inicio de sesión de CSF:
Proporcione su nombre de usuario y contraseña de administrador y haga clic en Iniciar sesión botón. Debería ver la interfaz web de CSF en la siguiente pantalla:
Paso 7:eliminar el cortafuegos CSF
Si desea eliminar completamente el cortafuegos CSF de su servidor, simplemente ejecute el siguiente script:
bash /etc/csf/uninstall.sh
Esto eliminará el cortafuegos de CSF con todos los archivos, directorios y reglas creados por CSF.
Conclusión
En la guía anterior, explicamos cómo instalar CSF y CSF UI en Rocky Linux 8. También explicamos cómo prohibir y desbanear direcciones IP específicas con CSF. Ahora puede implementar CSF en su servidor y protegerlo de varios tipos de ataques. ¡Pruébalo en tu VPS de Atlantic.Net!