? ??????電子郵件系統(tǒng)是我們?cè)谌粘9ぷ鞴澄谩⑸钪凶畛S玫囊粋€(gè)網(wǎng)絡(luò)服務(wù),本章將首先介紹電子郵件系統(tǒng)的起源蹈矮, 然后介紹 SMTP砰逻、 POP3、 IMAP4 等常見(jiàn)的電子郵件協(xié)議泛鸟, 以及 MUA蝠咆、 MTA、MDA 這三種服務(wù)角色的作用北滥。本章將完整地演示在 Linux 系統(tǒng)中使用 Postfix 和 Dovecot 服務(wù)程序配置電子郵件系統(tǒng)服務(wù)的方法刚操,并重點(diǎn)講解常用的配置參數(shù),此外還將結(jié)合 BIND 服務(wù)程序提供的 DNS 域名解析服務(wù)來(lái)驗(yàn)證客戶端主機(jī)與服務(wù)器之間的郵件收發(fā)功能再芋。 本章最后還介紹了如何在電子郵件系統(tǒng)中設(shè)置用戶別名菊霜,以幫助大家在生產(chǎn)環(huán)境中更好地控制、管理電子郵件賬戶以及信箱地址济赎。
? ? ? ? 一鉴逞、電子郵件系統(tǒng)
? ??????20 世紀(jì) 60 年代,美蘇兩國(guó)正處于冷戰(zhàn)時(shí)期联喘。美國(guó)軍方認(rèn)為應(yīng)該在科學(xué)技術(shù)上保持其領(lǐng)先的地位华蜒,這樣有助于在未來(lái)的戰(zhàn)爭(zhēng)中取得優(yōu)勢(shì)辙纬。美國(guó)國(guó)防部由此發(fā)起了一項(xiàng)名為ARPANET 的科研項(xiàng)目豁遭,即大家現(xiàn)在所熟知的阿帕網(wǎng)計(jì)劃。阿帕網(wǎng)是當(dāng)今互聯(lián)網(wǎng)的雛形贺拣,它也是世界上第一個(gè)運(yùn)營(yíng)的封包交換網(wǎng)絡(luò)蓖谢。但是很快在 1971 年阿帕網(wǎng)遇到了嚴(yán)峻的問(wèn)題,如圖所示譬涡,參與阿帕網(wǎng)科研項(xiàng)目的科學(xué)家分布在美國(guó)不同的地區(qū)闪幽,甚至還會(huì)因?yàn)闀r(shí)差的影響而不能及時(shí)分享各自的研究成果,因此科學(xué)家們迫切需要一種能夠借助于網(wǎng)絡(luò)在計(jì)算機(jī)之間傳輸數(shù)據(jù)的方法涡匀。
? ??????盡管 Web 服務(wù)和 FTP 文件傳輸服務(wù)也能實(shí)現(xiàn)數(shù)據(jù)交換盯腌, 但是這些服務(wù)的數(shù)據(jù)傳輸方式就像“打電話”那樣,需要雙方同時(shí)在線才能完成傳輸工作陨瘩。如果對(duì)方的主機(jī)宕機(jī)或者科研人員因故離開(kāi)腕够,就有可能錯(cuò)過(guò)某些科研成果了级乍。好在當(dāng)時(shí)麻省理工學(xué)院的 Ray Tomlinson 博士也參與到了阿帕網(wǎng)計(jì)劃的科研項(xiàng)目中, 他覺(jué)得有必要設(shè)計(jì)一種類(lèi)似于“信件”的傳輸服務(wù)帚湘,并為信件準(zhǔn)備一個(gè)“信箱” 玫荣,這樣即便對(duì)方臨時(shí)離線也能完成數(shù)據(jù)的接收,等上線后再進(jìn)行處理即可大诸。于是捅厂,Ray Tomlinson 博士用了近一年的時(shí)間完成了電子郵件(Email)的設(shè)計(jì),并在 1971 年秋天使用 SNDMSG 軟件向自己的另一臺(tái)計(jì)算機(jī)發(fā)送出了人類(lèi)歷史上第一封電子郵件 — 電子郵件系統(tǒng)在互聯(lián)網(wǎng)中由此誕生资柔!
? ??????既然要在互聯(lián)網(wǎng)中給他人發(fā)送電子郵件焙贷,那么對(duì)方用戶用于接收電子郵件的名稱必須是唯一的,否則電子郵件可能會(huì)同時(shí)發(fā)給多個(gè)重名的用戶贿堰,也或者干脆大家都收不到郵件了盈厘。因此,Ray Tomlinson 博士決定選擇使用“姓名@計(jì)算機(jī)主機(jī)名稱”的格式來(lái)規(guī)范電子信箱的名稱官边。選擇使用@符號(hào)作為間隔符的原因其實(shí)也很簡(jiǎn)單沸手,因?yàn)?RayTomlinson 博士覺(jué)得人類(lèi)的名字和計(jì)算機(jī)主機(jī)名稱中應(yīng)該不會(huì)有這么一個(gè)@符號(hào), 所以就選擇了這個(gè)符號(hào)注簿。
? ??????電子郵件系統(tǒng)基于郵件協(xié)議來(lái)完成電子郵件的傳輸契吉,常見(jiàn)的郵件協(xié)議有下面這些。
?????????? 簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol,SMTP):用于發(fā)送和中轉(zhuǎn)發(fā)出的電子郵件诡渴,占用服務(wù)器的 25/TCP 端口捐晶。
?????????? 郵局協(xié)議版本3(Post Office Protocol 3):用于將電子郵件存儲(chǔ)到本地主機(jī),占用服務(wù)器的 110/TCP 端口妄辩。
?????????? Internet消息訪問(wèn)協(xié)議版本4(Internet Message Access Protocol 4):用于在本地主機(jī)上訪問(wèn)郵件惑灵,占用服務(wù)器的 143/TCP 端口。
? ??????在電子郵件系統(tǒng)中眼耀, 為用戶收發(fā)郵件的服務(wù)器名為郵件用戶代理 (Mail User Agent英支,MUA) 。 另外哮伟, 既然電子郵件系統(tǒng)能夠讓用戶在離線的情況下依然可以完成數(shù)據(jù)的接收干花,肯定得有一個(gè)用于保存用戶郵件的“信箱”服務(wù)器,這個(gè)服務(wù)器的名字為郵件投遞代理(Mail Delivery Agent楞黄, MDA) 池凄, 其工作職責(zé)是把來(lái)自于郵件傳輸代理 (Mail Transfer Agent,MTA)的郵件保存到本地的收件箱中鬼廓。其中肿仑,這個(gè) MTA 的工作職責(zé)是轉(zhuǎn)發(fā)處理不同電子郵件服務(wù)供應(yīng)商之間的郵件,把來(lái)自于 MUA 的郵件轉(zhuǎn)發(fā)到合適的 MTA 服務(wù)器。例如尤慰,我們從新浪信箱向谷歌信箱發(fā)送一封電子郵件勾邦,這封電子郵件的傳輸過(guò)程如圖所示。
? ??????總的來(lái)說(shuō)割择,一般的網(wǎng)絡(luò)服務(wù)程序在傳輸信息時(shí)就像撥打電話眷篇,需要雙方同時(shí)保持在線,而在電子郵件系統(tǒng)中荔泳,當(dāng)用戶發(fā)送郵件后不必等待投遞工作完成即可下線蕉饼。如果對(duì)方郵件服務(wù)器(MTA)宕機(jī)或?qū)Ψ脚R時(shí)離線,則發(fā)件服務(wù)器(MTA)就會(huì)把要發(fā)送的內(nèi)容自動(dòng)的暫時(shí)保存到本地玛歌,等檢測(cè)到對(duì)方郵件服務(wù)器恢復(fù)后會(huì)立即再次投遞昧港,期間一般無(wú)需運(yùn)維人員維護(hù)處理,隨后收信人(MUA)就能在自己的信箱中找到這封郵件了支子。
? ??????大家在生產(chǎn)環(huán)境中部署企業(yè)級(jí)的電子郵件系統(tǒng)時(shí)创肥,有 4 個(gè)注意事項(xiàng)請(qǐng)留意。
????????? 添加反垃圾與反病毒模塊:它能夠很有效地阻止垃圾郵件或病毒郵件對(duì)企業(yè)信箱的干擾值朋。
????????? 對(duì)郵件加密:可有效保護(hù)郵件內(nèi)容不被黑客盜取和篡改叹侄。
????????? 添加郵件監(jiān)控審核模塊:可有效地監(jiān)控企業(yè)全體員工的郵件中是否有敏感詞、是否有透露企業(yè)資料等違規(guī)行為昨登。
????????? 保障穩(wěn)定性:電子郵件系統(tǒng)的穩(wěn)定性至關(guān)重要趾代,運(yùn)維人員應(yīng)做到保證電子郵件系統(tǒng)的穩(wěn)定運(yùn)行,并及時(shí)做好防范分布式拒絕服務(wù)(Distributed Denial of Service丰辣,DDoS)攻擊的準(zhǔn)備撒强。
? ? ? ? 二、部署基礎(chǔ)的電子郵件系統(tǒng)
? ??????一個(gè)最基礎(chǔ)的電子郵件系統(tǒng)肯定要能提供發(fā)件服務(wù)和收件服務(wù)笙什,為此需要使用基于SMTP 協(xié)議的 Postfix 服務(wù)程序提供發(fā)件服務(wù)功能飘哨,并使用基于 POP3 協(xié)議的 Dovecot 服務(wù)程序提供收件服務(wù)功能。這樣一來(lái)琐凭,用戶就可以使用 Outlook Express 或 Foxmail 等客戶端服務(wù)程序正常收發(fā)郵件了芽隆。電子郵件系統(tǒng)的工作流程如圖所示。
? ??????在 RHEL 5淘正、 RHEL 6 以及諸多早期的 Linux 系統(tǒng)中摆马, 默認(rèn)使用的發(fā)件服務(wù)是由 Sendmail服務(wù)程序提供的,而在 RHEL 7 系統(tǒng)中已經(jīng)替換為 Postfix 服務(wù)程序鸿吆。相較于 Sendmail 服務(wù)程序,Postfix 服務(wù)程序減少了很多不必要的配置步驟述呐,而且在穩(wěn)定性惩淳、并發(fā)性方面也有很大改進(jìn)。
? ??????一般而言,我們的信箱地址類(lèi)似于“root@linuxprobe.com”這樣思犁,也就是按照“用戶名@主機(jī)地址(域名) ”格式來(lái)規(guī)范的代虾。如果您給我一串“root@192.168.10.10”的信息,我可能猜不到這是一個(gè)信箱地址激蹲,沒(méi)準(zhǔn)會(huì)將它當(dāng)作 SSH 協(xié)議的連接信息棉磨。因此,要想更好地檢驗(yàn)電子郵件系統(tǒng)的配置效果学辱,需要先部署 bind 服務(wù)程序乘瓤,為電子郵件服務(wù)器和客戶端提供 DNS 域名解析服務(wù)。
? ? ? ? (1)配置服務(wù)器主機(jī)名稱策泣,需要保證服務(wù)器主機(jī)名稱與發(fā)信域名保持一致:
# vim /etc/hostname
mail.linuxprobe.com
# hostname
mail.linuxprobe.com
? ? ? ? (2)清空 iptables 防火墻默認(rèn)策略衙傀,并保存策略狀態(tài),避免因防火墻中默認(rèn)存在的策略阻止了客戶端 DNS 解析域名及收發(fā)郵件:
# iptables -F
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
? ? ? ? (3)為電子郵件系統(tǒng)提供域名解析萨咕。由于第 13 章已經(jīng)講解了 bind-chroot 服務(wù)程序的配置方法统抬,因此這里只提供主配置文件、區(qū)域配置文件和域名數(shù)據(jù)文件的配置內(nèi)容危队,其余配置步驟請(qǐng)大家自行完成聪建。
# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
include "/etc/transfer.key";
options {
? ? ? ? listen-on port 53 { any; };
? ? ? ? listen-on-v6 port 53 { ::1; };
? ? ? ? directory? ? ? "/var/named";
? ? ? ? dump-file? ? ? "/var/named/data/cache_dump.db";
? ? ? ? statistics-file "/var/named/data/named_stats.txt";
? ? ? ? memstatistics-file "/var/named/data/named_mem_stats.txt";
? ? ? ? recursing-file? "/var/named/data/named.recursing";
? ? ? ? secroots-file? "/var/named/data/named.secroots";
? ? ? ? allow-query? ? { any; };
? ? ? ? forwarders { 210.73.64.1; };
? ? ? ? allow-transfer { key master-slave; };
………………省略部分輸出信息………………
# cat /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
? ? ? ? type master;
? ? ? ? file "linuxprobe.com.zone";
? ? ? ? allow-update { 192.168.1.155; };
? ? ? ? allow-transfer { 192.168.1.155; };
? ? ? ? allow-query { any; };
};
zone "1.168.192.in-addr.arpa" IN {
? ? ? ? type master;
? ? ? ? file "192.168.1.arpa";
? ? ? ? allow-update { 192.168.1.155; };
? ? ? ? allow-transfer { 192.168.1.155; };
? ? ? ? allow-query { any; };
};
# cat /var/named/linuxprobe.com.zone
$TTL 1D
@? ? ? IN SOA? linuxprobe.com. root.linuxprobe.com. (
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ; serial
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1D? ? ? ; refresh
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1H? ? ? ; retry
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1W? ? ? ; expire
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3H )? ? ; minimum
? ? ? ? NS? ? ? ns.linuxprobe.com.
ns? ? ? IN A? ? 192.168.1.145
? ? ? ? IN MX 10 mail.linuxprobe.com.
mail? ? IN A? ? 192.168.1.145
www? ? IN A? ? 192.168.1.145
bbs? ? IN A? ? 192.168.1.155
# systemctl restart named
# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
? ??????修改好配置文件后記得重啟 bind 服務(wù)程序,這樣電子郵件系統(tǒng)所對(duì)應(yīng)的服務(wù)器主機(jī)名即為 mail.linuxprobe.com茫陆, 而郵件域?yàn)锧linuxprobe.com妆偏。把服務(wù)器的 DNS 地址修改成本地 IP 地址,如圖所示盅弛。
? ? ? ? 1.配置 Postfix 服務(wù)程序
? ??????Postfix 是一款由 IBM 資助研發(fā)的免費(fèi)開(kāi)源電子郵件服務(wù)程序钱骂, 能夠很好地兼容 Sendmail服務(wù)程序, 可以方便 Sendmail 用戶遷移到 Postfix 服務(wù)上挪鹏。 Postfix 服務(wù)程序的郵件收發(fā)能力強(qiáng)于 Sendmail 服務(wù)见秽, 而且能自動(dòng)增加、 減少進(jìn)程的數(shù)量來(lái)保證電子郵件系統(tǒng)的高性能與穩(wěn)定性讨盒。另外解取,Postfix 服務(wù)程序由許多小模塊組成,每個(gè)小模塊都可以完成特定的功能返顺,因此可在生產(chǎn)工作環(huán)境中根據(jù)需求靈活搭配它們禀苦。
? ? ? ? (1)安裝 Postfix 服務(wù)程序。這一步在 RHEL7 系統(tǒng)中是多余的遂鹊。之所以還要寫(xiě)上這一步驟振乏,其目的是讓大家在學(xué)完本書(shū)之后不但能掌握 RHEL 系統(tǒng),還能立即上手Fedora秉扑、CentOS 等主流 Linux 系統(tǒng)慧邮。這樣,既然這些系統(tǒng)沒(méi)有默認(rèn)安裝 Postfix 服務(wù)程序,我們也可以自行搞定误澳。在安裝完 Postfix 服務(wù)程序后耻矮,需要禁用 iptables 防火墻,否則外部用戶無(wú)法訪問(wèn)電子郵件系統(tǒng)忆谓。
# yum install postfix
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,
? ? ? ? ? ? ? : subscription-manager
Loading mirror speeds from cached hostfile
base? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.6 kB? ? 00:00? ?
centosplus? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?
extras? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?
updates? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?
Package 2:postfix-2.10.1-7.0.1.el7.centos.x86_64 already installed and latest version
Nothing to do
# systemctl disable iptables
? ? ? ? (2) 配置 Postfix 服務(wù)程序裆装。 大家如果是首次看到 Postfix 服務(wù)程序主配置文件 (/etc/postfix/main.cf) ,估計(jì)會(huì)被 679 行左右的內(nèi)容給嚇到倡缠。其實(shí)不用擔(dān)心哨免,這里面絕大多數(shù)的內(nèi)容依然是注釋信息。在翻遍了配置參數(shù)的介紹毡琉,以及結(jié)合多年的運(yùn)維經(jīng)驗(yàn)后在岂,最終總結(jié)出了 7 個(gè)最應(yīng)該掌握的參數(shù)禀梳,如表所示。
Postfix 服務(wù)程序主配置文件中的重要參數(shù):
參數(shù)? ??? ??????????????????????????作用
myhostname ???????????? 郵局系統(tǒng)的主機(jī)名
mydomain? ????????????????郵局系統(tǒng)的域名
myorigin? ????????????????????從本機(jī)發(fā)出郵件的域名名稱
inet_interfaces? ????????監(jiān)聽(tīng)的網(wǎng)卡接口
mydestination? ????????可接收郵件的主機(jī)名或域名
mynetworks? ????????????設(shè)置可轉(zhuǎn)發(fā)哪些主機(jī)的郵件
relay_domains? ????????設(shè)置可轉(zhuǎn)發(fā)哪些網(wǎng)域的郵件
? ??????在 Postfix 服務(wù)程序的主配置文件中,總計(jì)需要修改 5 處哆档。首先是在第 76 行定義一個(gè)名為 myhostname 的變量屋群,用來(lái)保存服務(wù)器的主機(jī)名稱盹愚。請(qǐng)大家記住這個(gè)變量的名稱饲握,下邊的參數(shù)需要調(diào)用它:
# vim /etc/postfix/main.cf
………………省略部分輸出信息………………
68 # INTERNET HOST AND DOMAIN NAMES
69 #
70 # The myhostname parameter specifies the internet hostname of this
71 # mail system. The default is to use the fully-qualified domain name
72 # from gethostname(). $myhostname is used as a default value for many
73 # other configuration parameters.
74 #
75 #myhostname = host.domain.tld
76 myhostname = mail.linuxprobe.com? ??#定義主機(jī)名
………………省略部分輸出信息………………
? ??????然后在第 83 行定義一個(gè)名為 mydomain 的變量,用來(lái)保存郵件域的名稱号俐。大家也要記住這個(gè)變量名稱泌豆,下面將調(diào)用它:
78 # The mydomain parameter specifies the local internet domain name.
79 # The default is to use $myhostname minus the first component.
80 # $mydomain is used as a default value for many other configuration
81 # parameters.
82 #
83 mydomain = linuxprobe.com? ??#定義域名
? ??????在第 99 行調(diào)用前面的 mydomain 變量,用來(lái)定義發(fā)出郵件的域吏饿。調(diào)用變量的好處是避免重復(fù)寫(xiě)入信息踪危,以及便于日后統(tǒng)一修改:
85 # SENDING MAIL
86 #
87 # The myorigin parameter specifies the domain that locally-posted
88 # mail appears to come from. The default is to append $myhostname,
89 # which is fine for small sites.? If you run a domain with multiple
90 # machines, you should (1) change this to $mydomain and (2) set up
91 # a domain-wide alias database that aliases each user to
92 # user@that.users.mailhost.
93 #
94 # For the sake of consistency between sender and recipient addresses,
95 # myorigin also specifies the default domain name that is appended
96 # to recipient addresses that have no @domain part.
97 #
98 #myorigin = $myhostname
99 myorigin = $mydomain? ??#定義組織域
? ??????第 4 處修改是在第 116 行定義網(wǎng)卡監(jiān)聽(tīng)地址。 可以指定要使用服務(wù)器的哪些 IP 地址對(duì)外提供電子郵件服務(wù)猪落;也可以干脆寫(xiě)成 all贞远,代表所有 IP 地址都能提供電子郵件服務(wù):
101 # RECEIVING MAIL
102
103 # The inet_interfaces parameter specifies the network interface
104 # addresses that this mail system receives mail on.? By default,
105 # the software claims all active interfaces on the machine. The
106 # parameter also controls delivery of mail to user@[ip.address].
107 #
108 # See also the proxy_interfaces parameter, for network addresses that
109 # are forwarded to us via a proxy or network address translator.
110 #
111 # Note: you need to stop/start Postfix when this parameter changes.
112 #
113 #inet_interfaces = all
114 #inet_interfaces = $myhostname
115 #inet_interfaces = $myhostname, localhost
116 inet_interfaces = all? ??#定義網(wǎng)絡(luò)區(qū)域
119 inet_protocols = all #定義協(xié)議
? ??????最后一處修改是在第 164 行定義可接收郵件的主機(jī)名或域名列表。這里可以直接調(diào)用前面定義好的 myhostname 和 mydomain 變量(如果不想調(diào)用變量笨忌,也可以直接調(diào)用變量中的值) :
160 # Continue long lines by starting the next line with whitespace.
161 #
162 # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
163 #
164 mydestination = $myhostname, localhost$mydomain, localhost, $mydomain
210?local_recipient_maps=
? ? ? ? (3)創(chuàng)建電子郵件系統(tǒng)的登錄賬戶蓝仲。Postfix 與 vsftpd 服務(wù)程序一樣,都可以調(diào)用本地系統(tǒng)的賬戶和密碼官疲,因此在本地系統(tǒng)創(chuàng)建常規(guī)賬戶即可袱结。最后重啟配置妥當(dāng)?shù)?postfix 服務(wù)程序,并將其添加到開(kāi)機(jī)啟動(dòng)項(xiàng)中途凫。大功告成垢夹!
# useradd boss
# echo "linuxprobe" | passwd --stdin boss
Changing password for user boss.
passwd: all authentication tokens updated successfully.
# systemctl restart postfix
# systemctl enable postfix
# netstat–anlpt | grep 25? # 查看端口是否開(kāi)啟
? ? ? ? 2.配置 Dovecot 服務(wù)程序
? ??????Dovecot 是一款能夠?yàn)?Linux 系統(tǒng)提供 IMAP 和 POP3 電子郵件服務(wù)的開(kāi)源服務(wù)程序, 安全性極高颖榜,配置簡(jiǎn)單棚饵,執(zhí)行速度快煤裙,而且占用的服務(wù)器硬件資源也較少掩完,因此是一款值得推薦的收件服務(wù)程序噪漾。
? ? ? ? (1)安裝 Dovecot 服務(wù)程序軟件包。大家可自行配置 Yum 軟件倉(cāng)庫(kù)且蓬、掛載光盤(pán)鏡像到指定目錄欣硼,然后輸入要安裝的 dovecot 軟件包名稱即可:
# yum install dovecot
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,
? ? ? ? ? ? ? : subscription-manager
………………省略部分輸出信息………………
Installing:
dovecot? ? ? ? ? x86_64? ? ? ? ? 1:2.2.36-3.el7? ? ? ? ? base? ? ? ? ? 4.4 M
Transaction Summary
==============================================================================
Install? 1 Package
Total download size: 4.4 M
Installed size: 14 M
Is this ok [y/d/N]: y
Downloading packages:
dovecot-2.2.36-3.el7.x86_64.rpm? ? ? ? ? ? ? ? ? ? ? ? ? | 4.4 MB? 00:05? ?
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
? Installing : 1:dovecot-2.2.36-3.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1
? Verifying? : 1:dovecot-2.2.36-3.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1
Installed:
? dovecot.x86_64 1:2.2.36-3.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Complete!
? ? ? ? (2)配置部署 Dovecot 服務(wù)程序。在 Dovecot 服務(wù)程序的主配置文件中進(jìn)行如下修改恶阴。首先是第 24 行诈胜,把 Dovecot 服務(wù)程序支持的電子郵件協(xié)議修改為 imap、pop3 和 lmtp冯事。然后在這一行下面添加一行參數(shù)焦匈,允許用戶使用明文進(jìn)行密碼驗(yàn)證。之所以這樣操作昵仅,是因?yàn)?Dovecot 服務(wù)程序?yàn)榱吮WC電子郵件系統(tǒng)的安全而默認(rèn)強(qiáng)制用戶使用加密方式進(jìn)行登錄缓熟,而由于當(dāng)前還沒(méi)有加密系統(tǒng),因此需要添加該參數(shù)來(lái)允許用戶的明文登錄摔笤。
# vim /etc/dovecot/dovecot.conf
auth_mechanisms = plain login
base_dir = /var/run/dovecot/
debug_log_path = /var/log/dovecot_debug.log
disable_plaintext_auth = no
first_valid_uid = 1000
info_log_path = /var/log/dovecot_info.log
login_trusted_networks = 0.0.0.0/0
mail_location = mbox:~/mail:INBOX=/var/mail/%u?#指定郵件的位置
mbox_write_locks = fcntl
namespace inbox {
? inbox = yes
? location = mbox:~/mail:INBOX=/var/mail/%u
? mailbox Drafts {
? ? special_use = \Drafts
? }
? mailbox Junk {
? ? special_use = \Junk
? }
? mailbox Sent {
? ? special_use = \Sent
? }
? mailbox "Sent Messages" {
? ? special_use = \Trash
? }
? mailbox Trash {
? ? special_use = \Trash
? }
? prefix =
}
passdb {
? args = dovecot
? driver = pam
}
service auth {
? unix_listener /var/spool/postfix/private/auth {
? ? mode = 0666
? ? user = postfix
? }
? unix_listener auth-userdb {
? ? group = boss
? ? mode = 0666
? ? user = boss
? }
}
service imap-login {
? inet_listener imap {
? ? port = 143
? }
}
service pop3-login {
? inet_listener pop3 {
? ? port = 110
? }
}
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
? driver = passwd
}
#查看110端口和143端口是否被監(jiān)控
# netstat -anlpt | grep 110
# netstat -anlpt | grep 143
? ? ? ? (3)測(cè)試郵件
# telnet mail.linuxprobe.com 25
Trying 192.168.1.145...
Connected to mail.linuxprobe.com.
Escape character is '^]'.
220 mail.linuxprobe.com ESMTP
mail from:boss@linuxprobe.com
250 2.1.0 Ok
rcpt to:root@linuxprobe.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
.
250 2.0.0 Ok: queued as 3B3C461E628E
quit
221 2.0.0 Bye
Connection closed by foreign host.
You have new mail in /var/spool/mail/root
Heirloom Mail version 12.5 7/5/10.? Type ? for help.
"/var/spool/mail/root": 5 messages 1 new 5 unread
U? 1 linuxprobe@linuxprob? Fri Aug? 2 17:03? 17/655? "*** SECURITY inform"
U? 2 linuxprobe@linuxprob? Fri Aug? 2 17:04? 17/655? "*** SECURITY inform"
U? 3 linuxprobe@linuxprob? Fri Aug? 2 22:10? 17/667? "*** SECURITY inform"
U? 4 linuxprobe@linuxprob? Fri Aug? 2 22:10? 17/667? "*** SECURITY inform"
>N? 5 boss#linuxprobe.com@? Thu Aug 15 15:10? 13/530?
& 5
Message? 5:
From boss#linuxprobe.com@linuxprobe.com? Thu Aug 15 15:10:35 2019
Return-Path: <boss#linuxprobe.com@linuxprobe.com>
X-Original-To: root@linuxprobe.com
Delivered-To: root@linuxprobe.com
Date: Thu, 15 Aug 2019 15:09:01 +0800 (CST)
From: boss#linuxprobe.com@linuxprobe.com
Status: R
& q
Held 5 messages in /var/spool/mail/root
You have mail in /var/spool/mail/root
? ? ? ? (4)查看日志
#tail-f/var/log/maillog\
? ? ? ? (5)創(chuàng)建模板
? ??????修改創(chuàng)建用戶模板文件够滑,使用戶創(chuàng)建時(shí)自動(dòng)生成mail存放目錄
????????vim /etc/skel/.bash_profile添加一下配置文件,
????????if [ !-d ~/mail/.imap/INBOX ] ; then
????????????????mkdir -p ~/mail/.imap/INBOX
????????fi
????????注:如果是復(fù)制的吕世,最好在保存推出前彰触,執(zhí)行以下編碼格式的執(zhí)行
????????:setformat=unix
????????或者可以下載附件,替換當(dāng)前的配置文件即可
保存退出后命辖,執(zhí)行一下况毅,為其快速生效。
# source .bash_profile
? ? ? ? 3.用foxmail配置郵件
????????接下來(lái)我們需要?jiǎng)?chuàng)建測(cè)試用戶尔艇,創(chuàng)建用戶后尔许,使用新用戶登錄后,會(huì)自動(dòng)創(chuàng)建相關(guān)目錄漓帚,然后就直接可以使用郵箱了母债;我們也可以使用outlook或者其他方式進(jìn)行郵件測(cè)試,再次就不做測(cè)試尝抖;
????????如果想希望對(duì)外及對(duì)內(nèi)郵件有來(lái)往的話毡们,需要將服務(wù)器的110、25發(fā)布到外網(wǎng)昧辽,然后再外網(wǎng)的域名商配置MX記錄解析及A記錄解析衙熔,這樣郵件才能回來(lái)。
? ??????我們最后使用foxmail進(jìn)行內(nèi)網(wǎng)測(cè)試了搅荞;
????????我們配置兩個(gè)賬戶红氯,zs框咙、ls用戶進(jìn)行郵件收發(fā)測(cè)試:
? ??????我們?cè)偬砑右粋€(gè)ls的賬戶
? ??????使用zs給ls發(fā)郵件
? ??????zs收到郵件了
? ??????ls也收到郵件了