一年は経ってないと思うが、長らく放置していたsquidclamavとc-icapのバージョンアップを実施した。
squid、apache、clamavはYaST2で更新しているので、最新になっているが、やはり手動で入れたものはどうしても後回しになってしまう。
前回(2011/3/24)http://niriakot.blogspot.com/2011/03/opensuse-114-proxy.html
は、流れとポイントしか書いてなかったので、今回はコマンド主体で記述。
では、はじめます。
① c-icapをダウンロードします。
http://c-icap.sourceforge.net/
最新を落としてきます。今日の時点で0.1.7が最新。
② 解凍
tar xvzf c_icap-0.1.7.tar.gz
③ インストール
cd c_icap-0.1.7
./configure --prefix=/usr/local/c-icap --enable-large-files
make clean
make
make install
④ コンフィグの確認
vi /usr/local/c-icap/etc/c-icap.conf
600行程度ありますが、ほとんどコメント。
以下はほぼデフォルト状態。
PidFile /var/run/c-icap/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.ctl
Timeout 300
MaxKeepAliveRequests 100
KeepAliveTimeout 600
StartServers 3
MaxServers 10
MinSpareThreads 10
MaxSpareThreads 20
ThreadsPerChild 10
MaxRequestsPerChild 0
Port 1344
ServerAdmin webmaster@niriakot.jp ⇒メールアドレス
ServerName tatsutahime.niriakot.jp ⇒ホスト名
TmpDir /var/tmp
MaxMemObject 131072
DebugLevel 1
ModulesDir /usr/local/c-icap/lib/c_icap
ServicesDir /usr/local/c-icap/lib/c_icap
TemplateDir /usr/local/c-icap/share/c_icap/templates/
TemplateDefaultLanguage en
LoadMagicFile /usr/local/c-icap/etc/c-icap.magic
RemoteProxyUsers off
RemoteProxyUserHeader X-Authenticated-User
RemoteProxyUserHeaderEncoded on
ServerLog /usr/local/c-icap/var/log/server.log
AccessLog /usr/local/c-icap/var/log/access.log
Service echo srv_echo.so
Service squidclamav squidclamav.so
⑤ c-icap実行の設定の確認(openSUSE特有)
cat /etc/init.d/before.local
/usr/local/c-icap/bin/c-icap ⇒ これが最後の行にでも書かれていればOK。
⑥ squidclamavのダウンロード
http://squidclamav.darold.net
最新を落としてきます。今日の時点で6.4が最新。
⑦ 解凍
tar xvzf squidclamav-6.4.tar.gz
⑧ インストール
cd squidclamav-6.4
./configure --with-c-icap=/usr/local/c-icap/
make clean
make
make install
⑨ コンフィグの確認
vi /etc/squidclamav.conf
maxsize 500000000 ⇒ うちは500MBに設定してる。
redirect http://(ホスト名をドメイン付きで)/cgi-bin/clwarn.cgi
clamd_local /var/lib/clamav/clamd-socket
clamd_ip 192.168.x.x,127.0.0.1 ⇒ ご利用のIPを記述
clamd_port 3310
timeout 1
logredir 0
dnslookup 1
⑩ cgiをapacheのディレクトリにコピっておく。
cp -p /usr/local/libexec/squidclamav/* /srv/www/cgi-bin/
⑪ squid.confにicap設定を追加
vi /etc/squid/squid.conf
#squidclamav
icap_enable on
icap_send_client_ip on
icap_send_client_username on
icap_client_username_encode off
icap_client_username_header X-Authenticated-User
icap_preview_enable on
icap_preview_size 1024
icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_resp allow all
⑫ icapプロセスの停止と再起動
ps -ef | grep icap
root 889 1 0 Sep29 ? 00:01:22 /usr/local/c-icap/bin/c-icap
root 911 889 0 Sep29 ? 00:00:14 /usr/local/c-icap/bin/c-icap
root 912 889 0 Sep29 ? 00:00:14 /usr/local/c-icap/bin/c-icap
root 913 889 0 Sep29 ? 00:00:13 /usr/local/c-icap/bin/c-icap
root 31452 21552 0 16:27 pts/1 00:00:00 grep icap
こんな感じで出てくるので、親のプロセス(この場合は889)を強制キルしちゃいます。
kill -9 889
そうするとこプロセスもいなくなるので、
/usr/local/c-icap/bin/c-icap
でコマンドを実行させます。
⑬ squidの再起動
/etc/init.d/squid restart
⑭ 動作確認
http://www.eicar.org/85-0-Download.html
eicarのサイトからhttpのサンプルをダウンしてみる。
そうすると発見の画面へリダイレクトするはずです。
ちなみにhttpsは通信の中を見れないので、クライアントにインストしたウイルスチェックソフトで発見してください。
⑮ ログ
Nov 2 16:37:36 ホスト名 clamd[27888]: stream(127.0.0.1@1423): Eicar-Test-Sig
nature(44d88612fea8a8f36de82e1278abb02f:68) FOUND
こんな感じでFOUNDされます。
で、メールが飛んでくると思います。(vscanの管理者宛に)
以上で完了です。
ご用命は
webmaster@niriakot.jp
までどうぞ。
この設定だとHTTPSのファイルのウイルスチェックができませんので、ご注意ください。
返信削除HTTPSもウイルスチェックする場合は、ssl-bumpを有効にしないといけません。
サーバー証明書と鍵を作り、HTTP_portの設定にssl_bumpを追加すれば、使えるようになります。