Skip to main content

Pfsense como cliente Wireguard

Agradecimientos: Adrian Almenar Y Eduardo Collado.

En primer lugar, dispondremos de un servidor debian con wireguard instalado.

Creamos un nuevo cliente Wireguard que será el peer de nuestro pfsense.

Supongamos que nuestro pfsense está en la IP 172.30.99.1 con máscara /24, y nuestro wireguard está en la IP 10.9.0.1/24

La configuración de este cliente de nuestro ejemplo sería la siguiente en el caso de configurar un PC de sobremesa.

[Interface]
Address = 10.9.0.9/24
DNS = 10.9.0.1
MTU = 1280
PrivateKey = yJaZ83TK7fJJcCbEEXXXXXXXXXXXXXXXXXXX=
[Peer]
AllowedIPs = 0.0.0.0/0,::/0
Endpoint = A.B.C.D:51820
PersistentKeepalive = 25
PresharedKey = 6qYoBSUpHP5saQJGq9n9tr/LXXXXXXXXXXXXXXXXXXX=
PublicKey = 8wmAPrLjFDjSabOyeTTL5U1XXXXXXXXXXXXXXXXXXX=

Ahora en nuestro fichero que está en /etc/wireguard/wg0.conf la configuración del peer que acabamos de crear sería:

[Peer]
PublicKey = JT4RLy/kHvZvm4ahJ9ATIXXXXXXXXXXXXXXXXXXX=
PresharedKey = 6qYoBSUpHP5saQJGq9n9tr/LXXXXXXXXXXXXXXXXXXX=
AllowedIPs = 10.9.0.9/32,172.30.99.0/24,fd86:ea04:1115::9/128

Nota importante, en las AllowedIPs = 10.9.0.9/32,172.30.99.0/24 hay que poner el rango de la lan de Pfsense. 172.30.99.0/24

Veamos a que corresponde cada cosa

PublicKey = 8wmAPrLjFDjSabOyeTTL5U1XXXXXXXXXXXXXXXXXXX= 

Es la clave pública de nuestro servidor Wireguard.

Instalamos Wireguard en pfsense. Vamos a System -> Package Manager -> Available Packages y buscamos wireguard

Captura de Pantalla 2022-09-22 a las 19.25.23.png

Una vez instalado, lo habilitamos para ello vamos al menú VPN -> Wireguard -> Settings y le damos a Enable

Captura de Pantalla 2022-09-22 a las 19.26.54.png

Ahora vamos a tunnels

Creamos un túnel nuevo

Captura de Pantalla 2022-09-22 a las 19.27.48.png

Ahora en asignaciones de red asignamos la interfaz una vez creada y el asignamos IP la 10.9.0.9/24

Captura de Pantalla 2022-09-22 a las 19.36.20.png

Captura de Pantalla 2022-09-22 a las 19.37.56.png

Tal y como aparece en la config de cliente

[Interface]
Address = 10.9.0.9/24

Ahora configuramos el endpoint con la IP del servidor Debian y la clave pública y la preshared key (si la tenemos)

Captura de Pantalla 2022-09-22 a las 19.40.04.png

Con esto, nuestro túnel ya debería de estar levantado

Captura de Pantalla 2022-09-22 a las 19.51.16.png

Ahora estableceremos las ip a las que puede conectarse en peers, en la parte inferior en Address Configuration agregaremos las IP permitidas

Captura de Pantalla 2022-09-22 a las 19.54.08.png

En nuestro caso la 10.9.0.9/32 (nuestra IP), y las ip de las redes conectadas en el Wireguard Debian (aunque estén conectadas a otras redes por IPSEC)

Ahora vamos a routing y agregamos un nuevo gateway

Captura de Pantalla 2022-09-22 a las 19.56.27.png

Captura de Pantalla 2022-09-22 a las 19.57.02.png

Ahora vamos a static routes, y añadimos las redes a las que queremos conectarnos

Captura de Pantalla 2022-09-22 a las 19.58.22.png

Captura de Pantalla 2022-09-22 a las 19.58.15.png

Por último en las reglas LAN habilitamos el acceso a esas redes, para ello vamos a firewall -> Rules -> LAN

Captura de Pantalla 2022-09-22 a las 19.59.57.png

Importante: En las reglas hay que desplegar las opciones avanzadas, y poner como gateway, nuestro gateway de wireguard

Captura de Pantalla 2022-09-22 a las 20.01.02.png


Captura de Pantalla 2022-09-22 a las 20.01.56.png