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

Guia para Configurar Servidor de Produção Linux (Ubuntu 22.04)

13 min de leitura  ·  Guia técnico

Para configurar um servidor de produção Linux, siga este checklist: atualize o sistema, crie um usuário não-root com privilégios sudo, configure autenticação por chave SSH, desabilite o login root, e configure o firewall UFW. Essas etapas garantem segurança e estabilidade para o ambiente de produção.

  • Atualize o sistema operacional com apt update && apt upgrade -y
  • Crie um usuário administrativo com privilégios sudo
  • Configure autenticação por chave SSH e desabilite login root
  • Configure o firewall UFW para permitir apenas portas essenciais
  • Instale e configure fail2ban para proteção contra ataques de força bruta
  • Implemente backup automatizado e monitoramento contínuo

Pré-requisitos

  • Servidor Linux recém-instalado com acesso root
  • Conexão SSH estável para administração remota
  • Conhecimento básico de comandos Linux e editores de texto
  • Chaves SSH geradas para autenticação segura
  • Endereço IP fixo configurado no servidor

Configuração inicial do sistema

A configuração inicial do servidor para produção começa com a atualização completa do sistema e criação de usuário administrativo não-root. Esta etapa fundamental estabelece a base segura para todas as configurações posteriores.

  1. Atualize o sistema operacional:
apt update && apt upgrade -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  base-files ubuntu-keyring
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  1. Crie um usuário administrativo com privilégios sudo:
adduser admin
usermod -aG sudo admin
  1. Configure o timezone do servidor:
timedatectl set-timezone America/Sao_Paulo
timedatectl status
               Local time: Fri 2024-01-15 14:30:25 -03
           Universal time: Fri 2024-01-15 17:30:25 UTC
                 RTC time: Fri 2024-01-15 17:30:25
                Time zone: America/Sao_Paulo (-03, -0300)
System clock synchronized: yes
  1. Configure o hostname do servidor:
hostnamectl set-hostname servidor-producao
echo "127.0.0.1 servidor-producao" >> /etc/hosts

Configuração de segurança SSH e firewall

A segurança SSH representa o primeiro ponto crítico na configuração de servidor para produção. Desabilitar autenticação por senha e configurar firewall restritivo são medidas obrigatórias para proteger contra ataques automatizados.

  1. Configure autenticação por chave SSH editando o arquivo de configuração:
nano /etc/ssh/sshd_config

Modifique as seguintes linhas:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2222
MaxAuthTries 3
  1. Copie sua chave pública SSH para o usuário admin:
mkdir -p /home/admin/.ssh
echo "sua-chave-publica-ssh" > /home/admin/.ssh/authorized_keys
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keys
chown -R admin:admin /home/admin/.ssh
  1. Reinicie o serviço SSH:
systemctl restart ssh
systemctl status ssh
  1. Configure o firewall UFW com regras restritivas:
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Rules updated
Rules updated (v6)
Rules updated
Rules updated (v6)
Rules updated
Rules updated (v6)
Firewall is active and enabled on system startup

Instalação e configuração de serviços essenciais

Os serviços essenciais para servidor de produção incluem fail2ban para proteção contra ataques de força bruta, sistema de monitoramento e ferramentas de backup automatizado. Esta configuração garante operação confiável 24/7.

  1. Instale o fail2ban para proteção contra ataques:
apt install fail2ban -y
systemctl enable fail2ban
  1. Configure o fail2ban criando arquivo de configuração local:
nano /etc/fail2ban/jail.local

Adicione a configuração:

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3

[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3
  1. Instale ferramentas de monitoramento do sistema:
apt install htop iotop nethogs unattended-upgrades -y
  1. Configure atualizações automáticas de segurança:
dpkg-reconfigure -plow unattended-upgrades
  1. Instale e configure logrotate para gerenciamento de logs:
nano /etc/logrotate.d/custom-logs
/var/log/aplicacao/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    copytruncate
}

Configuração de backup e monitoramento

O sistema de backup automatizado e monitoramento contínuo são componentes críticos para servidor em produção. Implementar verificações de saúde do sistema e backup incremental garante recuperação rápida em caso de falhas.

  1. Crie script de backup automatizado:
nano /usr/local/bin/backup-sistema.sh
#!/bin/bash
DATA=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup"
LOG_FILE="/var/log/backup.log"

mkdir -p $BACKUP_DIR

echo "$(date): Iniciando backup do sistema" >> $LOG_FILE

# Backup de configurações críticas
tar -czf $BACKUP_DIR/config_$DATA.tar.gz /etc /home /var/www 2>/dev/null

# Backup do banco de dados (se aplicável)
if systemctl is-active --quiet mysql; then
    mysqldump --all-databases > $BACKUP_DIR/mysql_$DATA.sql
fi

# Remove backups antigos (mantém 7 dias)
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete

echo "$(date): Backup concluído" >> $LOG_FILE
  1. Torne o script executável e configure cron:
chmod +x /usr/local/bin/backup-sistema.sh
crontab -e

Adicione a linha para backup diário às 2h:

0 2 * * * /usr/local/bin/backup-sistema.sh
  1. Configure monitoramento de recursos do sistema:
nano /usr/local/bin/monitor-sistema.sh
#!/bin/bash
LOG_FILE="/var/log/monitor.log"
ALERT_EMAIL="[email protected]"

# Verifica uso de CPU
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
    echo "$(date): ALERTA - CPU em ${CPU_USAGE}%" >> $LOG_FILE
fi

# Verifica uso de memória
MEM_USAGE=$(free | grep Mem | awk '{printf "%.2f", $3/$2 * 100.0}')
if (( $(echo "$MEM_USAGE > 85" | bc -l) )); then
    echo "$(date): ALERTA - Memória em ${MEM_USAGE}%" >> $LOG_FILE
fi

# Verifica espaço em disco
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | cut -d'%' -f1)
if [ $DISK_USAGE -gt 85 ]; then
    echo "$(date): ALERTA - Disco em ${DISK_USAGE}%" >> $LOG_FILE
fi
  1. Configure execução do monitoramento a cada 5 minutos:
chmod +x /usr/local/bin/monitor-sistema.sh
echo "*/5 * * * * /usr/local/bin/monitor-sistema.sh" | crontab -

Para servidores que hospedam sites WordPress, considere também configurar um servidor Linux para hospedagem de sites com otimizações específicas para aplicações web.

Otimização de performance e limites do sistema

A otimização de performance do servidor envolve ajustes nos limites do kernel, configuração de swap e tuning de parâmetros de rede. Estas configurações maximizam a capacidade de resposta sob carga elevada.

  1. Configure limites do sistema no arquivo limits.conf:
nano /etc/security/limits.conf

Adicione as seguintes linhas:

* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
root soft nofile 65536
root hard nofile 65536
  1. Otimize parâmetros do kernel para produção:
nano /etc/sysctl.conf

Adicione as configurações de otimização:

# Otimizações de rede
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = bbr

# Otimizações de memória
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5

# Segurança
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
  1. Aplique as configurações:
sysctl -p
  1. Configure swap otimizado (para servidores com 4GB+ RAM):
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890

Problemas comuns e como resolver

Sintoma: SSH não aceita conexões após mudança de porta

Causa: Firewall bloqueando a nova porta SSH ou serviço SSH não reiniciado corretamente.
Solução: Verifique se a porta está liberada no UFW com ufw status e reinicie o SSH com systemctl restart ssh. Se necessário, acesse via console da AviraHost para corrigir.

Sintoma: Fail2ban não está bloqueando ataques de força bruta

Causa: Configuração incorreta do arquivo jail.local ou logs não sendo monitorados adequadamente.
Solução: Verifique o status com fail2ban-client status sshd e confirme se o caminho do log em jail.local está correto. Reinicie o serviço com systemctl restart fail2ban.

Sintoma: Sistema lento após aplicar otimizações de kernel

Causa: Valores inadequados para a quantidade de RAM disponível ou configuração de swap incorreta.
Solução: Ajuste vm.swappiness para valor entre 1-10 para servidores com RAM suficiente. Monitore uso de memória com free -h e ajuste parâmetros conforme necessário.

Sintoma: Backup automatizado falhando silenciosamente

Causa: Permissões insuficientes no diretório de backup ou espaço em disco insuficiente.
Solução: Verifique permissões com ls -la /backup e espaço disponível com df -h. Ajuste o script para incluir verificação de espaço antes de iniciar backup.

Sintoma: Monitoramento não enviando alertas críticos

Causa: Serviço de email não configurado ou script de monitoramento com erro de sintaxe.
Solução: Teste o script manualmente e verifique logs em /var/log/monitor.log. Configure postfix ou use webhook para notificações externas se email local não estiver disponível.

Perguntas frequentes sobre checklist para configurar servidor de produção Linux

Quanto tempo leva para configurar um servidor para produção?

A configuração completa de um servidor para produção leva entre 2 a 4 horas, dependendo da complexidade dos serviços. Isso inclui atualizações, configuração de firewall, instalação de SSL e configuração de backup automatizado.

Quais são os primeiros passos após instalar o sistema no servidor?

Os primeiros passos incluem atualizar o sistema com apt update && apt upgrade, criar um usuário não-root com privilégios sudo, configurar autenticação por chave SSH e desabilitar login root direto. Também é essencial configurar o firewall UFW imediatamente.

É necessário instalar antivírus em servidor Linux?

Não é obrigatório instalar antivírus tradicional em servidores Linux, pois o sistema é naturalmente mais seguro. É mais importante focar em configurações de firewall, fail2ban para proteção contra ataques de força bruta e manter o sistema sempre atualizado.

Como verificar se meu servidor está seguro após a configuração?

Verifique a segurança executando nmap localhost para conferir portas abertas, testando conexões SSH com chaves, verificando logs do fail2ban e confirmando que o firewall UFW está ativo. Também execute lynis audit system para uma auditoria completa de segurança.

Qual a diferença entre configurar servidor para desenvolvimento e produção?

Servidores de produção exigem configurações mais rigorosas de segurança, como desabilitar login root, usar apenas autenticação por chave SSH, configurar firewall restritivo e implementar monitoramento contínuo. Servidores de desenvolvimento podem ter configurações mais flexíveis para facilitar testes e debugging.

Conclusão

  • Execute este checklist completo antes de colocar qualquer servidor em produção para garantir segurança e estabilidade máximas
  • Monitore regularmente os logs de sistema, backup e segurança para identificar problemas antes que afetem a operação
  • Mantenha documentação atualizada de todas as configurações personalizadas para facilitar manutenção e recuperação de desastres

Precisa de ajuda com configuração de servidor?

A AviraHost oferece servidores VPS pré-configurados com as melhores práticas de segurança. Nossa equipe técnica pode auxiliar na implementação completa deste checklist.

Conheça nossos servidores VPS otimizados

  • 0 Os usuários acharam isso útil
  • ubuntu-22.04, servidor-linux, configuracao-producao, seguranca-servidor, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...