網路開展事業或在網路創業賺錢的第一步:【架設24小時賺錢網站主機】比網頁設計更優先!

感謝您造訪 Linux主機伺服器架設技術基地。 你可進入替你架設主機.影片教你維護頁面,詳細瞭解Linux主機架設及相關技術維護影片教學(完整配套措施),有主機馬上可以架設網站營運,完全無限制!

租用不如自有主機!聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多!完全沒有版權問題,超強『防駭客攻擊與入侵』及安全防護可以讓你無後顧之憂。

                    架設主機.影片教你維護: http://por.tw/linux/new-E_learning/index.php

Linux主機伺服器架設技術基地  維護團隊  敬上

在Linux主機下,Postfix SMTP Server【MailServer】之安裝

在Linux主機下Postfix 是一套相容於 Sendmail 的郵件伺服器。
由於Postfix設定較簡易且功能強大安全性更高,因此在目前使用程度廣泛,且相關支援文件也很齊全。

---------------------------------------------------------
Postfix安裝:
$sudo aptitude install postfix libsasl2 libsasl2-modules sasl2-bin dovecot-common dovecot-imapd dovecot-pop3d
上面指令將會安裝 postfix,且會一併安裝 dovecot 來作 pop3/imap 收信以及 SASL 負責 relay 的驗證。
---------------------------------------------------------
Postfix設定:
postfix 的主要設定檔為 /etc/postfix/main.cf,以下列出常用設定值。
---------------------------------------------------------
# 主機名稱,必須與 DNS 的 MX 主機名稱對應
myhostname = aaa.bbb.ccc.ddd
# 網域名稱
mydomain = bbb.ccc.ddd
# 接受 relay 的網域
mydestination = bbb.ccc.ddd, localhost.localdomain, localhost
# 接受 relay 的網域主機
relay_domain = xxx.bbb.ccc.ddd
# 若要 smarthost 時,relay 的主機,一般設定成 isp 的 mail 主機即可。
# 如不設定似乎在寄給某些 mail server 會有編號 550-5.7.1 的問題而無法寄出,如 gmail。
# 下面 ip 為 hinet ms23.hinet.net 主機
relayhost = 168.95.4.23
# 內部網路
mynetworks = 127.0.0.0/8
# 設定信箱存放目錄
mail_spool_directory = /var/mail
# 信箱大小限制,單位 bytes,0 為不限。
mailbox_size_limit = 0
# 單封信件大小限制,單位 bytes
message_size_limit = 10240000
---------------------------------------------------------
備註:若無設定 DNS MX 紀錄的對應,則無法正常 relay 到某些遠端主機。
---------------------------------------------------------
設定 SASL 認證支援
SASL 為符合 RFC 2222 標準的認証機制,此作用可防止任意使用者登入使用郵件伺服器亂發郵件。目前幾乎大部分的 MTA Server 內定都關掉 OpenRelay 功能,改用 SMTP 認證來驗證使用者是否可進行 mail relay。
---------------------------------------------------------
設定 SASL
修改 /etc/default/saslauthd 檔,設定 saslauthd 使用的認證方式與開機自動啟動。
---------------------------------------------------------
# 讓 saslauthd 一開機就啟動
# This needs to be uncommented before saslauthd will be run automatically
START=yes
# 讓 saslauthd 採用 linux 的系統帳號密碼檔作驗證
# Which authentication mechanisms should saslauthd use? (default: pam)
#
# Available options in this Debian package:
# getpwent  -- use the getpwent() library function
# kerberos5 -- use Kerberos 5
# pam       -- use PAM
# rimap     -- use a remote IMAP server
# shadow    -- use the local shadow password file
# sasldb    -- use the local sasldb database file
# ldap      -- use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="pam"

# 讓 saslauthd 支援 postfix 預設安裝的 chroot 模式
# Other options (default: -c)
# See the saslauthd man page for information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
# Note: See /usr/share/doc/sasl2-bin/README.Debian
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
---------------------------------------------------------
最後使用 dpkg-statoverride 來建立 saslauthd 的執行時期目錄
$sudo  dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd

---------------------------------------------------------
設定 Postfix 使用 SASL
編輯 /etc/postfix/sasl/smtpd.conf 讓 postfix 使用 saslauthd 來認證。
# log 檔的紀錄等級
log_level: 3
# 設定密碼檢驗使用哪種服務
pwcheck_method: saslauthd
# 設定所使用的認證機制
mech_list: PLAIN LOGIN
---------------------------------------------------------
接著把 postfix 加入到 sasl 的群組中,才能使用 saslauthd 來認證。
$sudo addgroup postfix sasl
---------------------------------------------------------
接著修改 postfix 設定檔 /etc/postfix/main.cf,啟用 SMTP 及 SASL 認證機制。
# 設定 Postfix 使用 SASL 認証。
smtpd_sasl_auth_enable = yes
# 設定 SASL 支援非標準 E-mail Client 的認証動作。
broken_sasl_auth_clients = yes
# 不使用 ANONYMOUS 這個認証。
smtpd_sasl_security_options = noanonymous
# 設定 SASL 的認証方法
# permit_sasl_authenticated        允許通過 SASL 認証者可 relay
# permit_mynetworks                   mynetworks 內使用者可 relay
# check_relay_domains               檢查可進行 ralay 的 domains
# reject_unauth_destination         未通過認證不予接收
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains, reject_unauth_destination
# 限制未經信任的 client 登入就啟動 sasl 認證
smtpd_client_restrictions = permit_sasl_authenticated
---------------------------------------------------------
重新啟動服務
做好上述設定後,最後重新啟動各項服務或是重開機以使設定生效。
$sudo /etc/init.d/saslauthd restart
$sudo /etc/init.d/postfix restart
---------------------------------------------------------
最後測試
在重新啟動服務後,可用以下方式來測試 saslauthd 服務是否正常運作。
$sudo testsaslauthd -u 使用者名稱 -p 密碼
回傳為「0: OK “Success.“」代表正常,反之則檢查 saslauthd 服務是否啟動;
接著登入 postfix 測試 sasl 是否運作。
$ perl -MMIME::Base64 -e 'print encode_base64("�使用者帳號�密碼");'
執行之後會產生一組 base64 編碼,稍後會用到;接著 telnet postfix。
$telnet 127.0.0.1 25
出現下面訊息:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 aaa.bbb.ccc.ddd ESMTP Postfix (Debian/GNU)
---------------------------------------------------------
輸入以下指令:
ehlo aaa <- aaa 為 hostname
出現下面訊息:
250-aaa.bbb.ccc.ddd
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
---------------------------------------------------------
輸入以下指令:
auth plain xxxxxxxxxxxxxxxxxx <-剛剛用 perl 算出的 base64 值
若出現「235 2.0.0 Authentication successful」代表 sasl 認證成功,
反之如果驗證失敗則檢查設定步驟是否有誤。
---------------------------------------------------------
設定 dovecot
dovecot 設定檔為 /etc/dovecot/dovecot.conf
---------------------------------------------------------
# 設定支援哪些協定,在此為 IMAP 與 POP3 兩個
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
#protocols = imap imaps
protocols = imap pop3
# 設定監聽的 ip 與 port,可個別指定 imap 與 pop3 的監聽介面
# If you want to specify ports for each service, you will need to configure
# these settings inside the protocol imap/pop3 { ... } section, so you can
# specify different ports for IMAP/POP3. For example:
#   protocol imap {
#     listen = *:10143
#     ssl_listen = *:10943
#     ..
#   }
#   protocol pop3 {
#     listen = *:10100
#     ..
#   }
listen = *
# 設定啟動認證
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
disable_plaintext_auth = no
# 認證機制
# Space separated list of wanted authentication mechanisms:
#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
# NOTE: See also disable_plaintext_auth setting.
mechanisms = plain login
---------------------------------------------------------
至此已完成 debian 上整個 mail server 的架設,client  端的帳號設定部份要記得在外寄伺服器要勾選驗證。
引用通告地址: 點擊獲取引用地址
評論: 0 | 引用: 0 | 閱讀: 4939