를 ProFTPd에 통합하는 방법.png)
Debian Lenny에서 바이러스 스캔을 위해 ClamAV(mod_clamav를 통해)를 ProFTPd에 통합하는 방법
이 튜토리얼은 Debian Lenny 시스템에서 바이러스 스캔을 위해 ClamAV를 ProFTPd에 통합하는 방법을 설명합니다. 이것은 mod_clamav 을 통해 달성됩니다. 결국 ClamAV는 ProFTPd를 통해 파일이 업로드될 때마다 해당 파일을 확인하여 악성코드일 경우 삭제합니다.
나는 이것이 당신에게 효과가 있다는 어떤 보장도 하지 않습니다!
Debian Lenny 서버에 작동하는 ProFTPd 설정이 있어야 합니다.
ClamAV는 다음과 같이 설치할 수 있습니다.
운영
소켓 유형: <-- TCP TCP 포트 clamd가 수신 대기: <-- 3310 IP 주소 clamd가 수신 대기: <-- 127.0.0.1
그런 다음 Clamd와 freshclam을 다시 시작합니다.
불행히도 mod_clamav는 기본적으로 ProFTPd의 일부가 아니며 mod_clamav용 데비안 패키지가 없으므로 mod_clamav로 ProFTPd를 다시 빌드해야 합니다. ProFTPd의 데비안 소스 패키지를 사용하고 mod_clamav를 지원하는 새로운 ProFTPd .deb 패키지를 빌드합니다.
먼저 ProFTPd를 다시 빌드하는 데 필요한 모든 패키지를 설치합니다.
이제 ProFTPd를 다시 빌드할 수 있습니다.
이제 파일이 업로드될 때마다 mod_clamav를 사용하도록 ProFTPd를 구성해야 합니다./etc/proftpd/proftpd.conf를 엽니다...
ProFTPd 다시 시작:

ProFTPd: http://www.proftpd.org/
mod_clamav: http://www.thrallingpenguin.com/resources/mod_clamav.htm
ClamAV: http://www.clamav.net/
데비안: http://www.debian.org/
나는 이것이 당신에게 효과가 있다는 어떤 보장도 하지 않습니다!
1 서문
Debian Lenny 서버에 작동하는 ProFTPd 설정이 있어야 합니다.
2 ClamAV 설치
ClamAV는 다음과 같이 설치할 수 있습니다.
aptitude install clamav clamav-daemon libclamav-dev이제 Clamd가 로컬 Unix 소켓 대신 TCP 연결을 사용하도록 ClamAV를 재구성해야 합니다. ProFTPd의 Chroot 기능(DefaultRoot ~)을 사용할 때 Unix 소켓 연결을 피하는 것이 좋습니다. 그 이유는 mod_clamav가 Clamd에 연결해야 하는 경우 chroot 환경에서 Unix 소켓을 사용할 수 없기 때문입니다.
운영
dpkg-reconfigure clamav-base... 그리고 다음과 같이 이 질문에 답하십시오(다른 모든 질문에는 기본값을 사용하십시오).
소켓 유형: <-- TCP TCP 포트 clamd가 수신 대기: <-- 3310 IP 주소 clamd가 수신 대기: <-- 127.0.0.1
그런 다음 Clamd와 freshclam을 다시 시작합니다.
/etc/init.d/clamav-daemon restart이제 실행
/etc/init.d/clamav-freshclam restart
netstat -tap | grep clamd... Clamd가 TCP를 통해 localhost에서 수신 대기 중임을 확인해야 합니다.
server1:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* LISTEN 29430/clamd
server1:~#
3 ProFTPd 재구축
불행히도 mod_clamav는 기본적으로 ProFTPd의 일부가 아니며 mod_clamav용 데비안 패키지가 없으므로 mod_clamav로 ProFTPd를 다시 빌드해야 합니다. ProFTPd의 데비안 소스 패키지를 사용하고 mod_clamav를 지원하는 새로운 ProFTPd .deb 패키지를 빌드합니다.
먼저 ProFTPd를 다시 빌드하는 데 필요한 모든 패키지를 설치합니다.
aptitude build-dep proftpd다음 패키지도 필요합니다(어떤 이유로 이전 명령으로 설치되지 않는...):
aptitude install libpam-dev이제 ProFTPd 소스 패키지를/usr/src에 다운로드합니다.
cd /usr/src다음으로 mod_clamav를/usr/src에 다운로드하고 압축을 풉니다.
apt-get source proftpd
wget --no-check-certificate https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-0.11rc.tar.gz그런 다음 mod_clamav-0.11rc/mod_clamav.* 파일을 proftpd-dfsg-1.3.1/contrib 디렉토리에 복사합니다...
tar xzvf mod_clamav-0.11rc.tar.gz
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.1/contrib... ProFTPd 소스 패치:
cd proftpd-dfsg-1.3.1다음으로 데비안/규칙을 수정해야 합니다.
patch -p1 < ../mod_clamav-0.11rc/proftpd.patch
vi debian/rulesCONF_ARGS 섹션을 검색하고 여기에 --with-modules=mod_clamav를 추가합니다.
[...] CONF_ARGS := --prefix=/usr \ --with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') \ --mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) \ --enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme \ --enable-ipv6 --enable-nls --with-modules=mod_clamav [...]
이제 ProFTPd를 다시 빌드할 수 있습니다.
dpkg-buildpackage이제 새로운 .deb 패키지가 생성된 디렉토리로 이동합니다.
cd ..명령
ls -l사용 가능한 패키지를 보여줍니다.
server1:/usr/src# ls -l다음과 같이 새로운 ProFTPd .deb 패키지를 설치할 수 있습니다.
total 5472
drwxr-xr-x 2 501 501 4096 2009-04-20 10:22 mod_clamav-0.11rc
-rw-r--r-- 1 root src 5115 2010-10-01 03:28 mod_clamav-0.11rc.tar.gz
-rw-r--r-- 1 root src 195066 2010-10-01 03:32 proftpd_1.3.1-17lenny4_all.deb
-rw-r--r-- 1 root src 690228 2010-10-01 03:32 proftpd-basic_1.3.1-17lenny4_i386.deb
drwxr-xr-x 13 root root 4096 2010-10-01 03:32 proftpd-dfsg-1.3.1
-rw-r--r-- 1 root src 107998 2010-10-01 03:29 proftpd-dfsg_1.3.1-17lenny4.diff.gz
-rw-r--r-- 1 root src 1103 2010-10-01 03:29 proftpd-dfsg_1.3.1-17lenny4.dsc
-rw-r--r-- 1 root src 3305 2010-10-01 03:32 proftpd-dfsg_1.3.1-17lenny4_i386.changes
-rw-r--r-- 1 root src 2662056 2007-10-16 01:02 proftpd-dfsg_1.3.1.orig.tar.gz
-rw-r--r-- 1 root src 1255660 2010-10-01 03:32 proftpd-doc_1.3.1-17lenny4_all.deb
-rw-r--r-- 1 root src 213004 2010-10-01 03:32 proftpd-mod-ldap_1.3.1-17lenny4_i386.deb
-rw-r--r-- 1 root src 203562 2010-10-01 03:32 proftpd-mod-mysql_1.3.1-17lenny4_i386.deb
-rw-r--r-- 1 root src 203512 2010-10-01 03:32 proftpd-mod-pgsql_1.3.1-17lenny4_i386.deb
server1:/usr/src#
dpkg -i proftpd*.deb
4 ProFTPd 구성
이제 파일이 업로드될 때마다 mod_clamav를 사용하도록 ProFTPd를 구성해야 합니다./etc/proftpd/proftpd.conf를 엽니다...
vi /etc/proftpd/proftpd.conf... 그리고 연을 추가하십시오
<IfModule mod_clamav.c>어딘가에, 예를 들어 아래
ClamAV on
ClamServer 127.0.0.1
ClamPort 3310
</IfModule>
<IfModule mod_ctrls_admin.c>부분:
AdminControlsEngine off
</IfModule>
[...] <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> <IfModule mod_clamav.c> ClamAV on ClamServer 127.0.0.1 ClamPort 3310 </IfModule> # # Alternative authentication frameworks # #Include /etc/proftpd/ldap.conf Include /etc/proftpd/sql.conf [...]
ProFTPd 다시 시작:
/etc/init.d/proftpd restart이제 다음을 실행하여 mod_clamav가 로드되었는지 확인합니다.
proftpd -vvmod_clamav는 출력에 나열되어야 합니다.
server1:~# proftpd -vv그게 다야! 이제 누군가 ProFTPd를 통해 서버에 맬웨어를 업로드하려고 할 때마다 "잘못된"파일이 삭제됩니다. http://www.eicar.org/anti_virus_test_file.htm에서 Eicar 테스트 바이러스를 다운로드하여 테스트할 수 있습니다. ProFTPd 서버에 업로드하려고 시도하고 모든 것이 잘되면 삭제해야 합니다.
- ProFTPD Version: 1.3.1 (stable)
- Scoreboard Version: 01040002
- Built: Fri Oct 1 03:31:03 CEST 2010
- Module: mod_core.c
- Module: mod_xfer.c
- Module: mod_auth_unix.c
- Module: mod_auth_file/0.8.3
- Module: mod_auth.c
- Module: mod_ls.c
- Module: mod_log.c
- Module: mod_site.c
- Module: mod_delay/0.6
- Module: mod_dso/0.4
- Module: mod_auth_pam/1.0.1
- Module: mod_clamav.c
- Module: mod_cap/1.0
- Module: mod_ctrls/0.9.4
- Module: mod_lang/0.8
server1:~#
