Linux環境を再インストールしたので、ウィルス対策まわりの設定をしました。
今回は、以下の組み合わせで、リアルタイム検索っぽい環境を構築しました。
メールのウィルス対策については、普段Gmailメインなので今回は考慮していません。(添付ファイルのウィルス スキャン - Gmail ヘルプ)
ClamAVによる定期スキャン
ClamAVをインストールし、cronによる定期スキャンを設定しました。
スキャン間隔は、週次スキャン(ホームディレクトリのみ)、月次スキャン(全ファイルシステム)に設定しました。
- ClamAVのインストール
$ sudo aptitude install clamav clamav-daemon clamav-freshclam clamtk
- 定期スキャンの設定
$ crontab -l 00 20 * * 0 -r -l $HOME/var/log/clamscan/clamav.log $HOME > /dev/null 2>&1 $ cat /etc/crontab 00 21 1 * * root clamscan -r -l /var/log/clamav/clamscan.log / > /dev/null 2>&1
ClamAV + DansGuardian + Squidによるダウンロードファイルのウィルス対策とコンテンツフィルタリング
- DansGuardianとSquidのインストール
Squidは、2.7系をインストールしました。
$ sudo aptitude install dansguardian squid
- DansGuardianの設定
DansGuardianの全体設定とClamAVとの連携設定を行います。
$ cd /etc/dansguardian $ sudo diff dansguardian.conf.org dansguardian.conf 5,6d4 < UNCONFIGURED - Please remove this line after configuration < 27c25 < language = 'ukenglish' --- > language = 'japanese' 66c64 < #loglocation = '/var/log/dansguardian/access.log' --- > loglocation = '/var/log/dansguardian/access.log' 431c429 < #contentscanner = '/etc/dansguardian/contentscanners/clamdscan.conf' --- > contentscanner = '/etc/dansguardian/contentscanners/clamdscan.conf' 613,614c611,612 < #daemonuser = 'dansguardian' < #daemongroup = 'dansguardian' --- > daemonuser = 'clamav' > daemongroup = 'clamav' $ cd contentscanners $ sudo diff clamdscan.conf.org clamdscan.conf 4c4 < #clamdudsfile = '/var/run/clamav/clamd.sock' --- > clamdudsfile = '/var/run/clamav/clamd.ctl'
/etc/dansguardiandansguardian.confの"UNCONFIGURED"行を削除しないと、DansGuardianは起動しません。
"daemonuser","daemongroup","clamdudsfile"等は環境に合わせて設定してください。
Squidとの連携関連は、以下のパラメータです。(DansGuardian、Squidともdebパッケージを使用している場合は、デフォルト設定で問題ないと思います。)
- Squidの設定
/etc/squid/squid.confにlocalhost(127.0.0.1)からのみの接続を許可するよう設定します。
主な設定パラメータは以下のとおりです。
- DansGuardianとSquidの起動
$ sudo /etc/init.d/dansguardian start $ sudo /etc/init.d/squid start $ sudo update-rc.d dansguardian defaults
- ブラウザの設定
使用するブラウザのプロキシ設定に、以下の設定を行います。
-
- プロキシ: 127.0.0.1
- ポート: 8080
Google Chromeの場合は、[オプション]->[高度な設定]->[プロキシ設定を変更]で行います。
- 動作確認
ブラウザを起動し、Googleで"アダルト"というキーワードで検索し、"アクセスは拒否されました。"というページが表示されれば、コンテンツフィルタは正常に稼働しています。
また、eicarサイトにアクセスし、HTTP経由で"eicar.com.txt"をクリックした時に、"アクセスは拒否されました。"というページが表示されれば、ウィルス検索も正常に稼働しています。
- コンテンツフィルタの設定
/etc/dansguardian/lists以下にホワイトリストやブラックリストなど、コンテンツフィルタに関する設定ファイルがあるので、利用状況によって設定変更してください。
例えば、Googleで"アダルト"というキーワードで検索したい場合は、/etc/dansguardian/lists/exceptionsitelistに"www.google.co.jp"を追加し、DansGuardianを再起動してください。
ClamFSによるリアルタイムスキャン(保護されたディレクトリ確保)
/tmpと/homeを保護されたディレクトリに設定しました。
- ClamFSのインストール
$ sudo aptitude install clamfs $ sudo mkdir /etc/clamfs $ cd /usr/share/doc/clamfs $ sudo gunzip -d clamfs-sample.xml.gz $ sudo cp clamfs-sample.xml /etc/clamfs/clamfs-tmp.xml $ sudo cp clamfs-sample.xml /etc/clamfs/clamfs-home.xml
- ClamFSの設定
設定ファイルの/etc/clamfs/clamfs-*.xmlの"filesystem"パラメータに、保護するディレクトリを指定します。
## # /etc/clamfs/clamfs-tmp.xml ## <filesystem root="/tmp" mountpoint="/clamfs/tmp" public="yes" nonempty="yes" /> ## # /etc/clamfs/clamfs-home.xml ## <filesystem root="/home" mountpoint="/clamfs/home" public="yes" nonempty="yes" />
$ sudo mkdir -p /clamfs/tmp $ sudo chgrp adm /clamfs/tmp $ sudo chmod g+w /clamfs/tmp $ sudo mkdir -p /clamfs/home $ sudo chgrp adm /clamfs/home $ sudo chmod g+w /clamfs/home
- ClamFSの起動
$ sudo clamfs /etc/clamfs/clamfs-tmp.xml $ sudo clamfs /etc/clamfs/clamfs-home.xml
正常に起動すると、/clamfs/tmp及び/clamfs/homeに、/tmpと/homeがマウントされます。
OS起動時にClamFSが起動するように、/etc/rc.localに起動コマンドを追加します。
- 動作確認
保護されているディレクトリ(/clamfs/*)で、eicarのzipファイルを解凍すると、"Operation not permitted"で拒否され、/var/log/messageにeicarファイルが発見されたメッセージが出力されます。
保護ディレクトリへの書き込み(コピー)時には発見されませんが、読み込み(解凍)のタイミングで発生されます。
注意しなければならないのは、あくまでも保護ディレクトリである/clamfs/*以下でないとウィルスが発見されないことです。マウント元の/tmpや/homeディレクトリではウィルスは発見されません。