Editado 2 Semanas atrás por ExtremeHow Equipe Editorial
SegurançaFortalecimentoFirewallSSHSegurança de RedeMelhores PráticasAdministração de ServidorTeste de PenetraçãoMonitoramentoConformidade
Tradução atualizada 2 Semanas atrás
Proteger um servidor Linux é um aspecto crítico da gestão da infraestrutura de TI e da proteção de dados sensíveis. Apesar do Linux ser famoso por seus fortes recursos de segurança, o poder desses recursos depende em grande parte de quão bem eles são configurados e gerenciados. Este guia abrangente explicará em passos detalhados como proteger efetivamente seu servidor Linux. Cada passo incluirá a configuração das configurações do servidor, o fortalecimento dos recursos do sistema e o uso de ferramentas de software apropriadas e melhores práticas.
Atualizações regulares são imprescindíveis. A maioria das vulnerabilidades é explorada através de software desatualizado. Portanto, o primeiro passo para proteger seu servidor é garantir que ele esteja totalmente atualizado com os patches de segurança e atualizações mais recentes. Isso pode ser alcançado usando o gerenciador de pacotes nativo para a sua distribuição Linux. Por exemplo, em um sistema baseado em Debian, você pode executar o seguinte comando:
sudo apt update && sudo apt upgrade
Para sistemas baseados em Red Hat, você usaria:
sudo yum update
Configurar atualizações automáticas pode simplificar ainda mais esse processo e garantir que patches críticos sejam aplicados prontamente.
Cada serviço executado em um servidor Linux é um potencial ponto de entrada para atacantes. Audite seus serviços existentes e desative ou remova qualquer coisa desnecessária para reduzir a superfície de ataque do seu servidor. Você pode usar:
systemctl list-unit-files --type=service
Para revisar os serviços em execução e seu status. Desative serviços não essenciais com os seguintes comandos:
sudo systemctl disable <service_name>
As chaves SSH fornecem um mecanismo de autenticação mais seguro do que senhas. Você deve criar um par de chaves SSH e usá-las para acesso:
ssh-keygen -t rsa -b 4096
Copie sua chave pública para o servidor usando o comando:
ssh-copy-id user@servername
Em seguida, desative a autenticação por senha para impor o uso de chaves SSH editando o arquivo de configuração SSH:
sudo nano /etc/ssh/sshd_config
Localize a linha PasswordAuthentication
e defina-a como no
.
Um firewall atua como uma barreira e permite que o tráfego entre e saia do seu servidor com base em regras predefinidas. O UFW (Uncomplicated Firewall) é fácil de usar para esse propósito:
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw enable
Lembre-se de permitir apenas as portas e serviços necessários. Para maior controle sobre as regras, o iptables pode ser usado no lugar.
Implantar um sistema de detecção de intrusão (IDS), como Snort ou OSSEC, pode monitorar atividades suspeitas em seu servidor. Esses sistemas podem registrar tentativas e alertá-lo quando tentativas de violação de segurança ocorrerem.
O registro é crucial para investigar violações ou atividades suspeitas. Ferramentas como fail2ban e logwatch podem ajudar a monitorar atividades de log e identificar padrões que indicam tentativas de força bruta ou acesso não autorizado.
Use o princípio do menor privilégio, onde os usuários recebem apenas os privilégios necessários para suas tarefas. Crie novos usuários e atribua-os aos grupos apropriados:
sudo adduser newuser
sudo usermod -aG somegroup newuser
Ajuste as permissões dos arquivos para garantir que arquivos sensíveis não sejam acessíveis publicamente. Use um comando como este:
sudo chmod 640 <filename>
Para modificar a propriedade dos arquivos e chown
:
sudo chown user:group <filename>
Se estiver compartilhando diretórios pela rede, certifique-se de que eles estejam configurados de maneira segura. Isso inclui definir as permissões corretas e restringir o acesso dentro da configuração da rede através de NFS, Samba ou outros.
Certifique-se de que os dados estão criptografados tanto em repouso quanto em trânsito. Use ferramentas como OpenSSL para arquivos e diretórios, e certifique-se de que conexões são feitas usando HTTPS, SSH ou VPN para maior segurança.
Backups regulares são importantes para manter a integridade e a disponibilidade dos dados no caso de serem perdidos ou corrompidos. Scripts automatizados podem ajudar a configurar backups diários ou semanais, que podem ser armazenados de forma segura fora do local.
Realize auditorias de segurança regularmente revisando logs de acesso, executando scans de vulnerabilidades e usando ferramentas de benchmarking de segurança para identificar áreas de melhoria.
Instale e configure o Fail2ban para bloquear temporariamente IPs maliciosos. Isso é feito escaneando os arquivos de log e banindo IPs com muitas tentativas de login falhadas:
sudo apt install fail2ban
Edite seus arquivos de configuração conforme necessário e configure o arquivo jail.local para proteger vários serviços.
Como uma medida adicional de segurança, é recomendado desativar o login root via SSH. Isso pode ser modificado no arquivo de configuração SSH:
sudo nano /etc/ssh/sshd_config
Encontre a linha PermitRootLogin
e defina-a como no
.
O SELinux (Security-Enhanced Linux) e o AppArmor podem fornecer uma camada adicional de segurança controlando processos. Certifique-se de não aplicar políticas excessivamente restritivas que possam prejudicar inadvertidamente as operações do servidor.
Para servidores que executam bancos de dados, reveja e proteja a configuração do banco de dados para desabilitar logins root remotos e contas sem senha, e garanta que consultas venham apenas de endereços IP confiáveis.
Proteger seu servidor Linux é um processo de múltiplas etapas que envolve não apenas configurar corretamente o servidor, mas também mantê-lo e monitorá-lo constantemente. As práticas e ferramentas mencionadas acima contribuem coletivamente para a segurança robusta do seu ambiente de servidor, mantendo em mente atualizações frequentes, auditorias e adaptação a novas medidas de segurança à medida que as ameaças evoluem.
Se você encontrar algo errado com o conteúdo do artigo, você pode