postfix郵箱服務器安裝和配置

  1. 建立用戶
    [root@ebs-51660 ~]# useradd admin 你的郵箱用戶名
    [root@ebs-51660 ~]# echo "123456" | passwd admin --stdin
  2. 確認MX記錄的添加是否生效
    [root@ebs-51660 ~]# host fshongling.com
    fshongling.com mail is handled by 10 mail.fshongling.com.
  3. 安裝postfix
    [root@ebs-51660 ~]# yum install postfix
  4. 刪除sendmail
    [root@ebs-51660 ~]# rpm -e sendmail
  5. 更改默認郵件傳輸代理
    [root@ebs-51660 sasl2]# alternatives --config mta
     選擇    命令
    ----------------------------------------------- 
    *+ 1           /usr/sbin/sendmail.postfix
    按 Enter 來保存當前選擇[+],或鍵入選擇號碼:1 
  6. 查看postfix
    [root@ebs-51660 ~]# alternatives --display mta 
  7. postfix主配置文件main.cf
    [root@ebs-51660 postfix]# vim /etc/postfix/main.cf
    a、myhostname = mail.fshongling.com  //76行,將等號後面的部分改寫爲本機主機名
    b、mydomain = fshongling.com   //82行,設置域名
    c、myorigin = $mydomain   //97行,把$myhostname改成$mydomain
    d、inet_interfaces = all  //112行,把後面的localhost改爲all
    e、mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain // 163行,把前面的註釋拿掉,並加一下$mydomain
    f、mynetworks = 192.168.0.0/24, 127.0.0.0/8  //263行,設置內網和本地IP
    g、local_recipient_maps =  //209行,把前面的註釋拿掉。h、smtpd_banner = $myhostname ESMTP unknow //568行,把前面的註釋拿掉,而後把$mail_name ($mail_version)改爲unknow 
    h、//在main.cf文件的底部加上如下內容
    l、smtpd_sasl_auth_enable = yes     //使用SMTP認證
    m、broken_sasl_auth_clients = yes   //讓不支持RFC2554的smtpclient也能夠跟postfix作交互。  
    n、smtpd_sasl_local_domain = $myhostname  // 指定SMTP認證的本地域名
    o、smtpd_sasl_security_options = noanonymous //取消匿名登錄方式p、smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //設定郵件中有關收件人部分的限制
    q、 smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated,  reject_unauth_destination //設置容許範圍
    r、message_size_limit = 15728640     //郵件大小 
    s、mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp   //設置鏈接cyrus-imapd的路徑
    完成後,使用/usr/sbin/postconf -n來檢查配置是否正確
  8. 配置SELinux
    查看是否安裝SELinux
    [root@ebs-51660 ~]# cat /etc/sysconfig/selinux
    #      This file controls the state of SELinux on the system.
    #      SELINUX= can take one of these three values:
    #      enforcing -SELinux security policy is enforced.
    #      permissive -SELinux prints warnings instead of enforcing.
    #      disabled -No SELinux policy is loaded.SELINUX=enforcing
    #      SELINUXTYPE= type of policy in use. Possible valuesare:
    #      targeted- Only targeted network daemons are protected.
    #      strict -Full SELinux protection.SELINUXTYPE=targeted

    安裝SELinux
    [root@ebs-51660 ~]# yum install selinux-policy-targeted

    wget linuxmail.info/files/rhel6/postfixdovecotsasl.te html

    checkmodule -M -m -o postfixdovecotsasl.mod postfixdovecotsasl.te linux

    semodule_package -o postfixdovecotsasl.pp -m postfixdovecotsasl.mod vim

    semodule -i postfixdovecotsasl.ppcentos

  9. 安裝 cyrus-sasl 軟件包
    [root@ebs-51660 ~]# yum install cyrus-sasl*服務器

    (A)使用/etc/shadow文件驗證dom

    [root@ebs-51660 ~]# vi /etc/sysconfig/saslauthdsocket

    MECH=shadowtcp

    FLAGS=post

     

    [root@ebs-51660 ~]# vi /etc/sasl2/smtpd.conf 測試

    pwcheck_method: saslauthd

    mech_list: plain login

     

    (B)使用/etc/sasldb文件驗證

    [root@ebs-51660 ~]# vi /etc/sysconfig/saslauthd

    #MECH=pam      #註釋掉原文此行

    FLAGS=sasldb

     

    [root@ebs-51660 ~]# vi /etc/sasl2/smtpd.conf

    pwcheck_method: auxprop

    auxprop_plugin: sasldb

    mech_list: plain login

     

    [root@ebs-51660 ~]# saslpasswd2 -c admin -u kingmed.com

    按提示輸入兩次密碼(不要與系統密碼相同),首次操做會生成/etc/sasldb2文件。

    [root@ebs-51660 ~]# chgrp postfix /etc/sasldb2

    [root@ebs-51660 ~]# chmod 640 /etc/sasldb2

     

    啓動saslauthd

    [root@ebs-51660 ~]#chkconfig saslauthd on

    [root@ebs-51660 ~]#service saslauthd start

     

    [root@ebs-51660 ~]# /usr/sbin/testsaslauthd -u admin -p '123456' #用系統密碼測試

    0: NO "authentication failed"

    解決辦法:

    [root@ebs-51660 ~]# setsebool -P allow_saslauthd_read_shadow 1

    若是仍是不能成功,則看的main.cf文件配置是否有錯

  10. 開放相關端口

    [root@ebs-51660 ~]# vi /etc/sysconfig/iptables

    -A INPUT -p tcp -m multiport --dports 25,80,110,143 -j ACCEPT

    [root@ebs-51660 ~]# service iptables restart

  11. 重啓postfix
    [root@ebs-51660 ~]# chkconfig postfix on

    [root@ebs-51660 ~]# service postfix restart

  12. 檢驗配置是否正確
    postfix 提供了check命令,能夠檢查當前postfix 的配置是否有問題、文件和目錄權限是否正確

    [root@ebs-51660 ~]# postfix check
    沒有錯誤就說明沒有問題
  13. 發送郵件測試
    echo 'test' | mail -s 'test' test@test.com
     

  14. Telnet登陸驗證

    新安裝的centos系統是沒有安裝telnet的,須要本身安裝

    檢查是否安裝[root@ebs-51660 ~]# rpm -qa telnet
    安裝[root@ebs-51660 ~]# yum install -y telnet

    檢查是否安裝telent-server[root@ebs-51660 ~]# rpm -qa telnet-server
    安裝[root@ebs-51660 ~]# yum install telnet-server

    這裏是用虛擬用戶即/etc/sasldb賬號,先取得用戶名和密碼的BASE64編碼:
    [root@ebs-51660 sasl2]# printf "admin@fshongling.com" | openssl base64
    bGl1eXVodWlAa2luZ21lZC5jb20=

    [root@ebs-51660 sasl2]# printf "123456" | openssl base64
    bGl1eXVodWk=

    [root@ebs-51660 ~]# telnet localhost 25

    Trying 127.0.0.1...

    Connected to localhost.

    Escape character is '^]'.

    220 mail.kingmed.com ESMTP Postfix

    ehlo localhost

    250-mail.kingmed.com

    250-PIPELINING

    250-SIZE 10240000

    250-VRFY

    250-ETRN

    250-AUTH DIGEST-MD5 GSSAPI PLAIN CRAM-MD5 LOGIN

    250-ENHANCEDSTATUSCODES

    250-8BITMIME

    250 DSN

    auth login

    334 VXNlcm5hbWU6

    bGl1eXVodWlAa2luZ21lZC5jb20= #liuyuhui@kingmed.com的BASE64編碼

    334 UGFzc3dvcmQ6

    bGl1eXVodWk= #密碼liuyuhui的BASE64編碼

    235 2.7.0 Authentication successful

    mail from:liuyuhui@kingmed.com

    250 2.1.0 Ok

    rcpt to:jiangtao@kingmed.com

    250 2.1.5 Ok

    data

    354 End data with . #回車後以點號(.)結束

    hello,how are you?

    250 2.0.0 Ok: queued as 934C83622

    quit

    221 2.0.0 Bye

    Connection closed by foreign host.

    來看下jiangtao用戶家目錄下是否有此郵件(注意queued as 934C83622):

    [root@mail ~]# cat /home/jiangtao/Maildir/new/1375283408.Vfd00I3696M538506.mail.kingmed.com 

    Return-Path: 

    X-Original-To: jiangtao@kingmed.com

    Delivered-To: jiangtao@kingmed.com

    Received: from localhost (localhost [127.0.0.1])

            (Authenticated sender: liuyuhui@kingmed.com)

            by mail.kingmed.com (Postfix) with ESMTPA id 934C83622

            for ; Wed, 31 Jul 2013 23:09:20 +0800 (CST)

    Message-Id: <20130731150940.934C83622@mail.kingmed.com>

    Date: Wed, 31 Jul 2013 23:09:20 +0800 (CST)

    From: liuyuhui@kingmed.com

    To: undisclosed-recipients:;

    hello,how are you?

    POP/ IMAP設置

    爲了讓用戶能在本地機器下載郵件,必須在服務器安裝設置POP或IMAP。Dovecot是適用CentOS Linux郵件系統有名的imap/pop服務器之一,它支持maildir和mbox格式。

  15. 安裝dovecot
    [root@ebs-51660 ~]# yum -y install dovecot
    [root@ebs-51660 ~]# vim /etc/dovecot/dovecot.conf
           protocols = imap pop3 // 大概在20行的位置
           listen = * // 27行左右

    [root@ebs-51660 ~]# vim /etc/dovecot/conf.d/10-auth.conf
           disable_plaintext_auth = no // 9行,將yes改成no並去掉#號
           auth_mechanisms = plain login // 97行

    [root@ebs-51660 ~]# vim /etc/dovecot/conf.d/10-mail.conf
           mail_location = maildir:~/Maildir

    [root@ebs-51660 ~]# vim /etc/dovecot/conf.d/10-master.conf

    service auth {

      unix_listener auth-userdb {

      }

      unix_listener /var/spool/postfix/private/auth {

        mode = 0666

        user = postfix

        group = postfix

      }
    }

    [root@ebs-51660 ~]# vim /etc/dovecot/conf.d/10-ssl.conf
           ssl = no

    [root@ebs-51660 ~]# vim /etc/dovecot/conf.d/20-pop3.conf
           pop3_uidl_format = XuXv
           pop3_client_workarounds = outlook-no-nuls oe-ns-eoh

    配置完後使用dovecot -n查看全部配置。

    啓動dovecot:

    [root@ebs-51660 ~]# chkconfig dovecot on

    [root@ebs-51660 ~]# service dovecot start

    如今你可使用郵件客戶端代理軟件和系統用戶及密碼來鏈接咱們的Dovecot服務器了。

    未完待續 http://www.cnblogs.com/apexchu/p/4271264.html http://blog.chinaunix.net/uid-20362960-id-1699884.html http://my.oschina.net/u/2450048/blog/531171 http://www.mamicode.com/info-detail-1162987.html http://blog.jjonline.cn/linux/185.html
相關文章
相關標籤/搜索