Script de login comum

2

Algumas semanas atrás, pensei que seria uma boa idéia escrever um script que deveria me enviar um email sempre que algum usuário fizesse login em meu servidor.

Então, cheguei a um script em perfeito funcionamento notifyLogin.sh , então decidi chamá-lo do script .bash_login de cada usuário.

Tão bom, mas hoje descobri que alguém poderia fazer login no meu servidor usando a opção ssh client -t , selecionando assim um shell disponível. Por exemplo:

ssh user@myserver -t sh

Desta forma, .bash_login não executa nem /etc/profile .

Minha pergunta é: Existe algum script "universal" (que significa que id não importa qual shell está sendo usado) que é executado sempre que um usuário efetua login?

    
por Pablo Francisco Pérez Hidalgo 10.07.2014 / 20:59

3 respostas

3

Uma maneira de fazer isso é usar o syslog e redirecionar a mensagem para o e-mail:

Outra maneira é usar um analisador de log como SEC ou Splunk .

    
por 10.07.2014 / 21:43
2

Outra opção é usar o pam. Roubado da página encontrada no google :

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

Para detalhes, consulte a página de manual pam_exec (8) . A vantagem é que você não precisa analisar os logs para fazer isso - ele usa um mecanismo padrão para sessões de plug-in. Dependendo de onde você o coloca, você pode usá-lo para enviar sempre que o usuário criar uma nova sessão ou apenas quando se conectar via SSH.

    
por 11.07.2014 / 02:06
1

uma alternativa: você pode executar uma filtragem de log seguro em segundo plano para extrair eventos interessantes, como:

tail -n 0 -f /var/log/secure | grep --line-buffered "sshd:session): session opened" > /var/log/sec-filtered

e tem uma tarefa periódica que verifica o tamanho do arquivo de saída filtrado para enviá-lo por e-mail e reiniciar a filtragem no log seguro.

    
por 10.07.2014 / 22:45