O Logwatch ignora o serviço auto-definido, mas a configuração explícita --service $ service funciona

2

Estou usando o SSLH no meu servidor para aceitar as conexões SSL e SSH na porta 443.

Como os logs do sshd e do apache2 mostram cada conexão de entrada via SSLH proveniente de 127.0.0.1, eu quero adicionar o log do SSLH ao Logwatch.

Para conseguir isso, eu primeiro filtrava todas as entradas referentes ao sslh em um arquivo de log separado com o seguinte código em /etc/rsyslog.d/sslh.conf :

if $programname == 'sslh' then /var/log/sslh.log
if $programname == 'sslh' then ~

No arquivo /etc/logwatch/conf/logfiles/sslh.conf , adicionei isso para informar ao Logwatch sobre o arquivo de log:

LogFile = /var/log/sslh.log
LogFile = /var/log/sslh.log.0
Archive = /var/log/sslh.log.*.gz

*ApplyStdDate =

A definição de serviço em /etc/logwatch/conf/services/sslh.conf se parece com isso:

Title = "SSLH SSH / HTTPS Multiplexer"
LogFile = sslh

Por fim, adicionei o script de serviço /etc/logwatch/scripts/services/sslh com este conteúdo:

#!/bin/bash

echo "Date Range: $LOGWATCH_DATE_RANGE"
echo "Detail Level: $LOGWATCH_DETAIL_LEVEL"
echo "Temp Dir: $LOGWATCH_TEMP_DIR"
echo "Debug Level: $LOGWATCH_DEBUG"

grep -v 'forwarded to SSL$'

Quando executo o Logwatch com o serviço sslh explicitamente especificado, tudo funciona como um encanto e recebo a saída filtrada para o tempo desejado:

logwatch --service sslh --output stdout

################### Logwatch 7.4.0 (05/02/12) ####################
       Processing Initiated: Fri Jul 12 11:37:46 2013
       […]
##################################################################

--------------------- SSLH SSH / HTTPS Multiplexer Begin ------------------------

Jul 11 22:51:13 example sslh[2225]: connection from […].adsl.alicedsl.de:3643 to […].yourvserver.net:https forwarded from localhost:59788 to localhost:https
Jul 11 22:51:13 example sslh[2225]: connection from […].adsl.alicedsl.de:3644 to […].yourvserver.net:https forwarded from localhost:59789 to localhost:https
[…]

---------------------- SSLH SSH / HTTPS Multiplexer End -------------------------


###################### Logwatch End #########################

O problema ocorre na operação regular, ao chamar Logwatch assim:

logwatch --mailto [email protected]

Eu redirecionei a saída do Logwatch para um arquivo e encontrei algumas linhas estranhas como essa, por exemplo, onde sslh está listado como desativado:

Service List:
[0] = all
[1] = -zz-network
[2] = -zz-sys
[3] = -eximstats
[4] = -sslh

Grepping para sslh na saída da Logwatch produziu isto:

root:~# grep -r -i -n sslh ~/logwatch_out

38:[4] = -sslh
75:[4] = -sslh
4747:ReadConfigFile: Opening /etc/logwatch/conf/services/sslh.conf
4748:ReadConfigFile: Read Line: Title = "SSLH SSH / HTTPS Multiplexer"
4749:ReadConfigFile: Name=Title, Value="SSLH SSH / HTTPS Multiplexer"
4750:ReadConfigFile: Read Line: LogFile = sslhReadConfigFile: Name=LogFile, Value=sslh
6431:ReadConfigFile: Opening /etc/logwatch/conf/logfiles/sslh.conf
6432:ReadConfigFile: Read Line: LogFile = /var/log/sslh.log
6433:ReadConfigFile: Name=LogFile, Value=/var/log/sslh.log
6434:ReadConfigFile: Read Line: LogFile = /var/log/sslh.log.0
6435:ReadConfigFile: Name=LogFile, Value=/var/log/sslh.log.0
6436:ReadConfigFile: Read Line: Archive = /var/log/sslh.log.*.gz
6437:ReadConfigFile: Name=Archive, Value=/var/log/sslh.log.*.gz
6527:[85] = sslh
6594:[47] = sslh
6867:Service Name: sslh
6868:   Logfile = sslh
7181:Logfile Name: sslh
7183:   Logfile = /var/log/sslh.log

Depois de descobrir que minha configuração para o Logwatch referente a sslh funciona, quando especifico o serviço sslh explicitamente, não tenho absolutamente nenhuma idéia, porque o sslh é excluído ao executar o Logwatch regularmente.

Mesmo a categoria "SSLH" não está incluída no E-Mail, com ou sem conteúdo.

Qualquer ajuda seria apreciada.

    
por Alexander Willer 12.07.2013 / 13:44

0 respostas