
CentOS 6.2에서 바이러스 스캔을 위해 ClamAV를 PureFTPd에 통합하는 방법
이 튜토리얼은 CentOS 6.2 시스템에서 바이러스 스캔을 위해 ClamAV를 PureFTPd에 통합하는 방법을 설명합니다. 결국 PureFTPd를 통해 파일이 업로드될 때마다 ClamAV는 파일을 확인하고 악성코드인 경우 삭제합니다.
CentOS 6.2 서버에서 작동하는 PureFTPd 설정이 있어야 합니다. 이 튜토리얼에서 볼 수 있듯이: Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2 .
ClamAV는 공식 CentOS 리포지토리에서 사용할 수 없으므로 EPEL 리포지토리를 활성화합니다(예: Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2 자습서에서 아직 수행하지 않은 경우).
그런 다음 다음과 같이 ClamAV를 설치할 수 있습니다.
먼저/etc/pure-ftpd/pure-ftpd.conf를 열고 CallUploadScript를 yes로 설정합니다.
다음으로/etc/pure-ftpd/clamav_check.sh 파일을 생성합니다(파일이 PureFTPd를 통해 업로드될 때마다/usr/bin/clamdscan을 호출함)...
... 실행 가능하게 만드십시오.
마지막으로 PureFTPd를 다시 시작합니다.
PureFTPD: http://www.pureftpd.org/
ClamAV: http://www.clamav.net/
CentOS: http://www.centos.org/
1 서문
CentOS 6.2 서버에서 작동하는 PureFTPd 설정이 있어야 합니다. 이 튜토리얼에서 볼 수 있듯이: Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2 .
2 ClamAV 설치
ClamAV는 공식 CentOS 리포지토리에서 사용할 수 없으므로 EPEL 리포지토리를 활성화합니다(예: Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2 자습서에서 아직 수행하지 않은 경우).
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
yum install yum-priorities/etc/yum.repos.d/epel.repo 편집...
vi /etc/yum.repos.d/epel.repo... 그리고 [epel] 섹션에 priority=10 줄을 추가합니다.
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...]
그런 다음 다음과 같이 ClamAV를 설치할 수 있습니다.
yum install clamav clamd다음으로 clamd에 대한 시스템 시작 링크를 만들고 시작합니다.
chkconfig --levels 235 clamd on
/usr/bin/freshclam
/etc/init.d/clamd start
3 PureFTPd 구성
먼저/etc/pure-ftpd/pure-ftpd.conf를 열고 CallUploadScript를 yes로 설정합니다.
vi /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을 호출함)...
vi /etc/pure-ftpd/clamav_check.sh
#!/bin/sh /usr/bin/clamdscan --remove --quiet --no-summary "$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을 엽니다...
vi /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를 다시 시작합니다.
/etc/init.d/pure-ftpd restart그게 다야! 이제 누군가가 PureFTPd를 통해 서버에 맬웨어를 업로드하려고 할 때마다 "잘못된"파일이 자동으로 삭제됩니다.