免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4044 | 回复: 3
打印 上一主题 下一主题

[Mail] 带认证的Postfix+sasl2+vm-pop3d+openwebmail安装方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-05 17:01 |只看该作者 |倒序浏览
================================================================
                |        带认证的Postfix+sasl2+vm-pop3d+openwebmail安装方案        |
                ================================================================
                时间:2005-3-5 作者:孟远螓 QQ:3440895 Email:arzen1013@163.com
概述
  本文试图介绍如何在一个Linux平台上安装一套带SMTP认证与WEB收发,功能比较完善的邮件系统。这里我们以Postfix做SMTP服务器、vm-pop3d做POP3服务器,通过Cyrus-SASL对存储在/etc/sasldb2数据库中的用户进行验证和授权,并且使用openwebmail来提供一个完善的WEBMAIL界面。

准备工作:
  所需的软件及下载地址
  postfix (必需用源码安装,因为要支持sasl) wget ftp://postfix.linuxaid.com.cn/pub/postfix/official/postfix-2.1.5.tar.gz

  /* 这几个可选 linux8.0自带,可以用rpm -q cyrus-sasl检查一下
  Cyrus-SASL 没有则可从 wget ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/RedHat/RPMS/cyrus-sasl-2.1.7-2.i386.rpm
        要支持验证还必需安装以下
        wget ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/RedHat/RPMS/cyrus-sasl-devel-2.1.7-2.i386.rpm
        wget ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/RedHat/RPMS/cyrus-sasl-plain-2.1.7-2.i386.rpm
  */

  vm-pop3d wget http://download.lirais.cz/vm-pop3d-1.1.6-1.i386.rpm
  openwebmail wget http://www.openwebmail.org/openwebmail/download/redhat/rpm/release/openwebmail-2.50-1.i386.rpm
        要安装openwebmail还有下面几个perl模块支持
        wget http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rh80/perl-CGI-2.81-55.i386.rpm
        wget http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rh80/perl-Compress-Zlib-1.21-RH80.i386.rpm
        wget http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rh80/perl-Text-Iconv-1.2-RH80.i386.rpm
        wget http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rh80/perl-suidperl-5.8.0-55.i386.rpm
        wget ftp://fr2.rpmfind.net/linux/dag/redhat/7.3/en/i386/dag/RPMS/perl-Authen-SASL-2.08-1.0.rh7.dag.noarch.rpm

安装软件:
        这些软件都容易安装
        1.如果没有Cyrus-SASL则(有则跳到2)
                rpm -ivh cyrus-sasl-2.1.7-2.i386.rpm
                rpm -ivh cyrus-sasl-devel-2.1.7-2.i386.rpm
                rpm -ivh cyrus-sasl-plain-2.1.7-2.i386.rpm
        2.安装postfix
                tar xvfz postfix-2.1.5.tar.gz
                cd postfix-2.1.5
                groupadd -g 400 postfix
                groupadd -g 401 postdrop
                useradd -u 400 -g 400 -c postfix -M -d/no/where -s/no/shell postfix
                make -f Makefile.init makefiles 'CCARGS=-DUSE_SASL_AUTH -I/usr/include/sasl -L/usr/lib/sasl2 -lsasl2 -lz -lm'
                make install
                (提示问题一路回车键按下去就可以了)
        3.安装openwebmail
                rpm -ivh perl-CGI-2.81-55.i386.rpm
                rpm -ivh perl-Compress-Zlib-1.21-RH80.i386.rpm
                rpm -ivh perl-Text-Iconv-1.2-RH80.i386.rpm
                rpm -ivh perl-suidperl-5.8.0-55.i386.rpm
                rpm -ivh openwebmail-2.50-1.i386.rpm
        4.安装vm-pop3d
                rpm -ivh vm-pop3d-1.1.6-1.i386.rpm

论坛徽章:
0
2 [报告]
发表于 2005-03-05 17:02 |只看该作者

带认证的Postfix+sasl2+vm-pop3d+openwebmail安装方案

配置文件:
        1.postfix配置
        vi /etc/postfix/main.cf
        //////////// 在文件后面加上如下 ////////////
        virtual_alias_maps=hash:/etc/postfix/virtual
        alias_maps=hash:/etc/postfix/aliases
        allow_mail_to_commands = alias,forward,include
        allow_mail_to_files = alias,forward,include

        smtpd_sasl_auth_enable = yes
        smtp_sasl_security_options =
        smtp_sasl_password_maps = hash:/etc/sasldb2
        broken_sasl_auth_clients = yes
        smtpd_sasl_security_options = noanonymous
        smtpd_recipient_restrictions =
            permit_sasl_authenticated,
            permit_mynetworks,
            reject_invalid_hostname,
            reject_non_fqdn_hostname,
            reject_unknown_sender_domain,
            reject_non_fqdn_sender,
            reject_non_fqdn_recipient,
            reject_unknown_recipient_domain,
            reject_unauth_pipelining,
            reject_unauth_destination,
            permit
        //////////// 结束 ////////////

        vi /etc/postfix/virtual
        //////////// 在文件后面加上如下 ////////////

        domain.com        # 把domain.com换成你的域名
        user@domain.com user@domain.com

        //////////// 结束 ////////////

        vi /etc/postfix/aliases
        //////////// 在文件后面加上如下 ////////////

        user.domain.com:/var/spool/virtual/domain.com/user

        //////////// 结束 ////////////
        postmap /etc/postfix/virtual
        postalias /etc/postfix/aliases
        chown nobody /etc/postfix/aliases
        chown nobody /etc/postfix/aliases.db
        chown nobody /etc/postfix/virtual
        chown nobody /etc/postfix/virtual.db

        2.SASL配置
        vi /usr/lib/sasl2/smtpd.conf
        //////////// 在文件后面加上如下 ////////////

        pwcheck_method:  auxprop
        mech_list: plain login

        //////////// 结束 ////////////

        3.vm-pop3d配置
        vi /etc/init.d/vm-pop3d
        找到
        daemon vm-pop3d -d 10 -t 600
        改成
        daemon vm-pop3d -d 10 -t 600 -u nobody

        4.openwebmail配置
        分两个目录openwebmail与data,data为图片,openwebmail放程序.默认安装在/var/www/cgi-bin/openwebmail/与/var/www/data
        cd /var/www/cgi-bin/openwebmail

        vi /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DB_File.pm
        在"/make recno in Berkeley 之前添加一行"

        $arg[3] = 0666 unless defined $arg[3];

        ---------- 结束上面----------

        vi /var/www/cgi-bin/openwebmail/etc/dbm.conf
        //////////// 在文件改成如下 ////////////
        dbm_ext                 .db
        dbmopen_ext             .db
        dbmopen_haslock         yes
        //////////// 结束 ////////////

        vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
        default_language                zh_CN.GB2312 #修改默认编码

        执行:
        /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

        添加文件vi /var/www/cgi-bin/openwebmail/etc/sites.conf/domain.com

        //////////// 在文件后面加上如下 ////////////

        auth_module auth_vdomain.pl
        auth_withdomain yes
        mailspooldir /var/spool/virtual/domain.com # 注意目录名和域名一致
        use_syshomedir no
        use_homedirspools no
        enable_autoreply no
        enable_setforward no
        enable_vdomain yes
        vdomain_admlist user
        vdomain_maxuser 10000
        vdomain_vmpop3_pwdpath /etc/virtual # 这是 vm-pop3d 默认寻找passwd的目录
        vdomain_vmpop3_pwdname passwd
        vdomain_vmpop3_mailpath /var/spool/virtual
        vdomain_postfix_aliases /etc/postfix/aliases
        vdomain_postfix_virtual /etc/postfix/virtual
        vdomain_postfix_postalias /usr/sbin/postalias
        vdomain_postfix_postmap /usr/sbin/postmap

        # quota设置部分
        quota_module quota_du.pl
        quota_limit 50240           //定义了邮箱大小
        quota_threshold 85  
        delmail_ifquotahit no  
        delfile_ifquotahit no

        //////////// 结束 ////////////

        编辑你的apache配置文件(/usr/local/apache/conf/httpd.conf)
        === httpd.conf ========
        Alias /data "/var/www/data/"
       
        执行:
        mkdir /var/spool/virtual/domain.com
        chown nobody /var/spool/virtual/domain.com

        mkdir /etc/virtual/domain.com
        touch /etc/virtual/domain.com/passwd
        chmod 644 /etc/virtual/domain.com/passwd
        htpasswd /etc/virtual/domain.com/passwd user
        输入密码两次
        saslpasswd2 -u domain.com -c user
        同上一密码,输入密码两次

论坛徽章:
0
3 [报告]
发表于 2005-03-05 17:02 |只看该作者

带认证的Postfix+sasl2+vm-pop3d+openwebmail安装方案

启动软件:
        1.vm-pop3d =>; /etc/init.d/vm-pop3d start
        2.postfix =>; postfix start
        3.重启apache=>;/usr/local/apache/bin/apachectl graceful
        然後連到您的主機:http://hostname/cgi-bin/openwebmail/openwebmail.pl ,就能夠看到您的 OpenWebmail 了!

完整测试:
        1.http://hostname/cgi-bin/openwebmail/openwebmail.pl
                用user@domain.com为用户名+密码进入,进入去在里面测试webmail是否正常

        2.测试smtp认证
        telnet www.domain.com 25 #换成您的主机

        220 www.xxxx.com ESMTP Postfix
        EHLO user
        250-www.xxxx.com
        250-PIPELINING
        250-SIZE 10240000
        250-VRFY
        250-ETRN
        250-AUTH PLAIN
        250-AUTH=PLAIN
        250 8BITMIME
        AUTH PLAIN bGlsaUBnZGZ6LmNvbQBsaWxpQGdkZnouY29tAG15MTk4MQ==
        235 Authentication successful
        有类似以上内容为正常

        3.用outlook或foxmail测试一下是否有认证

常见问题:
        1.由于现在是pop密码与smtp密码分开,而且openwebmail在添加与修改用户信息时并没有在sasldb2数据库里添加,帮要修改一下openwebmail的ope nwebmail-prefs.pl
         在增加新用户的地方添加如:
          my ($origruid, $origeuid, $origegid)=ow::suid::set_uid_to_root();
          ow::execute::execute("echo $pwd|/usr/sbin/saslpasswd2 -u $domain -c $vuser ";
          修改用户密码的地方:
          my ($origruid, $origeuid, $origegid)=ow::suid::set_uid_to_root();
         ow::execute::execute("echo $pwd|/usr/sbin/saslpasswd2 -u $domain $vuser ";
          删除用户的地方:
          my ($origruid, $origeuid, $origegid)=ow::suid::set_uid_to_root();
         ow::execute::execute("/usr/sbin/saslpasswd2 -u $domain -d $vuser ";

论坛徽章:
0
4 [报告]
发表于 2008-03-04 22:55 |只看该作者
          my ($origruid, $origeuid, $origegid)=ow::suid::set_uid_to_root();
          ow::execute::execute("echo $pwd|/usr/sbin/saslpasswd2 -u $domain -c $vuser ";
          修改用戶密碼的地方:
          my ($origruid, $origeuid, $origegid)=ow::suid::set_uid_to_root();
         ow::execute::execute("echo $pwd|/usr/sbin/saslpasswd2 -u $domain $vuser ";
          刪除用戶的地方:
          my ($origruid, $origeuid, $origegid)=ow::suid::set_uid_to_root();
         ow::execute::execute("/usr/sbin/saslpasswd2 -u $domain -d $vuser ";


請問一下
這些指令碼是要貼在哪呢??
我有找到openwebmail-prefs.pl這個檔案
但不知要加到哪呢??
另外程式碼最後有笑臉
可否告知實際的語法是什麼呢
謝謝
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP