このチュートリアルでは、CentOS7システムでウイルススキャンを行うためにClamAVをPureFTPdに統合する方法について説明します。最終的に、ファイルがPureFTPdを介してアップロードされるたびに、ClamAVはファイルをチェックし、ウイルスまたはマルウェアが含まれている場合はファイルを削除します。
1予備メモ
CentOS7サーバーでPureFTPdセットアップが機能している必要があります。このチュートリアルに示されているように:CentOS 7でのPureFTPdとMySQL(クォータと帯域幅の管理を含む)を使用した仮想ホスティング
2ClamAVのインストール
ClamAVは公式のCentOSリポジトリでは利用できないため、EPELリポジトリを有効にします(まだ有効にしていない場合。RPMGPKキーをインポートすることから始めます。
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
次に、このチュートリアルの過程でインストールするパッケージの多くが公式のCentOS 7リポジトリで利用できないため、CentOSシステムでEPELリポジトリを有効にします。
yum -y install epel-release
yum -y install yum-priorities
/etc/yum.repos.d/epel.repoを編集します...
nano /etc/yum.repos.d/epel.repo
...そして[epel]セクションにpriority=10という行を追加します:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [...]
次に、システム上の既存のパッケージを更新します。
yum update
その後、次のようにClamAVをインストールできます。
yum -y clamav clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
ファイル/etc/freshclam.confを編集し、例の行をコメントアウトします:
nano /etc/freshclam.conf
例の行の前に#を追加します:
.....
# Comment or remove the line below.
# Example
....
次に、ファイル/etc/clamd.d/scan.confを編集します:
nano /etc/clamd.d/scan.conf
上記のファイルで行ったようにExample行をコメントアウトし、LocalSocket行の前の#を削除します。
.....
# Comment or remove the line below.
# Example
....
LocalSocket /var/run/clamd.scan/clamd.sock
....
次に、clamdのシステム起動リンクを作成して起動します:
systemctl enable [email protected]
freshclam
次に、clamavサービスを開始します:
systemctl start [email protected]
次のコマンドを使用して、ClamAVデーモンのステータスを確認できます。
systemctl status [email protected]
結果は次のようになります:
[[email protected] system]# systemctl status [email protected]
? [email protected] - Generic clamav scanner daemon
Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor preset: disabled)
Active: active (running) since Thu 2016-04-07 15:44:28 CEST; 1min 48s ago
Main PID: 10945 (clamd)
CGroup: /system.slice/system-clamd.slice/[email protected]
??10945 /usr/sbin/clamd -c /etc/clamd.d/scan.conf --nofork=yes
Apr 07 15:44:36 server1.example.com clamd[10945]: HTML support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: XMLDOCS support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: HWP3 support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: Self checking every 600 seconds.
Apr 07 15:44:36 server1.example.com clamd[10945]: PDF support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: SWF support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: HTML support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: XMLDOCS support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: HWP3 support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: Self checking every 600 seconds.
3PureFTPdの構成
まず、/ etc / pure-ftpd / pure-ftpd.confを開き、CallUploadScriptをyesに設定します:
nano /etc/pure-ftpd/pure-ftpd.conf
[...] # If your pure-ftpd has been compiled with pure-uploadscript support, # this will make pure-ftpd write info about new uploads to # /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and # spawn a script to handle the upload. # Don't enable this option if you don't actually use pure-uploadscript. CallUploadScript yes [...]を実際に使用しない場合は、このオプションを有効にしないでください。
次に、ファイル/etc/pure-ftpd/clamav_check.shを作成します(ファイルがPureFTPdを介してアップロードされるたびに/ usr / bin / clamdscanを呼び出します)...
nano /etc/pure-ftpd/clamav_check.sh
#!/bin/sh /usr/bin/clamdscan --fdpass --remove --quiet --no-summary -c /etc/clamd.d/scan.conf "$1"
...そして実行可能にする:
chmod 755 /etc/pure-ftpd/clamav_check.sh
ここで、pure-uploadscriptプログラムをデーモンとして起動します。ファイルがPureFTPdを介してアップロードされるたびに、/ etc / pure-ftpd/clamav_check.shスクリプトが呼び出されます。
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
もちろん、システムを起動するたびにデーモンを手動で起動する必要はありません。したがって、/ etc / rc.local ...
を開きます。nano /etc/rc.local
...そして/usr/ sbin / pure-uploadscript -B -r/etc/pure-ftpd/clamav_check.shという行を追加します-例:次のように:
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh touch /var/lock/subsys/local
最後に、PureFTPdを再起動します:
systemctl restart [email protected]
それでおしまい!これで、誰かがPureFTPdを介してマルウェアをサーバーにアップロードしようとすると、「不良」ファイルがサイレントに削除されます。
4仮想マシンイメージ
このチュートリアルは、Howtoforgeサブスクライバー向けにOVA/OVF形式ですぐに使用できる仮想マシンとして利用できます。 VM形式は、VMWare、Virtualbox、およびこの形式をインポートできるその他のツールと互換性があります。上部の右側のメニューにダウンロードリンクがあります。ファイル名をクリックしてダウンロードを開始します。
VMのログインの詳細は次のとおりです。
SSHログイン
ユーザー名:root
パスワード:howtoforge
MariaDBログイン
ユーザー名:root
パスワード:howtoforge
最初の起動後にパスワードを変更してください。
5つのリンク
- PureFTPD:http://www.pureftpd.org/
- ClamAV:http://www.clamav.net/
- CentOS:http://www.centos.org/