Freebsd

一旦收到 STARTTLS,Sendmail 程序就會崩潰

  • March 10, 2018

我剛剛將我的伺服器從 FreeBSD 10.3 升級到 11.1。它現在在 2017 年 1 月 26 日執行 Sendmail 8.15.2 和 OpenSSL 1.0.2k-freebsd。

自升級以來,向我的伺服器發送郵件失敗。我提高了日誌級別以顯示所有傳入和傳出的 SMTP 命令,使用/usr/sbin/sendmail -d95.99 -bD -X /tmp/test.log. 典型的傳入連接如下所示:

34431 >>> 220 localhost.FKEinternet.net ESMTP Sendmail 8.15.2/8.15.2; Thu, 8 Mar 2018 11:35:32 -0500 (EST)
34431 <<< EHLO [192.168.14.73]
34431 >>> 250-localhost.FKEinternet.net Hello rrcs-184-74-100-26.nys.biz.rr.com [184.74.100.26], pleased to meet you
34431 >>> 250-ENHANCEDSTATUSCODES
34431 >>> 250-PIPELINING
34431 >>> 250-8BITMIME
34431 >>> 250-SIZE
34431 >>> 250-DSN
34431 >>> 250-ETRN
34431 >>> 250-STARTTLS
34431 >>> 250-DELIVERBY
34431 >>> 250 HELP
34431 <<< STARTTLS

/var/log/messages我發現

Mar  8 11:35:32 Dreamer kernel: pid 34431 (sendmail), uid 0: exited on signal 11

是否有崩潰日誌我可以查看以了解發生了什麼?我還能做些什麼來調試這個問題?


編輯

除了兩天前在伺服器升級期間創建的 的實例外sh.core,沒有返回任何不到一年的核心文件。如果有一個 sendmail 實例在嘗試發送封郵件時崩潰,我本來希望找到一個不超過幾分鐘的郵件。什麼可能會阻止創建文件?pkg.core``pkg-static.core``find / -name "*.core" -ls``.core

我在 DutchDaemon 的 2017 年 12 月 12 日回復中找到了答案,在 FreeBSD 論壇上的[sendmail] 許多“未發出 MAIL/EXPN/VRFY/ETRN”日誌執行緒中:

標準安裝會在您的 .mc 文件中添加如下內容:

dnl Enable STARTTLS for receiving email.
define(`CERT_DIR', `/etc/mail/certs')dnl
define(`confSERVER_CERT', `CERT_DIR/host.cert')dnl
define(`confSERVER_KEY', `CERT_DIR/host.key')dnl
define(`confCLIENT_CERT', `CERT_DIR/host.cert')dnl
define(`confCLIENT_KEY', `CERT_DIR/host.key')dnl
define(`confCACERT', `CERT_DIR/cacert.pem')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confDH_PARAMETERS', `CERT_DIR/dh.param')dnl

我將該程式碼塊與我的伺服器.mc文件中的內容進行了比較,發現它缺少該**define('confDH_PARAMETERS','CERT_DIR/dh.param')dnl**行。我補充說,重新啟動sendmail,它現在正在工作。

我仍然想知道為什麼從來沒有.core生成任何文件,正如 SirDice 在 FreeBSD 論壇上觀察到的那樣,

奇怪的是它實際上崩潰了,我原以為它會在您嘗試使用它時產生失敗消息並拒絕執行,而不是啟動和段錯誤。

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