Ubuntu Jaunty Jackalope (Ubuntu 9.04) ISPconfig设置(5)

  15,安装使用SMTP-AUTH和TLS的Postfix
    为了做到这些应该这样:
    aptitude install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail
    你将被问及
    General type of mail configuration: <-- Internet Site
    System mail name: <-- server1.example.com
    如实回答 然后运行
    dpkg-reconfigure postfix

你将再次被问及
    General type of mail configuration: <-- Internet Site
    System mail name: <-- server1.example.com
    Root and postmaster mail recipient: <-- [blank]
    Other destinations to accept mail for (blank for none): <-- server1.example.com, localhost.example.com, localhost.localdomain, localhost
    Force synchronous updates on mail queue? <-- No
    Local networks: <-- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    Use procmail for local delivery? <-- Yes
    Mailbox size limit (bytes): <-- 0
    Local address extension character: <-- +
    Internet protocols to use: <-- all

然后,这样
    postconf -e 'smtpd_sasl_local_domain ='
    postconf -e 'smtpd_sasl_auth_enable = yes'
    postconf -e 'smtpd_sasl_security_options = noanonymous'
    postconf -e 'broken_sasl_auth_clients = yes'
    postconf -e 'smtpd_sasl_authenticated_header = yes'
    postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    postconf -e 'inet_interfaces = all'
    echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
    echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

然后我们创建TLS认证
    mkdir /etc/postfix/ssl
    cd /etc/postfix/ssl/
    openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
    openssl req -new -key smtpd.key -out smtpd.csr

    openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

    openssl rsa -in smtpd.key -out smtpd.key.unencrypted

    mv -f smtpd.key.unencrypted smtpd.key
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

然后我们配置postfix以启用TLS(保证你使用了正确的主机名)
    postconf -e 'myhostname = server1.example.com'

    postconf -e 'smtpd_tls_auth_only = no'
    postconf -e 'smtp_use_tls = yes'
    postconf -e 'smtpd_use_tls = yes'
    postconf -e 'smtp_tls_note_starttls_offer = yes'
    postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
    postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
    postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
    postconf -e 'smtpd_tls_loglevel = 1'
    postconf -e 'smtpd_tls_received_header = yes'
    postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    postconf -e 'tls_random_source = dev:/dev/urandom'

文件/etc/postfix/main.cf现在看起来应该像这样
    cat /etc/postfix/main.cf

  # See /usr/share/postfix/main.cf.dist for a commented, more complete version


    # Debian specific:  Specifying a file name will cause the first
    # line of that file to be used as the name.  The Debian default
    # is /etc/mailname.
    #myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
    biff = no

# appending .domain is the MUA's job.
    append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
    #delay_warning_time = 4h

readme_directory = no

# TLS parameters
    smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
    smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.

myhostname = server1.example.com
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost
    relayhost =
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mailbox_command = procmail -a "$EXTENSION"
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    inet_protocols = all
    smtpd_sasl_local_domain =
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_sasl_authenticated_header = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
    smtpd_tls_auth_only = no
    smtp_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom

 
   

saslauthd用来做认证,我们要做些设置以使它正常工作,因为POSTFIX运行chroot于/var/spool/postfix,我们应该这样:
    mkdir -p /var/spool/postfix/var/run/saslauthd
    为了激活saslauthd我们必须修改/etc/default/saslauthd这行
    :OPTIONS="-c -m /var/run/saslauthd" 成这样 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":
    vi /etc/default/saslauthd

 # 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"

# Additional options for this mechanism. (default: none)
    # See the saslauthd man page for information about mech-specific options.
    MECH_OPTIONS=""

# How many saslauthd processes should we run? (default: 5)
    # A value of 0 will fork a new process for each connection.
    THREADS=5

# Other options (default: -c -m /var/run/saslauthd)
    # Note: You MUST specify the -m option or saslauthd won't run!
    #
    # WARNING: DO NOT SPECIFY THE -d OPTION.
    # The -d option will cause saslauthd to run in the foreground instead of as
    # a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish
    # to run saslauthd in debug mode, please run it by hand to be safe.
    #
    # See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.
    # See the saslauthd man page and the output of 'saslauthd -h' for general
    # information about these options.
    #
    # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
    #OPTIONS="-c -m /var/run/saslauthd"
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

 

将用户postfix加入saal组,(这样postfix才有权限运行saslauthd)
    adduser postfix sasl

现在重启服务
    /etc/init.d/postfix restart
    /etc/init.d/saslauthd start

检查SMTP-AUTH 和 TLS是否工作:
    telnet localhost 25

连接后,输入
    ehlo localhost
    如果能看到
    250-STARTTLS
    和
    250-AUTH LOGIN PLAIN
    说明一切都很好,我的输出是

 root@server1:/etc/postfix/ssl# telnet localhost 25
    Trying ::1...
    Connected to localhost.localdomain.
    Escape character is '^]'.
    220 server1.example.com ESMTP Postfix (Ubuntu)
    ehlo localhost
    250-server1.example.com
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN
    250-AUTH=LOGIN PLAIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.
    root@server1:/etc/postfix/ssl#
 

输入:
    quit
    回到系统shell

16.Courier-IMAP/Courier-POP3
    先安装:
    aptitude install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0
    你将被问及:
    Create directories for web-based administration? <-- No
    SSL certificate required <-- Ok
    在安装时IMAP和POP3的ssl论证是以localhost的主机名安装的,先删除这们认证
    cd /etc/courier
    rm -f /etc/courier/imapd.pem
    rm -f /etc/courier/pop3d.pem

然后编辑两个文件/etc/courier/imapd.cnf和/etc/courier/pop3.cnf,用CN=server1.example.com 替换 CN=localhost  :
    vi /etc/courier/imapd.cnf

  [...]
    CN=server1.example.com
  [...]
 
   

vi /etc/courier/pop3d.cnf

 [...]
    CN=server1.example.com
 [...]
 
    

重建认证
    mkimapdcert
    mkpop3dcert

重启Courier-IMAP-SSL 和 Courier-POP3-SSL:
    /etc/init.d/courier-imap-ssl restart
    /etc/init.d/courier-pop-ssl restart

如果你不想用ISPConfig,设置POSTFIX将邮件传到用户的邮件文件夹:
    postconf -e 'home_mailbox = Maildir/'
    postconf -e 'mailbox_command ='
    /etc/init.d/postfix restart

如果你使用ISPConfig这一步不是必须的,因为ISPCONFIG会使用procmail做同样的事,但你得确定你在ISPCONFIG网络接口中启用了Maildir功能:
    Maildir under Management -> Server -> Settings -> EMail

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfsdz.html