在 Ubuntu 710 安裝 Postfix + MailScanner + ClamAV + Spamassassin

By | 2018-11-27

轉自:http://ithelp.ithome.com.tw/question/10002651

以下設置的內容將會是‘電郵網關’的設置,如果你是單機服務器,請跳過‘設定成 Mail Gateway’ 部分

環境
OS: Ubuntu 710
Mail Gateway: Postfix + MailScanner + ClamAV + Spamassassin
Internal Mail Server: Exchange Server, 內部 IP 為: 192.168.1.11
Primary MX: domain.com IN MX mail.domain.com. (MX 記錄指向 Mail Gateway)

安裝 Postfix, 並將 Postfix 設定成 Mail Gateway
sudo apt-get install postfix
sudo /etc/init.d/postfix stop
sudo gedit /etc/postfix/main.cf
———————————————————————————————-
myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $mydomain, localhost.$mydomain, localhost
local_recipient_maps = (空白)
networks_style = host
relay_domains = domain.com
transport_maps = hash:/etc/postfix/transport
append_at_myorigin = no
———————————————————————————————-
sudo gedit /etc/postfix/transport
———————————————————————————————-
Icon7inc.com smtp:[192.168.1.1]

sudo postmap /etc/postfix/transport
sudo /etc/init.d/postfix start

修改 NAT 配置, 將 tcp 25 指向 postfix_host:25。
從外部寄郵件到 [email protected], 觀察 postfix 是否能 forward 給真正的 mail server (192.168.1.1)。
telnet 到 mail gateway 進行測試

安裝 ClamAV、Spamassassin、MailScanner
sudo apt-get install clamav spamassassin mailscanner

ClamAV 不太需要設定就會正常工作
修改下面設定值
sudo gedit /etc/ld.so.conf
#加入
/usr/local/lib
ldconfig
freshclam

設定MailScanner
sudo gedit /etc/MailScanner/MailScanner.conf
———————————————————————————————-
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanning = yes
Virus Scanners = clamav
Use SpamAssassin = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
Sign Clean Message = no (不在信尾加註 “This message has been scanned…”)
———————————————————————————————-
mkdir /var/spool/MailScanner/spamassassin
chown postfix:postfix /var/spool/MailScanner/*
vi /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
vi /etc/postfix/header_checks
/^Received:/ HOLD
sudo /etc/init.d/postfix stop
sudo /etc/init.d/mailscanner start

———————————————————————————————-

在 openwebmail.conf 裡面的設定找到 enable_spamcheck 這段,照以下的參數做修改就可以了。(下面的例子也把學習廣告信的功能也打開)

spamcheck_pipe                  /usr/bin/spamc  -c -x -t60 -u @@@[email protected]@@
learnham_pipe                   /usr/bin/sa-learn --local --ham
learnspam_pipe                  /usr/bin/sa-learn --local --spam
enable_spamcheck                yes
enable_learnspam                yes
spamcheck_source_allowed        all

之後再照官方的說明文件,以 sample-spam.txt 寄一封測試的廣告信,如果設錯的話,在 openwebmail.log 裡面就會出現:

Sun Oct 24 21:52:06 2004 - [31314] (192.168.1.1) neo - spamscheck - pipe error - spamd error, exit=2
55, ret=From [email protected]  Sun Oct 24 21:52:01 2004

成功的話就會出現:

Sun Oct 24 22:18:20 2004 - [31484] (192.168.1.1) neo - spamcheck - spam 1000.0/10 found in msg <2004
[email protected]>

另外廣告信學習的功能如果設定成功的話,在使用者點選學習功能的時候,在 log 裡就會看到類似以下的訊息:

Sun Oct 24 22:25:13 2004 - [31634] (192.168.1.1) neo - learnspam - 1 learned, 1 examined

如果學習的功能起不來,就要確定 CmdLearn.pm 是不是非 root 權限的人可以讀到? 如果不行的話,就下 chmod 打開權限就可以了。如果不確定 CmdLearn.pm 路徑的話可以下 #locate CmdLearn.pm 找看看。

但是要注意的是目錄的權限也要開,以我的環境 CmdLearn.pm 在 RH9 的 RPM 預設是裝在:

/usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/

而我是乾脆把整個目錄都把 Group 跟 Public 讀取跟執行的權限打開:

chmod 555 /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/ -R

這樣每個使用者就可以開始使用 OpenWebMail 的擋廣告信及學習廣告信的功能了。

================================================================

将 MailScanner 日志单独写入 MailScanner.log 文件

原来 MailScanner 是将日志写入 maillog 的,每次查找垃圾邮件问题都十分不方便,参照:

http://www.extmail.org/forum/thread-6864-1-1.html

首先安装 Syslogd 服务, apt-get install syslogd 即可!

(1)在 /etc/MailScanner/MailScanner.conf 中,修改下面这个参数:

Syslog Facility = mail

改为

Syslog Facility = local0

(2)在 /etc/syslog.conf 中增加相应的一行:

local0.info                                        /var/log/MailScanner.log

(注明:中间空格处用 TAB 键)

(3)生成一下日志文件:

# touch /var/log/MailScanner.log

(4)重启一下 MailScanner 服务和 syslogd 系统日志服务:

# /etc/init.d/syslogd restart

# /etc/init.d/mailscanner restart

(5)验证一下,成功了:

# tail -f /var/log/MailScanner.log

看到日志在增加。

 

發佈留言