Logwatch: Ignorar certos IPs para verificações de SSH e PAM?

1

Eu tenho um sistema CentOS 5.6, que executa o Logwatch.

Se eu executar uma varredura de segurança (Nessus) contra esse host, isso produzirá um ruído desnecessário na saída do Logwatch. Eu gostaria de executar essas verificações de segurança regularmente, a partir de um IP interno e um IP externo, sem gerar ruído desnecessário sobre as verificações de segurança.

Como conheço os IPs desses hosts, posso evitar que essa saída apareça na saída do Logwatch?

 --------------------- pam_unix Begin ------------------------

 sshd:
   Authentication Failures:
      root (scan1.example.org): 1 Time(s)
      unknown (scan1.example.org): 1 Time(s)
   Invalid Users:
      Unknown Account: 1 Time(s)

--------------------- SSHD Begin ------------------------


 Failed logins from:
   192.168.100.1 (scan1.example.org): 1 time

 Illegal users from:
   X.Y.123.123 (scan2.example.org): 1 time

 **Unmatched Entries**
 pam_succeed_if(sshd:auth): error retrieving information about user admin : 1 time(s)
 fatal: Write failed: Connection reset by peer : 1 time(s)
    
por Stefan Lasiewski 09.06.2011 / 00:20

2 respostas

7

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.

  1. Copie /usr/share/logwatch/default.conf/services/sshd.conf para /etc/logwatch/conf/services/sshd.conf
  2. 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.

    
por 15.06.2011 / 22:27
1

Você pode colocar o regexp para ignorar linhas de log em /etc/logwatch/conf/ignore.conf

    
por 09.06.2011 / 17:30