
Para monitorar uma máquina, gostaria de ser notificado, por exemplo, por e-mail sempre que algum usuário se conectar ou desconectar da máquina (até mesmo root)?
É uma máquina Linux, mas também estou interessado se existe uma maneira geral para BSDs.
Eu sou o administrador da máquina, mas também existem outros administradores.
Obrigado!
Responder1
Você poderia hackear algo complicado usando tail -F
and awk
mas a maneira mais fácil é usar perl
, então você pode usar o File::Tail
módulo (para monitorar o arquivo de log do sistema apropriado) e um dos muitos módulos de envio de e-mail (como Mail::Send
ou Net::SMTP
) para enviar e-mail quando ele percebe que um usuário efetuou login ou logout. ou não conseguiu fazer login com sucesso. ou qualquer outro evento sobre o qual você deseja ser notificado.
O File::Tail
módulo inclui scripts de exemplo que já fazem cerca de 90% do que você deseja e podem ser facilmente adaptados para atender exatamente às suas necessidades.
O arquivo de log exato a ser monitorado varia de distribuição para distribuição, por exemplo, no Debian você monitoraria /var/log/auth.log
, em algumas outras distros seria /var/log/syslog
ou /var/log/messages
.
Observe que o freebsd não possui o perl instalado por padrão, mas está disponível com, por exemplo, pkg add perl5.22
. Isso instala apenas a linguagem perl básica, você teria que usar o CPAN para instalar módulos de biblioteca como File::Tail
pr Mail::Send
.