倉金家ホームページ趣味の部屋/サーバー構築メモ その2
| ||||||||||
サーバーのウィルスチェックにウィルス対策ソフトを導入します。
Linuxに容易に?インストール、稼働できてしかも無料といえば真っ先に思いつくのが Clam AntiVirus(clamav)ですが、今回もこれを使います。 併せてメールのウィルスチェック用にclamsmtpもインストールしておきます。 | ||||||||||
インストール当初できるだけrpmでインストールしようと思い、clamav関係とclamsmtpのrpmパッケージがあるEPELよりすべてインストールしてみました。しかし、
| ||||||||||
ということがあり、特にウィルススキャナは常に最新であることが重要なため、どうしても遅れがちな(あるいはフォロー不足の)ディストリビューションのrpmは使わないのが賢明そうだという印象を得ました。
で、EPELからいれたのは思い切りすべてアンインストール。 気をとりなおして再挑戦。 | ||||||||||
次にrpmforgeを見てみるとclamavのバージョンは最新ですが、clamsmtpはありません。別途考えることにします。
yumex(Yum Extender)でclamav,clamd,clamav-dbをインストール。今回のバージョンは0.96-3でした。 | ||||||||||
| ||||||||||
clamdのソケットがないのでつなげられないよと言っています。
少し早いけどclamdの起動設定もしておきます。 # chkconfig --list clamd で確認。 自動起動は設定されていました。 /etc/clamd.conf を確認。ほとんどそのままでいいようですが、少し好みで変更。 LogFileMaxSize 1M SelfCheck 3600 clamdを起動してみます。 # service clamd start Starting Clam AntiVirus Daemon: WARNING: Running on 32-bit system, and RLIMIT_DATA > 2GB, lowering to 2GB! LibClamAV Warning: Cannot prepare for JIT, because it has already been converted to interpreter [ OK ] いちおう起動するのですが、なにかがちゃんと設定されてないのかなと思いつつ、設定ファイルなどを見てみました。 WARNING: Running on 32-bit system,... についてはわかりません。検索してみるとどうやらバグのようです。実害はなさそうなので気にしないことにします。 LibClamAV Warning: Cannot prepare for JIT,... については、freshclam.confの最後のほうにある #Bytecode yes を Bytecode no とし、 /var/clamav の bytecode.cvd を捨ててしまえば出なくなることまではわかりましたが、出ても問題はなさそうなのでそのままにしておきます。 [追記]2010.10.27 clamav,clamdのバージョンアップが出ていましたのでアップデートしたらこれらのWARNINGは出なくなりました。 | ||||||||||
設定の確認をしていて、ふと設定ファイル /etc/clamd.conf と起動スクリプト /etc/rc.d/init.d/clamd とでソケットの記述が違うのに気がつきました。
停止時の設定なのでそのままでも実害はないとおもわれますが、いちおう起動スクリプトのほうを訂正しておきます。 stop() { } の中の rm -f /var/clamav/clamd.socket を設定ファイルにあわせて rm -f /var/run/clamav/clamd.sock に訂正。 | ||||||||||
| ||||||||||
Daily Check隔離ディレクトリ/var/tmp/clamav/clamscanを作り、UID:GIDをclamav:clamavとし、書込権限を与えておきます。
以下の方針でウィルスチェックを定期的に行うようにスクリプトを書いて /etc/cron.daily に置いておきます。
| ||||||||||
結果、ためしに置いたウィルスはちゃんと隔離され、警告メールを受け取り。ログもちゃんと記録されています。
実行優先度を下げても他のプロセスが動いてなければ時間は変わりませんでしたが、実行中にブラウザなどを使ってみると少し遅くなる程度で優先度を指定しておくのは正解そうです。 | ||||||||||
さらに/etc/logrotate.d/clamscanをつくり、ログがrotateされるように変更しておきます。
| ||||||||||
以上でclamavのインストールと設定は完了。
引き続いてメールスキャン用のclamsmtpをやっておきます。 | ||||||||||
clamsmtpdインストールと設定EPELにclamsmtpのrpmがあったのでそのままインストールしようとしたらFile conflictとやらでエラーになりましたのでソースからビルドし、インストールします。
http://www.inet.lt/clamsmtp/ にclamsmtpのソースと簡単なインストール手順があります。 最新ソースをゲット。 $ cd ~/rpm/SRPMS/ $ wget http://www.inet.lt/clamsmtp/clamsmtp-1.10-1.src.rpm いちおう展開してspecなど見てみましたが特に変更するところもなさそうなので引き続きビルド $ rpmbuild --rebuild clamsmtp-1.10-1.src.rpm ~/rpm/RPMS/i386 にclamsmtp-1.10-1.i386.rpm ができますのでインストール。 $ cd ../RPMS/i386/ $ su 念のためテスト。 # rpm -ivh --test clamsmtp-1.10-1.i386.rpm OKのようなのでインストール。 # rpm -ivh clamsmtp-1.10-1.i386.rpm /etc/clamsmtpd.conf を編集。変えたところ: Header: X-Virus-Scanned: ClamAV using ClamSMTP TempDirectory: /var/tmp/clamav/clamsmtp Action: drop Quarantine: on User: clamav VirusAction: /usr/local/bin/virusalert.sh 感染ファイル隔離用ディレクトリ /var/tmp/clamav/clamsmtp をつくり、UID:GIDをclamav:clamavとし、書込権限を与えておきます。 ウィルスが見つかったときのメール通知スクリプトvirusalert.shをつくり、/usr/local/binに置いておきます。 /etc/yum.confと/etc/yumex.confの各々のexcludeにclamsmtp*を追加し、アップデート対象から外しておきます。 | ||||||||||
| ||||||||||
ちょっと早いけど、起動設定とテスト起動。
# chkconfig clamsmtpd on # service clamsmtpd start OKです。 このあとpostfixにclamsmtpdを使ってのメールスキャンの設定をします。 | ||||||||||
その他VineLinux4ではcrondのソケットやclamsmtpdの作業ディレクトリがなぜか時折(月に1回くらい)落ちていることがあります。
データベースのアップデート中にチェックが重なると落ちることがあるとの噂。 CentOS5ではまだわかりませんが、念のためチェックスクリプトを作って/etc/cron.hourlyに置いておきます。 | ||||||||||
| ||||||||||
| ||||||||||