DBAtlas · Atlas de operações de banco de dados

Hardening de segurança do SQL Server (Linux e Windows: avaliação, rede, TLS, autenticação, permissões, audit, TDE)

SQL ServerNível: IntermediárioDuração: 5 min (avaliação) – 3 horas (hardening completo)

Não é um guia de instalação: encontra e fecha as brechas de uma instância SQL Server 2019 / 2022 / 2025 em execução (Linux ou Windows). Primeiro a Avaliação de segurança, somente leitura, lista as brechas por gravidade e informa a qual cartão cada achado leva; depois você fecha as áreas uma a uma ou todas em sequência: endereço de escuta e firewall, Force Encryption + certificado e validação no cliente, desativação do sa e política de senha (CHECK_POLICY), roles e usuário de aplicação sem DDL, superfície de ataque (xp_cmdshell, TRUSTWORTHY, guest), Server Audit, TDE (backup do certificado obrigatório), backup criptografado, conta de serviço e permissões de arquivo, acompanhamento de CU. TDE e criptografia de backup existem no Standard e no Enterprise (não no Express). No fim a avaliação roda de novo.

Topologia: Uma instância SQL Server (Linux ou Windows) + servidor de aplicação; Always On AG nas notas

Cenários

  • Avaliação de segurança: quais são minhas brechas? (somente leitura) — A varredura a rodar primeiro: sa, política de senha, senhas vazias, membros de sysadmin, permissões de public/guest, xp_cmdshell, conexões sem criptografia, audit, TDE e backups de certificado, portas e firewall; não altera nada.
  • Hardening completo (tudo em sequência) — Instância recém-instalada ou nunca endurecida: todas as áreas são aplicadas em ordem segura; o SQL Server é reiniciado uma ou duas vezes (requer janela de manutenção).
  • Rede e conexão: quem pode se conectar de onde? (escuta, firewall, Browser) — O SQL Server escuta em todas as interfaces, a 1433 está aberta para todos, o SQL Browser roda sem necessidade. Mudar o endereço de escuta exige reinício.
  • Criptografar as conexões (Force Encryption, certificado, validação no cliente) — Conexões sem criptografia ou com certificado temporário autoassinado; os clientes usam TrustServerCertificate=true. Trocar o certificado exige reinício.
  • Autenticação e senha (sa, CHECK_POLICY, autenticação do Windows) — sa habilitado, sem política de senha nos logins SQL, senhas vazias/fracas; conta pessoal de DBA e desativação do sa. Sem downtime (só a mudança para autenticação do Windows exige reinício).
  • Privilégio mínimo e superfície de ataque (roles, public, guest, xp_cmdshell) — Usuário de aplicação db_owner ou sysadmin, permissões extras em public/guest, xp_cmdshell/TRUSTWORTHY habilitados; desenho de roles e relatório de permissões. Sem downtime.
  • Audit: quem fez o quê? (Server Audit, Database Audit Specification) — O auditor quer o registro de logins, alterações de permissão e de schema; Server Audit em arquivo (ou no log de eventos do Windows), envio a um sistema central e retenção. Sem downtime. Sem licença adicional em todas as edições (2016 SP1+).
  • Criptografar os dados em disco (TDE) — TDE contra a abertura do disco, do arquivo de dados ou do backup em outro servidor: DMK, certificado, DEK. Feito online; o backup do certificado é OBRIGATÓRIO (se for perdido, o banco e seus backups não podem ser abertos). Licença: existe no SQL Server 2019+ Standard e Enterprise, não no Express.
  • Segurança dos backups (backup criptografado, certificado, permissões) — Backups sem criptografia, diretório de backup aberto a todos, senha em texto puro no script; BACKUP … WITH ENCRYPTION, backup do certificado e permissões do diretório. Sem downtime. A criptografia de backup existe no Standard e no Enterprise, não no Express.
  • Lado do sistema operacional (conta de serviço, permissões de arquivo, SELinux) — O serviço roda como LocalSystem ou com conta de administrador, os diretórios de dados/backup estão abertos a todos, o SELinux está desativado; trocar a conta de serviço exige reinício.
  • Patch e versão: estou em versão suportada e no último CU? — Versão, nível de CU e fim do suporte (o 2016 terminou em julho de 2026); remete ao guia de CU patch para aplicar. Somente leitura.

Antes de começar

  • O SQL Server está em execução; o mssql-tools18 está instalado e … é sysadmin. O sqlcmd fica em /opt/mssql-tools18/bin/ (não está no PATH; o guia usa o caminho completo). Antes de rodar o script, leia a senha para uma variável sem exibi-la: read -rsp 'Senha: ' SQLCMDPASSWORD; export SQLCMDPASSWORD e sudo --preserve-env=SQLCMDPASSWORD bash <script>.sh. Instalação: Instalação do SQL Server no Linux.
  • Sessão do PowerShell como administrador; a conta Windows conectada é sysadmin no SQL Server (sqlcmd -E). Instalação: Instalação do SQL Server no Windows.
  • Duas sessões abertas: em uma você aplica os passos, na outra fica aberta uma conexão sysadmin (sqlcmd). Depois de desativar o sa, do firewall, do Force Encryption e de mudanças no serviço, teste uma nova conexão em uma sessão separada; não feche a sessão antiga. Último recurso: a conexão DAC local (sqlcmd -A) sempre funciona a partir do próprio servidor; se ficar totalmente sem acesso, no modo de usuário único (…systemctl stop mssql-server; sudo -u mssql /opt/mssql/bin/sqlservr -m…net start … /m…) um administrador local entra como sysadmin.
  • Janela de manutenção: o SQL Server será reiniciado nas áreas que você escolher (endereço de escuta, certificado/Force Encryption, conta de serviço, modo de autenticação).… No AG, aplique primeiro nas réplicas secundárias, depois troque o primary com um failover e aplique no antigo primary.…
  • Lista das aplicações que se conectam (servidor, login, driver). O passo de avaliação mostra as conectadas no momento.
  • Há backup full atual e backup do master/msdb (guia de backup). Com TDE e criptografia de backup, sem o backup do certificado os dados não voltam.

Fases do guia

  • Avaliação de segurança (somente leitura) — Listar os achados dentro da instância · Avaliar o lado do sistema operacional · Avaliar o lado do sistema operacional
  • Antes de começar: ponto de retorno — Copiar logins, configurações e configuração do sistema · Copiar logins, configurações e registro
  • Identidade — 1. Diagnóstico — Mostrar logins, política e modo de autenticação
  • Identidade — 3. Aplicação — Criar os logins de aplicação e de relatórios com política · Criar os logins de aplicação e de relatórios com política · Trocar senhas vazias ou iguais ao nome do login · Trocar senhas vazias ou iguais ao nome do login · Preparar o acesso pessoal de DBA · Verificar se o grupo AD dos DBAs é sysadmin …
  • Identidade — 4. Verificação — Verificar o estado da identidade · Testar o login como sa a partir do servidor de aplicação · Testar o login como sa a partir do servidor de aplicação
  • Permissões — 1. Diagnóstico — Mostrar as permissões de servidor e de banco
  • Permissões — 3. Aplicação — Reduzir a superfície de ataque (sp_configure) · Desativar TRUSTWORTHY e o acesso guest · Criar roles, schema e usuários · Remover o usuário da aplicação do db_owner · Relatório de permissões
  • Permissões — 4. Verificação — Verificar que o usuário da aplicação não executa DDL
  • TLS — 1. Diagnóstico — Mostrar o estado de criptografia das conexões
  • TLS — 3. Aplicação — Criar uma CA de teste e o certificado do servidor · Criar a chave e a solicitação de assinatura (CSR) · Validar o certificado e a chave · Configurar o certificado e o Force Encryption (mssql-conf) · Reiniciar o SQL Server · Criar ou importar o certificado …
  • TLS — 4. Verificação — Verificar se todas as conexões TCP estão criptografadas
  • TLS — 5. Depois: renovação do certificado — Procedimento de renovação do certificado
  • Rede — 1. Diagnóstico: quem se conecta de onde? — Mostrar os endereços de escuta e as origens dos clientes
  • Rede — 3. Aplicação — Restringir o endereço de escuta (mssql-conf) · Restringir o endereço de escuta (TCP/IP IPn) · Liberar a porta no firewall só para redes permitidas · Liberar a porta no firewall só para redes permitidas · Desativar o SQL Browser (instância padrão) · Reiniciar o SQL Server para o endereço de escuta …
  • Rede — 4. Verificação — Testar a conexão a partir do servidor de aplicação (sessão nova) · Testar a conexão a partir do servidor de aplicação (sessão nova)
  • Audit — 1. Diagnóstico — Mostrar os audits existentes e a auditoria de login
  • Audit — 2. Rede de segurança — Preparar o diretório de audit · Preparar o diretório de audit
  • Audit — 3. Aplicação — Definir o Server Audit e os eventos de nível de servidor · Registrar o acesso a dados no schema da aplicação · Script que exporta os registros de audit · Arquivo de senha, cron e rsyslog para a exportação
  • Audit — 4. Verificação — Fazer uma alteração e vê-la no registro de audit
  • Backup — 1. Diagnóstico — Mostrar o estado de criptografia dos backups e os certificados · Permissões do diretório de backup · Permissões do diretório de backup
  • Backup — 3. Aplicação — Criar o certificado de backup e fazer backup dele imediatamente · Criar o certificado de backup e fazer backup dele imediatamente · Fazer um backup criptografado e validá-lo · Corrigir as permissões do diretório de backup · Corrigir as permissões do diretório de backup
  • Sistema operacional — 1. Diagnóstico — Conta de serviço, permissões e SELinux · Contas de serviço e permissões de diretório
  • Sistema operacional — 3. Aplicação — Bloquear a conta mssql e corrigir as permissões de diretório · Manter o SELinux em Enforcing e confinar o SQL Server · Mudar a conta de serviço para conta virtual ou gMSA · Corrigir as permissões do diretório de dados
  • TDE — 1. Diagnóstico — Mostrar o estado de criptografia e os certificados
  • TDE — 2. Rede de segurança — Backup full antes do TDE
  • TDE — 3. Aplicação — Criar a DMK e o certificado de TDE e fazer backup deles imediatamente · Criar a DMK e o certificado de TDE e fazer backup deles imediatamente · AG: carregar o certificado de TDE nas outras réplicas · Criar a chave de criptografia do banco e ativar o TDE · Acompanhar até o fim da criptografia
  • TDE — 4. Verificação — Validar o banco criptografado e o backup do certificado
  • Patch e versão — 1. Diagnóstico — Mostrar a versão e o nível de CU · Atualizações pendentes no lado do sistema operacional
  • Patch e versão — 5. Depois — Registrar o calendário de patches
  • Avaliação final: as brechas foram fechadas? — Rodar de novo a avaliação de segurança · Avaliar de novo o lado do sistema operacional · Avaliar de novo o lado do sistema operacional
Abrir o plano passo a passo para o seu ambiente →