Como posso registrar tentativas de acesso SSH e acompanhar quais usuários SSH acabam fazendo no meu servidor?

3

Eu tive alguns problemas de segurança com um servidor meu porque alguns usuários do SSH estão causando problemas.

Então, eu gostaria de:

  • Acompanhar logins de usuários e logouts
  • Acompanhe a atividade desses usuários de SSH para descobrir qualquer atividade maliciosa
  • Impedir que os usuários excluam registros
por RadiantHex 08.09.2010 / 12:37

4 respostas

9

O daemon ssh, sshd , tem muito disso embutido e ativado. Aqui estão algumas linhas de amostra de /var/log/secure na minha máquina (nomes e endereços IP alterados):

Sep  7 08:34:25 myhost sshd[6127]: Failed password for illegal user root from 62.75.999.999 port 52663 ssh2
Sep  7 08:34:26 myhost sshd[7253]: User root not allowed because listed in DenyUsers
Sep  7 08:34:28 myhost sshd[7253]: Failed password for illegal user root from 62.75.999.999 port 53393 ssh2
Sep  7 11:55:18 myhost sshd[11672]: Accepted password for gooduser from 98.999.26.41 port 43104 ssh2
Sep  7 23:01:28 myhost sshd[22438]: Did not receive identification string from 999.56.32.999
Sep  8 06:31:30 myhost sshd[21814]: Accepted password for gooduser from 98.999.26.41 port 5978 ssh2

Este exemplo mostra algumas tentativas de alguém para ssh nesta máquina como root - ambas foram negadas porque o root é proibido. Também mostra um login bem-sucedido pelo usuário chamado "gooduser".

Para afinar o que você vê e em qual arquivo , leia mais no sshd_config página man - especificamente as opções para LogLevel e SyslogFacility.

    
por 08.09.2010 / 15:43
3

Uma forma muito completa de rastrear usuários é usar auditoria . É uma maneira do kernel de rastrear o que você precisa auditar. Ele deve ser empacotado com o Ubuntu Server e, se ainda não estiver em execução, deve ser inicializável com sudo service auditd start .

Existem vários exemplos de configuração em / usr / share / doc / auditd / ou algo semelhante a isso, e, claro, se o Google for auditd tutorial, você será recompensado com muitos, muitos tutoriais.

Os relatórios gerados pelo auditd são armazenados no diretório / var / log / audit / . Eles também podem ser analisados de forma mais legível por humanos, com ferramentas como aureport e ausearch , que também já devem estar incluídos no Ubuntu Server.

    
por 08.09.2010 / 13:06
3

Continuando com o que Doug Harris respondeu (e abordando apenas parte da sua pergunta - isso parece ser como eu trabalho), o pacote Logwatch enviará um resumo diário de vários registros do servidor, incluindo o log do SSHd. Recebo um resumo de quem efetuou login com êxito via SSH, quantas vezes e de onde, bem como quais IPs tentaram efetuar login sem sucesso e quais credenciais eles usavam. Fica muito tempo se alguém tentar um ataque SSH de força bruta em um host no qual estou permitindo a autenticação de senha (tento evitar isso, preferindo as chaves RSA, mas o cliente está sempre certo e nem sempre entende a autenticação de chave pública De qualquer forma.)

Para instalar o Logwatch (que é basicamente apenas uma coleção de filtros Perl para digerir vários formatos de log) no Ubuntu, use apt-get install logwatch e edite /etc/cron.daily/00logwatch , substituindo --output mail por --mailto [email protected] . Você terá um por dia. Você pode adicionar mais sinalizadores para ajustar quais logs o Logwatch realmente lê.

    
por 08.09.2010 / 16:25
2

Eu não daria contas de SSH, especialmente para grupos de distribuição de pessoas.

Veja algumas coisas:

  • por último, oferece um histórico de login recente.
  • Protege o histórico bash para evitar a eliminação do histórico de comandos link

De Arquivos históricos podem ser unificados no bash?

Insert the command shopt -s histappend in your .bashrc. 
This will append to the history file instead of overwriting it.
Also in your .bashrc, insert

PROMPT_COMMAND="$PROMPT_COMMAND;history -a; history -n"

and the history file will be re-written and re-read each time
bash shows the prompt.
    
por 08.09.2010 / 12:45