Ligeiramente velho, mas ainda tem boas informações. Capítulo do MSDN sobre como proteger seu servidor de banco de dados. link
Você também pode adquirir um firewall de software, como Zone Alarm ou Outpost.
Estou ajudando um cliente com um servidor MSSQL 2005 exposto. Eles não vão ceder em um firewall ou solução VPN ... e lá os logs estão cheios de sinais de ataques.
O que pode ser feito para proteger um SQL 2005 Server exposto sem hardware adicional?
Por exposto, quero dizer, se você apontar o SSMS no IP público com as credenciais corretas nas quais você está conectado.
Ligeiramente velho, mas ainda tem boas informações. Capítulo do MSDN sobre como proteger seu servidor de banco de dados. link
Você também pode adquirir um firewall de software, como Zone Alarm ou Outpost.
Um truque barato é remover a porta de escuta do padrão 1433. Os clientes podem se conectar usando a sintaxe de porta explícita, como tcp:74.125.19.104,12345
se a porta for 12345. Isso elimina a grande maioria dos bots que examinam 1433 para vulnerabilidades em branco. . Isso, obviamente, não resolve a empresa de outras responsabilidades envolvidas: políticas de senhas strongs, senhas de reciclagem, registros de monitoramento de atividades suspeitas, etc. etc.
Outra coisa que eles devem considerar é implementar o DirectAccess . O DA elimina a maioria das desvantagens da solução VPN, se não todas, e as empresas que têm medo dos custos de assistência técnica da VPN devem considerar seriamente o DA.
E finalmente, há a pergunta óbvia por que eles precisam do acesso TDS da Internet? Sabendo qual é o requisito, podemos recomendar soluções alternativas e menos perigosas.
Configure uma diretiva IPSEC que permita conexões com as portas do SQL Server com base em uma lista de desbloqueio de endereços IP / intervalos, conforme mencionado anteriormente. Isso significa que o sistema operacional arcará com o ônus de ignorar o tráfego (e é por isso que os dispositivos de rede são obviamente preferidos). Verifique se o firewall está protegido para proteger todas as portas do sistema operacional, especialmente aquelas relacionadas a RPC, SMB, etc. Verifique se a diretiva IPSEC SOMENTE permite conexão com a porta do SQL Server. Você não deve precisar abrir uma porta para o SQL Browser Service (udp / 1434).
Se puder, altere a porta em que o SQL Server está escutando (provavelmente tcp / 1433) para alguma outra porta (certifique-se de que a diretiva IPSEC seja acomodada). Se não estiver em uma porta conhecida, especialmente se for uma porta mais alta, isso interromperá a maioria das verificações no sistema. Os usuários só precisarão saber se conectar via servidor , porta em vez de apenas servidor .
(Esse IP público pertence ao Google, então a edição provavelmente não foi necessária)
A melhor coisa que você pode fazer para proteger um servidor SQL de qualquer faixa é colocar na lista de permissões os hosts com permissão para se conectar a ele e para garantir a execução de poucos serviços possíveis nessa máquina.
Outra boa prática é restringir severamente o acesso possível do lado da web. Se o aplicativo da web tiver permissão apenas para executar algumas dúzias de procedimentos armazenados, praticamente não haverá vetores de ataque de um site explorado. Por outro lado, se ele puder executar consultas arbitrárias, você terá problemas.
Nunca execute um servidor na sua máquina de banco de dados: esse é um enorme vetor de ataque desnecessário que deve ser evitado sempre que possível. Webservers e webservices são frequentemente explorados. Se o seu banco de dados estiver conectado à mesma máquina, então é muito mais provável que ele seja removido também.
A maneira mais fácil de obter tudo isso (sem adicionar nenhum novo hardware) é habilitar o IPSEC e encapsular solicitações do servidor da Web para o servidor de banco de dados. Aqui é um tutorial básico do IPSEC.
Se você tiver que tê-los no mesmo servidor, poderá ter um pouco de segurança, permitindo apenas conexões locais, mas isso não ajudará se o seu site for explorado.
Para desativar conexões remotas, vá para Server- > Properties- > Connections e desmarque a opção "Allow Remote Connections to this Server".
Eu consideraria strongmente cortar todos os laços com uma empresa que insiste em colocar seu banco de dados na rede sem qualquer forma de IPSec, firewall ou conexões privadas. Espero que pelo menos usem alguma forma de criptografia.
É uma grande responsabilidade esperando para acontecer; possivelmente uma ação judicial ou negligência criminosa (dependendo dos dados envolvidos).