SiteGuardLiteでシグネチャの更新をすると、管理画面に「適用に失敗しました。」が表示される。

2017年3月21日SiteGuardLiteApache, CentOS7, SiteGuardLite, Web Application Firewall, さくらのVPSSiteGuardLite, CentOS7, SiteGuardLite, Web Application Firewall, さくらのVPS

さて、下記ページのお知らせの通り、さくらのVPSで「SiteGuardLite」が使用できるようになりました。
実は、当サイトでも、SiteGuardLiteを使用しております。


先般、OpenSSLの脆弱性について注意喚起があり、自前でApache、OpenSSLをコンパイルしてインストールし、運用されている方もいらっしゃると思います。その点においても当サイトも同様な形態をとっております。

若干、話が変わりますが、SiteguardLiteの管理画面でシグネチャの更新を行ったり、シグネチャの有効・無効を切り替えたりするとSiteGuardLiteがApacheを再起動します。これはApacheに組み込まれたSiteGuardLiteモジュールが、新しいシグネチャを読み込み環境に反映させるための動作ではないかと推察しております。

元々インストール(yumでインストール)されているApache・OpenSSLとSiteGuardLiteを使用している環境では問題はありませんが、自前でApache・OpenSSLをコンパイルして、インストールディレクトリをデフォルトから変更しApacheのmod_sslを使用している環境においては、SiteGuardLiteからのApache再起動に失敗します。

サービスの起動スクリプトを自作している方なら、すぐに理解頂けると思いますが、ライブラリのインストール先をデフォルトから変更している時は、環境変数LD_LIBRARY_PATHにライブラリへのパスを設定して起動スクリプトからライブラリを参照できるようにする必要があります。
自前でApache・OpenSSLをコンパイルして、mod_sslを使用しているのであれば、SiteGuardLiteに環境変数LD_LIBRARY_PATHを組み込む必要があります。この対処を行っていないと、シグネチャの更新等を行った際にApacheの再起動に失敗し、以下のようなエラーがSiteGuardLiteのシグネチャ更新ログに記録されます。

/var/home/ap/apache/bin/apachectl graceful
httpd: Syntax error on line 171 of /var/home/ap/apache/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: libssl.so.1.0.0: cannot open shared object file: No such file or directory
make: *** [reconfig] Error 1

では、どのようにして環境変数LD_LIBRARY_PATHを設定しSiteGuardLiteに反映させるかですが、「/opt/jp-secure/siteguardlite/setup.config」内に以下のように追記します。これで、SiteGuardLiteの環境からApacheの再起動コマンドにライブラリへのパス情報が渡り、正常に再起動できるようになります。

view /opt/jp-secure/siteguardlite/setup.config

LD_LIBRARY_PATH=/var/home/lib/openssl/lib
APACHE_CONFFILE=/var/home/ap/apache/conf/httpd.conf
APACHE_TYPE=64_2.4
APACHECTL="/var/home/ap/apache/bin/apachectl"
APACHEBIN="var/home/ap/apache/bin/httpd"
CONSOLE_ENABLE=yes
CONSOLE_PORT=9443
CONSOLE_ALLOW_ADDRESS="ALL"
CONSOLE_SSL_CRT=/opt/jp-secure/siteguardlite/conf/ssl/server.crt
CONSOLE_SSL_KEY=/opt/jp-secure/siteguardlite/conf/ssl/server.key
JAVA_PATH=/usr/lib/jvm/jre-1.8.0

また、管理画面で適用ボタンを押した際に「/opt/jp-secure/siteguardlite/setup.config」を随時読み込んでいるようなので、「/opt/jp-secure/siteguardlite/setup.config」を編集した後にSiteGuardLite、サーバの再起動は必要ありません。

以上、メモがてら書いてみました。参考になれば幸いです。


ここまで読んで頂きありがとうございます。
現在、ランキング参加中です。良ければランキングボタンをクリック願います。
↓↓↓↓↓↓↓↓

オープンソースランキング

にほんブログ村 IT技術ブログへ
にほんブログ村

にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村