20個關於Postfix的面試題

Pradeep Kumar發表於2014-12-01

問題1:什麼是 Postfix,它的預設埠是多少?

答:Postfix 是一個開源的 MTA(郵件傳送代理,英文名:Mail Transfer Agent),用於轉發 email。相信很多人知道 Sendmail,而 Postfix 是它的替代品。預設埠是25。

問題2:Postfix 和 Sendmail 有什麼區別?

答:Postfix 使用模組化設計,由多個獨立的可執行程式組成;而 Sendmail 被設計成有一個強大的後臺程式提供所有服務。

問題3:什麼是 MTA,它在郵件系統中扮演什麼角色?

答:MTA 是 Mail Transfer Agent (郵件傳輸代理)的縮寫。MTA 負責接收和傳送郵件、確定傳送路徑和地址重寫(LCTT譯註:address rewriting,就是完善傳送地址,比如將“username”這個地址重寫為“username@example.com”)。本地轉發就是將郵件傳送給 MDA。Qmail、Postix、Sendmail 都是 MTA。

問題4:什麼是 MDA?

答:MDA 是 Mail Delivery Agent (郵件投遞代理)的縮寫。MDA 這個程式用於從 MTA 獲取郵件並投遞至本地收件人的郵箱。MDA 通常可以過濾郵件或為郵件分類。一個 MDA 也能決定一封郵件是否需要轉發到另一個郵箱地址。Procmail 就是一個 MDA。

問題5:什麼是 MUA?

答:MUA 是 Mail User Agent (郵件使用者代理)的縮寫。MUA 是一個郵件客戶端軟體,可以用來寫郵件、傳送郵件、接收郵件。傳送郵件時使用的是 MTA;接收郵件時可以從郵件儲存區直接收取,也可以通過 POP/IMAP 伺服器間接收取。Outlook、Thunkerbird、Evolution 都是 MUA。

問題6:郵件伺服器裡 postmaster 的作用是什麼?

答:郵件管理者一般就是 postmaster。一個 postmaster 的責任就是保證郵件系統正常工作、更新系統配置、新增/刪除郵箱帳號,以及其他工作。每個域中必須存在一個 postmaster 的別名(LCTT譯註:postmaster 別名用於接受一些其它伺服器/使用者對該郵件系統的溝通郵件,如關於垃圾郵件拒收的投訴等,通常都會直接被郵件伺服器的管理員所接受。一些系統錯誤和提示的郵件,也往往以postmaster 作為發件人),用於將郵件發往正確的使用者。

問題7:Postfix 都有些什麼重要的程式?

答:以下是 Postfix 郵件系統裡最重要的後臺程式列表:

  • master:這條程式是 Postfix 郵件系統的大腦,它產生所有其他程式。
  • smtpd:作為伺服器端程式處理所有外部連進來的請求。
  • smtp:作為客戶端程式處理所有對外發起連線的請求。
  • qmgr:它是 Postfix 郵件系統的心臟,處理和控制郵件佇列裡面的所有訊息。
  • local:這是 Postfix 自有的本地投遞代理MDA,就是它負責把郵件儲存到郵箱裡。

問題8:Postfix 伺服器的配置檔案是什麼?

答:有兩個主要配置檔案:

  • /etc/postfix/main.cf:這個檔案儲存全域性配置資訊,所有程式都會用到,除非這些配置在 master.cf 檔案中被重新設定了。
  • /etc/postfix/master.cf:這個檔案儲存了額外的程式執行時環境引數,在 main.cf 檔案中定義的配置可能會被本檔案的配置覆蓋掉。

問題9:如何將 Postfix 重啟以及設為開機啟動?

答:使用這個命令重啟:service postfix restart;使用這個命令設為開機啟動:chkconfig postfix on

問題10:怎麼檢視 Postfix 的郵件佇列?

答:Postfix 維護兩個佇列:未決郵件佇列(pending mails queue)和等待郵件佇列(deferred mail queue)。等待佇列包含了暫時傳送失敗、需要重新傳送的郵件,Postfix 會定期重發(預設5分鐘,可自定義設定)。(LCTT譯註:其實 Postfix 維護5個佇列:輸入佇列,郵件進入 Postfix 系統的第一站;活動佇列,qmgr 將輸入佇列的郵件移到活動佇列;等待佇列,儲存暫時不能傳送出去的郵件;故障佇列,儲存受損或無法解讀的郵件;保留佇列,將郵件無限期留在 Postfix 佇列系統中。)

列出郵件佇列裡面所有郵件:

# postqueue -p

儲存郵件佇列名單:

# postqueue -p > /mnt/queue-backup.txt

讓 Postfix 馬上處理佇列:

# postqueue -f

問題11:如何刪除郵件佇列裡面的郵件?

答:以下命令刪除所有郵件:

# postsuper -d ALL

以下命令只刪除等待佇列中的郵件:

# postsuper -d ALL deferred

問題12:如何通過命令來檢查 Postfix 配置資訊?

答:使用postconf -n命令可以檢視,它會過濾掉配置檔案裡面被註釋掉的配置資訊。

問題13:實時檢視郵件日誌要用什麼命令?

答:

tail -f /var/log/maillog 或 tailf /var/log/maillog

問題14:如何通過命令列傳送測試郵件?

答:參考下面的命令:

# echo "Test mail from postfix" | mail -s "Plz ignore" info@something.com

問題15:什麼是“開放郵件轉發(Open Relay)”?

答:開放郵件轉發是 SMTP 伺服器的一項設定,允許因特網上任意的其他使用者能通過該伺服器轉發郵件,而不是直接傳送到某個帳號的伺服器或只允許授權使用者通過它來傳送郵件。過去,這項功能在許多郵件伺服器中都是預設開啟的,但是現在已經不再流行了,因為郵件轉發會導致大量垃圾郵件和病毒郵件在網路上肆虐。

問題16:什麼是 Postfix 上的郵件轉發主機?

答:轉發主機是 SMTP 的地址,如果在配置檔案中有配置,那麼所有輸入郵件都將被 SMTP 伺服器轉發。

問題17:什麼是灰名單?

答:灰名單(LCTT譯註:介於白名單和黑名單之間)是一種用於攔截垃圾郵件的技術。一個 MTA 使用灰名單時就會“暫時拒絕”未被識別的傳送者發來的所有郵件。如果郵件是正當合理的,發起者會在一段時間後重新傳送,然後這份郵件就能被接收。(LCTT譯註:灰名單基於這樣一個事實,就是大多數的垃圾郵件伺服器和殭屍網路的郵件只傳送一次,而會忽略要求它們在一定的時間間隔後再次傳送的請求。)

問題18:郵件系統中 SPF 記錄有什麼重要作用?

答:SPF 是 Sender Policy Framework 的縮寫,用於幫助郵件域的擁有者確認傳送方是否來自他們的域,目的是其他郵件系統能夠保證傳送方在傳送郵件時來自經過授權的來源 —— 這種方法可以減小遇到郵件地址欺騙、網路釣魚和垃圾郵件的風險。

問題19:郵件系統中 DKIM 有什麼用處?

答:域名密匙是一套電子郵件身份認證系統,用於驗證郵件傳送方的 DNS 域和郵件的完整性。域名密匙規範採用網際網路電子郵件認證技術,建立了一套加強版協議:域名密匙識別郵件(就是 DKIM)。

問題20:郵件系統中 ASSP 的規則是什麼?

答:ASSP(Anti-Spam SMTP Proxy,反垃圾代理) 是一個閘道器伺服器,安裝在你的 MTA 前面,通過自建白名單、自動學習貝葉斯演算法、灰名單、DNS 黑名單(DNSBL)、DNS 白名單(DNSWL)、URI黑名單(URIBL)、SPF、SRS、Backscatter、病毒掃描功能、附件阻攔功能、基於傳送方等多種方法來反垃圾郵件。


via: http://www.linuxtechi.com/postfix-interview-questions-answers/

作者:Pradeep Kumar 譯者:bazz2 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章