發布時間:July 6, 2012 // 分類:Mail // No Comments
在安裝郵件服務器之前先了解幾個名詞,以后會用到:
1
2
3
4
5
6
|
MUA:用戶代理端,即用戶使用的寫信、收信客戶端軟件
MTA:郵件傳送端,即常說的郵件服務器,用於轉發、收取用戶郵件。
MDA:郵件代理端,相當於MUA和MTA的中間人,可用於過濾垃圾郵件。
POP:郵局協議,用於MUA連接服務器收取用戶郵件,通信端口110。
IMOP:互聯網應用協議,功能較POP多,通信端口143。
SMTP:簡單郵件傳送協議,MUA連接MTA或MTA連接MTA發送郵件使用此協議,通信端口25。
|
本次配置MTA以Postfix為例,較sendmail簡單、安全,且兼容於sendmail。
Postfi安裝:
1
2
3
|
yum
install
postfix
yum remove sendmail
/etc/init
.d
/postfix
start
|
Postfix主配置設定:
1
2
3
4
5
6
7
8
9
10
11
|
cat /etc/postfix/main.cf
myhostname = mail.haiyun.me #Mail服務器域名,EHLO名稱。
mydomain = www.haiyun.me #
myorigin = $mydomain #發信地址,此設置顯示為@www.haiyun.me。
inet_interfaces = all #如對外提供MTA服務設置為監聽所有網卡,默認只監聽本地。
inet_protocols = all #支持協議,可選IPV4/IPV6。
mydestination = $mydomain $myhostname #本地郵件域名,直接接收
mynetworks_style = subnet #允許轉發的來源網段,可選subnet子網,class網段,host本機
mynetworks = 192.168.1.0/24,127.0.0.0/8 #允許轉發的來源IP,設置后忽略mynetworks_style參數
relay_domains = $mydestination #允許轉發的目標域
smtpd_banner = $myhostname ESMTP "Mail Server" #自定服務器信息
|
現Postfix允許接收或發送郵件的條件:
1
2
3
4
5
6
|
接收郵件:
目的地為$inet_interfaces的郵件;
目的地為$mydestination或$vitual_alias_maps的郵件。
轉發郵件:
來源客戶端符合$mynetworks的郵件;
來源或目的為$relay_domains的郵件。
|
配置郵件別名:
1
2
3
|
cat /etc/aliases
test:root,test@www.haiyun.me
別名:收件地址1,收件地址2
|
更新別名數據庫:
1
|
newaliases
|
配置郵件轉發:
1
2
|
cat ~/.forward
test@www.haiyun.me,test2@www.haiyun.me
|
設置SMTP密碼驗證,為防止MTA被濫用在postfix有配置信任網段,如在外網可使用smtp密碼驗證方式。
以系統用戶密碼方式認證,先啟動saslauthd服務協助postfix進行系統密碼驗證:
1
2
3
|
/etc/init
.d
/saslauthd
start
chkconfig saslauthd on
yum
install
cyrus-sasl-plain cyrus-sasl-md5 cyrus-sasl
|
確定SMTPD配置文件有以下內容:
1
2
|
cat /usr/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd #saslauthd協助smtp進行密碼驗證
|
配置Postfix使用SASL驗證,編輯main.cf配置文件添加:
TEST:testsaslautd -u username -p 'password'
1
2
3
4
5
6
7
|
smtpd_sasl_auth_enable = yes #開啟SMTP驗證
smtpd_sasl_security_options = noanonymous #不允許匿名用戶
smtpd_recipient_restrictions = #接收者限制規則,按順序執行
permit_mynetworks, #mynetworks用戶通過,匹配結束
permit_sasl_authenticated, #sasl驗證用戶通過,匹配結束
reject_unknown_sender_domain, #拒絕無效的發送郵件域名
reject_unauth_destination #拒絕收件人非mydestination、relay_domains或virtual_alias_maps定義域郵件
|
測試SMTP驗證是否生效:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.domain.com ESMTP Postfix
ehlo localhost
250-mail.domain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN #顯示此信息代表驗證正常
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
|
1
|
yum -y install dovecot
|
編輯dovecot配置文件:
1
2
3
|
vim /etc/dovecot/dovecot.conf
protocols = imap pop3 #監聽協議
login_trusted_networks = 127.0.0.1 #允許登錄接收郵件的IP段
|
設置郵件目錄:
1
2
|
cat /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
|
新建Mail賬號:
1
|
useradd -g mail -s /sbin/nologin user
|
啟動dovecot服務:
1
|
/etc/init.d/dovecot start
|