Administrar um servidor Debian/Ubuntu sempre vai exigir saber exatamente o que está acontecendo "debaixo do capô" para obter um panorama completo do sistema.
Pilares da Administração de Sistemas
Para um controle total "debaixo do capô", foque nestas cinco áreas:
- Rede: Monitoramento de portas, latência e tráfego.
- Hardware: Consumo de CPU, memória e saúde dos discos.
- Segurança: Auditoria de logs, permissões e firewalls.
- Usuários: Gestão de acessos, privilégios (sudo) e sessões ativas.
- Automação: Criação de scripts e agendamento de tarefas (cron).
1. Rede e Conectividade (IP e Portas)
Para saber onde o servidor está na rede e quem está "ouvindo" as conexões.
Endereço IP:
ip addr show
ou o comando curto
ip a
Ele mostra o IP interno de todas as interfaces de rede.
IP Público (Externo):
curl ifconfig.me
Útil se o servidor estiver atrás de um roteador ou NAT.
Portas Abertas e Serviços:
sudo ss -tulpn
Este comando substitui o antigo netstat. Ele lista as portas (TCP/UDP) que estão abertas e qual processo está usando cada uma.
Status do Serviço SSH:
sudo systemctl status ssh
Verifica se o servidor SSH está rodando.
Configurações de Segurança do SSH:
cat /etc/ssh/sshd_config | grep -E "Port|PermitRootLogin|PasswordAuthentication"
Isso mostra rapidamente em qual porta o SSH atua e se logins perigosos (como root direto) estão permitidos.
Quem está logado agora:
who ou w
2. Recursos do Sistema (Hardware)
Saber se o servidor está "sufocado" ou com folga:
Uso de Memória RAM:
free -h
O -h deixa os valores em formato legível, como GB e MB.
Espaço em Disco:
df -h
Mostra quanto de armazenamento você ainda tem nas partições.
Processador e Carga (Real-time):
htop
ou, se preferir listar tudo que está rodando:
ps aux
Versão do Sistema Operacional:
lsb_release -a
Versão do Kernel:
uname -a
HDs externos ou storages de rede:
lsblk ou `mount
3. Firewall, Serviços e Logs (Segurança)
Verifica o Firewall (se ativo):
sudo ufw status verbose
Verifique se apenas o necessário (como SSH 22, HTTP 80, HTTPS 443) está ALLOW. Se estiver inactive, seu servidor está exposto.
Mostra os últimos erros do sistema:
journalctl -xe
Descobrir problemas silenciosos:
sudo journalctl -p 3 -xb
Listar serviços ativos:
systemctl list-units --type=service --state=running
O servidor pode ter bancos de dados, servidores web ou Docker rodando. Você precisa saber o que deve iniciar automaticamente após um reboot.
Verificar serviços que falharam:
systemctl --failed
Busque erros em serviços críticos que podem estar tentando reiniciar em loop.
Atualizações pendentes:
/usr/lib/update-notifier/apt-check --human-readable
Verificar se precisa de reboot:
ls /var/run/reboot-required
Se este arquivo existir, o servidor precisa reiniciar para aplicar patches de kernel.
4. Acessos e Privilégios (Usuários)
Quem tem poder de sudo:
cut -d: -f1,3 /etc/passwd | egrep ':[0-9]{4}$'
Geralmente usuários criados por humanos têm ID acima de 1000.
Quem tem privilégios root:
grep '^sudo:.*$' /etc/group
Busque usuários antigos ou desconhecidos que ainda possuem acesso.
5. Criação de scripts e agendamento de tarefas (Automação)
Ver tarefas agendadas no Crontab (backups, scripts):
sudo crontab -l ou ls /etc/cron.*
6. Docker e Containers (Se aplicável)
Hoje em dia, muitos serviços rodam isolados. Se o servidor usa Docker ou Podman, as portas listadas no ip a podem não contar a história toda.
Listar containers:
sudo docker ps -a
Verificar redes virtuais:
sudo docker network ls