免费注册 查看新帖 |

Chinaunix

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

[Mail] redhat4.0up2+postfix+dovecot(源码安装) 实现虚拟用户,SMTP认证,POP3 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-07 18:02 |只看该作者 |倒序浏览
我本来只想装一个简单的SMTP,发现好多文档都需要安装很多的东东,东东安装太多,就怕互相不兼容。所以经过n长的努力。终于安装了一套很简单的邮件系统,只需要一个文本,不用安装数据库,提供 虚拟用户,smtp认证,和pop3,imap(这个我不太会,没测试过)。本人研究还不算很长,许多参数还不知道什么意思,请大家指正。webmail 还没有研究。

所需软件: postfix-2.3.2 ,dovecot-1.0.rc7

简单POSTFIX 安装
2006年9月7日
一,        所用IP及域名
       IP:192.168.0.100        (根据实际情况更改)
       域名:test.com        (根据实际情况更改)
       域名解析:test.com    MX      smtp.test.com
                  smtp.test.com   A     192.168.0.100
           192.168.0.100   PTR    smtp.test.com
二,        所需软件
1,        POSTFIX
         版本:postfix-2.3.2
         功能:SMTP
         官方网站:http://www.postfix.org/
         下载地点:http://www.postfix.org/download.html
                ftp://postfix.cn99.com/postfix/official/postfix-2.3.2.tar.gz
2.         DOVECOT
         版本:dovecot-1.0.rc7.
         功能:SMTP认证,POP3,IMAP
         官方网站:http://www.dovecot.org/
         下载地点:http://www.dovecot.org/download.html
                             http://www.dovecot.org/releases/dovecot-1.0.rc7.tar.gz
三,        安装前的准备
         1,        修改主机名
                1.1  修改host表
                  vi /etc/hosts
                           127.0.0.1  smtp.test.com localhost.localdomain localhost
                         1.2 修改network
                           vi /etc/sysconfig/network
                           NETWORKING=yes
                           HOSTNAME= smtp.test.com
                           GATEWAY=202.108.17.1
                         1.3 修改主机名
                  hostname smtp.trade.hc360.cn
                           1.4 重新登陆

        2,添加DNS地址
                  vi /etc/resolv.conf
                           nameserver 202.99.8.1
                           nameserver 202.106.0.20
       
                 3,时间同步
                  ntpdate time.nist.gov

                   #添加计划任务
                  crontab -e
                           00 01 * * 1 /usr/sbin/ntpdate time.nist.gov
        4,        停止原有的mail
                           # service sendmail stop
                           Shutting down sendmail:                                    [  OK  ]
                           Shutting down sm-client:                                   [  OK  ]

                           chkconfig -level 2345 sendmail off

                           mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
                           mv /usr/bin/newaliases /usr/bin/newaliases.OFF
                           mv /usr/bin/mailq /usr/bin/mailq.OFF

四,        安装 DOVENT
                  1,        建立用户
                  #useradd -s /sbin/nologin -d /dev/null dovecot
                  2,        安装
                  tar -zxvf  dovecot-1.0.rc7.tar.gz

                           cd dovecot-1.0.rc7

                           ./configure && make && make install

                           cp /usr/local/etc/dovecot-example.conf /usr/local/etc/dovecot.conf
                  3,        修改配置文件
                  ###设立用户名和密码文件是 /etc/postfix/passwd####
                           vi /usr/local/etc/dovecot.conf

                           base_dir = /var/run/dovecot/

                           protocols = imap  pop3

                  listen = *

                           ssl_disable = yes

                           login_dir = /var/run/dovecot/login

                           login_user = dovecot

                           default_mail_env = maildir:/var/mail/vhosts/%d/%n/  


                  pop3_uidl_format = %v

                            passdb passwd-file {
                               # Path for passwd-file
                                        args = /etc/postfix/passwd   ----->用户的密码文件
                             }

                       userdb passwd-file {
                      # Path for passwd-file
                               args = /etc/postfix/passwd-          ---->用户的密码文件
                             }



              auth default {               
                mechanisms = plain login
  
                socket listen {
                            client {
                              path = /var/spool/postfix/private/auth
                              mode = 0660
                              user = postfix
                              group = postfix
                            }
                          }
                    }
五,        安装POSTFIX
                    1,        建立用户
                    groupadd -g 12345 postfix
                              useradd -u 12345 -g postfix -s /sbin/nologin -d /dev/null postfix
                              groupadd -g 54321 postdrop

                              groupadd -g 5000 vmail
  
                              useradd -u 5000 -g vmail -s /sbin/nologin -d /dev/null vmail
                    2,        安装
                    tar -zxvf postfix-2.3.2.tar.gz

                              cd postfix-2.3.2

                              make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"'

                              make

                              make install

                    (一路回车)
                    3,        修改main.cf
                              vi /etc/postfix/main.cf:
                              ##添加如下代码

                    #smtp auth  (SMTP 认证)
                    smtpd_sasl_auth_enable = yes
                              smtpd_sasl_type = dovecot
                              smtpd_sasl_path = private/auth
                              smtpd_sasl_security_options = noanonymous
                              smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject

                              #virtual mailbox domain
                              virtual_mailbox_domains=/etc/postfix/vdomains
                              virtual_mailbox_base=/var/mail/vhosts
                              virtual_mailbox_maps=hash:/etc/postfix/vmailbox
                              virtual_mailbox_uid=100
                              virtual_uid_maps=static:5000
                              virtual_gid_maps=static:5000
                              virtual_alias_maps=hash:/etc/postfix/virtual
六,        添加域名,添加用户
                    例如要添加的域名:test.com,添加的用户:test@test.com 密码test
                    1,添家域名
                    vi /etc/postfix/vdomains
                              test.com
                    2,添加用户
                    vi /etc/postfix/vmailbox
                              test@test.com test.com /test/

                              mkdir /var/mail/vhosts
                              chown vmail.vmail /var/mail/vhosts

                              postmap /etc/postfix/vmailbox
                              postmap /etc/postfix/virtual
                    3,建立密码文件
                    vi /etc/postfix/passwd
                    test@test.com:{plain}test:5000:5000::/var/mail/vhosts/test.com /test/
      
                   大概格式是
                   用户名:{plain}密码邮件存储目录的用户和组):: 邮件存储目录

          七,   启动
          #dovecot
                    #postfix start
八,        测试
#netstat -nlp
查看 110,25 ,143  端口是否开放
通过以下命令获得test@test.com的用户名及密码的BASE64编码:
perl -e 'use MIME::Base64; print encode_base64("test@test.com"'
dGVzdC5jb20=
perl -e 'use MIME::Base64; print encode_base64("test"'
dGVzdA==

[root@smtp root]# telnet localhost 25            ----->手工填写
Trying 127.0.0.1...
Connected to smtp.trade.hc360.cn (127.0.0.1).
Escape character is '^]'.
220 smtp.trade.hc360.cn ESMTP Postfix
ehlo aa.com                ----->手工填写
250-smtp.test.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login                      ----->手工填写
334 VXNlcm5hbWU6
dGVzdC5jb20=               ----->手工填写
334 UGFzc3dvcmQ6
dGVzdA==               ----->手工填写
235 2.0.0 Authentication successful
mail from:<test@163.com>               ----->手工填写
250 2.1.0 Ok
rcpt to:<test@test.com>               ----->手工填写
250 2.1.5 Ok
data                                                   ----->手工填写
354 End data with <CR><LF>.<CR><LF>
good mail                                       ----->手工填写
.                                                   ----->手工填写
250 2.0.0 Ok: queued as 1F2706FDDA
出现235 Authentication Successful 表明认证成功了。
这样 就以test@163.com发送一封邮件给刚建立的用户 test@test.com

测试 110


[root@smtp root]# telnet localhost 110
Trying 127.0.0.1...
Connected to smtp.trade.hc360.cn (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
user test@test.com                                 ----->手工填写
+OK
pass test                            ----->手工填写
+OK Logged in.
list                            ----->手工填写
+OK 1 messages:
1 481
.



ps:
        以后在添加用户的时候
添加存在域的用户
        test2@test.com   密码:test2
        1,修改 vmailbox
        /etc/postfix/vmailbox
        test2@test.com test.com/test2/
        #postmap /etc/postfix/vmailbox
        2,修改passwd
        /etc/postfix/passwd
        test2@test.com:{plain} test2:5000:5000::/var/mail/vhosts/test.com/test2/


添加不存在域的用户,先建立域名
        test@abc.com 密码:test2006
        1,修改vdomains 添加 abc.com
        vi /etc/postfix/vdomains
        abc.com
        2,修改 vmailbox
        test@abc.com abc.com/test/
        #postmap /etc/postfix/vmailbox
        3,修改 pssswd
        test@abc.com:{plain}test2006:5000:5000::/var/mail/vhosts/ abc.com/test/


        #postfix reload

论坛徽章:
0
2 [报告]
发表于 2007-02-04 19:38 |只看该作者
这贴子不错。

论坛徽章:
0
3 [报告]
发表于 2007-03-03 15:55 |只看该作者
这贴子确实不错,非常好。

论坛徽章:
0
4 [报告]
发表于 2007-03-03 16:54 |只看该作者
好象有一个问题,用户自己如何修改密码?

论坛徽章:
0
5 [报告]
发表于 2007-03-03 21:05 |只看该作者
可以将用户数据存到数据库中(如mysql),然后通过cron来更新相关文件,就可以实现了。
还有一种办法,直接让dovecot调用mysql来实现,最新版的dovecot支持mysql、postgresql、还有openldap。

[ 本帖最后由 zhxp_ 于 2007-3-3 21:11 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-03-04 21:26 |只看该作者
请问有谁实现了。我这里smtp谁总是不成功。

论坛徽章:
0
7 [报告]
发表于 2007-03-11 14:41 |只看该作者
感谢楼主,学习中,有个问题请教:
virtual_mailbox_uid=100
此用户是哪个用户?我搭建的时候uid=100的是httpd用户

论坛徽章:
0
8 [报告]
发表于 2007-03-11 14:45 |只看该作者
smtpd_sasl_path = private/auth
这项是不是要填写sasl的路径?
我按楼主的方法搭建的邮件服务器只能自己发送邮件给自己,而不能发送给别的域名的邮箱,提示relay access denied,应该是转发设置有问题,该检查哪些参数设置?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP