웹마스터 팁

첨부파일은 제홈의 설치이야기에서 받아가세요.
질문은 메일로 안 받습니다. 홈의 질답게시판에서 해주세요.
비츠로 홈 - http://vitro.pe.kr

qmail-1.03설치⑥ (qmail-scanner 스팸필터링)

qmail-scanner는 바이러스와 스팸 메일을 필터링하기
위해서 사용한다.
qmail-scanner를 설치하기 위해서는 maildrop과 외부 spam필터를 같이
결합하여 설치한다.
나는 여기서 spamAssassin을 결합하여 사용하는 방법을 쓸것이다.
spamAssassin을 결합하는 이유는 문서 이야기에
올려뒀으니 참조하기 바란다.
그리고 qmail-scanner설치시 필요한 모듈이 몇가지 있다.
unzip은 큐메일스캐너가 압축한 이메일 파일을 검사시 압축해제하여 검사하기
위해서 필요하다.

perl-suidperl란 것도 필요한데 큐메일 스캐너가 실행시 필요로 한다.

Time::Hires 모듈을 선행조건으로 설치되어 있어야 하는데...
이것을 설치하다보면 에러 메시지가 난다... Time::Hires를 설치하기전에
HTML-Parser설치하고 나서 Time::Hires를 설치하면 에러 없이 잘 설치된다.

그리고 maildrop은 qmail-scanner가 이메일을 검사하기 위한 이메일 포맷을
스캔가능한 형태로 변환하기 위해 maildrop의 reformime이란 기능을 이용한다.
그러니 반드시 maildrop을 설치하여야 한다.

각 소스가 내가 다운 받아 테스트했을때보다 버전업이 된것이
좀있나 버전 업이 되어도 설치시에 별 차이는 없다.
각 소스를 다운 받는다.

maildrop-1.5.0를 아래 주소에서 다운 받는다.
http://prdownloads.sourceforge.net/courier/

HTML-Parser을 아래 주소에서 다운 받는다.
http://search.cpan.org/author/GAAS/HTML-Parser-3.27/

내가 테스트할땐 1.38이었으나 지금은 1.42버전인데
별차이 없는것으로 안다. 그냥 1.42로 작업한다.
Time-HiRes 을 아래 주소에서 다운 받는다.
http://search.cpan.org/author/JHI/Time-HiRes-1.42/

Mail-SpamAssassin 을 아래 주소에서 다운 받는다.
http://www.spamassassin.org/downloads.html

qmail-scanner 를 아래 주소에서 다운 받는다.
http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.16.tgz?download

perl-suidperl, unzip은 rpm으로 설치한다.

#####  maildrop install  ######
우선 메일드롭부터 설치한다.
maildrop-1.5.0를 압축해제 한다.
tar jxpf maildrop-1.5.0.tar.bz2 -C /var/tmp
cd /var/tmp/maildrop-1.5.0

만약 당신이 checkpassword를 지원하고 싶다면 위의 컨피그
옵션중에 조금만 수정해서 사용하면 될것이다.
--enable-maildrop-gid=vchkpw
--enable-restrict-trusted=1
--enable-trusted-users='root qmaild vpopmail'
위의 세 옵션만 제거하고 설치하면 될것같다. 솔직히 나도 qmail-scanner와
checkpassword와 연동해서 설치한적이 없어서 잘 모르겠다.
checkpassword와 qmail-scanner와의 연동은 특별히 설정이 어렵진 않은걸로 안다.

echo "##########################"
echo "###  Vpopmail support  ###"
echo "##########################"
컨파일 옵션을 설정

./configure
--prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--mandir=/usr/share/man
--enable-sendmail=/var/qmail/bin/sendmail
--enable-maildrop-uid=root
--enable-maildrop-gid=vchkpw
--enable-maildirquota
--enable-restrict-trusted=1
--enable-trusted-users='root qmaild vpopmail'

컴파일
make

find /* > /root/maildrop1

실제 설치
make install-strip

맨 페이지 설치
make install-man
find /* > /root/maildrop2

diff /root/maildrop1 /root/maildrop2 > /root/maildrop-install

rpm으로 unzip과 perl-suidperl 을 rpm으로 설치한다.

rpm -Uvh --nodeps unzip-5.50-2.i386.rpm perl-suidperl-5.6.1-34.99.6.i386.rpm

echo "###  HTML-Parser-3.26 install ###"

HTML-Parser-3.26 압축해제

tar zxfp HTML-Parser-3.26.tar.gz -C /var/tmp
cd /var/tmp/HTML-Parser-3.26

우선 펄 경로설정
perl Makefile.PL

컴파일
make

컴파일 테스트
make test

find /* > /root/HTML-Parser1
make install
find /* > /root/HTML-Parser2

diff /root/HTML-Parser1 /root/HTML-Parser2 > /root/HTML-Parser-install

echo "#### Time::Hires install ####"
Time-HiRes-1.38 압축해제
tar zxfp Time-HiRes-1.38.tar.gz -C /var/tmp
cd /var/tmp/Time-HiRes-1.38

펄 경로 설정
perl Makefile.PL

컴파일
make

컴파일 테스트
make test
find /* > /root/Time1
make install
find /* > /root/Time2

diff /root/Time1 /root/Time2 > /root/Time-install

#####  spamAssassin install  ######
Mail-SpamAssassin-2.43 설치

tar zxfp Mail-SpamAssassin-2.43.tar.gz -C /var/tmp
cd /var/tmp/Mail-SpamAssassin-2.43
perl Makefile.PL

컴파일
make

find /* > /root/spamassassin1

실제 설치
make install

첨부 파일들을 복사한다.
cp -f user_prefs /etc/mail/spamassassin/
cp -f local.cf /etc/mail/spamassassin/

시작 스크립트 복사
cp -f /var/tmp/Mail-SpamAssassin-2.43/spamd/redhat-rc-script.sh /etc/rc.d/init.d/spamd

-----------  아래 옵션은 Mail-SpamAssassin-2.43 시작시 옵션 설정  -----------

-F0 <-- 최신 버전에선 불필요 옵션
-d : 데몬모드
-L : Local 유저에 적용
-x : 사용자별 환경설정 무시
-u qmailq : spamd을 qmailq 유저 권한으로 실행

echo 'OPTIONS="-d -L -x -u qmailq"' > /etc/sysconfig/spamd

-------------------------------------------------------------------------
find /* > /root/spamassassin2

퍼미션 조정
chmod 644 /etc/mail/spamassassin/*
chmod 644 /etc/sysconfig/spamd
chmod 700 /etc/rc.d/init.d/spamd

chkconfig --add spamd
chkconfig --level 345 spamd on
/etc/rc.d/init.d/spamd start

spamassassin 테스트

cd /var/tmp/Mail-SpamAssassin-2.43

spamassassin -t < sample-nonspam.txt > nonspam.out
spamassassin -t < sample-spam.txt > spam.out

nonspam.out 과 spam.out 파일을 열어보고
spam.out 파일에 스팸 내용이 있으면 이상없이 설치된거다.

echo "#### qmail-scanner install ####"
qmail-scanner-1.15를 설치한다.

혹시 라도 setuidperl의 퍼미션을 확인해보고 아래와 다르면 바꿔준다.
chown root /usr/bin/suidperl
chmod 4711 /usr/bin/suidperl

소스 압축해제
tar zxfp qmail-scanner-1.15.tgz -C /var/tmp
cd /var/tmp/qmail-scanner-1.15

소스 폴더의 아래에 보면 locale라는 디렉토리가 있다.
자신의 시스템 로케일이 ko로 사용한다면 perlsuid가 작동할때마다
perl에서 ko라는 폴더를 찾을수 없다는 에러 메시지가 나올것이다.
그 에러 메시지를 안 나오게 하기 위해
en_GB파일을 자신이 사용하는 로케일명으로 복사하면 에러 메시지가 안 뜬다.

cp -r locale/en_GB locale/eucKR

컴파일
./configure --debug no
--lang "eucKR"
--log-details syslog
--unzip yes
find /* > /root/qmail-scanner1

./configure --debug no
--lang "eucKR"
--log-details syslog
--install

첨부파일을 복사한다.
아래 파일은 큐메일 스캐너의 룰셋이다.
cp -f quarantine-attachments.txt /var/spool/qmailscan/

find /* > /root/qmail-scanner2

diff /root/qmail-scanner1 /root/qmail-scanner2  > /root/qmail-scanner-install

퍼미션 조정한다.
chown qmailq.qmail /var/spool/qmailscan/quarantine-attachments.txt
chmod 660 /var/spool/qmailscan/quarantine-attachments.txt
chown qmailq.qmail /var/qmail/bin/qmail-scanner-queue.pl
chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

아래 명령으로 큐메일 스캐너 룰셋이 잘 적용되었는지 확인
/var/qmail/bin/qmail-scanner-queue.pl -g

큐메일큐가 시스템 환경 변수로 정의되어있어야지만 정상 작동한다.
echo 'export QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"' >> /etc/profile
export QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

환경파일 재로드
. /etc/profile

환경 변수 지정 잘 되었나 확인해본다.
echo $QMAILQUEUE

큐메일 재시작
/etc/rc.d/init.d/qmail restart

큐메일 스캐너 테스트
/var/tmp/qmail-scanner-1.15/contrib/test_installation.sh -doit

큐메일 스캐너 설치하고 나서 큐메일 스캐너 관련 로그가 너무 많이 남는다면
크론으로 한시간마다 해당 큐 폴더를 지우고 다시 만드는 식으로 로그를
관리하자. 아래는 내가 한 방법인데... 이것보다는 로그 로테이트등을 이용하는게
훨씬 나을것 같다.

참고로 아래 방법은 서비스시에 약간의 문제를 일으킬 소지가 다분하므로
권하지 않는다.

echo 'rm -rf /var/spool/qmailscan/quarantine/new
install -m770 -d -o qmailq -g qmail /var/spool/qmailscan/quarantine/new' > /etc/cron.hourly/qmail-scan.cron
chmod 550 /etc/cron.hourly/qmail-scan.cron
제목 글쓴이 날짜
qmail-1.03설치⑤ (courier-imap연동) 비츠로 2003.02.28
qmail-1.03설치⑥ (qmail-scanner 스팸필터링) 비츠로 2003.02.28
qmail-1.03설치⑦ (qmailadmin 큐메일 웹관리툴) 비츠로 2003.02.28
qmail-1.03설치⑧ (squirrel웹메일과 연동) 비츠로 2003.02.28
apache-1.3.x설치① (필수조건과 pre configure) 비츠로 2003.03.02
apache-1.3.x설치② (mm, mod_ssl, mod_perl모듈) 비츠로 2003.03.02
apache-1.3.x설치③ (resin, jdk, jdbc연동) 비츠로 2003.03.02
apache-1.3.x설치③ (tomcat4, jdk, jdbc연동) 비츠로 2003.03.02
apache-1.3.x설치④ (php4 + db + mail연동) 비츠로 2003.03.02
apache-1.3.x설치⑤ (apahce설치, php가속기 추가) 비츠로 2003.03.02
apache-1.3.x설치⑥ (apahce, tomcat, resin가상호스팅설정) 비츠로 2003.03.02
리눅스에서 한통 ADSL 설정해 주기.. [5] 이희덕 2003.03.02
Sendmail 취약점 발표 [3] 조수권 2003.03.04
안녕하세요, php 보안 취약점인데 한번 보시길.. [28] Dopesoul 2003.03.08
php 의 보안 관련.. [7] Dopesoul 2003.03.08
apache server의 log file 관리 [3] 겨울늑대 2003.03.09
트래픽관리 Throttle-status 사용자 인증시키기 [1] Cksoft 2003.03.18
Apache1.3.27 + PHP4.3.1 + MySQL4.0.12 + ZendOptimizer2.1.0 [6] FriZeX 2003.03.19
mysql에서 사용자 권한을 잘못 부여하여 root로 접속불가, 사용권한 제한등 문제 해결방법 [3] 정종화 2003.03.20
커널 2.4 local ptrace-related vulnerability 패치하세요~ [8] 김도한 2003.03.20