Introducción
Config Server Firewall (CSF) es un firewall de código abierto que se puede usar en la mayoría de los sistemas operativos basados en Linux para proteger los servidores contra usuarios no autenticados. CSF supervisa continuamente el archivo de registro del servidor y notifica errores en la autenticación de inicio de sesión de SSH, SMTP, HTTP, IMAP, POP3 y FTP y otros muchos protocolos. Este firewall le permite bloquear y desbloquear manualmente direcciones IP específicas de manera temporal o permanente. Además, proporciona una interfaz basada en web para cPanel, DirectAdmin y Webmin para administrar el firewall desde el navegador web.
CSF es muy simple, fácil de instalar, sencillo y es compatible con muchos sistemas operativos basados en Linux como CentOS, Ubuntu, RedHat, OpenSUSE y Debian. CSF utiliza el identificador de daemon de error de inicio de sesión (LFD) que verifica los registros de LFD en un intervalo de tiempo regular. Encuentra intentos fallidos de inicio de sesión y los bloquea inmediatamente.
En este tutorial, aprenderemos cómo instalar y configurar Config Server Firewall en Ubuntu 18.04.
Requisitos
- Un servidor cloud corriendo con Ubuntu 18.04.
- Una IP estática 192.168.0.4.
- Un password root.
Empezamos
Primero, recomendamos actualizar tu sistema con la última versión estable. Puedes hacerlo con el siguiente comando:
# apt-get update -y
# apt-get upgrade -y
Una vez que se haya completado el proceso de actualización, reinicia tu sistema para aplicar todos los cambios.
Instala CSF
Primero, descarga la última versión de CSF de su sitio web oficial. Puedes hacerlo con el siguiente comando:
# wget https://download.configserver.com/csf.tgz
Una vez que se haya completado la descarga, extrae el archivo descargado con el siguiente comando:
# tar -zxvf csf.tgz
A continuación, cambia el directorio a csf e instálalo con el siguiente comando:
# cd csf
# sh install.sh
Una vez que la instalación se haya completado con éxito, deberías ver el siguiente resultado:
Created symlink /etc/systemd/system/firewalld.service → /dev/null.
'csf/LICENSE.txt' -> 'webmin/csf/images/LICENSE.txt'
'csf/bootstrap/js/bootstrap.min.js' -> 'webmin/csf/images/bootstrap/js/bootstrap.min.js'
'csf/bootstrap/css/bootstrap.min.css.map' -> 'webmin/csf/images/bootstrap/css/bootstrap.min.css.map'
'csf/bootstrap/css/bootstrap.min.css' -> 'webmin/csf/images/bootstrap/css/bootstrap.min.css'
'csf/bootstrap/fonts/glyphicons-halflings-regular.eot' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.eot'
'csf/bootstrap/fonts/glyphicons-halflings-regular.woff2' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.woff2'
'csf/bootstrap/fonts/glyphicons-halflings-regular.svg' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.svg'
'csf/bootstrap/fonts/glyphicons-halflings-regular.ttf' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.ttf'
'csf/bootstrap/fonts/glyphicons-halflings-regular.woff' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.woff'
'csf/bootstrap-chosen.css' -> 'webmin/csf/images/bootstrap-chosen.css'
'csf/chosen-sprite.png' -> 'webmin/csf/images/chosen-sprite.png'
'csf/chosen-sprite@2x.png' -> 'webmin/csf/images/chosen-sprite@2x.png'
'csf/chosen.min.css' -> 'webmin/csf/images/chosen.min.css'
'csf/chosen.min.js' -> 'webmin/csf/images/chosen.min.js'
'csf/configserver.css' -> 'webmin/csf/images/configserver.css'
'csf/csf-loader.gif' -> 'webmin/csf/images/csf-loader.gif'
'csf/csf.svg' -> 'webmin/csf/images/csf.svg'
'csf/csf_small.png' -> 'webmin/csf/images/csf_small.png'
'csf/jquery.min.js' -> 'webmin/csf/images/jquery.min.js'
'csf/loader.gif' -> 'webmin/csf/images/loader.gif'
'/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz'
Installation Completed
A continuación, deberás verificar los módulos Iptables requeridos en tu sistema. Puedes comprobarlo con el siguiente comando:
# perl /usr/local/csf/bin/csftest.pl
Deberías ver 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
Configura CSF
El archivo de configuración de CSF predeterminado se encuentra en el directorio / etc / csf. Puedes configurar los parámetros requeridos para CSF con el siguiente comando:
# nano /etc/csf/csf.conf
Haz los siguientes cambios:
#For testing environment the value should be TESTING = "1" and for production environment, the value should be TESTING = "0".
TESTING = "0"
#To enable log
RESTRICT_SYSLOG = "3"
# 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"
# Allow incoming UDP ports
UDP_IN = "20,21,53"
# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"
Guarda y cierra el archivo cuando haya terminado. Luego, inicia el firewall CSF con el siguiente comando:
# systemctl start csf
También puedes verificar el estado de CSF con el siguiente comando:
# systemctl status csf
Deberías ver el siguiente resultado:
● csf.service - ConfigServer Firewall & Security - csf
Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2019-07-03 06:22:01 UTC; 3s ago
Process: 2618 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS)
Main PID: 2618 (code=exited, status=0/SUCCESS)
Jul 03 06:22:01 ubuntu1804 csf[2618]: ACCEPT all opt in * out lo ::/0 -> ::/0
Jul 03 06:22:01 ubuntu1804 csf[2618]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0
Jul 03 06:22:01 ubuntu1804 csf[2618]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0
Jul 03 06:22:01 ubuntu1804 csf[2618]: csf: FASTSTART loading DNS (IPv4)
Jul 03 06:22:01 ubuntu1804 csf[2618]: csf: FASTSTART loading DNS (IPv6)
Jul 03 06:22:01 ubuntu1804 csf[2618]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0
Jul 03 06:22:01 ubuntu1804 csf[2618]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0
Jul 03 06:22:01 ubuntu1804 csf[2618]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0
Jul 03 06:22:01 ubuntu1804 csf[2618]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0
Jul 03 06:22:01 ubuntu1804 systemd[1]: Started ConfigServer Firewall & Security - csf.
También puedes iniciar y volver a cargar las reglas del firewall con el siguiente comando:
# csf -s
# csf -r
Configura la Interfaz Web de CFS
CSF también proporciona una interfaz web para administrar el firewall desde la interfaz web. Para habilitar la Interfaz Web de CSF, necesitarás instalar algunos módulos de Perl en tu sistema. Puedes instalar todos los módulos requeridos con el siguiente comando:
# apt-get install libio-socket-ssl-perl libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl libcrypt-ssleay-perl -y
Después de instalar todos los módulos, deberá habilitar la interfaz de usuario web de CSF editando el archivo csf.conf.
Puedes hacerlo con el siguiente comando:
# nano /etc/csf/csf.conf
Haz los siguientes cambios:
RESTRICT_UI = "1"
UI = "1"
UI_PORT = "8080"
UI_IP = ""
UI_USER = "admin"
UI_PASS = "admin@123456
# For security reasons, you should always keep this option low (i.e 0-10)
UI_RETRY = "5"
#This option will add the connecting IP address to the file /etc/csf/ui/ui.ban after UI_RETRY login failures.
Guarda y cierra el archivo cuando hayas terminado. Luego, permite el acceso a tu dirección IP con el siguiente comando:
# nano /etc/csf/ui/ui.allow
Añade la siguiente línea:
192.168.0.4
Guarda y cierra el archivo. Luego, reinicia el servicio LFD para aplicar estos cambios:
# service lfd restart
Ahora puedes verificar el estado de LFD con el siguiente comando:
# service lfd status
Deberías ver el siguiente resultado:
● lfd.service - ConfigServer Firewall & Security - lfd
Loaded: loaded (/usr/lib/systemd/system/lfd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-07-03 06:26:13 UTC; 3s ago
Process: 3291 ExecStart=/usr/sbin/lfd (code=exited, status=0/SUCCESS)
Main PID: 3318 (lfd - sleeping)
Tasks: 4 (limit: 1114)
CGroup: /system.slice/lfd.service
├─3318 lfd - sleeping
├─3329 lfd - checking system integrity
├─3331 sh -c /usr/bin/md5sum /usr/bin/* /usr/sbin/* /bin/* /sbin/* /usr/local/bin/* /usr/local/sbin/* /etc/init.d/* /etc/xinetd.d/*
└─3332 /usr/bin/md5sum /usr/bin/NF /usr/bin/VGAuthService /usr/bin/[ /usr/bin/aa-enabled /usr/bin/aa-exec /usr/bin/acpi_listen /usr/
Jul 03 06:26:12 ubuntu1804 systemd[1]: Starting ConfigServer Firewall & Security - lfd...
Jul 03 06:26:13 ubuntu1804 systemd[1]: Started ConfigServer Firewall & Security - lfd.
Accede a CSF UI
Ahora abre tu navegador web y escribe la URL http://192.168.0.4:8080. Serás redirigido a la siguiente página:
Proporciona el nombre de usuario y la contraseña de administrador que especificaste en el archivo de configuración y haz clic en el botón ‘Entrar’. Deberías ver el panel de control predeterminado de CSF en la siguiente página:
Desde aquí puedes permitir, denegar y desbloquear direcciones IP específicas rápidamente. También puede buscar direcciones IP, permitir y denegar direcciones IP, reiniciar y activar firewalls y permitir/denegar temporalmente direcciones IP.
Ahora haz clic en el menú csf. Deberías ver la siguiente página:
Desde aquí, puedes permitir, denegar y desbloquear direcciones IP específicas rápidamente. También puede buscar direcciones IP, permitir y denegar direcciones IP, reiniciar y activar firewalls y permitir/denegar temporalmente direcciones IP.
¡Felicidades! Has instalado con éxito Config Server Firewall.
Si tienes alguna pregunta, no dudes en contactarnos en soporte@clouding.io.