O Logwatch fornece o script *Remove
compartilhado que informará à Logwatch para ignorar as linhas que contêm uma string específica (por exemplo, grep -v
), antes de serem processadas posteriormente.
- Copie
/usr/share/logwatch/default.conf/services/sshd.conf
para/etc/logwatch/conf/services/sshd.conf
- Adicione as seguintes linhas, que informarão ao logwatch para não processar as entradas de log das linhas que contiverem essa string:
# Ignore these hosts
*Remove = 192.168.100.1
*Remove = X.Y.123.123
# Ignore these usernames
*Remove = testuser
3. Agora, nenhuma mensagem de logwatch é gerada para esses hosts.
Eu não consegui fazer isso com o ignore.conf. Não consigo criar uma expressão regular que permita ao Logwatch imprimir mensagens sobre ataques de domínios malignos:
Failed logins from:
11.12.100.1 (EVILSCAN.example.ru): 1 time
Enquanto oculta mensagens geradas por scanners amigáveis:
Failed logins from:
192.168.100.1 (friendscan.example.org): 1 time
Antecedentes:
Os métodos do Logwatch para fazer isso são muito mal documentados e não são bem compatíveis.
O script compartilhado em /usr/share/logwatch/scripts/shared/remove
executará um grep inverso em uma string. /usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch
documenta como executar esses scripts:
You can have commands in the form of:
*SharedScriptName = Arguments
that will execute a script found in the /usr/share/logwatch/scripts/shared/directory named 'SharedScriptName' with arguments 'Arguments'.This filter will modify the input to the service's filter.