Sabia que pode desvendar mistérios como quem está a aceder ao seu sistema Linux via SSH ou quem está a tentar, mas falha na tentativa? Mais ainda, pode até descobrir porque é que um utilizador não consegue aceder! Tudo isso é possível ao explorar os logs SSH. 📜
Os logs SSH são um verdadeiro tesouro de informações para solucionar problemas e proteger o seu servidor. Vamos guiá-lo passo a passo para que possa visualizá-los facilmente, independentemente de o seu sistema usar systemd ou não. 💡
📂 Visualizar Logs SSH em Sistemas com Systemd
Hoje em dia, a maioria das distribuições Linux utiliza systemd. Isso torna a tarefa de verificar os logs SSH bem mais prática. Experimente o seguinte comando:
sudo journalctl -u ssh
Eis um exemplo retirado de um servidor público real, para ilustrar o que poderá encontrar:
Nov 20 10:32:00 servidor-exemplo sshd[945221]: Received disconnect from 194.45.12.34 port 50234:11: Bye Bye [preauth]
Nov 20 10:32:00 servidor-exemplo sshd[945221]: Disconnected from invalid user admin 194.45.12.34 port 50234 [preauth]
Nov 20 10:45:15 servidor-exemplo sshd[945562]: error: kex_exchange_identification: Connection closed by remote host
Nov 20 10:45:15 servidor-exemplo sshd[945562]: Connection closed by 203.45.76.12 port 44230
Nov 20 10:49:25 servidor-exemplo sshd[945667]: Invalid user root from 189.123.56.77 port 55212
Nov 20 10:49:25 servidor-exemplo sshd[945667]: Connection closed by invalid user root 189.123.56.77 port 55212 [preauth]
🎯 Filtrar Logs SSH por Períodos de Tempo Específicos
Num servidor público, os logs podem acumular centenas ou até milhares de linhas. Felizmente, pode filtrá-los para períodos específicos. Eis como:
- Últimos 5 minutos:
sudo journalctl -u ssh --since -5m
- Última hora:
sudo journalctl -u ssh --since -1h
- Últimos 3 dias:
journalctl -u ssh --since -3d
- Até uma data e hora específicas:
sudo journalctl -u ssh --until "2024-11-24 15:30:00"
📋 Dica: A opção -u
indica a unidade systemd para a qual deseja visualizar os logs. Quando usa journalctl -u ssh
, está a pedir logs específicos da unidade SSH.
🔍 Acompanhar Logs SSH em Tempo Real
Quer monitorizar os logs à medida que os eventos acontecem? Use o comando abaixo:
sudo journalctl -fu ssh
O parâmetro -f
funciona como o comando tail -f
, permitindo seguir os eventos em tempo real. Para sair, basta pressionar Ctrl+C
.
⚙️ E se Não Estiver a Usar Systemd?
Se o seu servidor não utiliza systemd, não se preocupe! Pode encontrar os logs SSH no formato clássico. Eis como:
sudo grep sshd /var/log/auth.log
Exemplo de saída:
Nov 20 12:20:15 servidor-antigo sshd[1023456]: Invalid user postgres from 91.45.234.56 port 48230 <br>Nov 20 12:20:15 servidor-antigo sshd[1023456]: Connection closed by invalid user postgres 91.45.234.56 port 48230 [preauth] <br>Nov 20 12:21:30 servidor-antigo sshd[1023490]: Disconnected from authenticating user root 54.78.123.90 port 54212 [preauth]
💡 Nota: Se apenas quiser ver quem efetuou login com sucesso, utilize comandos como last
, lastlog
ou w
.
🤔 Porque Há Tantas Tentativas de Conexão SSH?
Reparou no elevado número de tentativas de conexão SSH? Isso é típico em servidores ligados a redes públicas. Bots automatizados varrem a internet à procura de sistemas vulneráveis, tentando combinações de usernames comuns e palavras-passe padrão. ⚠️
💡 Utilize ferramentas como Fail2Ban para proteger o seu sistema e bloquear ataques repetidos.
🚨 Proteger é Prevenir!
Agora que sabe como aceder aos logs SSH, tem nas mãos uma ferramenta poderosa para monitorizar e proteger o seu servidor Linux. Não se esqueça de auditar regularmente os logs e implementar boas práticas de segurança para evitar acessos não autorizados. 🌐🔐