20個關於Postfix的面試題
問題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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive