1、前期準備mysql
一、域名配置linux
在域名上配置 MX 記錄,在域名中添加web
類型 | 主機 | 指向 |
A | @ | xxx.xxx.xxx.xx |
A | www | @ |
MX | @ | |
MX | xxx.xxx.xxx.xx |
二、網絡配置(開通必要的端口和防火牆)sql
2.1 郵件服務所須要的必要的端口vim
協議 | 常規端口 | SSL增強端口 |
SMTP | 25 | |
POP | 110 | |
IMAP | 143 | |
2.2 部署郵件服務器的端口必須具有至少一個 公網ip,並和域名綁定好服務器
2.3 開通服務器端的 iptables 端口網絡
1 # SMTP 2 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT 3 # POP 4 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT 5 # POP3S 6 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT 7 # IMAP 8 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT 9 # IMAPS 10 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
三、dom
2、安裝/配置 postfixtcp
postfix MYSQL 須要以下庫的支持,並假設各庫安裝路徑以下: 函數
一、mysql client: 安裝目錄 /usr/local/lib/mysql/ (libmysqlclient.so 庫函數的位置), 標頭文件位於 /usr/local/includes/mysql/
二、zlib: 安裝目錄 /usr/lib/
三、berkely db: 安裝
|
安裝完成後,默認將 berkely db 安裝到 /usr/local/berkelydb 目錄下
因安裝 postfix 是須要 berkely db 的支持,須要將以下兩個文件連接到 /usr/include /usr/lib 目錄下
|
四、編譯 postfix 支持 mysql (在系統中必須存在 mysql.h )
|
編輯postfix/main.cf
sudo vim /etc/postfix/main.cf
在 main.cf 找到這些內容,並修改,改成你在 /etc/hosts中的域名
myhostname = mail.backup.org
mydomain = backup.org
myorigin=$mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination
mynetworks = 192.168.0.0/16, 127.0.0.0/8
home_mailbox = Maildir/
# 不顯示服務器信息
smtpd_banner = $myhostname ESMTP unknown
# 在main.cf最後加下面的,用SMTP認證
smtpd_sasl_auth_enable = yes
# 指定SMTP認證的本地域名(主機名)
smtpd_sasl_local_domain = $myhostname
# 不容許匿名的方式認證
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# 注:實際上這裏由於沒配置sasl的應用,因此這裏的sasl實際測試時,是enable = no的
# 規定一下郵件大小
# 規定郵件最大尺寸爲150MB
message_size_limit = 157286400
# 郵箱最大爲300MB,固然,他須要比郵件大
mailbox_size_limit = 314572800
編輯 /etc/sasl2/smtpd.conf,原做者目的是爲了使用單獨的用戶,但我最終要用LDAP,因此不須要理會,保留原狀
pwcheck_method: saslauthd
mech_list: plain login
在 /etc/skel 創建家目錄模版
mkdir /etc/skel/Maildir
chmod 700 /etc/skel/Maildir
老用戶彷佛不會自動創建,手工創建起來吧。試試
service postfix restart
service saslauthd restart
chkconfig postfix on
chkconfig saslauthd on
# 設置默認MTA
alternatives --config mta
選中postfix爲默認MTA
這時候用webmin的收發是不成問題了,但僅這樣還不行,還須要用telnet驗證一下
這時會提示:fatal: no SASL authentication mechanisms
所以先改成
smtpd_sasl_auth_enable = no
再次telnet
telnet xx 25
ehlo localhost
mail from:admin@backup.org
rcpt to:admin@backup.org
data
From:xxoo@test.org
To:admin@backup.org
Subject: My first
test
.
quit
能夠用webmin等工具看,也能夠直接殺到 Maildir裏看,應該在 ~/Maildir/new/ 裏面。
3、安裝/配置 Cyrus SALS
4、安裝/配置 Dovecot
一、編輯文件 /etc/dovecot/dovecot.conf
找到行 #protocols = imap pop3 lmtp ,把#去掉,讓這行生效:
protocols = imap pop3 lmtp
#接着上行添加一段:(根據 dovecot 的版本不同,以下內容有多是在其餘的文件中體現,好比: conf.d/10-master.conf)
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
接着找到行 #login_trusted_networks = ,把#去掉,並修改成(本身的內網)
login_trusted_networks = 192.168.0.0/24
編輯好保存。
二、接着編輯文件 /etc/dovecot/conf.d/10-mail.conf
找到 #mail_location = maildir:~/Maildir ,把 # 去掉,使這行生效:
mail_location = maildir:~/Maildir
編輯好保存。
三、執行命令開啓 dovecot服務:
systemctl enable dovecot.service
systemctl start dovecot.service
四、使用命令行測試 dovecot 配置
4。1 檢查 端口 pop3 110 是否開通:
netstat -tan | grep -i :110
若是出現則證實 110 端口開通
4。2 命令行收郵件
telnet localhost 110
user $ROOT
pass $YOURPASSWORD
執行上述命令後,若是都是顯示的 OK ,則表示正常,不然,請檢查日誌文件確認錯誤的緣由
2012-04-12 11:19:22| 分類: other server|字號 訂閱
[root@wlt sbin]# ./dovecot
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 86: No matches
[root@wlt ~]# cd /opt/dovecot/share/doc/dovecot/example-config/
[root@wlt example-config]# cp -a conf.d/ /etc/dovecot/
[root@wlt sbin]# ./dovecot
doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 12: ssl_cert: Can't open file /etc/ssl/certs/dovecot.pem: No such file or directory
進入源碼包:
[root@wlt ~]# cd /opt/software/dovecot-2.0.20/doc
[root@wlt doc]# mkdir /etc/ssl/certs -p
[root@wlt doc]# mkdir /etc/ssl/private -p
[root@wlt doc]# sh mkcert.sh
Generating a 1024 bit RSA private key
.................................++++++
........++++++
writing new private key to '/etc/ssl/private/dovecot.pem'
-----
subject= /OU=IMAP server/CN=imap.example.com/emailAddress=postmaster@example.com
SHA1 Fingerprint=AF:CE:BC:66:02:7D:65:08:A3:B5:C4:5B:5D:90:E3:7F:85:E8:4D:AB
[root@wlt sbin]# ./dovecot
[root@wlt sbin]#
【特別說明】使用 測試命令登陸 110 端口時,若是登陸失敗,記得常常查看日誌文件: postfix 的默認日誌文件在 /var/maillog/ 下,但在 suse 系統時,檢查目錄/var/log/mail.err
mail dovecot: auth-worker(4520): Error: pam(root,10.18.0.30): pam_authenticate() failed: Authentication failure (/etc/pam.d/dovecot missing?
根據提示顯示,pam.d/dovecot 文件丟失。系統須要訪問本文件,說明是經過 pam 的方式進行的用戶認證。編輯文件,造成用戶及密碼驗證便可。
須要注意 10-auth.conf 文件中的選項 disable_plaintext_auth 選項是否爲 on,表示允許明文密碼驗證,默認設置爲 yes。(經過 doveconf | grep -i disable 命令查看)
一、檢查 conf.d/10-auth.conf 文件中的配置:
disable_plaintext_auth = on # 容許明文密碼驗證。
二、生成 pam.d/dovecot 文件
vim /etc/pam.d/dovecot
test@examples.com:{PLAIN}password
三、從新 dovecot 進程
sbin/dovecot stop
sbin/dovecot
5、安裝/配置 OpenLDAP