Ubuntu

Ubuntu 16.04 新郵件伺服器可以接收但不能發送電子郵件

  • May 6, 2017

我遵循了在 Digitalocean 上找到的分步教程,如何使用 Postfix、Dovecot、Mysql 在 Ubuntu 上設置郵件伺服器(我將最後一個更改為 MariaDB)。

我面臨的問題是我能夠接收郵件,但我無法發送任何郵件。

也許很高興知道我使用我的使用者和關鍵字完成了整個安裝sudo

所以我已經有這個問題兩週了,嘗試了很多東西,是時候在這裡試試我的運氣了。

執行時sudo service postfix status我看到以下錯誤返回

May 06 09:27:05 mailserver01 postfix/qmgr[8494]: 6AC1F2C093A: from=<info@mydomain.be>, size=652, nrcpt=1 (queue active)
May 06 09:27:05 mailserver01 postfix/postdrop[25691]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied
May 06 09:27:06 mailserver01 postfix/sendmail[25689]: warning: command "/usr/sbin/postdrop -r" exited with status 1
May 06 09:27:06 mailserver01 postfix/sendmail[25689]: fatal: info@purewebdesign.be(1001): unable to execute /usr/sbin/postdrop -r: Success
May 06 09:27:06 mailserver01 postfix/pipe[25688]: 6AC1F2C093A: to=<jav@gmail.com>, relay=spamassassin, delay=147723, delays=147722/0/0/1, dsn=4.3.0, status=deferred (temporary failure. Command output: postdrop: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied sendmail: status=deferred (temporary failure. Command output: postdrop: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied sendmail: warning: command "/usr/sbin/postdrop -r" exited with status 1 sendmail: fatal: info@purewebdesign.be(1001): unable to execute /usr/sbin/postdrop -r: Success )
May 06 09:33:48 mailserver01 postfix/submission/smtpd[25746]: connect from cust-228-37-109-94.dyn.as47377.net[94.109.37.228]

也許這可能是我知道的權限問題,但為了清楚起見,我已經嘗試使用 root、postfix、myuser、dovecot、spamd 作為該組的使用者創建一個新組。然後我授予該組對該後綴文件夾和子文件夾的讀寫權限。沒有運氣…

這是今天的權限:

-rw-r----- 1 root root      153 Apr 28 12:51 dynamicmaps.cf
-rw-r--r-- 1 root root     2674 May  5 09:05 main.cf
-rw-r----- 1 root root     1388 Apr 28 14:23 main.cf.orig
-rw-r----- 1 root root     6261 May  5 09:49 master.cf
-rw-r----- 1 root postfix   142 May  1 13:07 mysql-virtual-alias-maps.cf
-rw-r----- 1 root postfix   130 May  1 13:08 mysql-virtual-mailbox-domains.cf
-rw-r----- 1 root postfix   129 May  1 13:07 mysql-virtual-mailbox-maps.cf
-rw-r----- 1 root root    21233 Apr 13  2016 postfix-files
-rwxr-x--- 1 root root     9344 Apr 13  2016 postfix-script
-rwxr-x--- 1 root root    29446 Apr 13  2016 post-install
drwxr-x--- 2 root root     4096 Apr 13  2016 sasl

有人知道如何解決這個問題嗎?

postdrop通常應用了 setgid 位,這意味著當 spamassasin 等其他程序使用它來傳遞郵件時,該程序在其他程序使用者(例如 spamassasin)下執行,但是postdrop’s 組:

$ ls -la `which postdrop`
-r-xr-sr-x 1 root postdrop 14328 Feb  5  2015 /usr/sbin/postdrop
     ^               ^
     |               |
setgid bit set     executed with postdrop's privileges

現在日誌告訴您,postdrop無法訪問它必須讀取的配置文件:

May 06 09:27:05 mailserver01 postfix/postdrop[25691]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied

查看文件的權限,文件是root使用者可讀寫的,root組是可讀的。其他任何人都無法閱讀它(這是一件好事)。

-rw-r----- 1 root root      153 Apr 28 12:51 dynamicmaps.cf

要解決此問題,請將文件的所有權更改為postdrop組 ( chown postdrop /etc/postfix/dynamicmaps.cf)。讀取權限應該足夠了,所以沒有理由修改權限。如果其他文件也需要調整權限,請逐個進行(或僅仔細重新考慮所需權限)。通常,如果伺服器程序辨識出廣泛授予的權限以通知您消除由系統上每個人的特別讀寫權限引起的安全問題,則它們會拒絕執行任何操作。

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