10 etapas essenciais para configurar um novo servidor em 2023
Esse é um bom novo servidor Linux que você tem lá ... seria uma pena se algo acontecesse com ele. Ele pode funcionar bem fora da caixa, mas antes de colocá-lo em produção, há 10 etapas que você precisa seguir para garantir que ele esteja configurado com segurança. Os detalhes dessas etapas podem variar de distribuição para distribuição, mas conceitualmente eles se aplicam a qualquer tipo de Linux. Ao marcar essas etapas em novos servidores, você pode garantir que eles tenham pelo menos proteção básica contra os ataques cibernéticos mais comuns.
Que | Por que |
Configuração do usuário | Proteja suas credenciais |
Configuração de rede | Estabelecer comunicações |
Gerenciamento de pacotes | Adicione o que você precisa, remova o que você não precisa |
Instalação de atualização | Corrija suas vulnerabilidades |
Configuração NTP | Evitar desvio de relógio |
Firewalls e iptables | Minimize sua pegada externa |
Protegendo o SSH | Fortalecer sessões remotas |
Configuração do daemon | Minimize sua superfície de ataque |
SELinux e endurecimento adicional | Proteja o kernel e os aplicativos |
Log | Saiba o que está acontecendo |
1 - Configuração do usuário
A primeira coisa que você vai querer fazer, se não fizer parte da configuração do seu sistema operacional, é alterar a senha de root. Isso deve ser evidente, mas pode ser surpreendentemente esquecido durante uma configuração de servidor de rotina. A senha deve ter pelo menos 8 caracteres, usando uma combinação de letras maiúsculas e minúsculas, números e símbolos. Você também deve configurar uma política de senha que especifique os requisitos de duração, bloqueio, histórico e complexidade se for usar contas locais. Na maioria dos casos, você deve desabilitar totalmente o usuário root e criar contas de usuário sem privilégios com acesso sudo para aqueles que exigem direitos elevados.
2 - Configuração de rede
Uma das configurações mais básicas que você precisará fazer é habilitar a conectividade de rede atribuindo ao servidor um endereço IP e um nome de host. Para a maioria dos servidores, você desejará usar um IP estático para que os clientes sempre possam encontrar o recurso no mesmo endereço. Se sua rede usa VLANs, considere o quão isolado é o segmento do servidor e onde ele se encaixaria melhor. Se você não usa IPv6, desative-o. Defina o nome do host, o domínio e as informações do servidor DNS. Dois ou mais servidores DNS devem ser usados para redundância e você deve testar nslookup para garantir que a resolução de nomes esteja funcionando corretamente.
3 - Gerenciamento de pacotes
Presumivelmente, você está configurando seu novo servidor para uma finalidade específica, portanto, certifique-se de instalar todos os pacotes necessários se eles não fizerem parte da distribuição que você está usando. Podem ser pacotes de aplicativos como PHP, MongoDB, ngnix ou pacotes de suporte como pear. Da mesma forma, quaisquer pacotes estranhos instalados em seu sistema devem ser removidos para reduzir o espaço ocupado pelo servidor. Tudo isso deve ser feito por meio da solução de gerenciamento de pacotes da sua distribuição, como yum ou apt, para facilitar o gerenciamento no futuro.
4 - Instalação e configuração da atualização
Depois de ter os pacotes corretos instalados em seu servidor, certifique-se de que tudo esteja atualizado. Não apenas os pacotes que você instalou, mas também o kernel e os pacotes padrão. A menos que você tenha um requisito para uma versão específica, você deve sempre usar a versão de produção mais recente para manter seu sistema seguro. Normalmente, sua solução de gerenciamento de pacotes fornecerá a versão mais recente com suporte. Você também deve considerar a configuração de atualizações automáticas na ferramenta de gerenciamento de pacotes se isso funcionar para os serviços que você está hospedando neste servidor
5 - Configuração NTP
Configure seu servidor para sincronizar seu tempo com os servidores NTP. Podem ser servidores NTP internos, se o seu ambiente os tiver, ou servidores de horário externos disponíveis para qualquer pessoa. O importante é evitar o desvio do relógio, em que o relógio do servidor se desvia da hora real. Isso pode causar muitos problemas, incluindo problemas de autenticação em que a distorção de tempo entre o servidor e a infraestrutura de autenticação é medida antes de conceder acesso. Este deve ser um ajuste simples, mas é um pouco crítico de infraestrutura confiável.
6 - Firewalls e iptables
Dependendo da sua distribuição, o iptables pode já estar completamente bloqueado e exigir que você abra o que precisa, mas independentemente da configuração padrão, você deve sempre dar uma olhada nele e certificar-se de que está configurado da maneira que você deseja. Lembre-se de sempre usar o princípio do menor privilégio e abrir apenas as portas que você absolutamente precisa para os serviços nesse servidor. Se o seu servidor estiver atrás de algum tipo de firewall dedicado, certifique-se de negar tudo, exceto o que é necessário também. Supondo que seu iptables/firewall seja restritivo por padrão, não se esqueça de abrir o que você precisa para que seu servidor faça seu trabalho!
7 - Protegendo o SSH
O SSH é o principal método de acesso remoto para distribuições Linux e, como tal, deve ser devidamente protegido. Você deve desabilitar a capacidade do root de SSH remotamente, mesmo que tenha desabilitado a conta, para que, caso o root seja habilitado no servidor por algum motivo, ele ainda não seja explorável remotamente. Você também pode restringir o SSH a determinados intervalos de IP se tiver um conjunto fixo de IPs de cliente que se conectarão. Opcionalmente, você pode alterar a porta SSH padrão para "obscurecer", mas honestamente uma simples varredura revelará a nova porta aberta para quem quiser encontrá-la. Por fim, você pode desativar completamente a autenticação de senha e usar a autenticação baseada em certificado para reduzir ainda mais as chances de exploração de SSH.
8 - Configuração do daemon
Você limpou seus pacotes, mas também é importante definir os aplicativos corretos para iniciar automaticamente na reinicialização. Certifique-se de desativar todos os daemons desnecessários. Uma chave para um servidor seguro é reduzir o espaço ativo o máximo possível, de modo que as únicas áreas de superfície disponíveis para ataque sejam aquelas exigidas pelo(s) aplicativo(s). Feito isso, os serviços restantes devem ser reforçados o máximo possível para garantir a resiliência.
9 - SELinux e Endurecimento Adicional
Se você já usou uma distro Red Hat, talvez esteja familiarizado com o SELinux, a ferramenta de proteção do kernel que protege o sistema de várias operações. O SELinux é ótimo para proteger contra o uso e acesso não autorizados aos recursos do sistema. Também é ótimo para quebrar aplicativos, portanto, certifique-se de testar sua configuração com o SELinux habilitado e usar os logs para garantir que nada legítimo esteja sendo bloqueado. Além disso, você precisa pesquisar o fortalecimento de aplicativos como MySQL ou Apache, pois cada um terá um conjunto de práticas recomendadas a seguir.
10 - Registro
Por fim, você deve certificar-se de que o nível de registro necessário esteja ativado e que você tenha recursos suficientes para isso. Você acabará solucionando problemas neste servidor, então faça um favor a si mesmo agora e construa a estrutura de registro necessária para resolver os problemas rapidamente. A maioria dos softwares tem registro configurável, mas você precisará de algumas tentativas e erros para encontrar o equilíbrio certo entre informações insuficientes e demais. Há uma série de ferramentas de registro de terceiros que podem ajudar em tudo, desde a agregação até a visualização, mas cada ambiente precisa ser considerado para suas necessidades primeiro. Então você pode encontrar a(s) ferramenta(s) que irá ajudá-lo a preenchê-los.
Cada uma dessas etapas pode levar algum tempo para ser implementada, especialmente na primeira vez. Mas, ao estabelecer uma rotina de configuração inicial do servidor, você pode garantir que as novas máquinas em seu ambiente sejam resilientes. A falha em seguir qualquer uma dessas etapas pode levar a consequências bastante sérias se o seu servidor for alvo de um ataque. Segui-los não garante a segurança - violações de dados acontecem - mas torna muito mais difícil para os agentes mal-intencionados e exigirá algum grau de habilidade para superar.