Caso você esteja avaliando adquirir um servidor LAMP (para Linux, Apache, MySQL, PHP), seja um Servidor Privado Virtual (VPS) ou um Servidor Dedicado, a primeira coisa que você precisa fazer é protegê-lo.
Neste blog, você encontrará um passo a passo sobre como configurar o seu servidor corretamente e algumas opções de ferramentas para ajudar a proteger os acessos.
Passo 1 - Configuração do Firewall
O primeiro passo é proteger o seu servidor usando um firewall. O firewall atua como uma barreira entre o seu servidor e o mundo exterior, avaliando o tráfego que chega e bloqueando aqueles que são considerados maliciosos. Existem muitas opções de firewall, mas as mais populares são:
UFW
O UFW é um firewall nada complicado e uma ótima solução, já que requer uma configuração mínima. Ele oferece um jeito simples e fácil de criar regras customizadas e funciona tanto em redes IPV4 quanto IPV6. Se, por padrão, o UFW ficar desativado, certifique-se de que você o ative antes de configurá-lo. O firewall UFW tem uma interface GUI sob o nome de Gufw.
Iptables
O Iptables é outro firewall popular, que vem com o Linux kernel e é habilitado por padrão no Linux. Assim como o UFW, essa opção funciona em IPV4 e IPV6. Para gerenciar a IPV6, existe uma outra versão de iptables, chamada ip6tables.
Ao contrário do UFW, o iptables syntax é mais difícil de controlar. No entanto, a vantagem é que oferece a possibilidade de criar configurações de segurança em nível granular, sendo assim uma ferramenta poderosa para proteger o seu servidor.
Passo 2 - Configuração para Proteção de Login Remoto
Como um administrador do servidor, você precisará acessar seu servidor regularmente pela internet. Essa conexão remota precisa estar protegida e criptografada. Uma forma de fazer isso é implementar uma conexão segura SSH em seu servidor.
Existem 2 métodos principais para se conectar via SSH:
Conexão por senha
Como o próprio nome sugere, esse tipo de conexão requer que você informe uma senha toda vez que você se logar via SSH. Apesar desse método precisar de pouca configuração, ele é também o menos seguro e mais suscetível a ciberataques.
Conexão por certificado
Esse tipo de conexão requer que tanto o servidor quanto a máquina (ou dispositivo que está solicitando o acesso) troquem chaves públicas, que são usadas para criptografar a conexão e autenticar um ao outro. Esse tipo de conexão é mais complexo de configurar do que o método por senha, porém é muito mais seguro.
Passo 3 - Análise de Malware
Monitorar o seu servidor periodicamente, usando um scanner de malware tem como objetivo detectar acessos não autorizados feitos por softwares maliciosos. Abaixo, você verá 2 dos mais populares e gratuitos scanners de malware para o seu servidor:
Chkrootkit
Esse scanner busca por qualquer processo suspeito em seu servidor Linux. Apesar de não detectar todos os possíveis tipos de malwarer, o chkrootkit é um bom começo. Lembre-se de que você não deve confiar e depender apesa de um chkrootkit para realizar uma análise completa de malware para o seu servidor; é importante considerar essa ferramenta como uma solução básica e inicial nesse processo de monitoramento.
Rkhunter
O Rkhunter, assim como o chkrootkit, busca por rootkits no sistema. Mas ele também tem a habilidade de identificar arquivos escondidos, permissões erradas e ligações suspeitas. O Rkhunter funciona em qualquer sistema baseado em Unix e, combinado com o chkrootkit, é uma ótima solução para a identificação básica de malware.
Passo 4 – Configuração para Detecção de Intrusos
Entenda a detecção de intrusos como um sistema de alarme que identifica acessos não autorizados ao seu servidor. Os sistemas mais populares para isso são:
Aide
O Aide é um verificador gratuito de arquivos e integridade de diretório que funciona como um tripwire. Primeiro, ele constrói um banco de dados da atual situação do sistema. Então, ele verifica a integridade de qualquer arquivo no sistema comparado com o banco de dados conhecido. Se houver qualquer mudança significativa na integridade do sistema, ele notificará o administrador do servidor.
Bro
O Bro é uma rede baseada em um Sistema de Detecção de Intrusos (IDS) que monitora a sua rede para qualquer atividade não usual. A forma como o Bro funciona é, inicialmente, criando políticas baseadas em eventos ocorridos na rede e o seu atual estado ou políticas. Caso seja detectado algo não usual, será criado um alerta, alteradas regras de firewall, atualizados logs de eventos, etc. É uma ferramenta muito versátil, porém difícil de ser aprendida, especialmente para usuários sem experiência com Bro.
Passo 5 – Configuração de SFTP ao invés de FTP
Como um administrador, você precisará fazer o upload ou download de arquivos de seu servidor periodicamente. O FTP mais popular está sujeito a vulnerabilidades de segurança, já que o login de autenticação é feito em formato de texto (plain text), que é suscetível à interceptação. A opção mais segura é trocar para um "Secure File Transfer Protocol" ou SFTP, que pode ser facilmente instalado e configurado em seu servidor.
Passo 6 - Atualização e Correção do Servidor
Se o seu servidor é Linux ou baseado em Unix, assegure-se de que você faça as atualizações de kernel periodicamente, à medida que os fabricantes ou distribuidores disponibilizem as versões mais recentes. Atualizar o kernel fará com que seu sistema se mantenha estável e protegido com o kernel funcionando adequadamente. Deixar um servidor desatualizado é como convidar um hacker para entrar.
Passo 7 - Configuração de Permissões
Permissões de arquivo no servidor são também muito importantes. Qualquer configuração errada nesse quesito permitirá ataques ao seu servidor facilmente. Assim, ao configurar permissões, tenha a certeza de que você esteja dando a permissão adequada e necessária aos usuários de seu sistema.
Você deve implementar políticas umask como padrão para quaisquer novos arquivos criados em servidores Linux, com o objetivo de restringir as permissões de arquivo. Além disso, o uso de "Set Group Identification" (SGID) e "Set User Identification" (SUID) em arquivos e diretórios limitarão certas permissões de usuários e grupos em arquivos e diretórios confidenciais. E isso será feito sem limitar o uso das características do servidor, às quais os usuários tenham permissão de uso (ex.: reenvio de senha).
A Segurança de Servidores é de Vital Importância!
Os pontos mencionados aqui trazem uma visão geral de onde e como implementar um nível mínimo de segurança em seu(s) servidor(es). Claro que segurança é um tema muito abrangente e, por isso, algo que você precisa estar constantemente atualizado sobre e alerta.