Postfix

使用 Postfix 在 Fedora 21 上配置 spamassassin

  • February 5, 2022

在現代 Fedora 系統上安裝 spamassassin 時,我無法在任何地方找到任何幫助。那裡的所有建議都是舊的並且不適用 - 反正我發現。官方文件與 Fedora 無關——它過於籠統並且缺少重要的 Fedora 實現細節。

而且,它是如何完成的還不夠直截了當,我知道該怎麼做!最重要的缺失環節似乎是我告訴Postfix如何呼叫spamassassin. 但是,在哪裡定義配置選項也完全不清楚。

接下來還有很多,但也許這一切都歸結為沒有人願意提供有關 Postfixsmtpd_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 scriptamavisd或 spamass-milter 之類的集成器(例如這種情況)

引用自:https://serverfault.com/questions/683044