Apuntes de Kirby
  • 👀whoami
  • 🦉Redes
    • Introducción Redes
      • Organizaciones
      • Historia
      • Puntos de conexión
      • Métodos de acceso a la red
    • Clasificación de las redes
    • Topología de las red
    • Direccionamiento IP
      • IPv4
        • Subredes IPv4
        • Superredes IPv4
        • VLSM
      • IPv6
      • MAC
      • NAT
    • Enrutamiento estático
    • Enrutamiento dinámico
      • RIPv1 & RIPv2
      • Tablas de enrutamiento
      • 🚧Redes conmutadas
    • CML
      • 🚧1er CML lab
    • CISCO
      • ¿Qué son las VLAN?
        • Ejemplo 1 de VLAN
        • Ejemplo 2 de VLAN
      • Acceso y password
      • NAT / PAT
    • Firewalls
      • Tipos de firewalls
      • ZPF
        • Funcionamiento
        • Configurando un ZPF
      • Sophos Firewall XG
        • Sophos home
        • Aprendiendo a usar Sophos
      • pfSense
        • Instalando pfSense
        • OpenVPN en pfSense
        • Port Forward
        • Alias
    • Proxy
      • Squid en pfSense
        • Squid Proxy Server
        • SquidGuard Proxy
      • Proxy reverse Nginx
    • 🚧Suricata
  • 🐝Servicios
    • Servidores Web
      • Nginx
        • NGINX, hosts virtuales
        • Hosts virtuales basados en dominio
        • PHP-FPM
        • Nginx: PHP y MySQL
          • MySQLi - PHP
        • En Alpine linux
        • 🚧Proxy
    • Servidores de correo
      • Seguridad en el correo
      • Postfix
      • hMailServer
      • Clientes de correo
        • Mailutils
        • Mutt
    • Servidores de FTP
      • FileZilla
      • VSFTPD
      • FTP vía IIS
    • Servidores DNS
      • DNS - Windows Server 2016
      • DNS - Ubuntu Server 22.04
      • Systemd
    • Servidores DHCP
      • DHCP-Windows Server 2016
      • DHCP-Ubuntu Server 22.04
    • Servidores MySQL
    • 🚧Mensajería instantánea
      • Ejabberd
    • 🚧Imágenes - Vídeos
      • FFMPEG + YT-DLP
      • Plex
      • Jellyfin
      • Plesk
      • RTMP
      • SRT
    • Webmin + Virtualmin
  • NextCloud
  • 🔑Seguridad
    • NAS
      • Instalación Synology NAS en VirtualBox
        • Creación de volúmenes y su uso
        • Actualización Synology NAS
        • Creación de usuarios y carpetas compartidas
        • Funciones del panel de control
          • Acceso por SSH
          • Configuración de los servicios de archivos
          • Configuración de red
          • Copias de seguridad (restauración)
          • Seguridad
          • Personalizar páginas de inicio
          • Servicio de notificaciones
        • Centro de paquetes Synology
          • Servidores multimedia
          • Paquetes de utilidades
          • Cloud Sync
          • Hyper Backup
          • Synology Office
      • Truenas
        • Rsync en Truenas
      • OpenmediaVault
    • Backups
      • Rsync
        • Ejemplo de rsync
    • ¿Qué son las ACL?
    • SOPS/AGE
    • RAID
      • mdadm
  • 🐳Virtualización
    • Proxmox
      • Instalar en VMWare
      • Instalar en VirtualBox
      • Entorno Proxmox
      • Almacenamiento local
      • Añadir discos
      • Clonar
      • Qemu agent
      • Linux container - LXC
      • Clúster
      • Red Interna
      • 🚧Proxmox Backup
      • 🚧Otras consideraciones
    • Alpine Linux
    • Contenedores
      • Docker
        • YAML
        • Instalando Docker
        • Portainer
          • Instalando Portainer
          • Dentro de Portainer
        • Docker volumen
        • Docker compose
          • Docker: PHP y MySQL
          • Importar sitio web en Docker
          • Instalando Wordpress
      • Pi-hole
        • Instalando Pi-hole en Docker
        • Instalando Pi-hole en Debian
        • RDP
          • RDP - Docker
  • 🐞Misceláneas
    • Datos - codificación
    • IPTables
    • Túnel con Cloudflare
    • Servidor de video
    • Comandos de Linux
    • Anaconda & Spyder
    • CGI - NGINX
    • Arduino
      • Capítulo 0 Blink
      • Capítulo 1 Led
      • Capítulo 2 Botton & LED
  • ⁉️Interesante
    • Curioso
    • Ideas
Powered by GitBook
On this page
  • DMZ - Zona Desmilitarizada
  • Nuestro escenario
  • La interfaz de red de la DMZ
  • Reglas de salida (outbond) y reglas de entrada (port forward)
  • Acceso al servicio web - 172.27.1.200
  • Crear la regla de entrada
  • Comprobando la conexión
  • Acceso al servicio SSH - 172.27.1.201
  • Comprobando el servicio de SSH
  • Otras opciones

Was this helpful?

Edit on GitHub
  1. Redes
  2. Firewalls
  3. pfSense

Port Forward

Port forward - DMZ

DMZ - Zona Desmilitarizada

Cuando hablamos de DMZ hablamos de una red que se encuentra entre la red interna de una organización e Internet (red no confiable). En una configuración típica la DMZ ofrece servicios y recursos que necesitan ser accesibles desde Internet, como puede ser: servicio web, servicio de correo electrónico, etc. Estos servicios de la DMZ están expuestos a amenazas, pero se encuentran fuera de la red interna, separadas por uno o más firewalls, según el diseño de la red establecido.

La configuración de la DMZ se establece de modo que el tráfico desde y hacia Internet pueda acceder a los servicios en la DMZ, pero evitando el acceso a la red interna de la organización. Esto se consigue mediante reglas de firewall y configuraciones de enrutamiento que permiten el control del tráfico de datos entre las diferentes zonas de la red.

Nuestro escenario

La idea es probar el tráfico a través del firewall, permitiendo el acceso a dos servicios instalados en dos equipos de la DMZ.

Para nuestra prueba voy a utilizar mis dos VM con Debian:

  • En una VM el servicio web básico HTTP con Nginx

  • En otra VM el servicio SSH con la configuración por defecto

Al firewall pfSense le vamos habilitar tres interfaces de red:

  • Bridge para la salida a Internet como WAN

  • Solo anfitrión para la LAN

  • Red interna para la DMZ

En mi caso, queda algo como lo siguiente:

Adaptador
Red

Puente

192.168.1.53 /24 | DHCP

Solo anfitrión

192.168.56.2 /24 | IP estática

Red Interna

172.27.1.2 /24 | IP estática

En mi pfSense se puede ver de la siguiente manera:

En el diagrama de la red se muestran las dos VM conectadas a la DMZ, así como los servidores y el servicio que van a brindar: HTTP y SSH.

La interfaz de red de la DMZ

Para habilitar la interfaz de red para la DMZ necesitas primero tener apagada la VM del pfSense, agregar el tercer adaptador de red en modo red interna y encender el firewall. Adicionalmente, debemos renombrar la interfaz como DMZ dado que el sistema la nombra como Option 1 por defecto.

Las direcciones IP de las interfaces de red LAN y DMZ son IP estáticas y en las mismas tenemos que configurar el servicio DHCP para que le brinde direcciones IP a las VM que vamos a conectar por cada interfaz de red, esto es:

Interfaz
IP de inicio
IP final

LAN

192.168.56.200

192.168.56.210

DMZ

172.27.1.200

172.27.1.210

La siguiente imagen muestra las asignaciones de las IP a las VM conectadas por cada interfaz de red: LAN y DMZ.

Reglas de salida (outbond) y reglas de entrada (port forward)

Antes de continuar con nuestra configuración de los servicios en la DMZ, primero aclaremos algo.

De modo automático, pfSense genera reglas de salida a través de la WAN para las redes que tenemos declaradas en cada interfaz del firewall. Dichas reglas se pueden generar de manera manual también y las encontramos en: Firewall - NAT - Outbond.

Dado que tenemos declaradas las redes LAN y DMZ encontraremos dos reglas por defecto.

Si queremos crear reglas de entrada en el pfSense tenemos que ir a: Firewall - NAT - Port Forward. Por tanto, esto es lo que vamos a hacer para cada servicio: el de HTTP y el de SSH.

Acceso al servicio web - 172.27.1.200

El primer servicio que vamos a habilitar será la web que se aloja en el servidor con IP 172.27.1.200. Es un servicio básico a través del puerto 80.

Crear la regla de entrada

Vamos a crear una regla de mapeo que permita que todo lo que venga a través de la WAN hará la traducción de red (recuerda que es una regla NAT). A su vez, queremos que reenvíe el tráfico hacia el puerto 80 del servidor web que tenemos en la VM que está en la DMZ. Para ello, nos dirigimos a Firewall - NAT - Port Forward y añadimos una nueva regla.

Las opciones a tener en cuenta en la nueva regla NAT a crear son:

  • Interfaz: WAN

  • Address family: IPv4

  • Protocol: TCP

  • Destination: WAN address

  • Destination port: HTTP (puerto 80 por defecto)

  • Redirect target IP: single host - 172.27.1.200

  • Redirect target port: HTTP (puerto 80 por defecto)

  • Description: regla NAT en WAN

Una vez guardados los cambios, se nos visualizará como sigue:

Esta misma regla también la podemos encontrar en Firewall - Rules - WAN.

Comprobando la conexión

Una vez creada la regla NAT podemos comprobar que visualizamos nuestro sitio web a través del firewall.

¿Qué IP tenemos que poner en el navegador de nuestro equipo anfitrión para llegar al sitio web que tenemos en la DMZ? Efectivamente, la IP pública del firewall que, en mi caso, sería: 192.168.1.53 (cambié de pfSense y dejé la IP que me asignó por defecto: 192.168.1.106). Así que cuando hacemos la solicitud de acceso a la página web del servidor que se encuentra en la DMZ el firewall nos redirige y nos muestra la web:

Acceso al servicio SSH - 172.27.1.201

En esta ocasión activaremos el acceso al servicio de SSH que se encuentra en otro servidor en la DMZ. El servicio está en otra VM con Debian con la IP 172.27.1.201 y el puerto 22 por defecto.

Volvemos a Firewall - NAT - Port Forward y clicamos en el botón de añadir una nueva regla NAT. Las opciones a tener en cuenta en esta ocasión son similares a la anterior:

  • Interfaz: WAN

  • Address family: IPv4

  • Protocol: TCP

  • Destination: WAN address

  • Destination port: SSH (puerto 22 por defecto)

  • Redirect target IP: single host - 172.27.7.201

  • Redirect target port: SSH (puerto 22 por defecto)

  • Description: regla NAT en WAN para SSH en DMZ

Una vez guardados los cambios, se nos visualizará junto a la primera regla NAT que hemos creado para el protocolo HTTP:

Comprobando el servicio de SSH

Para testear el servicio de SSH me he ido al terminal y he tecleado la IP pública del pfsense:

ssh -p 22 user@192.168.1.53 

y puedo comprobar que me permite el acceso al dispositivo donde tengo habilitado el servicio SSH.

Recuerda que la seguridad a nivel de red es en capas como una cebolla. No basta configurar el firewall permitiendo el tráfico hacia determinados servicios y puertos. También es necesario disponer de firewall a nivel local: Windows Defender, IPTables, UFW para Ubuntu, a modo de otra capa extra de protección.

Otras opciones

Para probar el firewall podemos utilizar:

  • Una de las VM donde hemos instalado y configurado el servicio web con nginx con un dominio y puertos diferentes al puerto 80. Por ejemplo: www.punky.com:8080

  • El servidor de correos

  • Una VM con el servicio de FTP instalado.

PreviousOpenVPN en pfSenseNextAlias

Last updated 4 months ago

Was this helpful?

🦉
Configuración del pfSense
Diagrama de la red
Las tres interfaces de red
Las IP asignadas a las VM conectadas a las redes LAN y DMZ
Reglas de salida en el firewall
La regla NAT permitiendo el acceso al puerto 80 de HTTP en el server de la DMZ
La pàgina web visible desde la WAN
Reglas NAT para HTTP y SSH