Plesk(バージョン 12, 12.5)が稼働しているサーバから午前5時頃から管理者宛に以下のメールが6時、7時、8時と毎時届くようになりました。
Subject: Cron <root@*****> run-parts /etc/cron.hourly /etc/cron.hourly/asl: Error: ASL has not been configured
ASL?ってなんぞや?
なにはともあれ、生成元になっている /etc/cron.hourly/asl に中身を確認します。
毎時送られてくるのはcron.hourlyで設定されているからですね。
#!/bin/bash
source "/etc/asl/config"
export LANG="en_US.UTF-8"
WAIT=$(echo $RANDOM | cut -c1-3)
if [ "$CONFIGURED" == "yes" ]; then
# Automatic Updates
if [ "$AUTOMATIC_UPDATES" == "hourly" ]; then
sleep $WAIT
/var/asl/bin/aum -u >/dev/null 2>&1
else
sleep $WAIT
/var/asl/bin/aum -ck >/dev/null 2>&1
fi
#
if [ -f /var/asl/data/msa/ip.dir ]; then
cp /dev/null /var/asl/data/msa/ip.dir
fi
if [ -f /var/asl/data/msa/ip.pag ]; then
cp /dev/null /var/asl/data/msa/ip.pag
fi
# generate reports
if [ -f /var/asl/bin/asl ]; then
if [ -f /var/asl/tmp/.upgrade ]; then
/sbin/service tortixd restart >/dev/null 2>&1
/var/asl/bin/asl -s -f >/dev/null 2>&1
/sbin/service ossec-hids restart > /dev/null 2>&1
rm -f /var/asl/tmp/.upgrade
else
/var/asl/bin/asl -s >/dev/null 2>&1
fi
# Run rep report
if [ "$REPUTATION_REPORT" == "yes" ]; then
if [ "$REPUTATION_FREQUENCY" == "hourly" ]; then
/var/asl/bin/asl --rep_report >/dev/null 2>&1
fi
fi
fi
else
echo "Error: ASL has not been configured"
exit 1
fi
おお、このファイルにしっかりと「Error: ASL has not been configured」って記述されていますね。
どうやらこのbashプログラムでelse処理されているようで、つまり「"$CONFIGURED" == "yes"」ではないようです。
じゃあ、とりあえずsourceとして設定している /etc/asl/config でも確認してみようかなと、該当ファイルをのぞみてみると……
なかみが なにも ないじゃん!
ちなみに該当ファイルのディレクトリを確認してみると、configファイルが1バイトになってました……

タイムスタンプをみると10月17日の午前3時49分になっており、ちょうどその時間にrsyslogのファイルがローテートされているのでPlesk側でなんらかの変更(サービス再起動など)が発生したと思われます。
となると気になるのは「ASL」というもの。このconfigファイルも /etc/asl ディレクトリに格納されているので何らかのサービスであることは予想がつきます。この /etc/asl/config ファイルはどのパッケージに入っているものなのか、ちょっと調べてみます。
Redhat系のパッケージ管理システムの「RPM」には、ファイルからどのパッケージに収録されているのかを調べることができます。
# rpm -qf /etc/asl/config aum-5.0-5664.el7.art.x86_64
aumというパッケージでインストールされたことがわかりました。では次にaumというパッケージがなんなのかを調べてみます。
# yum info aum
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
インストール済みパッケージ
名前 : aum
アーキテクチャー : x86_64
エポック : 1
バージョン : 5.0
リリース : 5664.el7.art
容量 : 26 M
リポジトリー : installed
提供元リポジトリー : tortix-common
要約 : Atomic Updater Modified
URL : http://www.atomicorp.com/
ライセンス : Commercial
説明 : Atomic Updater Modified (AUM) is utility that can check for and automatically
: download and install updates from Atomicorp.
Atomicorpから提供されているパッケージであることがわかりました。ここでもう一つ調べてみます。パッケージ名に付与されていた「art」というワードが気になりましたので、こちらでも調べてみます。
# rpm -qa | grep "\.art\." atomic-curl-libcurl-7.38.0-5.1.el7.art.x86_64 mod_security-2.9.1-33.el7.art.x86_64 aum-5.0-5664.el7.art.x86_64 atomic-curl-curl-runtime-7.38.0-5.1.el7.art.x86_64
ModSecurity!
どうやらこれはWAF(Web Application Firewall)で利用されるパッケージに関係したもののようです。
Pleskの管理画面「[サーバ管理] / [ツールと設定] / [セキュリティ] / [ウェブアプリケーションファイアウォール(ModSecurity)]」をみると確かに「Atomic Basic ModSecurity」という形で利用していることがわかりました。

configファイルはどうにもならないので、ディスクイメージバックアップから復元して対処しました。
こういう問題のときは、Plesk標準のバックアップだったりデータ部分だけのバックアップだとどうにもならないので、ディスクイメージバックアップやら全ファイルのバックアップは必要なのか……