En este post veremos cómo configurar utilizando el firewall de Windows, una regla para que solo se permita la conexión al puerto de RDP: 3389 desde una dirección IP pública origen.
Windows: RDP IP pública origen firewall: Antes de empezar
Para ofrecer la conexión RDP (Remote Desktop Protocol) a los usuarios o a los administradores desde fuera de la red local, no es buena idea mapear el puerto de RDP al exterior (Internet), ni tampoco cambiando el puerto 3389 por otro.
Si abrimos el puerto del RDP de un equipo al exterior estaremos expuestos a ataques de Ransomware.
Por este motivo, que la forma de ofrecer servicios de RDP al exterior de forma segura es por ejemplo: utilizando una VPN (Virtual Private Network) o bien en el caso de una granja de RDS (Remote Desktop Services) utilizar el servicio de Remote Desktop Gateway.
En el libro:
Disponemos de una guía paso a paso que nos explicará cómo configurar Remote Desktop Gateway.
También existen muchas otras formas de securizar un acceso remoto, por ejemplo: Utilizar un software de control remoto que disponga de segundo factor de autentificación, soluciones de Citrix, etc...
Sin embargo en ocasiones, no disponemos ni de tiempo ni dinero para realizar una configuración definitiva.
Como medida temporal, podemos abrir el puerto de RDP de un equipo al exterior filtrando la dirección IP pública origen.
Esta regla de filtrado debería realizarse desde el router o firewall corporativo.
En el caso de no poderse realizar y como último recurso, podemos utilizar el firewall de Windows, sin embargo, su configuración no es nada intuitiva.
Configurar una regla de firewall que solo permita conexiones RDP según la dirección IP pública origen hará invisible el puerto al resto de direcciones IP.
Windows: RDP IP pública origen firewall: Configuración
Abrimos la configuración del firewall de Windows.
Una forma rápida de acceder a la configuración del firewall de Windows es utilizando la consola msc: wf.msc
En primer lugar, deberemos verificar que el firewall de Windows no esté desactivado.
Si el firewall de Windows está desactivado, la regla configurada no tendrá efecto.
Una vez verificado que el firewall de Windows está activado, nos dirigimos a: "Reglas de entrada", botón derecho, "Nueva regla".
Indicamos regla basada en puerto:
Indicamos el puerto: 3389 TCP:
Indicamos que la acción sea: "Bloquear la conexión":
Indicamos que la regla se aplique en el perfil que corresponda.
Podemos marcar los tres perfiles.
Indicamos el nombre de la regla: "RDP regla ip origen firewall"
Hasta aquí, si repasamos la configuración de la regla, vemos que no hemos especificado aún la dirección IP pública origen.
Simplemente, hasta ahora, hemos realizado una regla que bloquea las conexiones al puerto 3389.
El filtrado según la dirección IP pública origen viene ahora.
Editamos la regla.
Botón derecho, propiedades sobre la regla.
Nos dirigimos a la pestaña de: "Ámbito" y configuramos en: "Dirección IP remota" las direcciones IP que no queremos que puedan conectar.
La idea es situar aquí las direcciones IP bloqueadas:
y ahora es donde viene la dificultad:
Debemos especificar los rangos completos a bloquear.
Ejemplo:
Imaginemos que queremos permitir las conexiones RDP desde la dirección IP:
70.124.23.37
Pues bien, debemos configurar lo siguiente:
0.0.0.0-70.124.23.36
70.124.23.38-255.255.255.255
Quedaría de la siguiente forma:
A modo de resumen:
Se configura una regla de bloqueo al puerto 3389 desde todas las direcciones IP exceptuando la dirección IP que se quiere permitir, para ello es necesario especificar todos los rangos de Internet.
¿Qué ocurre si queremos permitir 2 direcciones IP en vez de una?
Pues tendremos que especificar lo de la misma forma.
Imaginemos que queremos permitir estas dos direcciones IP públicas:
70.124.23.37
y
80.22.21.123
La sintaxis sería:
0.0.0.0-70.124.23.36
70.124.23.38-80.22.21.122
80.22.21.124-255.255.255.255
Volvemos con el mismo concepto: Hemos de bloquear todos los rangos exceptuando las direcciones IP permitidas.
Hola, ¿y esto no funcionaria si la acción en vez de "bloquear" es "permitir" y añadiendo solo las ips de origen que intentan acceder al puerto 3389"
ResponderEliminarMuchas gracias por tu trabajo.
Hola Fernando,
EliminarDesgraciadamente con el Firewall de Windows no te funcionará.
Debes hacerlo tal y como te indica el post.
Un saludo,
Xavi.
Muy buen apunte.
ResponderEliminarMe sorprendió gratamente.
Parece una perogrullada la solución, pero es un puntazo y un salto de la leche en seguridad para accesos de RDP a un pc en casa, o para una pequeña empresa que aún no dio el salto a un router decente o firewall en el perímetro y no dispone de VPN ni puede poner reglas de bloqueo en el firewall.
Como siempre aporte fantástico y explicado cristalinamente.
Muchas gracias Xavier.
Hola Marcos,
EliminarEfectivamente la configuración no es nada intuitiva y es para casos muy concretos que no permiten una solución mejor.
Muchas gracias a ti por participar en el blog.
Un saludo,
Xavi.
Buenas tardes. Windows lleva una regla predefinida en firewall cuando activas el acceso remoto. No es más facil poner en ámbito las IP permitidas?. Yo lo he probado así y funciona igual que el del artículo. El único problema que encuentro en los dos procedimientos es que una vez aplicada la regla no me funciona el escritorio remoto con los equipos de la red local. Alguna idea ?
ResponderEliminarHola,
EliminarSi sigues el procedimiento indicado en el post, te funcionará desde direcciones IP de la red local sin ningún problema.
Si revisas el post, verás una captura donde indica: "Dirección ip local" y está indicado: "Cualquier dirección IP", en cambio en: "Dirección IP remota" es donde se especifican los rangos completos a bloquear.
Un saludo,
Xavi.
Hola.
ResponderEliminarAntes de nada mis agredecimientos por el artículo y los comentarios.
Necesito tener una conexión RDP. He seguido las indicaciones creando reglas en el Firewall de Windows Server y las he implementado en 3 redes (fibra) y he obtenido 3 resultados diferentes. He cambiado el puerto de escucha de RDS, he abierto un puerto a internet con la IP del servidor con los siguites resultados.
- 1ª: Con Router Livebox. Defino regla que permite las conexiones del nuevo puerto. En ambito pongo las IP de administración y todo perfecto, comprobando que me rechaza las conexiones de las IP que no están indicadas.
- 2ª: Con Router Askey de Movistar. Intento hacer como en el punto 1, y no puedo acceder desde la red local al servidor ni con la IP local ni con la IP pública, no se porqué. En el router aparece activado NAT LOOPBACK. Sin embargo si puedo acceder al servidor desde una externa. Al final tengo que aplicar lo expuesto en el artículo denegando las conexiones y todo ok, a excepción de lo comentado.
3ª: Con Router Innbox_G67. Creo la regla que permita conexiones al nuevo puerto y todo ok. Puedo acceder desde la red local y desde fuera tanto con la IP publica como por la privada. Ahora en cuanto defino rangos de IP para permitir conexiones o para rechazar, me es imposible entrar al servidor desde la red local, sin embargo si puedo acceder desde una red externa. He probado de todo, a poner ambito de IP locales, a definir el puerto con NAT LOOPBACK y sin el, incluso crear diferentes reglas según el adaptador pero el resultado siempre es el mismo, me resulta imposible acceder al servidor desde la red local. He leído un montón de artículos pero ninguno me aclara el porqué. Que estoy haciendo mal? Entiendo que puede ser la configuración del router, pero no entiendo el porque al definir ámbitos de IP me corta el acceso dese la red local.
Muchas gracias por la atencíon prestada. Un saludo.
Hola,
EliminarPara determinar si es problema del firewall de Windows, puedes probar de desactivarlo.
Si lo desactivas y no funciona, entonces tendrás que centrar en la configuración de tu router.
Cada router, como indicas en tu comentario, se configura distinto y tendrás que buscar como se configura en cada modelo concreto.
Un saludo,
Xavi.
Quería comentar algo curioso que estoy investigando y quería compartirlo ya que es la puesta en práctica de este artículo.
EliminarResulta en una pequeña oficina con 1 servidor con windows server 2016 y 4 PCS conectados en red local a traves de un Router livebox de fibra (de orange) con IP Fija. Todos acceden al servidor por RDP, aparte de otros dos más fuera de la oficina.
En el Firewall del servidor modifico la regla que autoriza la conexión al puerto de escucha remoto y defino en ambito las IP publicas remotas de los PC externos.
Todo funciona perfecto. El firewall solo permite la conexión de dichas IP y las demás rechaza la conexión.
Por motivos de promociones puntuales solicitan una nueva linea para sustituir a la linea.
Viene el instalador y trae un router igual que el instalado, con el mismo firmware, lo configura con la ONT nueva y lo cambia. Como es identico al que sustituido se restaura el archivo de configuración del primero que está todo configurado y funcionado a la perfección.
Hasta aquí todo bien, ahora viene lo extraño. Intentamos acceder desde los PC de la red local al servidor por RDP y es imposible.
Después de revisar todo a ver donde está el problema y no dar con la solución se nos ocurre quitar el router nuevo y volver a poner el viejo y sin cambiar nada adicional todo funciona a la perfección.... Pienso pero que pasa aquí?. Mismo router, misma configuración, todo igual.. que pasa.?????
Pienso que tal vez haya algo en el router diferente, así que se me ocurre ponerle la ONT antigua al router nuevo...Una vez introducida vuelvo a cargarle el archivo de configuracion viejo y todo funciona perfectamente. Deducción en la central hay algún parámetro que es diferente en las ONT y hace que el firewall bloquee las conexiones. Pero que puede ser ???
Si encuentro la solución lo pondré aquí ya que estas cosas hacen que uno se rompa la cabeza pensando que está haciendo mal y resulta que el problema es otro.
Saludos por anticipado y se agradece cualquier aportación.
Hola,
EliminarEspero que encuentres que ocurre y si lo publicas aquí en forma de comentario, genial, así otros lectores podrán aprovecharlo.
Un saludo,
Xavi.