Serviços Essenciais vs Desnecessários no Linux: Guia de Hardening e Performance

Serviços desnecessários linux. Distinguir entre serviços essenciais e desnecessários é crucial para reduzir a superfície de ataque e economizar recursos (CPU/RAM).

Aqui está uma análise técnica dividida por categorias para um servidor web típico (como os que rodam cPanel, Docker ou stacks LEMP/LAMP).


1. Serviços Essenciais (Core Services)

Estes são fundamentais para o funcionamento do servidor e para o acesso administrativo. Nunca devem ser removidos, apenas endurecidos (hardened).

  • Acesso Remoto:
    • sshd (OpenSSH Server): A única porta de entrada segura. Recomendação: Alterar porta padrão, usar chaves SSH e desativar login root.
  • Rede e Resolução de Nomes:
    • network / NetworkManager: Gerencia a conectividade.
    • resolved ou bind/named: Para resolução DNS (essencial se você hospeda seus próprios zonas DNS).
  • Web Server (Aplicação):
    • httpd (Apache), nginx, litespeed ou docker: O motor principal do seu serviço.
  • Banco de Dados:
    • mariadb / mysqld: Se o banco for local.
  • Segurança e Logs:
    • rsyslog / journald: Para manter logs do sistema.
    • firewalld, iptables ou csf (ConfigServer Security & Firewall): Crítico para bloquear tráfego indesejado.
    • crond: Para agendamento de tarefas automáticas (backups, rotação de logs).
    • fail2ban: Essencial para prevenção de intrusão contra força bruta.

2. Serviços Frequentemente Desnecessários (Bloatware/Risco)

Em um servidor dedicado a hospedagem web ou banco de dados, estes serviços geralmente vêm instalados por padrão na distro mas não têm utilidade, consumindo recursos e abrindo portas.

Hardware e Periféricos (Remover em Servidores/VPS)

  • cups / cups-browsed: Sistema de impressão (Common Unix Printing System). Servidores web não imprimem.
  • bluetooth: Serviço de Bluetooth. Inútil em servidores rack/VPS.
  • alsa-utils / pulseaudio: Serviços de som/áudio.
  • wpa_supplicant: Para conexão Wi-Fi. Desnecessário se o servidor usa cabo (Ethernet) ou é uma VPS.

Descoberta de Rede e Compartilhamento (Risco de Segurança)

  • avahi-daemon: Usado para descoberta de serviços em rede local (mDNS/Zeroconf). Frequentemente inútil em servidores de produção e cria ruído na rede.
  • rpcbind / nfs-common: Necessário apenas se você monta sistemas de arquivos externos via NFS. Se não usa NFS, desative (porta 111 é vetor de ataque comum para DDoS amplification).
  • samba (smbd/nmbd): Compartilhamento de arquivos com Windows. Geralmente não deve estar rodando em um servidor web público.

Protocolos Legados/Inseguros

  • telnet: Nunca use. Substitua por SSH.
  • ftp / vsftpd / proftpd: Se possível, prefira SFTP (que roda sobre o SSH). Se precisar de FTP clássico, configure para usar TLS explícito e limite o acesso.
  • sendmail: Se você já usa exim ou postfix, o sendmail pode estar rodando redundantemente ou criar conflitos.

3. “Depende do Caso” (Análise Necessária)

  • exim / postfix: Se o servidor precisa enviar e-mails transacionais (PHP mail) ou hospeda contas de e-mail, é essencial. Se for apenas um servidor de Banco de Dados ou Docker worker, pode ser removido ou configurado apenas como “send-only”.
  • smartd (S.M.A.R.T. Disk Monitoring): Essencial em servidores físicos (Bare Metal) para monitorar saúde do disco. Inútil em VPS/Cloud onde o disco é virtualizado.
  • snapd: O gerenciador de pacotes Snap do Ubuntu/Canonical. Muitos administradores o removem para evitar loops de montagem de disco e consumo de RAM, preferindo instalações via apt ou Docker.

Como Auditar e Desativar

1. Listar serviços ativos e suas portas: Verifique o que está ouvindo na rede agora:

netstat -tulpn
# ou
ss -tulpn

2. Listar todos os serviços habilitados no boot:

systemctl list-unit-files --state=enabled

3. Parar e Desativar um serviço (Exemplo: CUPS):

systemctl stop cups
systemctl disable cups

4. Mascarar um serviço (Garante que ele não seja ativado nem manualmente ou por dependência):

systemctl mask cups

Resumo para Otimização

Se o objetivo é otimizar para 64GB de RAM ou lidar com alta carga, remover serviços desnecessários libera poucos recursos diretos (alguns MBs), mas reduz drasticamente as interrupções de CPU e context switching, além de eliminar vetores de ataque que poderiam comprometer a estabilidade do servidor.

FAQ

Quais serviços posso desativar com segurança em um servidor Linux de produção?

Geralmente, você pode desativar serviços relacionados a hardware que não existem em servidores virtuais ou racks, como cups (impressão), bluetooth, alsa-utils (áudio) e wpa_supplicant (se usar cabo). Serviços de descoberta de rede como avahi-daemon também são frequentemente desnecessários e devem ser removidos por questões de segurança.

Como verifico quais serviços estão rodando no meu servidor?

Você pode usar o comando systemctl list-units --type=service --state=running para ver o que está ativo no momento. Para ver quais portas estão abertas e quais processos as escutam, utilize netstat -tulpn ou ss -tulpn.

Qual a diferença entre desativar (disable) e mascarar (mask) um serviço?

systemctl disable impede que o serviço inicie automaticamente durante o boot, mas ele ainda pode ser iniciado manualmente ou por outro programa. Já o systemctl mask cria um link simbólico para /dev/null, impedindo que o serviço seja iniciado de qualquer forma, o que é ideal para bloquear serviços teimosos ou inseguros.

O Exim e o Postfix são serviços essenciais?

Depende. Se o seu servidor precisa enviar e-mails transacionais (como notificações de sites WordPress) ou hospeda contas de e-mail, eles são essenciais. Se o servidor for dedicado apenas a banco de dados ou processamento, eles podem ser desativados ou substituídos por um relay SMTP simples para economizar recursos.