Permitir terminal server desde un ddns únicamente.

Buenas!

Tengo la duda de si podría configurar el mikrotik para que sólo permita el acceso a terminal server (mapeando puerto) desde un ddns concreto.

Tengo:

Empresa A: El servidor al que quiero acceder por terminal server, al que acceden varios usuarios localmente por TS, un mikrotik gestiona la red.

Empresa B: Un usuario concreto tiene que poder acceder al servidor de la empresa A, pero únicamente desde el ddns (no tienen ip fija) desde la oficina, no quiero que después ese usuario desde su casa con los datos pueda acceder. De hecho, otra cosa que tengo que mirar es que pueda bloquear dicho acceso a un horario determinado, pero bueno, esto lo puedo hacer de otra manera si fuese demasiado complicado con el mikrotik.

Había pensado en un principio hacer una conexión por open vpn que ya lo tengo configurado en la empresa A (de hecho, tengo dos usuarios que trabajan desde casa y se conectan y tienen acceso a la red por completo), pero no me aclaro del todo cómo hacer para que, desde las ips del pool de OVPN tengan acceso exclusivo a una ip de la red, sin poder ver nada más.

Gracias de antemano.
 
Si sólo quieres que se conecte cuando estén en la oficina, y en la oficina B tienes un mikrotik, la mejor idea sería enlazar ambos equipos en un site-to-site (de router a router) y crear una política que únicamente llegue a esa máquina concreta. Mira el manual de IKEv2 para site-to-site, que te puede interesar. Es una solución más simple y sencilla de lo que te voy a proponer a continuación.

Si por el contrario el tipo se va a conectar levantando una VPN desde su propia máquina, la cosa se complica un poco, porque lo primero que tendrías que hacer es poner una regla de fierewall que sólo permita a ese tío conectar por VPN cuando viene de tal IP pública (la de la oficina). Para hacer esto, no uses OpenVPN si ya lo estás usando para los clientes RW, puesto que vas a tener que filtrar por IP de origen y sólo permitirle a ese tío concreto, desde esa IP concreta, levantar el túnel VPN. Podrías usar, por ejemplo, L2TP/IPsec, que es la más sencilla que se me ocurre para este caso.

Imaginemos que el tipo tiene la IP pública (la que sea) asociada al dominio empresaB.pericopalotes.com. Lo primero que haríamos sería crear un nuevo tipo de VPN, y permitir a esa VPN acceso únicamente desde la otra sede. Para ello meterías el dominio de la empresaB en una lista (IP -> Firewall -> Address List) para que resuelva dinámicamente su IP pública. Una vez hecho, tendrías que restringir a esa lista el acceso a esa VPN concreta. Imaginemos que la lista la llamaste "mordor" y que elegiste L2TP/IPSec como conexión, te quedaría algo así:
Código:
/ip firewall address-list
add address=empresaB.pericopalotes.com list=mordor
/ip firewall filter
add action=accept chain=input comment="allow l2tp only from mordor" dst-port=1701 ipsec-policy=in,ipsec protocol=udp src-address-list=mordor
add action=accept chain=input comment=allow-ipsec dst-port=500,4500 protocol=udp

Suponiendo el segmento VPN por defecto que monta mikrotik, 192.168.89.0/24, permitir que los equipos en VPN sólo accedan a la máquina concreta 192.168.88.100 del segmento de red principal, y a nada más. La regla sería tan sencilla como esto:
Código:
/ip firewall filter
add action=drop chain=forward comment=vpn-access-to-ts-only dst-address=!192.168.88.100 log=yes \
    log-prefix=forbidden-access src-address=192.168.89.0/24

La regla reza: "todo lo que venga por VPN no y vaya a la IP del servidor de TS, lo tiras a la basura. Además, todo intento, lo pintas en el log con el prefijo 'forbidden-access' "

Si vas a necesitar que los clientes road-warrior que se conectan desde casa accedan a más cosas de la empresa A, crea un pool nuevo sólo para el acceso desde la empresa B, tal que no afectes a los usuarios RW. O especifica una IP concreta para el acceso desde B hasta A, y en lugar de restringir el segmento de VPN entero con el /24, especificas esa única IP con el src-address=IP

Insisto, si ambos equipos son mikrotik no vayas por esta vía, que la manera más sencilla es comunicar ambos routers (LAN to LAN) y así te aseguras de que el tío sólo llega al servidor cuando está físicamente en la oficina.

Saludos!
 
Buenas! Perdona por la tardanza pero he ido liadísimo y ni me he pasado por aquí.

Muchísimas gracias por la explicación, he de decir que para este caso concreto no me sirve en el sentido de que no puedo levantar una vpn, ya que la empresa B está gestionada por otro informático y no está por la labor, así que al final he creado una lista "PERMITIDOS" con las dos ips por las que salen y he abierto un puerto externo X que apunta al interno que tengo configurado para escritorio remoto (he visto que puedo configurar un ddns incluso, y al ponerlo me ha generado una regla dinámica resolviendo la ip del ddns, aún me queda probar si irá actualizando la ip una vez cambie o tengo que hacerlo manualmente).

Pero tengo otro caso en el que me viene ideal lo que me has explicado, además de sacarme de dudas sobre el acceso único a un equipo en la red a través de vpn:

este comando me ha ido de lujo
/ip firewall filter
add action=drop chain=forward comment=vpn-access-to-ts-only dst-address=!192.168.88.100 log=yes \
log-prefix=forbidden-access src-address=192.168.89.0/24


Ahora tengo una última duda. He intentado generar un horario para que la regla del firewall que permite el acceso esté activa sólo X horas al día (pongamos de 8 a 15h) y no he tenido manera de hacer que vaya bien. Sabrías decirme cómo hacerlo?

La regla del NAT a la que quiero ponerle horario es la número 2.

Mil gracias!!!!!
 
Buenas! Perdona por la tardanza pero he ido liadísimo y ni me he pasado por aquí.

Muchísimas gracias por la explicación, he de decir que para este caso concreto no me sirve en el sentido de que no puedo levantar una vpn, ya que la empresa B está gestionada por otro informático y no está por la labor, así que al final he creado una lista "PERMITIDOS" con las dos ips por las que salen y he abierto un puerto externo X que apunta al interno que tengo configurado para escritorio remoto (he visto que puedo configurar un ddns incluso, y al ponerlo me ha generado una regla dinámica resolviendo la ip del ddns, aún me queda probar si irá actualizando la ip una vez cambie o tengo que hacerlo manualmente).

Pero tengo otro caso en el que me viene ideal lo que me has explicado, además de sacarme de dudas sobre el acceso único a un equipo en la red a través de vpn:

este comando me ha ido de lujo
/ip firewall filter
add action=drop chain=forward comment=vpn-access-to-ts-only dst-address=!192.168.88.100 log=yes \
log-prefix=forbidden-access src-address=192.168.89.0/24


Ahora tengo una última duda. He intentado generar un horario para que la regla del firewall que permite el acceso esté activa sólo X horas al día (pongamos de 8 a 15h) y no he tenido manera de hacer que vaya bien. Sabrías decirme cómo hacerlo?

La regla del NAT a la que quiero ponerle horario es la número 2.

Mil gracias!!!!!
Pues mira, se me ocurre que puedes jugar con el timeout de la lista de direcciones. Cuando metes una dirección en un address list, puedes decirle "permanece ahí tanto tiempo". Sabiendo eso, no habría que tocar la regla de firewall, simplemente habría que poner un scheduler tal que todos los días a una hora concreta añada a la lista "mordor" el dominio DDNS de la otra empresa, y la regla de firewall empezaría a funcionar, y le pones a esa entrada un timeout de 8h. Pasadas las 8h, la entrada se borrará de la lista y dicha regla de firewall se quedará sin una IP a la que dar paso, con lo cual no lo hará. ¿te gusta la idea?

Un ejemplo sencillo sería este.
Código:
/system script
add dont-require-permissions=yes name=allow-mordor source=\
    "/ip firewall address-list add list=mordor address=empresaB.pericopalotes.com timeout=8h"

system scheduler
add interval=1d name=mordor-job on-event=allow-mordor start-date=may/05/2021 start-time=08:00:00

En la primera instrucción das de alta la dirección ddns en la lista mordor, con un timeout de 8h. La segunda llama a la primera, empezando un día concreto a una hora concreta, cada día.

Saludos!
 
Buenas! muchas gracias por responder, eres un crack jaja

Esta semana he dejado el horario sin tocar porque he ido de culo, este fin de semana lo implementaré así cómo me has dicho (suena bien, realmente es lo que necesito) y ya te cuento que tal :)
 
Buenas! muchas gracias por responder, eres un crack jaja

Esta semana he dejado el horario sin tocar porque he ido de culo, este fin de semana lo implementaré así cómo me has dicho (suena bien, realmente es lo que necesito) y ya te cuento que tal :)
Es una solución muy básica, si tiras de imaginación o de google quizá encuentres una más currada. Pero sospecho que, como algo básico, te puede valer.

Saludos!
 
Arriba