Qual é a melhor maneira de ser notificado de um login de usuário no Linux?

2

Atualmente, estou usando o gentoo e tenho o seguinte método de saber quando alguém faz login no meu servidor (na verdade, sou apenas eu, mas se alguém obtiver acesso, eu gostaria de saber sobre isso)

1) Use sec para monitorar arquivos de log

type=SingleWithScript
ptype=RegExp
pattern=Accepted keyboard-interactive/pam for ([a-z]+) from ([0-9|\.]+) port
script=/root/scripts/userLogin.pl $1 $2
desc=User Login
action=write /var/log/sec/sec.log User Login: $1 has logged in from $2
action2=write /var/log/sec/sec.log Script Failed: User Login: $1 has logged in from $2

2) Script:

#!/usr/bin/perl -w
use Net::SMTP::TLS;

my $smtp;
if (not $smtp = Net::SMTP::TLS->new('smtp.gmail.com',
                            Port => 587,
                            User => '',
                            Password => '',
                            Debug => 1)) {
    die "Could not connect to server\n";
}

$smtp->mail('');
$smtp->to('');
$smtp->data();
$smtp->datasend('To: ' . "\n");
$smtp->datasend('From: ' . "\n");
$smtp->datasend("Subject: User Login: $ARGV[0]\n");
$smtp->datasend("\n");
$smtp->datasend("$ARGV[0] has logged in from $ARGV[1]\n");
$smtp->dataend();
$smtp->quit;

Mas estou preocupado que meu regex não seja amplo o suficiente. "Aceito teclado interativo / pam" - os logins podem gerar logs que não correspondem a esse formato?

    
por Tom Ritter 05.10.2009 / 19:51

2 respostas

1

Pode haver um módulo PAM dedicado para isso, mas não consegui encontrar um de improviso. Você pode usar pam_exec para executar seu script no login do usuário. Veja man 8 pam_exec . Basicamente, você só precisa modificar seu script para ler as variáveis de ambiente PAM_USER e PAM_TTY em vez de $ARGV e, em seguida, adicionar

auth required pam_exec.so <your script>
    
por 05.10.2009 / 20:18
0

Você já tentou usar o OSSEC? Ele tem regras para analisar os logs e o tempo real e relatar com facilidade logons bem-sucedidos, logins com falha, logins pela primeira vez de um IP ou usuário específico, etc.

Eu usei SEC, logwatch e outras ferramentas no passado, mas recentemente substituímos todas por OSSEC. É muito fácil de instalar e eu não tenho que estar escrevendo meus próprios scripts / regexes, já que está tudo incluído por padrão.

Link: link

    
por 05.10.2009 / 22:28