Saltar a contenido

Bastionado de frontera1

Para mejorar la seguridad de nuestra frontera, configuraremos un cortafuegos que solo permita acceso a los puertos que hemos abierto explícitamente, esto parecerá redundante ya que Proxmox está actuando como cortafuegos también a través de DNAT como fue documentado anteriormente, pero nos ayudará igualmente al actuar como una capa extra de seguridad.

También modificaremos el servicio SSH para que este solo permita el uso de llaves públicas para iniciar sesión, lo cuál bloqueará completamente cualquier intento de ataque por fuerza bruta.

Cortafuegos

Desactivar IPv6

Ya que el protocolo IPv6 no será utilizado en la red interna, desactivaremos el uso de este para mejorar la seguridad de nuestra red, para ello podemos editar el archivo /etc/default/ufw y modificar la siguiente línea:

IPV6=no

Creación de reglas

Las reglas que deseamos aplicar en nuestro cortafuegos son las siguientes:

  • Bloquear por defecto cualquier petición entrante.
  • Permitir todas las peticiones al exterior.
  • Solo permitir las peticiones entrantes por los puertos TCP 22, 80 y 443, solo se permite también acceso al puerto 53 por UDP.

Para conseguir esto utilizaremos los siguientes comandos:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22,80,443/tcp
sudo ufw allow 53/udp

Una vez las hayamos configurado correctamente, activaremos las reglas con el comando sudo ufw enable, ahora, si abrimos un puerto no permitido e intentamos acceder a este desde otra máquina, nuestra petición será bloqueada.

Funcionamiento exitoso del cortafuegos.

Funcionamiento exitoso del cortafuegos.

Como se puede ver, las peticiones al puerto 80 de la máquina son exitosas mientras que las dirigidas al puerto 81 son rechazadas.

Note

Para poder listar las reglas configuradas en la máquina se puede utilizar el siguiente comando:

sudo ufw status numbered

Si se desea borrar alguna regla, se puede utilizar el comando sudo ufw delete $REGLA donde $REGLA sea el número utilizado en la lista para esta.

SSH

Mientras que hay múltiples maneras de mejorar la seguridad de un servidor SSH, la más sencilla de implementar que utilizaremos será configurando la siguiente directiva en el archivo /etc/ssh/sshd_config:

PasswordAuthentication no

Una vez configurado el archivo, nos aseguraremos de configurar una llave SSH en el servidor para no quedarnos encerrados fuera de este y reiniciaremos el servicio SSH.

ssh-copy-id frontera1
ssh frontera1
sudo systemctl restart ssh

De esta manera solo se permitirá acceso por SSH si el cliente está utilizando una llave pública, lo cual mejora considerablemente la seguridad de nuestro servidor.