Envie-me um e-mail sempre que alguém fizer login via SSH

3

Existe uma maneira de configurar o sshd para que ele me envie um e-mail sempre que alguém fizer login via SSH?

    
por Keith Palmer Jr. 27.01.2011 / 15:58

3 respostas

3

O próprio sshd não fará isso para você, mas você provavelmente conseguirá o que deseja usando o módulo pam_exec (supondo que você tenha SSH usando PAM ). Algo como isso pode funcionar (em /etc/pam.d/sshd ):

session optional pam_exec.so /path/to/your/script

Você também pode assistir /var/log/secure (ou seu equivalente local) para mensagens de logs sshd quando alguém faz login e dispara e envia por email com base nisso.

Você também pode hackear algo usando a opção ForceCommand no sshd. Você teria ForceCommand executando um script que enviaria o email e, em seguida, usaria a variável de ambiente SSH_ORIGINAL_COMMAND para executar o shell do usuário (ou qualquer outro comando que ele estivesse tentando executar). Eu só mencionei isso porque pode funcionar, não porque eu ache que é uma boa ideia.

    
por 27.01.2011 / 16:17
2

Você pode acrescentar isso ao final de / etc / profile

/bin/bash -c 'HN='/bin/hostname'; IP='/bin/hostname -i'; /bin/bash -c "/bin/hostname -i; /bin/hostname; echo; /usr/bin/who --ips; echo; /usr/bin/who --all" | /usr/bin/mailx -s "LOGIN ALERT - $HN ($IP)" root'

Isso vai mandar um email para o root com uma lista de usuários logados toda vez que o bash (o shell do usuário) é iniciado.

    
por 27.01.2011 / 16:41
0

Você pode usar a amostra (projetada para assistir arquivos de log e enviar e-mails com linhas correspondentes a regexps) para monitorar /var/log/secure (ou onde quer que o seu sistema operacional registre logins ssh), procurando por linhas como

sshd[xxxxx]: pam_unix(sshd:session): session opened for user foo by (uid=0)

e enviando correspondências de acordo.

    
por 27.01.2011 / 17:05

Tags