• 《web-Mail服务的搭建》


    首先是搭建后台服务:

    下载下面2个软件包 extmail-1.2.tar.gz

    extman-1.1.tar.gz

    创建一个extsuite目录,固定格式 mkdir /var/www/extsuite

    将2个压缩包解压到/var/www/extsuite/目录 tar zxf extman-1.1.tar.gz -C /var/www/extsuite/

    tar zxf extmail-1.2.tar.gz -C /var/www/extsuite/

    切换到/var/www/extsuite/ cd /var/www/extsuite/ 将2个压缩后的目录改名,原目录太长了。 mv extmail-1.2/ extmail

    mv extman-1.1/ extman

    cd extman 上面我们创建了一个extsuite目录,为什么非得是extsuite。因为下面一个文件webman.cf.default里面写的很多参数缺省的路径/var/www/extsuite/extman/这个路径。

    cd extman/docs/

    下面这个文件里面默认写了很多mail服务数据库的配置,将其直接导入。

    mysql -uroot -predhat < extmail.sql

    vim init.sql //将里面的加密密码改为名文密码

    这个文件写了很多关于mail用户,邮箱,别名等服务在mysql服务写入的数据

    mysql -uroot -predhat < init.sql

    我们将/var/www/extsuite/extman/docs下三个关于mail的邮箱,域名,别名的文件cp到/etc/postfix目录下.

    cp mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/

    校验这三个文件是否正确:mysql:/etc/postfix这个必须绝对路径  

    postmap -q "support@extmail.org" mysql:/etc/postfix/mysql_virtual_alias_maps.cf

    postmap -q "postmaster@extmail.org" mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

    postmap -q "extmail.org" mysql:/etc/postfix/mysql_virtual_domains_maps.cf

    查看一些postfix的参数,通过过滤获取关于vitual项 postconf -d | grep virtual 将其加入到postfix的主配置文件,使其自动读取。

    postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf

    postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

    postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf

    我们使用的是虚拟用户,当然也要创建一个虚拟用户。

    useradd -u 800 -s /sbin/nologin vmail 将其参数写入main.cf文件,自动生效。

    postconf -e virtual_gid_maps=static:800

    postconf -e virtual_uid_maps=static:800

    指定虚拟用户的mail存储位置。

    postconf -e virtual_mailbox_base=/home/vmail/

    postconf -e inet_interfaces=all //所有人可以使用mail服务

    配置完后重启载入。

     postfix reload 测试,发封邮件试试。 mail support@extmail.org

    mailq cd /home/vmail/

    搭建前台服务:

    cd extmail/ 建立前台mail主配置文件

    cp webmail.cf.default webmail.cf

    vim INSTALL 查看帮助

    将下面的行复制到Apache配置文件下

    NameVirtualHost *:80

    <VirtualHost *:80>

    ServerName mail.example.com

    DocumentRoot /var/www/extsuite/extmail/html/

    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

    Alias /extmail /var/www/extsuite/extmail/html

    SuexecUserGroup vuser vgroup </VirtualHost>

    vim /etc/httpd/conf/httpd.conf

    <VirtualHost *:80>

    ServerName mail.extmail.org //访问该目录的域名

    DocumentRoot /var/www/extsuite/extmail/html/

    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

    Alias /extmail /var/www/extsuite/extmail/html

    SuexecUserGroup vmail vmail //有效用户和组

    </VirtualHost>

    192.168.2.249   mail.extmail.org //在浏览器客户端做个解析

    /etc/init.d/httpd restart  //重启apache服务

    cd /var/www/extsuite/ //默认这些文件任何人都可以使用,但我们服务是以vmail用户身份去访问下面的文件

    chown -R vmail.vmail *

    yum install perl-CGI //再次刷新发现服务不支持CGI模块

    vim webmail.cf

    SYS_LOG_ON = 0 //关闭日志功能

    SYS_MAILDIR_BASE = /home/vmail //将主配置文件收邮件的目录修改成我们默认的路径

    SYS_CRYPT_TYPE = plain //使用明文密码

    SYS_MYSQL_USER = extmail //修改登录mysql数据库所使用的用户和密码 SYS_MYSQL_PASS = extmail

    用户注册的实现: cd extman/

    vim INSTALL

    NameVirtualHost *:80

    <VirtualHost *:80>

    ServerName mail.example.com

    DocumentRoot /path/to/your/document/root/

    ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

    Alias /extman /var/www/extsuite/extman/html

    SuexecUserGroup vuser vgroup

    </VirtualHost>

    ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

    Alias /extman /var/www/extsuite/extman/html

    <VirtualHost *:80>

    ServerName mail.extmail.org

    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

    SuexecUserGroup vmail vmail

    </VirtualHost>

    /etc/init.d/httpd restart 浏览器测试 http://mail.extmail.org/extman/cgi/index.cgi

    会提示没有主配置文件:

     cp webman.cf.default webman.cf

    修改邮件的有效用户

    SYS_MAILDIR_BASE = /home/vmail

    临时文件

    SYS_SESS_DIR = /tmp/

    关闭验证吗功能呢个

    SYS_CAPTCHA_ON = 0

    使用明文密码 SYS_CRYPT_TYPE = plain

    # yum install -y perl-ExtUtils-MakeMaker perl Makefile.PL

    # make install

    SYS_CAPTCHA_ON = 1

    SYS_CAPTCHA_LEN = 4 发现验证码显示不出来:

    get perl-GD-2.45-1.el6.rfx.x86_64.rpm

    # rpm -ivh perl-GD-2.45-1.el6.rfx.x86_64.rpm

    /var/www/extsuite/extman/addon

    # cp mailgraph_ext/ /usr/local/ -r

    /usr/local/mailgraph_ext

    # vim mailgraph-init

    BASEDIR=/usr/local/mailgraph_ext

    # ./mailgraph-init

    # yum localinstall rrdtool-perl-1.3.8-6.el6.x86_64.rpm

    # /usr/local/mailgraph_ext/mailgraph-init start

    File-Tail-0.99.3.tar.gz

    # tar zxf File-Tail-0.99.3.tar.gz

    cd File-Tail-0.99.3 # perl Makefile.PL

    # yum install perl-Time-HiRes -y

    # make install

    # /usr/local/mailgraph_ext/mailgraph-init start

    /var/www/extsuite/extman/daemon/cmdserver &

    vim /etc/rc.d/rc.local

    /var/www/extsuite/extman/daemon/cmdserver &

    /usr/local/mailgraph_ext/mailgraph-init start

    取消自由注册:

    cd extmail/

     vim webmail.cf

    SYS_SHOW_SIGNUP = 0

    yum search dovecot

    yum search dovecot-mysql.x86_64 -y 主配置文件不变。

    vim 10-mail.conf

    mail_location = maildir:/home/vmail/%d/%n/Maildir

    first_valid_uid = 800

    vim 10-auth.conf

    !include auth-sql.conf.ext passdb {   driver = sql 找到下面的行,提示我们去找这个文件,example-config/dovecot-sql.conf.ext

    下面的是路径/usr/share/doc/dovecot-2.0.9/example-config,这个文件只是一个模板。

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

    我们将其cp到/etc/dovecot路径下,

    并修改以下参数。

    driver = mysql

    connect = host=localhost dbname=extmail user=extmail password=extmail

    default_pass_scheme = PLAIN

    password_query =  

    SELECT username, domain, password

      FROM mailbox WHERE username = '%u' AND domain = '%d'

    user_query = SELECT maildir, 800 AS uid, 800 AS gid FROM mailbox WHERE username = '%u'

    豆腐块的证书制作: /etc/pki/tls/certs

    证书的名字:dovecot.pem 将其分别拷贝到公钥和加密目录下。

    cp dovecot.pem /etc/pki/dovecot/certs/

    cp dovecot.pem /etc/pki/dovecot/private/

    /etc/init.d/dovecot restart

    重启就ok了。

    下面是TLS和SASL证书模块和加密模块在mail服务中的添加。和msyql的加载一样:

    yum install -y cyrus-sasl-devel yum install -y openssl-devel

    # cd postfix-2.11.0 //切换到加压包的目录

    /root/postfix-2.11.0/README_FILES //这个目录下的2个文件,less SASL_README  less TLS_README 和mysql一块重新编译升级。

    #  make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib64 -lsasl2 -lcrypto'

    make upgrade

  • 相关阅读:
    Linux操作系统加固建议 风行天下
    python 中 os.walk() 函数详解 风行天下
    windows系统修改文件夹颜色工具 风行天下
    linux运维python递归遍历目录+案例应用
    rsyslog写入日志文件报错的问题 风行天下
    linux存放history命令的文件 风行天下
    python 远程登陆一次执行多条命令 风行天下
    【Linux】Linux文件之/etc/fstab 风行天下
    消息队列初见:一起聊聊引入系统mq 之后的问题
    常见性能优化实践总结
  • 原文地址:https://www.cnblogs.com/linux-super-meng/p/3795394.html
Copyright © 2020-2023  润新知