zoukankan      html  css  js  c++  java
  • debian+postfix+dovecot+squirrelmail安装配置笔记

    系统和软件安装如下:
    1.debian4.0
    2.postfix(MTA)提供smtp功能
    3.postfix-mysql提供postfix到mysql映射支持
    4.MYSQL用户数据库存储
    5.dovecot(POP3+IMAP+SASL)提供pop3+imap+(smtp sasl)
    6.amavisd-new libclass-dbi-mysql-perl spamassassin clamav-daemon cpio arj zoo nomarch lzop cabextract pax lha unrar
    垃圾邮件过虑及邮件病毒过虑
    7.openssl提供SSL验证
    8.phpmyadmin libapache2-mod-php5 php5-mysql提供web 方式管理mysql数据库存及数据.
    9.squirrelmail(MAIL WEB)提供web mail接口,自动装上apache

    debian 中安装软件用aptitude install 或apt-get install 比windows 还简单,在这里就不占篇幅了,不会的可以上网找一下。

    下面是MYSQL数据库的创建:

    创建数据库及表
    mysqladmin password 2006 root的密码为:2006
    mysqladmin -p create mail创建一个为mail的数据库

    mysql>
    GRANT Select ON mail.*
    TO mailuser@localhost
    IDENTIFIED BY '2007';
    exit
    创建一个mailuser的用户密码为:2007只有对mail数据库存查询权限

    创建虚拟虚拟域表:domains
    mysql>
    Create TABLE `domains` (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
    ) ENGINE = InnoDB;

    创建虚拟用户表:users
    Create TABLE users (
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain_id INT(11) NOT NULL,
    user VARCHAR(40) NOT NULL,
    password VARCHAR(32) NOT NULL,
    CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
    FOREIGN KEY (domain_id) REFERENCES domains(id) ON Delete CASCADE
    ) ENGINE = InnoDB;

    创建 view_users表 方便查询及以后设置验证.
    mysql>
    Create VIEW view_users AS
    Select users.user AS user, CONCAT(users.user, '@', domains.name) AS email,
        users.password
    FROM users
    LEFT JOIN domains ON users.domain_id=domains.id;


    创建虚拟别名表:aliases
    Create TABLE aliases(
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain_id INT(11) NOT NULL,
    source VARCHAR(20) NOT NULL,
    destination VARCHAR(80) NOT NULL,
    FOREIGN KEY (domain_id) REFERENCES domains(id) ON Delete CASCADE
    ) ENGINE = InnoDB;

    Create VIEW view_aliases AS
    Select CONCAT(aliases.source, '@', domains.name) AS email,
           destination
    FROM aliases
    LEFT JOIN domains ON aliases.domain_id=domains.id;


    创建虚拟域映射文件:
    /etc/postfix/virtual-mailbox-domains.cf 
    user = mailuser
    password = 2007
    hosts = 127.0.0.1
    dbname = mail
    query = Select 1 FROM domains Where name='%s'

    创建虚拟邮箱映射文件
    /etc/postfix/virtual-mailbox-maps.cf
    user = mailuser
    password = 2007
    hosts = 127.0.0.1
    dbname = mail
    query = Select 1 FROM view_users Where email='%s'

    创建虚拟别名映射文件
    /etc/postfix/virtual-alias-maps.cf
    user = mailuser
    password = 2007
    hosts = 127.0.0.1
    dbname = mail
    query = Select destination FROM view_aliases Where email='%s'

    /etc/postfix/virtual-email2email.cf
    user = mailuser
    password = 2007
    hosts = 127.0.0.1
    dbname = mail
    query = Select email FROM view_users Where email='%s'

    $>postconf -e virtual_mailbox_domains=mysql:/etc/postfix/virtual-mailbox-domains.cf
    $>postconf -e virtual_mailbox_maps=mysql:/etc/postfix/virtual-mailbox-maps.cf
    $>postconf -e virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf,mysql:/etc/postfix/virtual-email2email.cf

    $> groupadd -g 5000 vmail
    $> useradd -g vmail -u 5000 vmail -d /home/vmail -m
    $> postconf -e virtual_uid_maps=static:5000
    $> postconf -e virtual_gid_maps=static:5000
    为了保障*.cf文件的安全,因内置密码;
    chgrp postfix /etc/postfix/virtual-*.cf
    chmod u=rw,g=r,o= /etc/postfix/virtual-*.cf

    配置dovecot
    为了让postfix用dovecot传送邮件在/etc/postfix/master.cf下添加以下服务:
    dovecot   unix -       n       n       -       -       pipe
        flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
    为了让postfix用dovecot作虚拟传输在main.cf中添加以下项
    $> postconf -e virtual_transport=dovecot
    $> postconf -e dovecot_destination_recipient_limit=1

    配置dovecot.conf
    /etc/dovecot/dovecot.conf

    添加以下服务支持
    protocols = imap imaps pop3 pop3s

    不去除明文密码认证
    disable_plaintext_auth = no

    告诉dovecot邮件是以maildir形式放在/home/vmail/域/用户
    mail_location = maildir:/home/vmail/%d/%n

    设定认证机制
    mechanisms = plain login

    告诉dovecot密码在sql数据库中
    passdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }

    和mail_location相似,当用户取邮件时会以日志的形式记录下来
    userdb static {
        args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
    }

    master部分将通过用户的数据库存信息把新的邮件保存在用户的邮箱中
    socket listen {
        master {
            path = /var/run/dovecot/auth-master
            mode = 0600
            user = vmail
        }

        client {
            path = /var/spool/postfix/private/auth
            mode = 0660
            user = postfix
            group = postfix
        }
    }
    这部份需要自已定制:dovecot的LDA比postfix自带的LDA功能强大的多,它可设定配额,和邮件过滤,
    protocol lda {
        log_path = /home/vmail/dovecot-deliver.log
        auth_socket_path = /var/run/dovecot/auth-master
        postmaster_address = wxy1@wxy.com
        mail_plugins = cmusieve
        global_script_path = /home/vmail/globalsieverc

    配置dovecot-sql.conf
    /etc/dovecot/dovecot-sql.conf 
    driver = mysql
    connect = host=127.0.0.1 dbname=mail user=mailuser password=2007
    default_pass_scheme = PLAIN
    password_query = Select email as user, password FROM view_users Where user='%u';

    改变dovecot.conf的权限,设只vmail 组的用户及root用名可以读取
    $> chgrp vmail /etc/dovecot/dovecot.conf
    $> chmod g+r /etc/dovecot/dovecot.conf


    配置smtp验证(sasl)

    $> postconf -e smtpd_sasl_type=dovecot
    $> postconf -e smtpd_sasl_path=private/auth
    $> postconf -e smtpd_sasl_auth_enable=yes
    $> postconf -e smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

    九、配置webmail

    ln -s /usr/share/squirrelmail /var/www/mail
    查看 web server: Apache2 是否已启动:
    netstat -an |grep :80
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN

    这时可以应该可以用http://IP/mail 访问webmail
    如果你想个人的webmail界面是简体中文,请在输入邮箱及密码登录邮箱后,Options->Display Preferences->Language:->Chinese Simple。
    如果想将webmail的界面默认为简体中文,请执行/etc/squirrelmail/conf.pl,输入10,可以看到如下界面:
    SquirrelMail Configuration : Read: config.php (1.4.0)
    ---------------------------------------------------------
    Language preferences
    1. Default Language       : en_US
    2. Default Charset        : iso-8859-1
    3. Enable lossy encoding : false

    设置成类似:
    SquirrelMail Configuration : Read: config.php (1.4.0)
    ---------------------------------------------------------
    Language preferences
    1. Default Language       : zh_CN
    2. Default Charset        : GB2312
    3. Enable lossy encoding : false

    重启web服务:
    /etc/init.d/apache2 restart
    Forcing reload of web server: Apache2.

    再用http://IP/mail访问web mail,可以发现squirrelmail的默认语言已经变成了简体中文了。

    注:squirrelmail支持用户修改密码、自动回复、来电提醒等相当多的扩展功能请至squirrelmail网站下载相应的插件安装包就可以了。http://www.squirrelmail.org

    有不对之处请多指教!
  • 相关阅读:
    CentOS 6.5、6.7 设置静态 ip 教程
    Nagios
    zabbix
    xml 的 <![CDATA["URL"]]>
    Don't make a promise when you are in Joy. Don't reply when you are Sad.Don't take decisions when you are Angry.Think Twice.Act Wise.
    DNS-2
    APM
    Time crumbles things; everything grows old under the power of Time and is forgotten through the lapse of Time
    CentOS 7 配置静态 ip
    AOP
  • 原文地址:https://www.cnblogs.com/muyoushui/p/1762594.html
Copyright © 2011-2022 走看看