Comecei a usar o Zabbix e posso ver que ele está lançando alertas quando algo é alterado, como /etc/passwd.
Pesquisar por 'alerta zabbix no login root' não está trazendo nenhuma indicação - Como eu faria para ter um alerta no login root, por favor?
Responder1
Você não deve permitir logins root, porque isso é inseguro. Você deve permitir apenas logins regulares de usuários e, uma vez logado, o usuário pode usar sudo
para executar comandos como root.
Dito isto, por que você verificaria apenas logins root? Verificar logins regulares de usuários é igualmente importante. Os bots na Internet realizam ataques de força bruta para usuários comuns o tempo todo.
De qualquer forma, você precisa verificar /var/log/auth.log
se há logins SSH bem-sucedidos. A verificação dos arquivos de log requer verificações ativas do agente Zabbix. Então, primeiro você precisa ter certeza de que as verificações ativas estão funcionando corretamente (vejaesta postagem do blog).
Em segundo lugar, o usuário Zabbix está (por padrão) rodando como zabbix
usuário. Portanto, não será possível ler /var/log/auth.log
, porque esse arquivo só pode ser lido pelo root e pelos usuários do grupo adm
. Assim você pode adicionar o zabbix
usuário ao adm
grupo. Isso permite que o Zabbix leia muitos arquivos de log (fonte).
Finalmente, você precisa criar um item de monitoramento e acionar no frontend do Zabbix.
Crie um item:
Name: SSH successful authentication
Type: Zabbix agent (active)
Key: log[/var/log/auth.log,"Accepted .*",,,skip,\0]
Crie um gatilho para esse item:
Name: Successful SSH authentication on {HOST.NAME}
Expression: {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].strlen()}>0 and {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].nodata(5m)}=0
Observe a Accepted .*
expressão regular no item. Isso deve corresponder a todos os tipos de autenticação SSH, seja autenticação por senha ou autenticação por chave pública. Claro, no seu caso, você pode alterar o regex para corresponder apenas aos logins do root. Mas, como explicado anteriormente, isto não faz sentido do ponto de vista da segurança.
Observe também que usei log[...]
, pois isso resulta na linha de log responsável correspondida pela regex a ser incluída no e-mail de notificação que o Zabbix enviará. Dessa forma, você poderá ver no e-mail qual usuário foi autenticado.
Responder2
Para sistemas baseados em Debian você precisa analisar /var/log/auth.log
o arquivo assim:
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]
https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent
então em essência:
log.count[/var/log/auth.log,*root*Accepted,,,skip]