Logwatchはカスタムサービスを無視しますが、--service $serviceを明示的に設定すると機能します。

Logwatchはカスタムサービスを無視しますが、--service $serviceを明示的に設定すると機能します。

ポート443でSSLおよびSSH接続を許可するためにサーバーがSSLHを使用しています。

sshd および apache2 ログには、127.0.0.1 から SSLH を介して着信するすべての接続が表示されるので、SSLH ログを Logwatch に追加したいと思います。

これを達成するために、まず次のコードを使用してsslhのすべてのエントリを別々のログファイルにフィルタリングしました/etc/rsyslog.d/sslh.conf

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

Logwatchに/etc/logwatch/conf/logfiles/sslh.confログファイルをファイルに通知するために、以下を追加しました。

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

*ApplyStdDate =

サービス定義は/etc/logwatch/conf/services/sslh.conf次のとおりです。

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

/etc/logwatch/scripts/services/sslh最後に、次の内容でサービススクリプトを追加しました。

#!/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$'

明示的に指定されたSSLhサービスを使用してLogwatchを実行すると、すべてが魅力のように機能し、目的の時間範囲に対してフィルタリングされた出力が得られます。

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 #########################

Logwatchが次のように呼び出されると、通常の操作中に問題が発生します。

logwatch --mailto [email protected]

Logwatchの出力をファイルにリダイレクトし、奇妙な行を見つけました。たとえば、sslhは無効になっているとリストされています。

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

sslhLogwatch 出力を Grepping すると、次のような結果が生成されます。

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

SSLHに関連するLogwatch設定が機能していることを特定した後、SSLHサービスを明示的に指定したときに定期的にLogwatchを実行したときにSSLHが除外される理由はまったくわかりません。

内容があるかどうかにかかわらず、「SSLH」カテゴリも電子メールに含まれません。

どんな助けでも大変感謝します。

関連情報