zoukankan      html  css  js  c++  java
  • 配置postfix支持虚拟域和虚拟用户

    请先看基础篇  https://www.cnblogs.com/hellojackyleon/p/9281620.html

    https://sourceforge.net/projects/courier/files/authlib/0.66.3/courier-authlib-0.66.3.tar.bz2/download

    部署courier-authlib
    wget http://nchc.dl.sourceforge.net/project/courier/courier-unicode/1.3/courier-unicode-1.3.tar.bz2

    [root@mail src]# tar xf courier-unicode-1.3.tar.bz2
    [root@mail src]# cd courier-unicode-1.3
    [root@mail courier-unicode-1.3]# ./configure

    [root@mail courier-unicode-1.3]# make &&make install

    [root@mail courier-authlib-0.66.3]# yum install -y libtool-ltdl libtool-ltdl-devel expect
    [root@mail src]# tar xf courier-authlib-0.66.3.tar.bz2 
    [root@mail src]# cd courier-authlib-0.66.3

    ./configure
    --prefix=/usr/local/courier-authlib
    --sysconfdir=/etc
    --without-authpam
    --without-authshadow
    --without-authvchkpw
    --without-authpgsql
    --with-authmysql
    --with-mysql-libs=/usr/lib64/mysql
    --with-mysql-includes=/usr/include/mysql
    --with-redhat
    --with-authmysqlrc=/etc/authmysqlrc
    --with-authdaemonrc=/etc/authdaemonrc
    --with-mailuser=postfix
    --with-mailgroup=postfix 

    [root@mail courier-authlib-0.66.3]# make&&make install

    [root@mail ~]# chmod 755 /usr/local/courier-authlib/var/spool/authdaemon/

    [root@mail courier-authlib-0.66.3]# cp /etc/authdaemonrc.dist /etc/authdaemonrc
    [root@mail courier-authlib-0.66.3]# cp /etc/authmysqlrc.dist /etc/authmysqlrc

    [root@mail ~]# vim /etc/authdaemonrc

    authmodulelist="authmysql"

    authmodulelistorig="authmysql"

    daemons=10

    DEBUG_LOGIN=2 #仅仅调试时候使用,生产关闭

    MYSQL_SERVER localhost
    MYSQL_USERNAME extmail
    MYSQL_PASSWORD extmail

    MYSQL_SOCKET            /var/lib/mysql/mysql.sock

    MYSQL_PORT              3306

    MYSQL_DATABASE          extmail

    MYSQL_CRYPT_PWFIELD     password

    MYSQL_UID_FIELD         2525

    MYSQL_GID_FIELD         2525

    MYSQL_LOGIN_FIELD       username

    MYSQL_HOME_FIELD        concat('/var/mailbox/',homedir)

    MYSQL_NAME_FIELD        name

    MYSQL_MAILDIR_FIELD     concat('/var/mailbox/',maildir)

    [root@mail courier-authlib-0.66.3]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
    [root@mail courier-authlib-0.66.3]# chmod +x /etc/init.d/courier-authlib

    [root@mail courier-authlib-0.66.3]# chkconfig --add courier-authlib
    [root@mail courier-authlib-0.66.3]# /etc/init.d/courier-authlib start

    [root@mail ~]# echo "/usr/local/courier-authlib/lib/courier-authlib" >>/etc/ld.so.conf.d/courier-authlib.conf

    [root@mail ~]#ldconfig -v |grep courier

    [root@mail ~]# mkdir /var/mailbox
    [root@mail ~]# chown postfix /var/mailbox/
    [root@mail ~]# vim /usr/lib64/sasl2/smtpd.conf

    pwcheck_method: authdaemond
    mech_list: PLAIN LOGIN
    log_level: 3
    authdaemond: /usr/local/courier-authlib/var/spool/authdaemon/socket

    #authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket

    [root@mail ~]# /etc/init.d/saslauthd restart

    配置postfix  支持虚拟域,虚拟用户

    [root@mail ~]# vim /etc/postfix/main.cf

    ########################Virtual Mailbox Settings######################## virtual_mailbox_base
    = /var/mailbox virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_alias_domains = virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_uid_maps = static:2525 virtual_gid_maps = static:2525 virtual_transport = virtual #maildrop_destination_recipient_limit = 1 #maildrop_destination_concurrency_limit = 1 ##########################QUOTA Settings######################## message_size_limit = 14336000 virtual_mailbox_limit = 20971520 #virtual_create_maildirsize = yes #virtual_mailbox_extended = yes #virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf #virtual_mailbox_limit_override = yes #virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please Tidy your mailbox and try again later. #virtual_overquota_bounce = yes

    [root@mail ~]# postconf -n

    extman

    [root@mail src]# wget http://7xivyw.com1.z0.glb.clouddn.com/extman-1.1.tar.gz

    [root@mail src]# tar xf extman-1.1.tar.gz
    [root@mail src]# cd extman-1.1

    [root@mail extman-1.1]# cd docs/

    [root@mail docs]# sed -i 's/TYPE=MyISAM/ENGINE=MyISAM/g' extmail.sql
    [root@mail docs]# sed -i 's/TYPE=MyISAM/ENGINE=MyISAM/g' init.sql
    [root@mail docs]# mysql -u root -p < extmail.sql
    Enter password:
    [root@mail docs]# mysql -u root -p < init.sql

    mysql> grant all on extmail.* to extmail@'localhost' identified by 'extmail';
    Query OK, 0 rows affected (0.00 sec)

    mysql> grant all on extmail.* to extmail@'127.0.0.1' identified by 'extmail';
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    [root@mail docs]# cp mysql_virtual_* /etc/postfix/ 

    注:启用虚拟域后,需取消中心域,即注释掉myhostname, mydestination, mydomain, myorigin几个指令  

    #myhostname = mail.deo.com

    #mydomain = deo.com

    #myorigin = deo.com

    #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

    [root@mail docs]# postfix reload

    [root@mail src]# mv extman-1.1 /var/www/extsuite/
    [root@mail src]# cd /var/www/extsuite/
    [root@mail extsuite]# mv extman-1.1/ extman
    [root@mail extsuite]# cd extman
    [root@mail extman]# cp webman.cf.default webman.cf
    [root@mail extman]# vim webman.cf

    YS_MAILDIR_BASE = /var/mailbox

    SYS_CAPTCHA_ON = 0

    SYS_DEFAULT_SERVICES = webmail,smtpd,smtp,pop3,netdisk,imap

    YS_DEFAULT_UID = 2525

    SYS_DEFAULT_GID = 2525

    SYS_MYSQL_USER = extmail
    SYS_MYSQL_PASS = extmail
    SYS_MYSQL_DB = extmail
    SYS_MYSQL_HOST = localhost
    SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock

    [root@mail extman]# chown -R postfix.postfix /var/www/extsuite/extman/cgi

    [root@mail extman]# mkdir -p /tmp/extman
    [root@mail extman]# chown postfix.postfix /tmp/extman

    配置dovecot

    [root@mail docs]# vim /etc/dovecot/dovecot.conf 
    listen = *
    !include conf.d/*.conf
    base_dir = /var/run/dovecot/
    protocols = imap pop3


    [root@mail conf.d]# vim 10-mail.conf 
    mail_privileged_group = mail
    mail_location = maildir:/var/mailbox/%d/%n/Maildir

    [root@mail docs]# cd /etc/dovecot/conf.d/
    [root@mail conf.d]# cp auth-sql.conf.ext auth-sql.conf
    [root@mail conf.d]# vim auth-sql.conf

    passdb {
    driver = sql

    # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
    args = /etc/dovecot/dovecot-mysql.conf
    }

    userdb {
    driver = sql
    args = /etc/dovecot/dovecot-mysql.conf
    }

    [root@mail conf.d]# vim 10-ssl.conf 

    ssl = no

    [root@mail conf.d]# vim 10-auth.conf 

    disable_plaintext_auth = no

    [root@mail conf.d]# cat /etc/dovecot/dovecot-mysql.conf  #新建该配置文件
    driver = mysql
    connect = host=localhost dbname=extmail user=extmail password=extmail
    default_pass_scheme = CRYPT
    password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'
    user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = '%u'

    [root@mail conf.d]# /etc/init.d/dovecot restart

    extmail

    [root@mail src]# wget http://7xivyw.com1.z0.glb.clouddn.com/extmail-1.2.tar.gz
    [root@mail src]# tar xf extmail-1.2.tar.gz

    [root@mail extmail-1.2]# mkdir -p /var/www/extsuite
    [root@mail extmail-1.2]# mv extmail-1.2 /var/www/extsuite/extmail

    [root@mail src]# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/
    [root@mail src]# cd /var/www/extsuite/extmail/
    [root@mail extmail]# cp webmail.cf.default webmail.cf

    [root@mail extmail]# vim webmail.cf              

    SYS_USER_LANG = zh_CN

    SYS_MAILDIR_BASE = /var/mailbox

    SYS_MYSQL_USER = extmail
    SYS_MYSQL_PASS = extmail
    SYS_MYSQL_DB = extmail
    SYS_MYSQL_HOST = localhost
    SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock

    SYS_MYSQL_TABLE = mailbox
    SYS_MYSQL_ATTR_USERNAME = username
    SYS_MYSQL_ATTR_DOMAIN = domain
    SYS_MYSQL_ATTR_PASSWD = password

    SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket

    [root@mail extmail]# yum install perl-Unix-Syslog

    http

    User postfix

    Group postfix



    <VirtualHost *:80> ServerName mail.deo.com DocumentRoot /var/www/extsuite/extmail/html/ ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi Alias /extmail /var/www/extsuite/extmail/html ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi Alias /extman /var/www/extsuite/extman/html </VirtualHost> #DocumentRoot "/var/www/html" 将这行注释

    [root@mail extmail]# httpd -t
    Syntax OK

     默认用户名:root@extmail.org;默认密码:extmail*123*

    参考链接

    https://blog.csdn.net/unixtech/article/details/53079041

     http://blog.51cto.com/wangzhijian/1695401

    https://www.cnblogs.com/panliu/articles/4806947.html

    最终配置如下

    [root@mail extman]# vim /etc/postfix/main.cf



    inet_protocols = ipv4 meta_directory = /etc/postfix shlib_directory = no smtputf8_enable = no

    ############################CYRUS-SASL############################
    broken_sasl_auth_clients = yes
    smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reje
    ct_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipeli
    ning,reject_unauth_destination
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_local_domain = $myhostname
    #smtpd_client_restrictions = permit_sasl_authenticated
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_path = smtpd
    smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!



    ##############################virtual mailbox setting#########################
    virtual_mailbox_base = /var/mailbox
    virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
    virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
    virtual_alias_domains =
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
    virtual_uid_maps = static:2525
    virtual_gid_maps = static:2525
    virtual_transport = virtual

    message_size_limit = 14336000
    virtual_mailbox_limit = 20971520

    home_mailbox = Mailbox

    [root@mail extman]# vim /etc/dovecot/conf.d/10-mail.conf

    mail_location = maildir:/var/mailbox/%d/%n/Maildir
    mail_privileged_group = mail

     

  • 相关阅读:
    【iOS系列】-iOS的多线程解析
    【iOS系列】-单例模式的实现
    Mac下Apache+MySQL+PHP安装
    【ios系列】-Quartz 2D常用方法介绍
    【ios系列】-数据储存
    【iOS系列】-文件管理
    我是怎么用FullCalendar记录我的2013年(辞职N次,面试2N次)的,它还兼容IE6
    2014年我去哪里过年?
    unity3d Human skin real time rendering plus 真实模拟人皮实时渲染 plus篇
    Unity3d shader之次表面散射(Subsurface Scattering)
  • 原文地址:https://www.cnblogs.com/hellojackyleon/p/9286909.html
Copyright © 2011-2022 走看看