설치 지침 · 3 min read · Sep 28, 2025

완벽한 스팸스네이크 - 우분투 자운티 재칼로프 - 페이지 4

17. MailWatch 설치 지침

이 설정은 Apache v2.x를 사용하고 Apache v1.x를 사용하지 않는다고 가정합니다.

시작하기 전에 MailWatch 설치를 계속하기 전에 MailScanner가 작동하는지 확인하십시오!

*우분투에 대한 주의 사항:

작동하는 MailScanner 설정과 MySQL, Apache 및 PHP의 실행 복사본이 있어야 합니다. 또한 MailScanner의 Perl 부분이 MySQL 데이터베이스를 활용할 수 있도록 Perl DBD-MySQL 패키지가 설치되어 있어야 합니다.

기본 php.ini 설정은 다음과 같이 올바르게 설정되어 있어야 하며, 이를 확인하는 것이 좋습니다:

short_open_tag = On
safe_mode = Off
register_globals = Off
magic_quotes_gpc = On
magic_quotes_runtime = Off
session.auto_start = 0

이들은 주석 처리되어 있으므로 활성화하려면 “#”를 제거해야 합니다:

extension=mysql.so
extension=gd.so

17.1 설치

최신 MailWatch 릴리스를 다운로드합니다:

wget http://downloads.sourceforge.net/mailwatch/mailwatch-1.0.4.tar.gz?modtime=1178902008&big_mirror=0   
tar xzvf mailwatch-1.0.4.tar.gz   
cd mailwatch-1.0.4

17.2 데이터베이스 생성

mysql -p < create.sql

*참고: MySQL 데이터베이스에 루트 비밀번호가 있는 경우(권장!) 위 내용을 시스템에 맞게 수정해야 합니다. - Debian은 비밀번호를 요청합니다.

MySQL 사용자 및 비밀번호를 생성하고 SQL 로깅을 위해 MailScanner를 설정합니다:

mysql -p   
mysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'password';

비밀번호를 기억하세요! 비밀번호를 둘러싸기 위해 작은 따옴표 ‘가 필요합니다.

17.3 MailWatch.pm 편집 및 이동

MailWatch.pm을 편집하고 $db_user 및 $db_pass 값을 적절히 변경한 후 MailWatch.pm을 이동합니다:

mv MailWatch.pm /opt/MailScanner/lib/MailScanner/CustomFunctions/

17.4 MailWatch 웹 사용자 생성

mysql mailscanner -u mailwatch -p
Enter password: ******
mysql> INSERT INTO users VALUES ('username',md5('password'),'mailscanner','A','0','0','0','0','0');

17.5 MailWatch 설치 및 구성

압축을 푼 mailwatch 디렉토리 내에서 ‘mailscanner’라는 디렉토리를 /var/www/로 이동합니다.

mv mailscanner/ /var/www/   
cd /var/www/mailscanner

임시 디렉토리를 만듭니다:

mkdir temp   
chgrp www-data temp   
chmod g+w temp

/var/www/mailscanner/images 및 /var/www/images/cache의 권한을 확인하십시오 - 이들은 ug+rwx이어야 하며 root에 의해 소유되고 웹 서버 사용자와 동일한 그룹에 있어야 합니다.

chown root:www-data images   
chmod ug+rwx images   
chown root:www-data images/cache   
chmod ug+rwx images/cache

conf.php.example을 복사하여 conf.php를 생성하고 값을 적절히 수정합니다. 이전에 생성한 MySQL 사용자 및 비밀번호에 DB_USER 및 DB_PASS를 설정해야 합니다.

아래와 같이 이러한 값을 변경하십시오:

define(DB_USER, 'mailwatch');
define(DB_PASS, 'password');
define(MAILWATCH_HOME, '/var/www/mailscanner');
define(MS_LIB_DIR, '/usr/lib/MailScanner/');
define(QUARANTINE_USE_FLAG, true);
define(QUARANTINE_FROM_ADDR, '[email protected]');
define(QUARANTINE_USE_SENDMAIL, true);

17.6 MailScanner 설정

/opt/MailScanner/etc/MailScanner.conf를 편집하고 다음이 설정되어 있는지 확인하십시오:

Quarantine User = root
Quarantine Group = www-data
Quarantine Permissions = 0640
Quarantine Whole Message = yes
Always Looked Up Last = &MailWatchLogging
Quarantine Whole Message As Queue Files = no
Detailed Spam Report = yes
Include Scores In SpamAssassin Report = yes

*중요: 스팸 작업, 높은 점수 스팸 작업 및 스팸 없음 작업은 MailWatch 내에서 bayes 학습 또는 보기 위해 해당 항목을 격리하려면 ‘store’를 키워드 중 하나로 가져야 합니다.

17.7 SQL 블랙리스트/화이트리스트 통합 (선택 사항)

MailWatch 웹 인터페이스 내에서 MailScanner 화이트리스트 및 블랙리스트를 관리하려면 다음 단계를 수행하십시오.

  1. SQLBlackWhiteList.pm의 CreateList 서브루틴 내에서 MySQL 연결 값을 이전에 MailWatch.pm에 입력한 값과 일치하도록 편집합니다. 두 파일은 동일한 값을 포함해야 합니다. (SQLBlackWhiteList.pm에서 다음 줄을 찾아 자신의 데이터를 입력하십시오.)
my($db_user) = 'mailwatch';
my($db_pass) = 'password';
  1. SQLBlackWhiteList.pm을 /opt/MailScanner/lib/MailScanner/CustomFunctions/로 복사합니다.

  2. MailScanner.conf를 편집하고 설정합니다:

Is Definitely Not Spam = &SQLWhitelist
Is Definitely Spam = &SQLBlacklist

17.8 MailWatch가 Postfix 수신/발신 큐와 함께 작동하도록 수정

http://www.gbnetwork.co.uk/mailscanner/files/postfixmail.tar.gz에서 패치를 다운로드합니다.

cd /usr/src   
wget http://www.gbnetwork.co.uk/mailscanner/files/postfixmail.tar.gz   
tar xvfz postfixmail.tar.gz   
cd postfixmail   
cp postfix* /var/www/mailscanner/   
patch /var/www/mailscanner/functions.php functions.php.diff

17.9 SpamAssassin

먼저 기본 SpamAssassin 구성 파일을 비활성화해야 합니다:

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

이제 MailScanner에서 SpamAssassin 구성 파일을 백업한 다음 편집합니다:

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back

/opt/MailScanner/etc/spam.assassin.prefs.conf의 맨 위에 pyzor 및 razor 경로를 추가합니다:

pyzor_options --homedir /var/lib/MailScanner/   
razor_config /var/lib/MailScanner/.razor/razor-agent.conf

다음 줄을 찾아 적절히 변경하십시오:

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information

“YOURDOMAIN-COM”은 MailScanner.conf 파일의 “%org-name%”에 사용한 것으로 대체되어야 합니다. “X-“는 그대로 두십시오. 이는 위의 MailScanner.conf에서 사용된 동일한 orgname입니다.

Razor 및 DCC를 활성화하기 위해 SpamAssassin v310.pre를 편집합니다:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor2

17.10 SpamAssassin SQL Bayes

사전 요구 사항

a. perl-DBI 및 perl-DBD-MySQL 모듈이 설치되어 있어야 합니다.

가정 및 변수:

SpamAssassin Bayes 데이터베이스 이름: sa_bayes
SpamAssassin Bayes 데이터베이스 사용자 이름: sa_user
SpamAssassin Bayes 데이터베이스 비밀번호: sa_password

MySQL 데이터베이스를 생성합니다:

먼저 베이지안 정보를 저장할 서버에 데이터베이스를 생성합니다.

mysql -u root -p
mysql> create database sa_bayes;   
mysql> GRANT ALL ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY 'sa_password';   
mysql> flush privileges;

bayes_mysql.sql 파일을 찾습니다:

find / -name bayes_mysql.sql   
mysql -u sa_user -p sa_bayes < /path/to/bayes_mysql.sql

spam.assassin.prefs.conf에서 몇 가지 변경을 합니다:

bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:sa_bayes:localhost
bayes_sql_username sa_user
bayes_sql_password sa_password
bayes_sql_override_username root

다음이 주석 처리되어 있는지 확인하십시오:

#bayes_path /etc/MailScanner/bayes/bayes
#bayes_file_mode 0660

또한 crontab에 다음을 추가합니다:

30 01 * * * /usr/bin/sa-learn --force-expire --sync -p /opt/MailScanner/etc/spam.assassin.prefs.conf 
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.