Estou com 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 pelo firewall, no entanto, no escopo, digitei o IP do outro SQL Server. Fazendo isso, esperava que as solicitações de conexão por essa porta não chegassem ao SQL Server, a menos que as solicitações fossem provenientes do outro SQL Server (cujo IP está listado no escopo da regra de firewall). Mas, quando vejo o log, existem centenas de entradas "login com falha do usuário sa" (e elas estão chegando a cada segundo). Parece que algum hacker está tentando usar a força bruta para adivinhar a senha do usuário. Mas a questão é: por que o Windows está permitindo que essas solicitações cheguem ao SQL Server, mesmo que 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 - Mais informações:
Eu executei o telnet na porta do servidor sql de máquinas diferentes. O Telnet falha, exceto quando é executado a partir da máquina mencionada especificamente no escopo do firewall. Portanto, parece que o firewall está bloqueando bem a porta do servidor sql. Mas então por que estou vendo essas solicitações de logon 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? As portas 80 e 443 estão abertas a todos. Todas as outras portas são fechadas, com exceção da porta do servidor sql (e 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 servidor SQL. De fato, existe 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 teste dados no SQL Server.
EDITAR:
Ativei o rastreamento de firewall para incluir conexões drop e success. Agora está rastreando tudo. Depois, vou para o log do SQL Server, onde vejo essas tentativas de logon 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 acessar o servidor SQL ignorando completamente o firewall? Se suponha que alguma porta do firewall estivesse aberta e que eles pudessem entrar, o log do firewall mostraria uma entrada para esse endereço IP. Estou completamente perdido.
fonte
Respostas:
Parece que seu firewall não está configurado corretamente. Este é o primeiro passo.
Normalmente, não daria uma olhada em um livro que escrevi, mas, neste caso, farei uma exceção. Chama-se Protegendo o SQL Server e dará um bom começo.
fonte
Simplesmente disse - você não. Eu não usaria um 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.
fonte
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 exato de login facilitará os ataques
Outra opção é renomear a conta 'sa' para um nome menos óbvio
Recomendações mais úteis aqui: Prevenção de uma força bruta ou ataque de dicionário: Como manter os brutos afastados do seu saque
fonte