Como proteger um Ubuntu recém-instalado

Este guia mostra ações práticas e verificáveis para endurecer um Ubuntu recém-instalado. Inclui edição segura de ficheiros de configuração, proteção da memória partilhada, como negar acesso ao programa su, proteção do diretório home, e reforços adicionais para desktop e servidor. Aplique, verifique e monitore as mudanças.
Introdução
Sem dúvida, um sistema Linux recém-instalado tende a ser menos visado por malware do que um Windows fresco. No entanto, muitas distribuições vêm com definições por omissão concebidas para conveniência, não para segurança. Ubuntu privilegia facilidade de uso, o que pode deixar algumas superfícies de ataque abertas. Este artigo descreve ajustes básicos mas eficazes para reduzir vetores comuns de ataque num Ubuntu recém-instalado.
Definição rápida
- sudoedit: utilitário para editar ficheiros com privilégios de root, preservando ambiente do editor do utilizador.
- /run/shm: área de memória partilhada montada como tmpfs.
Antes de começar
Importante
- Faça sempre um backup do sistema ou um snapshot antes de alterar ficheiros críticos.
- Teste as alterações num ambiente não produtivo sempre que possível.
Ferramentas comuns para editar ficheiros com privilégios elevados
Use uma destas opções quando precisar de editar ficheiros de sistema. Substitua /file/config pelo caminho real.
Terminal
sudoedit /file/config
Interface gráfica Gnome
Execute via lançador ou Alt+F2:
gksudo gedit /file/config
Interface gráfica KDE
Execute via lançador ou Alt+F2:
kdesu kate /file/config
Nota
Nos exemplos seguintes usamos sudoedit no terminal para todas as edições.
O básico
Estas alterações dependem do uso que vai dar ao sistema. As primeiras medidas são simples e têm alto impacto:
- Defina uma palavra-passe forte para a sua conta de utilizador.
- Configure contas separadas para outros utilizadores em vez de partilhar a sua conta.
- Use contas guest com limitações quando necessário.
Reconfigurar memória partilhada
Por omissão, a memória partilhada em /run/shm está montada com leitura e execução permitidas. Isso facilita certos tipos de exploração quando serviços em execução usam essa área. Para muitas máquinas de secretária e servidores, é preferível montar esta área como somente leitura.
Edite /etc/fstab:
sudoedit /etc/fstab
Adicione esta linha no fim do ficheiro para tornar a área somente leitura:
none /run/shm tmpfs defaults,ro 00
Se usar um navegador como Chrome, que pode exigir leitura/escrita em /run/shm, adicione em vez disso:
none /run/shm tmpfs rw,noexec,nosuid,nodev 00
Explicação rápida
- noexec impede execução de binários a partir do sistema de ficheiros.
- nosuid evita que bits setuid/setgid sejam respeitados nessa montagem.
- nodev impede dispositivos especiais.
Quando esta medida falha
- Aplicações que usam execução dinâmica de código a partir de tmpfs podem quebrar. Teste o funcionamento de aplicações críticas após a alteração.
Negar uso do programa su a não administradores
O programa su permite executar comandos como outro utilizador. Em máquinas onde existem contas guest, pode ser útil impedir que contas não administrativas usarem su.
Execute:
sudo dpkg-statoverride --update --add root sudo 4750 /bin/su
Este comando ajusta permissões para que apenas utilizadores do grupo sudo possam usar su.
Alternativa
- Use sudo bem configurado com registos auditáveis em vez de permitir su para root.
Proteger o diretório home
Por omissão, outros utilizadores no mesmo sistema podem listar o conteúdo do seu diretório home. Para impedir isso, ajuste permissões:
chmod 0700 /home/username
Substitua username pelo seu nome de utilizador. A permissão 0700 significa que apenas o proprietário tem leitura, escrita e execução.
Se precisa partilhar ficheiros com o grupo, use 0750:
chmod 0750 /home/username
Tabela rápida de permissões
- 0700: acesso apenas pelo proprietário.
- 0750: proprietário total, grupo pode ler/entrar.
- 0777: acessível a todos (evitar).
Privacidade e GDPR
- Se a máquina contém dados pessoais de terceiros, mantenha logs e backups encriptados quando exigido por regulamentação.
Desativar login root via SSH
Por omissão, Ubuntu já impede login direto de root via SSH, mas se tiver atribuído uma palavra-passe root ou alterado a configuração, confirme que o servidor SSH não aceita login de root.
Verifique se tem um servidor SSH instalado:
ssh localhost
Se receber Connection refused, o servidor não está instalado e pode ignorar este passo. Se o servidor estiver ativo, edite sshd_config:
sudoedit /etc/ssh/sshd_config
Substitua PermitRootLogin yes por:
PermitRootLogin no
Outras recomendações de endurecimento SSH
- Desative autenticação por palavra-passe e use chaves públicas:
PasswordAuthentication no
PermitRootLogin no
- Limite acesso por utilizador com AllowUsers ou AllowGroups.
- Considere mudar a porta por omissão se for justificável e compatível com a sua política.
Reforços adicionais recomendados
A lista abaixo complementa as medidas anteriores. Aplique conforme o papel da máquina (desktop vs servidor).
Firewall e filtragem
- Ative e configure UFW (Uncomplicated Firewall):
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
- Abra apenas portas necessárias, por exemplo ssh/22 ou outra porta escolhida.
Confinamento de aplicações
- Use AppArmor (activo por omissão em Ubuntu) para perfis de aplicações. Verifique e habilite perfis específicos para serviços críticos.
- Para ambientes que exigem controlo mais estrito, considere SELinux em distribuições que o suportem.
Serviços mínimos
- Remova ou desative serviços que não usa: nfs, samba, cups, avahi, etc. Menos serviços em execução significa menor superfície de ataque.
Detecção de intrusão e análise
- Instale ferramentas de detecção como AIDE para integridade de ficheiros e fail2ban para mitigar tentativas de força bruta.
- Configure rotinas de análise e alertas para logs via rsyslog ou sistema centralizado como ELK ou Graylog.
Atualizações e gestão de patches
- Habilite atualizações automáticas de segurança ou configure um processo de atualização regular.
- Para servidores, use testes em ambientes de staging antes de aplicar actualizações em produção.
Cópias de segurança e recuperação
- Tenha backups regulares e testados. Conheça o procedimento de recuperação antes de precisar dele.
Criptografia
- Use full disk encryption (LUKS) para laptops e dispositivos móveis.
- Encripte backups e volumes com dados sensíveis.
Verificação e auditoria
- Execute um scanner de configuração como Lynis para identificar pontos fracos e recomendações.
- Documente alterações e mantenha um inventário de software instalado.
Mini-metodologia para endurecimento
- Inventário: liste serviços, portas abertas e utilizadores.
- Baseline: registe o estado atual dos ficheiros de configuração e permissões.
- Aplicar: implemente alterações em ambiente de teste.
- Verificar: confirme que serviços críticos funcionam.
- Monitorizar: ative alertas e revisões periódicas.
Checklist por papel
Desktop
- Definir palavra-passe forte para a conta principal.
- Proteger /home com chmod 0700.
- Montar /run/shm com ro ou rw,noexec,nosuid,nodev conforme necessário.
- Ativar UFW e permitir apenas o que é necessário.
- Ativar encriptação de disco para laptops.
Servidor
- Desativar login root via SSH e usar chaves.
- Limitar acesso SSH com AllowUsers/AllowGroups.
- Manter serviços mínimos em execução.
- Habilitar backups e testar restauração.
- Usar AIDE e fail2ban.
Contraexemplos e limitações
- Sistemas com aplicações legadas que requerem execução em tmpfs poderão ficar inoperantes após montar /run/shm como ro. Avalie caso a caso.
- Em ambientes multiusuário com partilhas intencionais, aplicar 0700 em /home pode quebrar fluxos de trabalho. Use grupos e 0750 quando necessário.
Glossário rápido
- tmpfs: sistema de ficheiros temporário em memória.
- fstab: ficheiro que descreve montagens persistentes do sistema de ficheiros.
- su: utilitário para tornar-se outro utilizador.
- sshd_config: ficheiro de configuração do servidor OpenSSH.
- UFW: firewall simples para Linux.
Resumo
A maior parte do endurecimento inicial de um Ubuntu recém-instalado consiste em reduzir a superfície de ataque sem interromper o funcionamento normal. Faça alterações incrementais, teste e monitore. Proteja /run/shm, limite o uso de su, proteja o diretório home, desative logins root via SSH e aplique reforços como firewall, confinamento de aplicações, e deteção de intrusões.
Ação recomendada agora
- Faça um backup ou snapshot.
- Aplique as mudanças indicadas em /etc/fstab e em permissões do home.
- Revise sshd_config e políticas sudo.
- Ative UFW e ferramentas de deteção.
Notas finais
Para aprofundar, consulte a documentação oficial do Ubuntu e o Ubuntu Wiki para guias específicos de segurança e perfis AppArmor.