Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Checklist para Segurança de VPS Linux: Guia Completo de Proteção

17 min de leitura  ·  Guia técnico

Checklist para Segurança de VPS Linux é um conjunto de medidas essenciais para proteger seu servidor virtual contra ameaças cibernéticas. Um VPS Linux desprotegido pode ser comprometido em minutos após ser conectado à internet. Este guia completo apresenta as etapas fundamentais para fortalecer a segurança do seu servidor, desde a configuração inicial até o monitoramento contínuo.

Pré-requisitos

  • Acesso root ou sudo ao seu VPS Linux
  • Terminal SSH para conexão remota
  • Conhecimentos básicos de linha de comando Linux
  • Sistema operacional Linux (Ubuntu, Debian, CentOS ou similar)
  • Backup recente do seu sistema antes de implementar mudanças

Atualizando o Sistema Operacional

A primeira e mais fundamental etapa na proteção do seu VPS Linux é manter o sistema operacional e todos os pacotes instalados atualizados. Vulnerabilidades de segurança são descobertas regularmente, e os desenvolvedores lançam patches para corrigi-las. Um sistema desatualizado é um alvo fácil para invasores.

Para sistemas baseados em Debian/Ubuntu:

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

Para sistemas baseados em CentOS/RHEL:

sudo yum update -y
sudo yum autoremove -y

Após a execução desses comandos, você verá uma lista de pacotes atualizados e o sistema solicitará reinicializações quando necessário. É recomendável configurar atualizações automáticas para garantir que patches de segurança sejam aplicados regularmente.

Para configurar atualizações automáticas no Ubuntu/Debian:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

Para CentOS/RHEL:

sudo yum install yum-cron
sudo systemctl enable yum-cron
sudo systemctl start yum-cron

Fortalecendo a Segurança do SSH

O Secure Shell (SSH) é o principal método de acesso remoto ao seu VPS Linux, tornando-o um alvo prioritário para atacantes. Fortalecer a configuração SSH é crucial para a segurança do servidor. Vamos implementar várias camadas de proteção.

Primeiro, edite o arquivo de configuração SSH:

sudo nano /etc/ssh/sshd_config

Implemente as seguintes alterações:

  1. Altere a porta padrão (22) para um número não padrão entre 1024 e 65535:
    # Altere a porta padrão
    Port 2222
  2. Desabilite o login direto como root:
    # Impedir login direto como root
    PermitRootLogin no
  3. Limite o número de tentativas de autenticação:
    # Limitar tentativas de login
    MaxAuthTries 3
  4. Defina um tempo limite para sessões inativas:
    # Tempo limite para sessões inativas
    ClientAliveInterval 300
    ClientAliveCountMax 2
  5. Restrinja os usuários que podem acessar via SSH:
    # Permitir apenas usuários específicos
    AllowUsers seu_usuario admin
  6. Desabilite a autenticação por senha e use apenas chaves SSH:
    # Usar apenas autenticação por chave
    PasswordAuthentication no
    PubkeyAuthentication yes

Após fazer essas alterações, reinicie o serviço SSH:

sudo systemctl restart sshd

Atenção: Antes de desabilitar a autenticação por senha, certifique-se de que sua chave SSH está configurada corretamente, ou você poderá perder o acesso ao servidor. Mantenha uma sessão SSH ativa enquanto testa as novas configurações.

Para configurar a autenticação por chave SSH:

  1. No seu computador local, gere um par de chaves SSH:
    ssh-keygen -t ed25519 -C "[email protected]"
  2. Copie a chave pública para o servidor:
    ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@seu_servidor
  3. Teste o login com a chave antes de desabilitar senhas:
    ssh -i ~/.ssh/id_ed25519 usuario@seu_servidor

Implementando um Firewall

Um firewall bem configurado é uma barreira essencial contra acessos não autorizados ao seu VPS Linux. O UFW (Uncomplicated Firewall) é uma interface amigável para o iptables, tornando a configuração do firewall mais simples.

Para instalar o UFW:

sudo apt install ufw

Configure regras básicas de firewall:

# Bloquear todas as conexões de entrada por padrão
sudo ufw default deny incoming

# Permitir todas as conexões de saída
sudo ufw default allow outgoing

# Permitir SSH (substitua 2222 pela porta SSH que você configurou)
sudo ufw allow 2222/tcp

# Se você estiver executando um servidor web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Ativar o firewall
sudo ufw enable

Verifique o status do firewall:

sudo ufw status verbose

Output esperado:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip

To                         Action      From
--                         ------      ----
2222/tcp                   ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
2222/tcp (v6)              ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

Para sistemas baseados em CentOS/RHEL, você pode usar firewalld:

sudo yum install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld

# Configurar regras similares
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Instalando e Configurando Fail2ban

O Fail2ban é uma ferramenta de segurança que monitora logs de serviços e bloqueia temporariamente endereços IP que mostram comportamento malicioso, como múltiplas tentativas de login falhas. Esta proteção contra ataques de força bruta é essencial para qualquer VPS exposto à internet.

Para instalar o Fail2ban:

sudo apt install fail2ban

Crie um arquivo de configuração local para personalizar as configurações:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Configure a proteção básica para SSH:

[DEFAULT]
# Banir endereço IP por 1 hora (3600 segundos)
bantime = 3600
# Intervalo de tempo para considerar falhas (10 minutos)
findtime = 600
# Número de falhas antes de banir
maxretry = 3

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Se você estiver executando outros serviços, como um servidor web, adicione configurações para eles também:

[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 5

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5

Inicie e habilite o Fail2ban:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Verifique o status do Fail2ban:

sudo fail2ban-client status

Para verificar o status de uma "jail" específica:

sudo fail2ban-client status sshd

Configurando Usuários e Permissões

A gestão adequada de usuários e permissões é fundamental para a segurança do VPS Linux. O princípio do menor privilégio deve ser aplicado, garantindo que cada usuário tenha apenas as permissões necessárias para suas tarefas.

  1. Crie um usuário não-root com privilégios sudo:
    sudo adduser nome_usuario
    sudo usermod -aG sudo nome_usuario
  2. Configure senhas fortes para todos os usuários:
    sudo passwd nome_usuario
  3. Defina políticas de senha mais rigorosas editando o arquivo PAM:
    sudo apt install libpam-pwquality
    sudo nano /etc/pam.d/common-password
    Adicione ou modifique a linha para incluir requisitos de complexidade:
    password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 reject_username enforce_for_root
  4. Revise e ajuste permissões de arquivos críticos:
    sudo find /etc/ssh -type f -name "*.pub" -exec chmod 644 {} \;
    sudo find /etc/ssh -type f -name "id_*" -exec chmod 600 {} \;
    sudo chmod 700 /root
    sudo chmod 700 /home/*

Audite regularmente os usuários do sistema e remova contas desnecessárias:

sudo awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd

Para remover um usuário:

sudo deluser --remove-home nome_usuario

Implementando Ferramentas de Monitoramento e Detecção de Intrusões

O monitoramento contínuo é crucial para detectar e responder rapidamente a tentativas de invasão. Várias ferramentas podem ajudar a identificar atividades suspeitas no seu VPS Linux.

Instalando e Configurando o Rootkit Hunter (rkhunter)

O rkhunter verifica seu sistema em busca de rootkits, backdoors e possíveis exploits locais:

sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

Configure verificações automáticas:

sudo nano /etc/default/rkhunter

Defina:

CRON_DAILY_RUN="yes"
CRON_DB_UPDATE="yes"
APT_AUTOGEN="yes"

Instalando e Configurando o ClamAV

O ClamAV é um antivírus de código aberto que pode detectar malware:

sudo apt install clamav clamav-daemon
sudo freshclam
sudo systemctl enable clamav-daemon
sudo systemctl start clamav-daemon

Configure verificações regulares:

sudo nano /etc/cron.daily/clamscan

Adicione:

#!/bin/bash
freshclam
clamscan -r /home /var/www /etc --move=/var/quarantine --log=/var/log/clamav/scan.log

Torne o script executável:

sudo chmod +x /etc/cron.daily/clamscan
sudo mkdir -p /var/quarantine
sudo mkdir -p /var/log/clamav

Configurando o AIDE (Advanced Intrusion Detection Environment)

O AIDE monitora alterações em arquivos do sistema para detectar modificações não autorizadas:

sudo apt install aide
sudo aideinit

A inicialização pode levar algum tempo. Após a conclusão, mova o banco de dados:

sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Configure verificações diárias:

sudo nano /etc/cron.daily/aide

Adicione:

#!/bin/bash
/usr/bin/aide --check > /var/log/aide/aide.log

Torne o script executável:

sudo chmod +x /etc/cron.daily/aide
sudo mkdir -p /var/log/aide

Configurando o Logwatch

O Logwatch analisa logs do sistema e envia relatórios por e-mail:

sudo apt install logwatch
sudo nano /etc/cron.daily/00logwatch

Modifique para enviar relatórios para seu e-mail:

#!/bin/bash
/usr/sbin/logwatch --output mail --mailto [email protected] --detail high

Protegendo Serviços Web

Se você estiver executando serviços web no seu VPS Linux, é essencial implementar medidas de segurança adicionais para proteger suas aplicações e dados.

Configurando HTTPS com Let's Encrypt

O HTTPS é fundamental para proteger a comunicação entre seus usuários e o servidor:

sudo apt install certbot
# Para Apache
sudo apt install python3-certbot-apache
sudo certbot --apache -d seu-dominio.com -d www.seu-dominio.com

# Para Nginx
sudo apt install python3-certbot-nginx
sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com

Configure a renovação automática de certificados:

sudo certbot renew --dry-run

Configurando ModSecurity (WAF)

O ModSecurity é um firewall de aplicação web (WAF) que protege contra ataques comuns:

Para Apache:

sudo apt install libapache2-mod-security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo nano /etc/modsecurity/modsecurity.conf

Altere:

SecRuleEngine DetectionOnly

Para:

SecRuleEngine On

Reinicie o Apache:

sudo systemctl restart apache2

Para Nginx:

sudo apt install nginx-extras
sudo nano /etc/nginx/nginx.conf

Adicione dentro do bloco http:

modsecurity on;
modsecurity_rules_file /etc/nginx/modsecurity/main.conf;

Reinicie o Nginx:

sudo systemctl restart nginx

Problemas comuns e como resolver

Sintoma: Bloqueio acidental por Fail2ban

Causa: Múltiplas tentativas de login com credenciais incorretas podem fazer com que seu próprio IP seja bloqueado pelo Fail2ban.
Solução: Adicione seu IP à lista de exceções editando /etc/fail2ban/jail.local e adicionando ignoreip = 127.0.0.1/8 seu_ip_aqui. Depois, reinicie o Fail2ban com sudo systemctl restart fail2ban.

Sintoma: Perda de acesso SSH após alterações na configuração

Causa: Erros na configuração do SSH, como alterar a porta ou desabilitar a autenticação por senha sem configurar corretamente as chaves SSH.
Solução: Acesse o console de emergência do VPS através do painel de controle do seu provedor. Reverta as alterações no arquivo /etc/ssh/sshd_config e reinicie o serviço SSH.

Sintoma: Servidor lento ou com alta carga de CPU/memória

Causa: Pode indicar um ataque em andamento, como DDoS, mineração de criptomoedas ou comprometimento do sistema.
Solução: Verifique processos suspeitos com htop ou ps aux | grep -i suspicious_term. Analise conexões de rede com netstat -tuln. Utilize ferramentas como lsof -i para identificar programas usando portas específicas. Em caso de comprometimento confirmado, considere restaurar de um backup limpo.

Sintoma: Arquivos modificados inesperadamente

Causa: Possível invasão do sistema ou malware que modificou arquivos críticos.
Solução: Execute verificações com AIDE (sudo aide --check) para identificar alterações não autorizadas. Compare os hashes de arquivos importantes com versões conhecidas. Isole o servidor da rede, faça backup dos dados e considere uma reinstalação limpa do sistema.

Sintoma: Alertas de tentativas de login de países estrangeiros

Causa: Bots automatizados varrem constantemente a internet em busca de servidores vulneráveis.
Solução: Implemente restrições geográficas com iptables ou módulos como GeoIP para o Nginx/Apache. Exemplo com iptables: sudo apt install xtables-addons-common && sudo iptables -A INPUT -m geoip --src-cc CN,RU -j DROP (bloqueia tráfego da China e Rússia).

Perguntas frequentes sobre checklist para segurança de VPS Linux

Qual é o primeiro passo para proteger um VPS Linux?

O primeiro passo é atualizar completamente o sistema operacional e todos os pacotes instalados. Execute 'apt update && apt upgrade -y' (Debian/Ubuntu) ou 'yum update -y' (CentOS/RHEL) para aplicar todas as correções de segurança disponíveis.

Como configurar corretamente o SSH para maior segurança?

Configure o SSH para maior segurança alterando a porta padrão (22), desabilitando o login root, implementando autenticação por chave pública em vez de senha, e limitando os usuários que podem acessar o servidor. Edite o arquivo /etc/ssh/sshd_config e reinicie o serviço após as alterações.

O que é Fail2ban e por que devo instalá-lo no meu VPS?

Fail2ban é uma ferramenta de segurança que monitora logs de serviços como SSH e automaticamente bloqueia endereços IP que mostram comportamento malicioso, como múltiplas tentativas de login falhas. Ele protege contra ataques de força bruta, reduzindo significativamente o risco de invasões.

Quais ferramentas de monitoramento devo usar para detectar invasões no meu VPS Linux?

Recomenda-se usar uma combinação de ferramentas como Logwatch para análise de logs, Rkhunter e ClamAV para detecção de rootkits e malware, e ferramentas de monitoramento de integridade como AIDE ou Tripwire para detectar alterações não autorizadas em arquivos do sistema.

Com que frequência devo verificar as atualizações de segurança no meu VPS Linux?

Você deve verificar e aplicar atualizações de segurança pelo menos uma vez por semana. O ideal é configurar atualizações automáticas para patches de segurança críticos usando ferramentas como unattended-upgrades no Ubuntu/Debian ou yum-cron no CentOS/RHEL, complementadas por verificações manuais regulares.

Conclusão

A segurança de um VPS Linux é um processo contínuo que requer vigilância constante e atualizações regulares. Seguindo este checklist completo, você estabeleceu uma base sólida para proteger seu servidor contra a maioria das ameaças comuns.

  • Mantenha seu sistema sempre atualizado e configure atualizações automáticas para patches de segurança
  • Implemente múltiplas camadas de proteção, incluindo firewall, Fail2ban e ferramentas de detecção de intrusão
  • Realize auditorias de segurança regulares e monitore logs do sistema para identificar comportamentos suspeitos

Lembre-se de que a segurança é um equilíbrio entre proteção e usabilidade. Avalie regularmente suas configurações de segurança e ajuste-as conforme necessário para atender às necessidades específicas do seu ambiente.

Precisa de ajuda com a segurança do seu VPS Linux?

A AviraHost oferece servidores VPS Linux pré-configurados com medidas de segurança robustas e suporte técnico especializado para ajudar a proteger seu ambiente contra ameaças cibernéticas.

Conheça nossos planos de Servidor VPS

  • 0 Usuários acharam útil
  • seguranca-linux, vps, firewall, ssh, fail2ban, hardening, linux, avirahost
Esta resposta lhe foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...