Notificação por e-mail sobre cada conexão SSH com o servidor Linux

5

Eu gostaria de ser notificado sobre cada conexão SSH com o servidor Linux (Debian).

Já vi alguns métodos, que propunham adicionar o comando mail ao próprio .bashrc, mas essa abordagem parece não cobrir todos os casos possíveis.

Qual é a melhor prática para fazer essas notificações transversais sobre conexões SSH?

    
por Fedir RYKHTIK 04.06.2012 / 16:48

7 respostas

10

Como você esclareceu que deseja receber um e-mail para cada autenticação bem-sucedida , pam_notify é um ótimo módulo candidato para isso.

Adicione-o como uma linha session required ao final do arquivo /etc/pam.d/sshd ou equivalente.

    
por 04.06.2012 / 17:14
6

A melhor prática é não a menos que você REALMENTE tenha que (a segurança desta máquina é TÃO crítica).

Se você REALMENTE precisa, você não quer se preocupar com arquivos .rc que as pessoas possam alterar - isso é uma solução incompleta.

O caminho certo é provavelmente usar os recursos de auditoria construídos no Linux (veja as man pages para auditd , e seu arquivo de configuração auditd.conf ), mas eu tenho uma experiência muito limitada com as instalações de auditoria em Linux (em particular, não tenho certeza se o subsistema de auditoria facilita o envio de emails - eu sei que você pode no FreeBSD sem muita dificuldade).

A maneira menos certa, mas ainda decente, seria usar um módulo PAM que sempre tenha sucesso e envie um e-mail dizendo quem tentou fazer o login.

A maneira menos-certa-mas-pelo menos-sua-caixa de entrada-não-completa seria preparar o arquivo auth.log ou equivalente e enviá-lo por e-mail a alguém toda noite. Se tudo que você precisa é de um registro básico, esta seria a minha escolha: o volume de e-mail gerado a partir de minhas outras sugestões seria hediondo em um sistema com muita atividade.

    
por 04.06.2012 / 17:02
4

você pode monitorar seu /var/log/auth.log periodicamente ou, ainda melhor, torná-lo um registro remoto para que o invasor não consiga eliminar o rastreamento bem-sucedido.

    
por 04.06.2012 / 17:00
2

Como esta questão foi levantada a partir dos cofres, minha inclinação seria executar amostra contra /var/log/auth.log (ou sua distro / syslog config's arquivo apropriado), e configurá-lo para responder com um e-mail para cada ocorrência de sshd.*Accepted.* , uma vez que isso deve pegar logins baseados em senha e baseados em chave:

Feb 21 10:06:44 lory sshd[24414]: Accepted publickey for username from ::1 port 39197 ssh2
Feb 21 10:08:16 bill sshd[20643]: Accepted password for username from ::1 port 46835 ssh2

que você poderia fazer com um arquivo de configuração dizendo, por exemplo,

watchfor /sshd.*Accepted.*/
               mail [email protected],subject="SSH login on host foo"

e, e. swatch -c /the/above/file /var/log/auth .

    
por 21.02.2013 / 11:17
1
We do it by creating a file /etc/profile.d/notify.sh with the following content:

#!/bin/sh

sender="[email protected]"
recepient="[email protected]"
subject="Privileged Account logon used"
message="'env'"
    echo "$message" | mail -s "$subject" -r "$sender" -S smtp=mail.example.com "$recepient"
    
por 04.02.2016 / 01:58
0

Recentemente, desenvolvi minha própria solução para esse problema, que envolve o monitoramento de arquivos de log para diferentes serviços (inclusive o sshd) e a notificação de um único email quando determinados usuários obtêm acesso a determinados serviços.

Eu chamo de Monitor de Autenticação e você pode encontrar mais informações sobre isso aqui: link

Espero que isso seja o que você está procurando.

    
por 21.02.2013 / 11:02
0

Eu publiquei um script bash no Github Gist que faz o que você está procurando. Ele enviará um e-mail ao administrador do sistema sempre que um usuário fizer login em um novo endereço IP. Eu uso o script examinar os logins em nossos sistemas de produção rigidamente controlados. Se um login for comprometido, seremos notificados sobre o local de login incomum e teremos a chance de bloqueá-lo fora do sistema antes que eles causem danos sérios.

Para instalar o script, basta atualizá-lo com seu e-mail sysadmin e copiá-lo para /etc/profile.d/ .

    
por 04.06.2018 / 22:05