Cómo proteger SQL Server de los piratas informáticos

Cómo proteger SQL Server de los piratas informáticos

Tengo un problema y no sé cómo solucionarlo. Tengo un servidor SQL en un servidor Windows 2008 R2. Este SQL Server 2005 se utiliza para recibir suscripciones a bases de datos de otro SQL Server ubicado en otro lugar de Internet. Tengo el puerto del servidor SQL abierto a través del firewall, sin embargo, en el alcance, ingresé la IP del otro servidor SQL. Al hacerlo, esperaba que las solicitudes de conexión a través de ese puerto no llegaran al servidor SQL a menos que las solicitudes provengan del otro servidor SQL (cuya IP figura en el alcance de la regla de firewall). Pero, cuando veo el registro, hay cientos de entradas de "usuario sa fallido al iniciar sesión" (y aparecen cada segundo que pasa). Parece que algún hacker está intentando por fuerza bruta adivinar la contraseña del usuario. Pero la pregunta es, ¿por qué Windows permite que estas solicitudes lleguen al servidor SQL a pesar de que no provienen de la dirección IP que figura en el alcance del firewall? ¿Cuál es la forma correcta de proteger este SQL Server? Ninguna otra IP que la IP del otro SQL Server necesita conectarse a este servidor SQL.

EDITAR - Más información:

Ejecuté telnet en el puerto del servidor SQL desde diferentes máquinas. Telnet falla excepto cuando se ejecuta desde la máquina que se menciona específicamente en el alcance del firewall. Entonces parece que el firewall está bloqueando bien el puerto del servidor SQL. Pero entonces, ¿por qué veo esas solicitudes de inicio de sesión fallidas al usuario "sa" desde diferentes direcciones IP en el registro de SQL Server? ¿Es posible que el hacker esté ingresando a la máquina a través del puerto 80 y luego de alguna manera intente conectarse al servidor SQL? Los puertos 80 y 443 están abiertos a todos. Todos los demás puertos están cerrados con la excepción del puerto del servidor SQL (que está abierto solo para una IP específica). No hay nada ejecutándose en el servidor web en el puerto 80 que pueda llevar a un visitante al servidor SQL. De hecho, sólo hay un archivo index.html (HTML puro sin conexión a SQL) en el servidor web. Este es sólo un servidor de prueba que se está configurando para uso futuro. Sólo pruebe datos en SQL Server.

EDITAR:

Activé el rastreo del firewall para incluir conexiones exitosas y descartadas. Ahora está rastreando todo. Luego voy al registro de SQL Server donde veo estos intentos fallidos de inicio de sesión desde diferentes direcciones IP en China. Pero no hay entradas para estas direcciones IP en el registro del firewall. ¿Cómo es esto posible? ¿Pueden acceder al servidor SQL sin pasar por completo el firewall? Si supongamos que algún puerto del firewall estuviera abierto por el que pudieran ingresar, el registro del firewall debería mostrar una entrada para esa dirección IP. Estoy completamente perdido.

Respuesta1

Parece que su firewall no está configurado correctamente. Este es el primer paso.

Normalmente no sería proxeneta de un libro que escribí, pero en este caso haré una excepción. Se llamaProteger el servidor SQLy te dará un buen comienzo.

Respuesta2

Dicho simplemente: no es así. No usaría un firewall, etc.: un servidor SQL no tiene derecho a estar en Internet. MUY MUY pocas excepciones.

Para la replicación, configure una VPN adecuada.

Respuesta3

Además de configurar el firewall correctamente, aquí hay algunas recomendaciones generales para mantener SQL Server a salvo de ataques de fuerza bruta:

  • Deshabilite la cuenta 'sa'. Saber el nombre de usuario exacto facilitará los ataques

    ALTER LOGIN sa DISABLE
    

Otra opción es cambiar el nombre de la cuenta 'sa' por un nombre menos obvio.

ALTER LOGIN sa WITH NAME = SimonXZY
  • Utilice la autenticación de Windows en lugar de la autenticación de modo mixto. La autenticación de Windows aplica la política de contraseñas de Windows y bloquea el inicio de sesión en caso de intentos fallidos de inicio de sesión sucesivos.
  • Auditar inicios de sesión fallidos. La forma más sencilla de hacerlo es configurar la opción Auditoría de inicio de sesión en las propiedades del servidor, pestaña Seguridad, en Solo inicios de sesión fallidos o Tanto inicios de sesión fallidos como exitosos. Esto no le ayudará a protegerse contra ataques de fuerza bruta, pero le ayudará a estar consciente de los ataques.

Más recomendaciones útiles aquí: Prevención de un ataque de fuerza bruta o de diccionario: cómo mantener a los brutos alejados de su botín

información relacionada