martes, 28 de febrero de 2012

Basado en hechos reales (II): Como proteger tu RDP en Internet

Estamos que lo tiramos con los ataques informáticos. Si ya en un anterior post vimos como proteger nuestra instalación de SQL Server en Internet, ahora toca el turno de prevenir ataques contra RDP (Remote Desktop Protocol).

Como ya estábamos sobre aviso y con la mosca detrás de la oreja, ahora estamos todo el día viendo el visor de sucesos de Windows. Pues bien, cual es nuestra sorpresa cuando vemos que tenemos cientos de sucesos de error de auditoria con el identificador de evento 4625. Esto es un error al intentar iniciar sesión en el servidor.

Además resulta que los nombres de cuenta son del todo variopintos, por ejemplo: Administrador, administrator, John… ¿John? Un momento, no conozco a nadie llamado John, así que está claro, algún desaprensivo está utilizando un escaneador de puertos y un generador de nombres de usuario y claves aleatorias para intentar acceder a mi servidor por la fuerza bruta.

Está claro que capar RDP no es una opción porque entonces ni yo mismo podría acceder a mi servidor, pero gracias al equipo de soporte de domitienda y sus recomendaciones, vamos a realizar los siguientes ajustes para intentar poner difícil el acceso a nuestro servidor a nuestros amiguitos los crackers (no los llamo hackers porque hace tiempo aprendí la diferencia entre crackers y hackers):

  • Denegar el permiso para iniciar sesión de forma remota al usuario Administrador.
  • Crear un nuevo usuario en el grupo Administradores, pero con un nombre no común y concederle permiso para iniciar sesión de forma remota.
  • Cambiar el puerto para RDP (un clásico ya lo de cambiar puertos y así frustrar el escaneo de puertos con herramientas automatizadas).

Crear un nuevo usuario en el grupo Administradores y concederle permiso para iniciar sesión de forma remota es muy sencillo puesto que de forma predeterminada, todos los usuarios del grupo Administradores tienen ese permiso concedido (además también del grupo “Usuarios de escritorio remoto”).

Sin embargo, no es tan obvio como denegar el acceso por escritorio remoto al usuario Administrador. Los pasos a seguir son los siguientes:

  • Inicio > Panel de control > Herramientas administrativas > Directivas de seguridad local
  • Directivas locales > Asignación de derechos de usuario
  • Denegar inicio de sesión a través de Servicios de Escritorio remoto
  • Agregar al usuario Administrador

clip_image001

Después de este cambio, si intentamos acceder por RDP con el usuario Administrador obtendremos el siguiente error:

clip_image003

Por último, para cambiar el puerto del escritorio remoto hay que cambiar un valor en el registro de Windows:

En el siguiente enlace de Microsoft lo explica, pero te lo resumo aquí porque es muy sencillo, simplemente hay que cambiar un valor del registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber y donde pone 3389 ponemos cualquier otro.

Lógicamente sólo quedará crear una regla en el firewall para el nuevo puerto seleccionado, y si además en este regla restringimos el acceso a sólo ciertas IPs, pues yo mi parte quedaré muy satisfecho con la seguridad en lo relativo a RDP.

Un saludo!

3 comentarios:

  1. Las pautas que comentas son muy recomendables, aún así, también te recomiendo la herramienta gratuíta "ts_block" (https://github.com/EvanAnderson/ts_block); se encarga de banear por X tiempo las IPs que realizan Y intentos de conexión fallidos.

    Lo encontré en su día buscando algo similar a Fail2Ban para servidores Windows, no es tan completo cómo este último pero puede ayudar.

    Un saludo,

    ResponderEliminar
    Respuestas
    1. Gracias!! Tiene muy buena pinta https://community.spiceworks.com/how_to/30241-setup-ts_block-to-block-ip-addresses-of-repeated-failed-logon-attempts-on-a-terminal-rds-server
      Un saludo!

      Eliminar
    2. Gracias!! Tiene muy buena pinta https://community.spiceworks.com/how_to/30241-setup-ts_block-to-block-ip-addresses-of-repeated-failed-logon-attempts-on-a-terminal-rds-server
      Un saludo!

      Eliminar