Fedora 20
Sponsored Link

アンチウィルスとの連携2014/01/06

 
Clamavはインストール済みとして、 Squid と Clamav を連携させてWebブラウジング時のダウンロードファイルをリアルタイムスキャンできるようにします。
[1] Clamd インストール
[root@lan ~]#
yum -y install clamav-server clamav-server-systemd clamav-server-sysvinit
[root@lan ~]#
cp /usr/share/doc/clamav-server/clamd.conf /etc/clamd.d/squid.conf

[root@lan ~]#
vi /etc/clamd.d/squid.conf
# 8行目:コメントにする

#
Example
# 14行目:コメント解除し変更

LogFile
/var/log/clamd.squid
# 66行目:コメント解除し変更

PidFile
/var/run/clamd.squid/clamd.pid
# 70行目:コメント解除

TemporaryDirectory /var/tmp
# 85行目:コメント解除し変更

LocalSocket
/var/run/clamd.squid/clamd.sock
# 101行目:コメント解除

TCPSocket 3310
# 194行目:変更

User
squidclamav
[root@lan ~]#
useradd -d /var/tmp -s /sbin/nologin squidclamav

useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@lan ~]#
mkdir /var/run/clamd.squid

[root@lan ~]#
chown squidclamav. /var/run/clamd.squid

[root@lan ~]#
cp /usr/share/doc/clamav-server/clamd.sysconfig /etc/sysconfig/clamd.squid

[root@lan ~]#
vi /etc/sysconfig/clamd.squid
# 1, 2行目:コメント解除し変更

CLAMD_CONFIGFILE=/etc/clamd.d/
squid.conf

CLAMD_SOCKET=/var/run/
clamd.squid
/clamd.sock
[root@lan ~]#
vi /etc/tmpfiles.d/clamd.squid.conf
# 新規作成

d /var/run/clamd.squid 0755 squidclamav squidclamav -
[root@lan ~]#
cp /usr/share/doc/clamav-server/clamd.init /etc/rc.d/init.d/clamd.squid

[root@lan ~]#
vi /etc/rc.d/init.d/clamd.squid
# 4行目:変更

# description: The clamd server running for
Squid
# 6行目:変更

CLAMD_SERVICE=
squid
[root@lan ~]#
chmod 755 /etc/rc.d/init.d/clamd.squid

[root@lan ~]#
touch /var/log/clamd.squid

[root@lan ~]#
chown squidclamav. /var/log/clamd.squid

[root@lan ~]#
chmod 600 /var/log/clamd.squid

[root@lan ~]#
systemctl start clamd.squid.service

[root@lan ~]#
chkconfig --add clamd.squid

[root@lan ~]#
chkconfig clamd.squid on

[2] c-icap インストール
[root@lan ~]#
wget http://ftp.jaist.ac.jp/pub/sourceforge/c/project/c-/c-icap/c-icap/0.3.x/c_icap-0.3.2.tar.gz

[root@lan ~]#
tar zxvf c_icap-0.3.2.tar.gz

[root@lan ~]#
cd c_icap-0.3.2

[root@lan c_icap-0.3.2]#
./configure

[root@lan c_icap-0.3.2]#
vi Makefile
# 256行目:追記

LIBS =
-lpthread
[root@lan c_icap-0.3.2]#
[root@lan c_icap-0.3.2]#
make install

[root@lan c_icap-0.3.2]#
[root@lan ~]#
cp /usr/local/etc/c-icap.conf /etc

[root@lan ~]#
vi /etc/c-icap.conf
# 140行目:管理者アドレス変更

ServerAdmin
root@srv.world
# 149行目:サーバー名変更

ServerName
lan.srv.world
# 500行目:追記

Service squidclamav squidclamav.so
[root@lan ~]#
vi /etc/tmpfiles.d/c-icap.conf
# 新規作成

d /var/run/c-icap 0755 root root -
# 起動スクリプト作成

[root@lan ~]#
vi /etc/rc.d/init.d/c-icap
#!/bin/bash

# c-icap: Start/Stop c-icap
# chkconfig: - 70 30
# description: c-icap is an implementation of an ICAP server.
# processname: c-icap
# pidfile: /var/run/c-icap/c-icap.pid

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

CONFIG_FILE=/etc/c-icap.conf
PID_DIR=/var/run/c-icap

RETVAL=0
start() {
   echo -n $"Starting c-icap: "
   daemon /usr/local/bin/c-icap -f $CONFIG_FILE
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/c-icap
   return $RETVAL
}
stop() {
   echo -n $"Stopping c-icap: "
   killproc c-icap
   rm -f /var/run/c-icap/c-icap.ctl
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && rm -f $PID_DIR/c-icap.pid /var/lock/subsys/c-icap
   return $RETVAL
}
case "$1" in
   start)
      start
   ;;
   stop)
      stop
   ;;
   status)
      status c-icap
   ;;
   restart)
      stop
      start
   ;;
   *)
      echo $"Usage: $0 {start|stop|status|restart}"
   exit 1
esac
exit $?

[root@lan ~]#
chmod 755 /etc/rc.d/init.d/c-icap

[3] Squidclamav インストール ( 下記サイトで最新のものを確認してwgetでダウンロードしてください )
http://sourceforge.net/projects/squidclamav/files/squidclamav/
[root@lan ~]#
wget http://ftp.jaist.ac.jp/pub/sourceforge/s/project/sq/squidclamav/squidclamav/6.10/squidclamav-6.10.tar.gz

[root@lan ~]#
tar zxvf squidclamav-6.10.tar.gz

[root@lan ~]#
cd squidclamav-6.10

[root@lan squidclamav-6.10]#
./configure

[root@lan squidclamav-6.10]#
[root@lan squidclamav-6.10]#
make install

[root@lan squidclamav-6.10]#
[root@lan ~]#
vi /etc/squidclamav.conf
# 17行目:変更( リダイレクト先URL(あらかじめ適当なものを作っておく )

redirect
http://www.srv.world/error.html
# 26行目:変更( clamdの設定とあわせる )

clamd_local
/var/run/clamd.squid/clamd.sock
[root@lan ~]#
systemctl start c-icap.service

Starting c-icap: [ OK ]
[root@lan ~]#
chkconfig --add c-icap

[root@lan ~]#
chkconfig c-icap on

[4] Squid の設定
[root@lan ~]#
vi /etc/squid/squid.conf
# 最終行に追記

icap_enable on
icap_send_client_ip on
icap_send_client_username on
icap_client_username_header X-Authenticated-User
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
[root@lan ~]#
systemctl restart squid.service

[5] 試しに以下のテストウィルスが置いてあるページにアクセスして、
http://www.eicar.org/85-0-Download.html
テキトーに「eicar.com」でもクリックして、テストウィルスのダウンロードを試みてみて、 設定したリダイレクト先にリダイレクトされることを確認してください。
 
関連コンテンツ