Para o tripwire, como eu teria o relatório enviado por e-mail apenas quando uma violação fosse encontrada?

2

Minha solução ideal para relatórios de tripwire seria:

  • Os e-mails diários só seriam gerados se uma violação fosse encontrada

  • Todos os domingos, um relatório seria enviado por e-mail, independentemente de uma violação ter sido encontrada

Também estou interessado nas opiniões dos membros do SF sobre a implementação disso. Talvez vá contra o propósito do tripwire? Eu podia ver alguém fazendo esse argumento, suponho.

    
por Belmin Fernandez 17.10.2010 / 16:00

4 respostas

1

Eu sei que já escolhi a apresentação do Sr. MadHatter como a resposta, mas depois de pensar um pouco, pensei em outra coisa que pudesse funcionar. Alguém vê por que isso não funcionaria?

tripwire_out='/usr/sbin/tripwire --check'; test -z "'echo $tripwire_out | grep 'Total violations found: 0''"&& echo $tripwire_out

Eu testei no shell e funciona como pretendido. No entanto, ainda não substituí o trabalho cron do tripwire.

O que vocês acham?

    
por 21.10.2010 / 19:08
8

Minha solução para obter muitos relatórios de tripwire de muitos hosts é mandar todos eles para um endereço que os empilhe em um arquivo e, em seguida, executar um trabalho simples que informe apenas o nome do host e as contagens de violações. e somente e-mails que relatam se houver algum host com uma contagem de violação diferente de zero.

Primeiramente, todos os hosts enviam seus relatórios para o endereço [email protected] . Isso é fácil de organizar a partir de cada uma das entradas crontab; Eu faço isso com:

# check the tripwires
[email protected]
3 1 * * *  /usr/sbin/tripwire --check

Em segundo lugar, no servidor de e-mail, tenho uma entrada de aliases que diz:

# tripwire report autoprocessing
tripwire:   /var/tmp/tripwire

Em terceiro lugar, tenho um cron job que é executado todas as manhãs para processar o conteúdo desse arquivo e outro que é executado todas as noites para removê-lo (portanto, só estou vendo as saídas mais recentes):

# report problems with nightly tripwire runs
2 7 * * *  /usr/local/bin/tripwire-check
45 23 * * *  rm -f /var/tmp/tripwire

E aqui está o conteúdo de / usr / local / bin / tripwire-check; é muito simples:

#!/bin/tcsh
grep "Total violation" /var/tmp/tripwire | grep -vw 0 > /dev/null || exit 0
egrep 'Host name|Total vio' /var/tmp/tripwire | mail -s "NIGHTLY TRIPWIRE VIOLATIONS 'date +%Y%m%d'" [email protected]

O primeiro grep sai sem qualquer correio ou saída IFO todas as linhas que contêm uma contagem de violação também contêm o número 0, como uma palavra inteira; o segundo, que é invocado apenas se a primeira linha falhar, produz o e-mail resumido e envia-o para mim.

E, finalmente, aqui está um exemplo de saída quando há um erro para relatar:

Subject: NIGHTLY TRIPWIRE VIOLATIONS 20050401
Date:   Fri, 1 Apr 2005 07:02:00 +0100
To:     [email protected]
From:   root <[email protected]>

Host name: fw03b.company.com
Total violations found: 0
Host name: je01b.company.com
Total violations found: 0
Host name: ms01.company.com
Total violations found: 1
Host name: fw05a.company.com
Total violations found: 0
Host name: fw02b.company.com
Total violations found: 0
Host name: fw01b.company.com
Total violations found: 0
Host name: je02o.company.com
Total violations found: 0
Host name: je01a.company.com
Total violations found: 0
Host name: fw04a.company.com
Total violations found: 0
Host name: fw04b.company.com
Total violations found: 0
Host name: je02p.company.com
Total violations found: 0
Host name: fw02a.company.com
Total violations found: 0
Host name: fw03a.company.com
Total violations found: 0
Host name: rp01a.company.com
Total violations found: 0
Host name: rp01b.company.com
Total violations found: 0
Host name: je03o.company.com
Total violations found: 0
Host name: db03.company.com
Total violations found: 0
Host name: lb02p.company.com
Total violations found: 15
Host name: rp02o.company.com
Total violations found: 23
Host name: as05.company.com
Total violations found: 0
Host name: db02.company.com
Total violations found: 0

Espero que seja de alguma utilidade.

    
por 17.10.2010 / 16:47
2

O Tripwire tem uma opção para suprimir relatórios que não possuem erros (MAILNOVIOLATIONS), ele é encontrado no arquivo de configuração ...

Você pode configurar dois arquivos twcfg diferentes, um com MAILNOVIOLATIONS definido como TRUE e um com esta opção definida como FALSE

MAILNOVIOLATIONS =true   (or false)

Então seu cronjob pode executar o tripwire usando o -c sinalizador para selecionar o twcfg arquivo

Crontab de relatório diário:

30 12 * * 1,2,3,4,5,6 /usr/sbin/tripwire --check -c PATH_TO_DAILY_CFG_FILE | mail -s "Tripwire report for 'uname -n', errors found" [email protected]

Crontab do relatório de domingo:

30 12 * * 0 /usr/sbin/tripwire --check -c PATH_TO_WEEKLY_CFG_FILE | mail -s "Weekly Tripwire report for 'uname -n'" [email protected]

Dessa forma, seu cronjob diário executaria o tripwire usando o arquivo de configuração, que apenas envia um relatório por e-mail se as violações forem encontradas, e seu cronjob semanal enviaria um relatório por e-mail, independentemente disso.

p.s. os comandos crontab acima são de um sistema usando Debian, você pode precisar editar o caminho para o seu binário Tripwire.

    
por 08.10.2014 / 11:14
0

Outra possível solução simples, não exatamente o que está sendo perguntado, mas também é útil para alguém.

Basta enviar o número de "Total de violações encontradas" no assunto do e-mail, então continuo recebendo as notificações, mas não tenho a necessidade de abri-las, embora eu veja que alguma violação esteja acontecendo. Dessa forma, também tenho certeza que o tripwire continua funcionando como esperado:

tripwire --check > /tmp/twreport; mail -s "Tripwire report for 'uname -n': 'grep 'Total violations found' /tmp/twreport'" [email protected] < /tmp/twreport; rm /tmp/twreport

Passo a passo:

1.- Salve no arquivo "twreport" o relatório do tripwire

tripwire --check > /tmp/twreport;

2.- Faço um grep no arquivo twreport para a linha "Total de violações encontradas". Eu insiro isso no assunto do comando mail. E recebo o conteúdo do texto twreport no corpo do email:

mail -s "Tripwire report for 'uname -n': 'grep 'Total violations found' /tmp/twreport'" [email protected] < /tmp/twreport

3.- Finalmente eu removo o arquivo twreport:

rm /tmp/twreport
    
por 05.06.2016 / 18:43

Tags