Como proteger o SQL Server dos hackers

8

Estou tendo um problema e não consegui descobrir como lidar com isso. Eu tenho um SQL Server em um servidor Windows 2008 R2. Este SQL Server 2005 está sendo usado para receber assinaturas de banco de dados de outro SQL Server localizado em outro lugar na Internet. Eu tenho a porta do servidor SQL aberta através do firewall, no entanto, no escopo, eu digitei o IP do outro servidor SQL. Espero que as solicitações de conexão através dessa porta não cheguem ao SQL Server, a menos que as solicitações sejam provenientes do outro SQL Server (cujo IP está listado no escopo da regra de firewall). Mas, quando vejo o log, há centenas de entradas "login failed user sa" (e elas estão chegando a cada segundo). Parece que algum hacker está tentando força bruta para adivinhar uma senha do usuário. Mas a questão é: por que o Windows está permitindo que essas solicitações cheguem ao SQL Server, mesmo que elas não sejam provenientes do endereço IP listado no escopo do firewall? Qual é o caminho certo para proteger este SQL Server. Nenhum outro IP além do IP do outro SQL Server precisa se conectar a este servidor sql.

EDIT - Informações Adicionais:

Eu executei o telnet na porta do sql server de diferentes máquinas. O Telnet falha, exceto quando é executado a partir da máquina especificamente mencionada no escopo do firewall. Portanto, parece que o firewall está bloqueando a porta do servidor sql bem. Mas então por que estou vendo essas solicitações de login com falha para o usuário "sa" de diferentes endereços IP no log do SQL Server? É possível que o hacker esteja entrando na máquina pela porta 80 e, de alguma forma, tentando se conectar ao servidor sql? Port 80 e 443 estão abertos a todos. Todas as outras portas são fechadas com exceção da porta do sql server (e que está aberta apenas para um IP específico). Não há nada em execução no servidor da Web na porta 80 que possa levar um visitante ao SQL Server. Na verdade, há apenas um arquivo index.html (HTML puro sem conexão com o SQL) no servidor da Web. Este é apenas um servidor de teste sendo configurado para uso futuro. Apenas dados de teste no SQL Server.

EDITAR:

Eu ativei o rastreamento do firewall para incluir conexões de sucesso e de descarte. Agora está traçando tudo. Então eu vou para o log do SQL Server, onde vejo essas tentativas de login com falha de diferentes endereços IP na China. Mas não há entradas para esses endereços IP no log do firewall. Como isso é possível? Eles podem chegar ao servidor SQL ignorando completamente o firewall? Se supor que alguma porta do firewall estava aberta para que eles pudessem entrar, o log do firewall deve mostrar uma entrada para esse endereço IP. Estou com uma perda completa.

    
por Allen King 24.12.2013 / 02:23

3 respostas

12

Parece que o seu firewall não está configurado corretamente. Este é o primeiro passo.

Normalmente eu não faria um livro que escrevi, mas neste caso eu farei uma exceção. Ele é chamado de Protegendo o SQL Server e vai lhe dar um bom começo.

    
por 24.12.2013 / 10:25
4

SIMPLESMENTE disse: você não faz. Eu não usaria o firewall etc. - um servidor SQL não tem o direito de estar na internet. MUITO MUITO poucas exceções.

Para replicação, configure uma VPN adequada.

    
por 24.12.2013 / 13:08
3

Além de configurar o firewall corretamente, aqui estão algumas recomendações gerais para manter o SQL Server a salvo de ataques de força bruta:

  • Desative a conta 'sa'. Saber o nome de login exato tornará os ataques mais fáceis

    ALTER LOGIN sa DISABLE
    

Outra opção é renomear a conta 'sa' para um nome menos óbvio

ALTER LOGIN sa WITH NAME = SimonXZY
  • Use a autenticação do Windows em vez da autenticação de modo misto. A autenticação do Windows impõe a política de senha do Windows e bloqueia o login em caso de sucessivas tentativas de logon com falha
  • Auditoria de logons com falha. A maneira mais fácil de fazer isso é definir a opção Auditoria de Login nas propriedades do Servidor, guia Segurança para Logins com Falha Apenas ou Logons com Falha e com Sucesso. Isso não ajudará você a proteger contra ataques de força bruta, mas ajudará você a estar ciente dos ataques

Mais recomendações úteis aqui: Prevenindo uma força bruta ou ataque de dicionário: como manter os brutos afastados do seu saque

    
por 24.12.2013 / 17:06