| Por Mauro J. Miranda

Introdução à Segurança para Servidores Linux

A segurança de servidores Linux é uma das prioridades para qualquer administrador de sistemas. Portanto, com a crescente onda de ataques cibernéticos, garantir que seus servidores estejam seguros é essencial para proteger dados sensíveis e a integridade da infraestrutura. Dessa forma, este artigo oferece um guia abrangente com dicas de segurança para servidores Linux, ajudando a fortalecer sua defesa contra ameaças.

Mantenha o Sistema Atualizado para Segurança de Servidores Linux

Uma das práticas mais básicas, porém cruciais, é manter o sistema operacional e todos os softwares atualizados. Vulnerabilidades são descobertas constantemente, e as atualizações frequentes garantem que as falhas de segurança sejam corrigidas.

  • Automatize as Atualizações: Além disso, configure o sistema para verificar e instalar atualizações automaticamente. Por exemplo, no Ubuntu, você pode habilitar atualizações automáticas com o comando:bashCopy codesudo apt-get install unattended-upgrades
  • Monitoramento de CVEs: Ainda mais, utilize ferramentas como o OSSEC para monitorar vulnerabilidades específicas (CVE) e aplicar patches assim que estiverem disponíveis.

Autenticação com Chave Pública: Melhoria na Segurança para Servidores Linux

A autenticação baseada em senha é vulnerável a ataques de força bruta. Por isso, substitua-a pela autenticação com chave pública para melhorar a segurança do SSH.

  • Gerar Chave SSH: No cliente, use o comando:bashCopy codessh-keygen -t rsa -b 4096
  • Copiar Chave Pública para o Servidor:bashCopy codessh-copy-id usuario@servidor
  • Desabilitar Login com Senha: Após configurar a chave pública, edite o arquivo /etc/ssh/sshd_config e defina:bashCopy codePasswordAuthentication no

Configurando um Firewall para Segurança de Servidores Linux

Em primeiro lugar, implementar um firewall é essencial para controlar o tráfego de rede e proteger o servidor contra acessos não autorizados.

  • Configurar o UFW: O ufw (Uncomplicated Firewall) é uma ferramenta simplificada para a configuração de regras de firewall no Ubuntu.bashCopy codesudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw enable
  • Utilizar Iptables: Da mesma forma, para maior controle, o iptables permite criar regras personalizadas para filtrar o tráfego de rede. Por exemplo:bashCopy codesudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -j DROP

Desativando Serviços Inúteis para Aumentar a Segurança em Servidores Linux

Serviços desnecessários aumentam a superfície de ataque do servidor. Portanto, desabilite ou remova qualquer serviço que não esteja sendo usado.

  • Identifique os Serviços em Execução:bashCopy codesystemctl list-units --type=service --state=running
  • Desative Serviços Inúteis:bashCopy codesudo systemctl disable nome_do_serviço sudo systemctl stop nome_do_serviço

Limite o Acesso ao Root

O acesso direto ao usuário root deve ser evitado. Assim sendo, configure o servidor para exigir que os usuários façam login como uma conta normal e, em seguida, use sudo para realizar tarefas administrativas.

  • Desabilitar Login Root via SSH: No arquivo /etc/ssh/sshd_config, defina:bashCopy codePermitRootLogin no
  • Configurar Sudoers: Além disso, adicione usuários ao grupo sudo para permitir que eles executem comandos como root:bashCopy codesudo usermod -aG sudo usuario

Implemente Monitoramento de Logs

Certamente, monitorar logs é crucial para identificar atividades suspeitas e responder a incidentes de segurança rapidamente.

  • Ferramentas de Monitoramento: Por exemplo, utilize ferramentas como logwatch, rsyslog, ou o Graylog para centralizar e monitorar logs.
  • Configuração do Logwatch: Instale e configure o logwatch para enviar relatórios diários por e-mail:bashCopy codesudo apt-get install logwatch sudo logwatch --detail High --mailto [email protected] --range hoje

Configure o Fail2Ban

O Fail2Ban protege o servidor contra ataques de força bruta, bloqueando endereços IP que tentam acessar o servidor repetidamente com credenciais incorretas.

  • Instalar o Fail2Ban:bashCopy codesudo apt-get install fail2ban
  • Configurar Jail Local: Crie o arquivo /etc/fail2ban/jail.local e defina parâmetros para o SSH:bashCopy code[sshd] enabled = true port = 22 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600

Use SELinux ou AppArmor

Além disso, ferramentas como SELinux ou AppArmor reforçam a segurança do sistema, impondo políticas restritivas que limitam as ações que processos podem realizar.

  • Habilitar e Configurar o SELinux: No CentOS e RHEL, o SELinux vem instalado por padrão. Portanto, verifique o status:bashCopy codesudo sestatus
  • Configurar Políticas AppArmor: No Ubuntu, o AppArmor é o padrão. Assim sendo, para visualizar e aplicar perfis:bashCopy codesudo aa-status sudo aa-enforce /etc/apparmor.d/

Criptografe Dados Sensíveis

A criptografia garante que, mesmo que os dados sejam comprometidos, eles não poderão ser lidos sem a chave de decriptação.

  • Criptografar Partições: Utilize o LUKS para criptografar partições inteiras:bashCopy codesudo cryptsetup luksFormat /dev/sdX sudo cryptsetup luksOpen /dev/sdX nome_criptografado
  • Criptografar Arquivos com GPG: Da mesma forma, para criptografar arquivos individuais:bashCopy codegpg -c arquivo.txt

Implemente Autenticação de Dois Fatores (2FA)

Adicionar uma camada extra de segurança com autenticação de dois fatores dificulta o acesso não autorizado, mesmo que as credenciais sejam comprometidas.

  • Instalar Google Authenticator: Adicione o Google Authenticator ao SSH:bashCopy codesudo apt-get install libpam-google-authenticator google-authenticator
  • Configurar SSH para 2FA: Logo depois, edite o arquivo /etc/pam.d/sshd e adicione:bashCopy codeauth required pam_google_authenticator.so No arquivo /etc/ssh/sshd_config, adicione:bashCopy codeChallengeResponseAuthentication yes

Realize Backups Regulares

Garantir que você tenha backups atualizados é vital para a recuperação após um incidente de segurança.

  • Automatize Backups: Além disso, configure scripts de backup e cron jobs para automatizar o processo.
  • Verifique Backups: Finalmente, teste regularmente a restauração dos backups para garantir que eles funcionem corretamente.

Restrinja Acesso Físico

Controle o acesso físico ao servidor, visto que um invasor com acesso físico pode facilmente comprometer o sistema.

  • Use BIOS/UEFI Passwords: Configure senhas no BIOS/UEFI para impedir o boot de dispositivos não autorizados.
  • Desabilite Boot de Dispositivos Externos: Nas configurações de BIOS/UEFI, desabilite o boot de dispositivos externos como USBs.

Conclusão

A segurança de servidores Linux é um processo contínuo e multifacetado. Portanto, implementar essas práticas reforçará significativamente a segurança do seu servidor, protegendo contra uma variedade de ameaças cibernéticas. Dessa forma, lembre-se, a vigilância constante e a adaptação às novas ameaças são fundamentais para manter um ambiente seguro.