일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- eclipse35
- 보안
- 알고리즘
- Qmail
- uml example
- Linux
- UX
- 안드로이드
- KOSPI
- ubuntu
- 도서
- IT 키워드
- 작성중
- conemu
- Android
- 주식
- 공매도
- java
- adb
- 우분투
- Algorithm
- 기술사
- Eclipse
- IPTV
- unix
- 코스피
- LDAP
- 태터수정
- Audacity
- Today
- Total
Do diffence
simscan : 설치 및 qmail-scanner와 비교 본문
잘못된 부분이나 좋은 의견이 있으면 메일로 주시면 감사드리겠습니다.
목적
Qmail-scanner(perl)에 비해 c로 작성된
simscan 의 성능 테스트 및 장단점
perl스캐너 사용시 서버의 로드가 많이 높아지는 부분을 해소해 보고자 함
다운로드 위치
http://qmailwiki.inter7.com/index.php?title=Simscan
필요한 것들
Ripmime(첨부파일을 필터링 하고자 한다면 필요하다)
Qmail-queue패치
Clamav(바이러스메일 체크)
Spamassassin
Trophie(or sophie)-옵션으로 설치 가능
설치
1. 위의 다운로드 위치에서 소스를 다운로드 받는다.
2. 먼저 clamav와 spamassassin을 설치하도록 한다.
3, simscan소스를 풀고 소스 디렉토리로 이동
* 주의-먼저 simscan 이라는 사용자를 만들어야 한다.
4. simscan
Shell# groupadd
simscan
Shell# adduser –g simscan –r –d /var/qmail/simscan –M –s /sbin/nologin simscan
Shell# ./configure 필요 옵션
Shell# make
Shell# make
install-strip
옵션 설명
--enable-user=유저명 (simscan을 유저를 셋팅한다. 기본값으로 simscan)
--enable-clamav=y|n
(clamav 를 이용한 스캐닝. 기본값으로 y 이다.)
--enable-clamdscan=clamdscan의 PTAH
--enable-custom-smtp-reject=y|n
(바이러스 이름을 포함하여 리턴 메시지를 보내도록한다)
주의 – 위의 옵션을 사용하기 위해서는 소스디렉토리/contrib/qmail-queue-custom-error.patch
의 패치를
--enable-per-domain=y|n
( 많은 도메인에 대해서 메일서비스를 하고 있으며 각각에 대한 simscan 의 설정을
--enable-attach=y|n
( 첨부파일에 대해서 체크를 할 것인지의 여부를 정한다. /var/qmail/control/ssattach 파일안에 필터링할 파일명이나 확장자를 넣어주면 된다.)
--enable-spam=y|n (스팸메일에 대한 필터링을 할 것인지에 대한 옵션이다. 스팸어세신에
의해서 status 가 YES인 메일에 대해서는 반송을 하게
될것이다.)
--enable-spam-passthru=y|n
( 스팸 어세신에서 붙은 status값을
무시하고 그냥 통과시키고자 할 경우에 사용한다. 이는 나중에 procmail
이나 maildrop으로 스팸 편지함이나 별도의 디렉토리에 스팸 메일을 저장하고자 한다면
유용하게 사용될 수 있을 것이다.)
--enable-spam-hits=점수 (기본값으로 10 이
셋팅되며 스팸 어세신에서 정한 값을 넣으면 될 것이다.)
--enable-spamc=PTAH
(spamc 바이너리파일의 위치를 잡아준다. 자동으로
잡을것이다…^^)
--enable-spamc-args
(spamc 에 필요한 옵션을 지정할 수 있다.
필자의 경우에 퍼포먼스를 위해 spamd 를 소켓을 사용하게 하였으며 소켓의 위치는 /tmp/spamd 였다, 쌍따옴표로 지정한다는 점에 주의 하라)
Ex)
--enable-spamc-args=”-U /tmp/spamd”
--enable-dropmsg=y|n
(스팸 메일에 대한 메시지를 sender 에게
보내지 않겠다는 옵션이다.)
--enable-quarantinedir=디렉토리위치( 스팸,바이러스
메일을 따로 저장해둘 디렉토리를 지정한다)
--enable-received=y|n ( 메일헤더에 received를 추가할 것인지에 대한 옵션이다. 버전정보 및 처리시간이 기록되어진다.)
-필자의 경우의 configure
컴파일 및 설치가 완료 되었다면 이제 큐메일의 run 파일을 고치도록 한다.
필자의 run 파일의
내용이다.
기존에 셋팅했던 큐메일 스캐너를 잠시 내렸다…^^;
#!/bin/sh
QMAILQUEUE="/var/qmail/bin/simscan"
#QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export QMAILQUEUE
Q_UID=`id -u
qmaild`
Q_GID=`id -g
qmaild`
exec /usr/local/bin/softlimit -m 55000000 /usr/local/bin/tcpserver -vHRl 0 -x /etc/tcp.smtp.cdb -u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd spamgw.linuxstudy.pe.kr /bin/checkpassword /bin/true 2>&1
메일서버 재시작
메일 테스트
메일을 보내보고 도착한 메일을 열었을 때 헤더에 다음과
같은 라인이 존재하는지 확인해 보자
필자의 경우에 --enable-received=y
를 주었기 때문에
Received: by
simscan 1.1.0 ppid: 18392, pid: 18393, t: 0.0957s
scanners: clamav: 0.84rc1/m:30/d:813
spam: 3.0.2
가 있으며 스팸어세신의 점수를 5.1로 주었기 때문에 아래와 같이 헤더가 추가되어 있다.
X-Spam-Checker-Version:
SpamAssassin 3.0.2 (
X-Spam-Level:
X-Spam-Status: No,
score=0.4 required=5.1 tests=AWL,NO_REAL_NAME autolearn=no
version=3.0.2
메일이 위의 헤더를 가지고 있다면 정상적으로 simscan이 작동한다.
-간단Tip-
Clamav 와의 연동시 퍼미션 문제가 나올 경우에 아래와 같이 clamav 유저를 simscan 의 그룹으로 추가해 준다.
Shell# usermod –G imscan clamav
Enable-per-domain 옵션시 각 도메인 별로의 설정(simcontrol)
Shell# cat
/var/qmail/control/simcontrol
postmaster@example.com:clam=yes,spam=no,attach=.txt:.com
example.com:clam=no,spam=yes,attach=.mp3
:clam=yes,spam=yes,trophie=yes,spam_hits=20.1
첨부파일 필터링
Shell# cat
/var/qmail/control/ssattach
.exe
.jpeg
.pif
Qmail-scanner 와 simscan 의 장단점 비교
비교는 어디까지나 필자의 경험상으로 작성된 것이면 상황에
따라 또는 설정에 따라 얼마든지 달라질 수 있다.
-테스트 방법-
A 호스트에서 웹
프로그램으로 첨부파일 100k 짜리와 함께 간단한 메시지를 100통
발송
스캐너가 설치된 B 서버의
메일 메시지에 남은 시간을 계산하여 평균값을 냈다.
로컬 전송의 수치를 기본값과 100을 주었을 때를 비교해 보았다.
|
Simscan |
Qmail-scanner |
비고 |
메시지 처리시간 평균 |
1.6665
|
5.42134148 |
concurrencylocal의 기본값 사용 |
메시지 처리시간 평균 |
1.8093
|
5.25143428 |
Concurrencylocal값 100사용 |
로그 파일 |
별도 로그가 없음 |
별도 로그 남기기 쉬움 |
Simscan의 경우에 별도로 sender 의 아이피 정보나 기타
필요한 정보를 따로 저장하지 않기 때문에 소스를 수정하던지 다른 방법으로 자동 필터링 시스템을 생각해야 할 것 같다. |
전체적으로 c 로
작성된 simscan이 메시지
처리 능력에서는 다소 앞선 듯 보이기는 한다.
하지만 qmail-scanner 의 경우에는 perl로 작성되어 있어서 원하는 대로 쉽게 수정이 가능하다는 장점이 있을것이다.