Como Visualizar Logs SSH no Linux 🚀

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:

Bash
sudo journalctl -u ssh

Eis um exemplo retirado de um servidor público real, para ilustrar o que poderá encontrar:

Bash
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:
Bash
sudo journalctl -u ssh --since -5m
  • Última hora:
Bash
sudo journalctl -u ssh --since -1h
  • Últimos 3 dias:
Bash
journalctl -u ssh --since -3d
  • Até uma data e hora específicas:
Bash
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:

Bash
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:

Bash
sudo grep sshd /var/log/auth.log

Exemplo de saída:

Bash
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. 🌐🔐

Artigos Relacionados