使用 Postfix 在 Fedora 21 上配置 spamassassin
在現代 Fedora 系統上安裝 spamassassin 時,我無法在任何地方找到任何幫助。那裡的所有建議都是舊的並且不適用 - 反正我發現。官方文件與 Fedora 無關——它過於籠統並且缺少重要的 Fedora 實現細節。
而且,它是如何完成的還不夠直截了當,我知道該怎麼做!最重要的缺失環節似乎是我告訴
Postfix
如何呼叫spamassassin
. 但是,在哪裡定義配置選項也完全不清楚。接下來還有很多,但也許這一切都歸結為沒有人願意提供有關 Postfix
smtpd_milter
條目應該是什麼的適當資訊。而且,我嘗試過的條目是基於在“/usr/share/doc/spamass-milter-postfix”中找到的數據,這個文件說正確的值是 unix:/run/spamass-milter/postfix/sock 但是目錄存在,套接字條目不存在,並返回下面引用的錯誤消息。…好吧,更長的故事:
我已經安裝了這些版本:
spamass-milter-0.4.0-1.fc21.x86_64 spamass-milter-postfix-0.4.0-1.fc21.noarch spamassassin-3.4.0-13.fc21.x86_64
同樣,這是 Fedora 21。安裝的 Postfix 是:
postfix-2.11.3-1.fc21.x86_64
當我執行“man spamassassin”時,它指向我
/var/lib/spammassassin/3.004000
,其中包含“updates_spamassassin_org.cf”和一個同名的子目錄(減去 .cf),該子目錄又包含大量(65 個).cf 文件。手冊頁還指向我,/usr/share/spamassassin
其中又包含大量 (63) 類似名稱的 .cf 文件,這些文件並不完全相同。我當然希望我不必為了讓 spamassassin 工作而學習所有這些知識!值得慶幸的是——但還不夠——手冊頁還指向我,
/etc/mail/spamassassin
其中包含一個名為local.cf
. 在那裡,我找到了一個關於如何安裝 spamassassin 並將其與後綴集成的頁面的連結 - 此處 (),但該建議還不夠,而且似乎不是那麼有頭緒。例如,它建議的第一件事是創建一個名為“spamfilter
”的組和使用者帳戶,當然,股票yum
安裝已經創建了帳戶sa-milt
,其條目似乎是正確的:sa-milt:x:982:477:SpamAssassin Milter:/var/lib/spamass-milter:/sbin/nologin
我想需要在 Postfix 的 main.cf 中創建一個條目來創建或添加一個名為的條目
smtpd_milters
,以包含告訴 Postfix 如何呼叫 spamassassin 所需的任何連結。目前我有一個條目openDKIM
:# This is for openDKIM - missing are clamav and spamassassin: smtpd_milters = inet:localhost:8891
因此,在我看來,創建這些使用者帳戶是錯誤的。此外,如果需要這些帳戶,為什麼安裝腳本沒有創建使用者和組?此外,它還談到了使用“
service
”來啟動 spamassassin,但是,正如任何稱職的 Fedora 21 系統管理員所知道的那樣,您不使用“服務”,而是使用systemctl
!……無視……
該服務確實開始 - 並保持 - 使用:
systemctl start spamassassin
但是,它不起作用。
特別是,在我看來,顯然需要在 postfix 中添加一個鉤子,但也很明顯,非 Fedora 21 的策略失敗了。我們被指示更新 Postfix 的 main.cf smtpd_milters 條目 - 這是他們的建議:
# First entry is for openDKIM smtpd_milters = inet:localhost:8891, unix:/run/spamass-milter/postfix/sock
但問題是,這行不通。我們在日誌文件中得到這個:
postfix/smtpd[18151]: warning: connect to Milter service unix:/run/spamass-milter/postfix/sock: No such file or directory
但是,我似乎找不到
smtpd_milters
此版本組合的正確條目!很明顯,某處應該有安裝說明,但我發現的所有內容都與這些版本無關。請告訴我應該如何做,或者指出我在哪裡可以找到適用的合格文章!特別是,什麼是適當的
smtpd_milters
條目或者,我如何創建一個有效的配置組合(smtpd_milters / spamassassin 配置)?
事實證明,在咬牙切齒之後,我注意到我安裝了一個包,到目前為止,NOBODY 引用了我所見過的包。它被稱為
spamass-milter-root
。所以,在檢查了我能想到的一切之後,我想,為什麼不呢?…(“#”是系統 root 帳戶的 CLI 提示符。)
# systemctl enable spamass-milter-root.service Created symlink from /etc/systemd/system/multi-user.target.wants/spamass-milter-root.service to /usr/lib/systemd/system/spamass-milter-root.service. # systemctl status spamass-milter-root.service -; ● spamass-milter-root.service - Mail filter for SpamAssassin Loaded: loaded (/usr/lib/systemd/system/spamass-milter-root.service; disabled) Active: active (running) since Fri 2015-04-17 15:53:41 PDT; 1min 3s ago Process: 2353 ExecStartPre=/bin/chown -R root /run/spamass-milter (code=exited, status=0/SUCCESS) Main PID: 2356 (spamass-milter) CGroup: /system.slice/spamass-milter-root.service ├─2356 /usr/sbin/spamass-milter -g postfix -p /run/spamass-milter/... └─2370 /usr/bin/spamc Apr 17 15:53:41 ms1 spamass-milter[2356]: spamass-milter 0.4.0 starting Apr 17 15:54:00 ms1 spamass-milter[2356]: Could not retrieve sendmail mac...s
而且,當我在一個視窗中時,當我突然(!!)這一切剛剛開始在我眼前
tail -f /var/log/maillog
處理數百封郵件時,我感到震驚!spamd
耶!現在還有其他問題,例如,對這些消息的分析會產生什麼影響……
為了清楚起見,這裡有兩個命令解決了這個問題……請記住,這是完成所有其他配置工作:
# systemctl enable spamass-milter-root.service # systemctl start spamass-milter-root.service
完畢。
您還需要啟動垃圾郵件服務。
systemctl start spamass-milter
並驗證了它的工作原理
systemctl status spamass-milter
和
netstat -an | grep spamass-milter
預設情況下,spamassassin 僅附帶
spamd
二進製spamc
文件。Do daemon 包含在包中。這就是為什麼您需要使用bash script、amavisd或 spamass-milter 之類的集成器(例如這種情況)