Páginas

martes, 3 de noviembre de 2020

Configurar VPN Acceso Remoto Mikrotik BGP


Configurar VPN para Acceso Remoto

Necesitamos un VPS (Cloud Compute), un servidor básico, por ejemplo, un chr de Mikrotik cuyo proceso de instalación detallamos en un vídeo anterior.

Para conseguirlo haremos un túnel VPN y enrutamiento BGP (configuración básica) y declarar las redes para que todo funcione. Lo ideal es tener una red ruteada (OSPF) para que conectando al core principal toda la red sea accesible. Hetzner nos otorgará a través del servidor cloud chr una dirección IP pública accesible desde Internet.

La prueba la haremos conectandonos desde un teléfono móvil hacia el cloud.

Abrimos el Winbox y accedemos a nuestro cloud chr Mikrotik que habíamos configurado en la nube de Hetzner. 


Una vez en nuestro cloud chr activamos el PPTP Server (Protocolo inseguro, creado solo para realizar el laboratorio. Para equipos en producción usaremos VPN SSTP


En el firewall vamos a agregar una regla NAT que hará NAT a todo lo que llegue al router -> IP -> Firewall -> Nat




En IP DNS no hace falta cambiar nada, las DNS vienen configuradas por defecto.


Vamos a crear un Profile Name: userpptp, encriptación obligarotira, Local Address 4.1.1.1, Remote Address 4.1.1.2 y un Secret con contraseña, Service pptp y el Profile userpptp.




Ahora vamos a nuestro Router de Borde (BordeRouter) y creamos el cliente pptp con los datos del servidor pptp y la IP pública del chr.




Una vez levantado el túnel VPN podemos proceder con el enrutamiento a nivel de BGP para acceder a nuestro router de manera transparente.

En nuestro cloud chr vamos a crear nuestra intefaz lógica Loopback.



Le asignamos una dirección IP a la interfaz Loopback con el que identificaremos al router chr.


Entramos en Routing BGP y le asignamos para crear una Instance, el AS lo identificamos con un número, por ejemplo, 150 y Router ID 1.1.5.3, que es la IP que hemos asignado a la interfáz lógica Loopback.


En el otro router BordeRouter, creamos la Instance BGP, al AS le asignamos un número, por ejemplo 900:


Regresamos al chr y creamos un Peer, la instancia default y la dirección remota 4.1.1.2.


Volvemos a nuestro BordeRouter y creamos el BGP Peer, donde la IP remota es 4.1.1.1 que es la dirección IP del túnel pptp y el AS del chr que es 450.





En este punto nuestros dos routers son accesibles, nuestro router en la nube chr y nuestro BordeRouter, pueden comunicarse y comparten rutas e ips.


Router list BordeRouter


En la pestaña BGP Networks se agregan todas las subredes detrás del router a las que queremos tener acceso. Por ejemplo:


Vamos a crear nueva credencial para conectar un teléfono móvil a nuestro router en la nube.

PPP -> Secrets -> PPP Secret

Name: phone
Password: **********
Service: pptp
profile: default
Local Address: 4.1.1.3
Remote Address: 4.1.1.4

Apply y OK


Para establecer la conexión, lógicamente desde fuera de la red, utilizo los datos de mi proveedor de telefonía (Simyo), creando una nueva conexión VPN del tipo PPTP.




Conexión establecida:



Desactivar BtServer


Implementando reglas básicas de seguridad en el Firewall

/ip firewall filter printFlags: X - disabled, I - invalid, D - dynamic 0 ;;; Aceptar tr·fico SSTP que vaya a cualquier lugar, protocolo TCP, puerto 443. chain=input action=accept protocol=tcp port=443 log=no log-prefix="" 1 ;;; Permitir conexiones nuevas desde mi LAN chain=input action=accept connection-state=new src-address=192.168.88.0/24 log=no log-prefix="" 2 ;;; Permitir trafico establecido. chain=input action=accept connection-state=established log=no log-prefix="" 3 ;;; Permitir trafico relacionado chain=input action=accept connection-state=related log=no log-prefix="" 5 ;;; Permitir trafico SSH VPN destinado al puerto 2222. chain=input action=accept protocol=tcp dst-port=2222 log=no log-prefix="" 6 ;;; Permitir trafico Loopback-BGP. Puerto por defecto BGP 179 TCP chain=input action=accept protocol=tcp dst-port=179 log=no log-prefix="" 7 ;;; Permitir trafico ppptp-userpptp.Puerto por defecto 1723 en TCP. chain=input action=accept protocol=tcp dst-port=1723 log=no log-prefix="" 8 ;;; Permitir puerto 8291 Winbox chain=input action=accept protocol=tcp in-interface=ether1 dst-port=8291 log=no log-prefix="" 9 ;;; Denegar todo lo demas. chain=input action=drop log=no log-prefix="" 10 chain=forward action=jump jump-target=tcp protocol=tcp log=no log-prefix="" 11 ;;; Denegar conexiones invalidas chain=forward action=drop connection-state=invalid log=no log-prefix="" 12 ;;; Denegar conexiones NBT a los puertos 137-139 chain=tcp action=drop protocol=tcp dst-port=137-139 log=no log-prefix="" 13 ;;; Denegar conexiones cifs al puerto 445 chain=tcp action=drop protocol=tcp dst-port=445 log=no log-prefix="" 14 ;;; Denegar conexiones RPC portmapper al puerto 135 chain=tcp action=drop protocol=tcp dst-port=135 log=no log-prefix="" 15 ;;; Denegar conexionex TFTP al puerto 69. chain=tcp action=drop protocol=tcp dst-port=69 log=no log-prefix="" 16 ;;; Permitir conexionex establecidas chain=forward action=accept connection-state=established log=no log-prefix="" 17 ;;; Permitir conexiones relacionadas chain=forward action=accept connection-state=related log=no log-prefix=""  18 chain=forward action=drop log=no log-prefix="" Flags: X - disabled, I - invalid, D - dynamic 0 ;;; Hacer NAT a todo chain=srcnat action=masquerade log=no log-prefix="" > ip firewall raw print Flags: X - disabled, I - invalid, D - dynamic 0 ;;; Denegar consultas DNS desde WAN protocolo udp. chain=prerouting action=drop in-interface=ether1 dst-port=53 log=no log-prefix="" protocol=udp 1 ;;; Denegar consultas DNS desde WAN protocolo tcp. chain=prerouting action=drop in-interface=ether1 dst-port=53 log=no log-prefix="" protocol=tcp 2 ;;; Denegar conexiones entrantes al puerto SSH chain=prerouting action=drop in-interface=ether1 dst-port=22 log=no log-prefix="" protocol=tcp

Mikrotik es genial!


No hay comentarios:

Publicar un comentario