Configuración de router Mikrotik - Capítulo 2
Bueno, pues haber publicado la semana pasada el capítulo 1 en el que dábamos los pasos básicos para tener internet en nuestro Mikrotik, esta semana damos pasos muy interesantes.
Puedes comprar tu mikrotik en estos enlaces HAP-Ac2 https://amzn.to/3YVHo7r o Mikrotik HAP AX2 https://amzn.to/3OV8Cqc MikroTik HAP ax3 https://amzn.to/45Rg3pf
Estos pasos van a a ser:
- A usar el DDNS que nos facilita Mikrotik
- A redirigir la navegación hacia los puertos de Nginx Proxy Manager para usar nuestros proxy inversos.
- A configurar WIREGUARD de manera sencilla y clara
- A cambiar los DNS por los del bloqueador de publicidad (Adguard) para no ver anuncios ni en nuestra red local, ni en nuestra VPN.
- Securizaremos el acceso a nuestro Mikrotik
- Aprenderemos a abrir puertos por si fuese necesario
- Por último, os mostraré como hacer backup de nuestra configuración y de cómo restaurarla en caso necesario.
Usar el DDNS que nos facilita Mikrotik
Una vez que volvemos a entrar a la gestión de nuestro equipo a través de la app Winbox, tenemos que ir en el menú lateral a IP -> Cloud
y al pulsar se nos abrirá una ventana que se llama Cloud y donde debemos ver nuestra IP Pública. Aquí tenemos que hacer tres cosas:
- Marcar el check de DDNS Enabled
- Ponerle un tiempo de actualización a nuestro DDNS, por ejemplo, cada 5 minutos
- Pulsaremos en Apply
Si esperamos un par de segundos, veremos nuestra dirección de DDNS, que es única dentro de cada equipo Mikrotik.
Pulsamos en OK para salir y nos vamos al siguiente paso.
Si no sabes para que sirve un DDNS, te dejo por aquí el post donde explico unos conceptos básicos que debemos conocer si tenemos un NAS.
Redirigir la navegación hacia los puertos de Nginx Proxy Manager para usar nuestros proxy inversos
Este es un paso que podemos ver en el video que acompaña a este post para ver porque hay que hacerlo ya que este paso, nos permite hacer las redirecciones de IPLocal:puerto a nuestras direcciones de proxy inversos.
Si no hacemos este paso, nuestro router cuando intentamos entrar a un proxy inverso que hayamos creado, no podrá hacer el paso de "traducción" de ip interna a dirección web.
¿Cómo hacemos este paso?
Os dejaré dos formas de hacerlo, la forma cómoda por ventanas y la otra forma por línea de comandos.
Lo primero que tenemos que hacer es irnos a IP -> Firewall
Luego nos abre la ventana de firewall y nos vamos a la pestaña NAT donde pulsaremos en el icono de +
Se nos abre la ventana de configuración de una nueva regla de NAT dónde tenemos que hacer los siguientes cambios.
- En la pestaña General vamos a Chain y seleccionamos dstnat
- En Dst. Address marcamos la casilla y se nos pondrá un símbolo de admiración en ella y en el campo escribimos la dirección de nuestro router, en mi caso 192.168.0.1
- En Protocol elegimos tcp
- En Dst. Port ponemos el puerto externo para HTTP en esta primera configuración, que es el 80
Ahora vamos a la pestaña Extra. En ella, en Dst. Address Type pulsamos en el desplegable y desplegamos el menú, seleccionando la opción local
Y por último en la pestaña Action:
- Desplegamos el menú de la parte de Action y seleccionamos dst-nat
- En To Addresses ponemos la IP de nuestro NAS
- y en To Ports ponemos el puerto que hayamos elegido en NPM en mi caso el 9081
Estos pasos son para el reenvío del tráfico del HTTP.
Repite estos pasos para el tráfico HTTPS sustituyendo el puerto 80 por el 443 y en la pestaña action en To Ports, tendrás que cambiarlo por el puerto que hayas elegido en NPM, en mi caso el 3443.
Si quisiéramos hacerlo por terminal pulsamos en terminal e introduciremos el siguiente comando, acordaos de poner vuestra IP del NAS y el puerto que hayáis elegido en NPM.
# Para HTTP
/ip firewall nat add action=dst-nat chain=dstnat dst-address=!192.168.0.1 dst-address-type=local dst-port=80 protocol=tcp to-addresses=192.168.0.225 to-ports=9081
# Para HTTPS
/ip firewall nat add action=dst-nat chain=dstnat dst-address=!192.168.0.1 dst-address-type=local dst-port=443 protocol=tcp to-addresses=192.168.0.225 to-ports=3443
Y deben aparecer las reglas en la ventana de Firewall, en la pestaña de NAT.
Instalación de Wireguard
Aunque hay varias formas de configurarlo, aquí lo vamos a configurar en modo Road Warrior, es decir, que todos los clientes que tengamos configurados se conecten a nuestro Mikrotik directamente.
Para ello vamos a Interfaces, y dentro de la ventana que se nos abre que se llama Interface List, pulsaremos en + y del desplegable que se abre, elegiremos la opción Wireguard.
Se nos abrirá una ventana que se llama New Interface y aquí los cambios a hacer son:
- Darle un nombre a la interfaz de Wireguard, en nuestro caso wireguard-canal
- Y en Listen Port, si queremos, cambiaremos el puerto por el que queramos. Wireguard usa por defecto el 51820, así que cogeremos otro, en nuestro caso el 13231 que nos sale.
- Pulsamos en OK
Esta configuración pasará a la ventana Interface List donde veremos la interfaz wireguard-canal que hemos creado.
Ahora tenemos que crear un rango de red para nuestra red Wireguard. Para ello vamos en el menú lateral a IP -> Addresses y en la ventana de Adress List que se nos abre, pulsamos en +
Se nos abre una nueva ventana que se llama New Address y ahi vamos a configurar el rango de red que va a tener nuestro wireguard, en este caso 20.20.20.1/24 y en el desplegable que se nos abre en interface, tenemos que seleccionar wireguard-canal. Pulsamos en OK para aceptar
Creamos un regla en el firewall para que nos acepte el tráfico a través de wireguard. Para ello vamos a IP -> Firewall y en la pestaña Filter Rules creamos una nueva regla con el boton +
Se nos abre una ventana de New Firewall Rule como en el paso de NPM:
- En chain elegimos input
- En protocol elegimos UDP
- En Dst. Port ponemos el puerto que hayamos elegido en Listen Port, en el caso del ejemplo, el 13231
Y dentro de la pestaña Action, debemos asegurarnos que esta seleccionado accept y pulsamos en OK.
Esta regla hará que todo el tráfico que llegue por el puerto 13231 estará autorizado, a falta de configurar las claves en los clientes de wireguard.
Como las reglas de firewall son lineales, lo que tenemos que hacer en la ventana de filter rules es seleccionarla y ponerla por encima de las demás.
Vamos a la creación de un peer en Android.
Lo primero es bajar la app oficial de Wireguard desde Google Play en el siguiente enlace.
Una vez instalada, la abrimos. Pulsamos en + para añadir un nuevo perfil de configuración.
Y nos debe salir un desplegable desde la parte de abajo con tres opciones, dónde vamos a elegir Crear de cero.
Nos saldrá la ventana de configuración, dónde lo primero que debemos de hacer es pulsar sobre el símbolo de regenerar del campo Clave privada
Luego pulsamos en añadir par y ya nos salen los campos de configuración completos que tenemos que configurar con las claves privadas (oculta por seguridad) y la publica de nuestro peer.
Qué vamos a configurar aquí:
- Damos un nombre a la interfaz, podemos ponerle wireguard-canal
- En Direcciones pulsamos y ponemos la siguiente a la que hemos configurado para el servidor, por ejemplo, la 20.20.20.2/32
- En Servidores DNS, si tenemos un bloqueador de publicidad montado en nuestro servidor, pondremos esa direccion IP, ponemos una coma y el DNS de cloudflare por ejemplo. Debería quedar en mi caso como 192.168.0.227,1.1.1.1
- En la parte de Pares, en Clave Pública, la clave Publica de nuestro servidor de Wireguard. La obtenemos yendo a winbox y seleccionamos Wireguard en el menú lateral. Haremos doble click sobre el nombre de nuestra interfaz wireguard-canal y se nos abrirá una ventana donde podemos copiar la clave pública que nos hace falta.
- En Keepalive persistente, le configuramos 25 segundos
- En Endpoint, ponemos nuestro DDNS de Mikrotik generado en el primer paso del post (o el tuyo si ya tuvieses uno) seguido por dos puntos y el puerto que elegimos en el Listen Port.
- En IP Permitidas pondremos 0.0.0.0/0, es decir, todo el tráfico.
Nos quedará algo así
En iOS es similar. La app la podemos bajar de este enlace.
Los pasos son similares, en la pantalla de bienvenida pulsamos en +
Nos sale un menú desde la parte de abajo y seleccionamos Crear desde Cero
Pasamos a la parte de configuración, muy similar a la de Android.
Qué vamos a configurar aquí:
- Damos un nombre a la interfaz, podemos ponerle wireguard-canal
- Pulsamos en generar un par de claves.
- En Direcciones pulsamos y ponemos la siguiente a la que hemos configurado para el servidor, por ejemplo, la 20.20.20.3/32
- En puerto de escucha y MTU lo dejaremos en opcional
- En Servidores DNS, si tenemos un bloqueador de publicidad montado en nuestro servidor, pondremos esa direccion IP, ponemos una coma y el DNS de cloudflare por ejemplo. Debería quedar en mi caso como 192.168.0.227,1.1.1.1
- En la parte de Par, en Clave Pública, la Clave Publica de nuestro servidor de Wireguard. La obtenemos yendo a winbox y seleccionamos Wireguard en el menú lateral. Haremos doble click sobre el nombre de nuestra interfaz wireguard-canal y se nos abrirá una ventana donde podemos copiar la clave pública que nos hace falta.
- En Punto final, ponemos nuestro DDNS de Mikrotik generado en el primer paso del post (o el tuyo si ya tuvieses uno) seguido por dos puntos y el puerto que elegimos en el Listen Port.
- En IP Permitidas pondremos 0.0.0.0/0, es decir, todo el tráfico.
- En Keepalive persistente, le configuramos 25 segundos
Pero iOS nos depara una ventaja sobre la de android y es la activación automática. Si bajamos en la configuración de este perfil, podemos ver como hay un apartado que se llama Activación Bajo Demanda, con dos opciones, una que se llama celular y otra llamada wifi.
La parte de celular es para que se active automáticamente cuando el teléfono esté en datos.
La parte de wifi, al pulsarla se nos depliega otro menú, donde podemos elegir Excepto estos SSIDs y elegir la wifi de nuestra casa.
De esta forma nuestro terminal se conectará de forma automática a nuestra VPN de Wireguard en cuanto se desconecte de la wifi de casa. Esto nos hará por ejemplo no tener publicidad durante la navegación por internet, navegar con la ip de nuestra conexión de casa, o poder acceder a nuestras máquinas locales si es necesario.
Y por último debemos crear los Peers en el servidor wireguard del mikrotik
Vamos a winbox -> Wireguard -> Peers y pulsamos en +
Aqui configuramos los siguientes valores:
- En public Key ponemos la clave publica del cliente. La que hemos generado en Android o iOS
- En Endpoint ponemos el ddns de mikrotik creado en el primer punto del post (o el tuyo si ya tuvieses uno)
- En Endpoint el puerto de wireguard, en el ejemplo el 13231
- En Allowed Address, la dirección que le dimos a cada cliente en Android (20.20.20.2/32) o en iOS (20.20.20.3/32)
- En Persistent KeepAlive ponemos 25 segundos
Pulsamos en OK y ya estará nuestro peer creado.
Para probarlo, desconectate de la wifi, y cuando estes por datos móviles, activas el check de Wireguard. Ya debes tener conexión
Abrimos un navegador en el móvil y escribimos https://ipchicken.com y nos debe dar un valor que se corresponde con nuestra IP Pública de Casa.
Para comprobarlo puedes abrir un navegador en un ordenador de casa, poner la dirección https://ipchicken.com y ver que es la misma en el móvil conectado por VPN que en el ordenador de casa.
Cambiar los DNS por los del bloqueador de publicidad (Adguard o Pihole) para no ver anuncios ni en nuestra red local, ni en nuestra VPN.
Para ello vamos a IP -> DNS vamos a Servers y ponemos la IP de nuestro bloqueador de publicidad creado y como segundo, para no quedarnos sin navegación por si este bloqueador se cayese, ponemos la de Cloudflared (1.1.1.1) como el ejemplo que os muestro o las de Google
Al cambiarlo aquí, no tendremos que ir cambiandolo equipo por equipo, sino que en cuanto nuestros equipos refresquen su conexión a la wifi, cogerán de forma automática estos DNS.
Securizar el acceso a nuestro Mikrotik
La semana pasada cuando configuramos los modos de accesos a nuestro Mikrotik, vísteis como nos "atacaban".
Para securizar aún más nuestro equipo, iremos a IP -> Services y hacemos doble click en el nombre de Winbox.
Configuramos que esté disponible desde los rangos de IP de las subredes que hemos creado, es decir, la 192.168.0.0/24 para nuestra red local y la 20.20.20.0/24 para nuestra red de Wireguard.
Así podremos acceder a nuestro mikrotik desde fuera por si tuviésemos que hacer algún cambio en su configuración.
¿Cómo abrir puertos en nuestro Mikrotik?
Este es un proceso que no es tan cómodo como en otros equipos y que os explico de forma detallada porque es un poco raro en nuestro Mikrotik.
Vamos a ver por ejemplo que configuramos un docker que tiene configurado en la parte de puertos, la siguiente configuración 9200:9500.
Ese 9200 es el puerto que nosotros elegimos y el 9500 es el puerto de comunicación del docker.
Nos vamos a IP -> Firewall y en la ventana que se abre vamos a la pestaña NAT y pulsamos en el icono de +.
Se nos abre una ventana que es una vieja conocida. Haremos los siguientes cambios en la pestaña General:
- En Chain elegimos dstnat del desplegable
- En Protocol el que corresponda, en mi ejemplo TCP
- En Dst. Port, el puerto del contenedor, es decir, el 9500
- En In. Interface el nombre de nuestra conexión que configuramos en el post anterior.
En pestaña Action:
- En Action, seleccionamos dst-nat del desplegable
- En To Addresses, ponemos la IP del NAS
- En To Ports, el puerto que hayamos elegido para el contenedor, en el ejemplo el 9200.
Pulsaremos en OK y ya estará el puerto abierto.
Cómo realizar un backup de nuestra configuración y cómo restaurarla en caso necesario.
Una vez que ya tenemos configurado nuestro mikrotik, para no perder esta configuración en caso de desastre, tenemos que hacer un backup. Tendremos dos formas de hacerlo, en la nube Mikrotik o en local para custodiar el archivo posteriormente.
Para ello nos vamos a Files en el menú lateral. En la pestaña Cloud Backup, haremos la copia en su nube. Para ello pulsamo en upload backup
Esto nos abre una nueva ventana dónde le damos un nombre a nuestro Backup, le ponemos una contraseña de encriptación y pulsamos en Start
Para hacerlo en local, nos vamos a la pestaña de File y después el el botón de Backup.
En la ventana que se nos abre, damos un nombre y una contraseña y pulsamos sobre el botón backup.
Una vez lo vemos en la ventana de files, podemos pulsar el botón derecho y pulsar en download para guardarlo en local dentro de nuestro equipo o subirlo posteriormente a la nube, por si tenemos que tirar de él en caso de desastre.
Mi nombre es David Rodríguez, apasionado por un millón de cosas que lleven placas y chips dentro. Puedes encontrarme como @_Bilito en twitter y en grupo de Telegram de Synology NAS https://t.me/synologyNAS Tengo un canal de youtube que complementa al blog https://www.youtube.com/@_Bilito y que me harías un gran favor si te subscribes. También colaboro en podcast como Bateria 2x100 https://pod.link/1115144939 y además hemos comenzado otra aventura en otro podcast Detras del Mostrador https://pod.link/1657695301