Cómo Instalar y Configurar Config Server Firewall (CSF) en Ubuntu 18.04

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/[email protected]' -> 'webmin/csf/images/[email protected]'
'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 = "[email protected]
# 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.
UI_BAN = "1"
#Only IPs (or CIDR's) listed in the file /etc/csf/ui/ui.allow will be allowed to login to the UI."
UI_ALLOW = "1"

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 [email protected]

To write a comment on this article, fill out the form below. Fields marked with an asterisk (*) are required.