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標準のバックアップだったりデータ部分だけのバックアップだとどうにもならないので、ディスクイメージバックアップやら全ファイルのバックアップは必要なのか……