Postfix+Dovecot邮件服务器配置指南,Postfix使用Dovecot认证,配置环境CentOS5.5
2011-10-20 18:30
351 查看
配置环境CentOS5.5,查询CentOS版本命令如下:
[root@localhost ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final
关闭sendmail:
[root@localhost ~]# /etc/init.d/sendmail stop
关闭sendmail自启动:
[root@localhost ~]# chkconfig sendmail off
1. 在CentOS5.5中使用yum install postfix会安装postfix-2.3.3-2.3.el5_6,当我们配置使用dovecot认证的时候会出现错误fatal: no SASL authentication mechanisms
2. 在CentOS5.5中使用yum install dovecot会安装dovecot-1.0.7-7.el5,会出现private/auth没有权限问题
正确方法,下载dovecot-1.2.17.tar.gz postfix-2.7.3.tar.gz
创建用户
useradd -s /sbin/nologin -d /dev/null dovecot
tar -zxvf dovecot-1.2.17.tar.gz
cd dovecot-1.2.17
./configure && make && make install
cp /usr/local/etc/dovecot-example.conf /usr/local/etc/dovecot.conf
配置dovecot
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/ (修改)
disable_plaintext_auth = no
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
建立用户
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
安装
tar -zxvf postfix-2.7.3.tar.gz
cd postfix-2.7.3
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/vdomains
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}密码:(邮件存储目录的用户和组):: 邮件存储目录
以后在添加用户的时候
添加存在域的用户
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/
centos系统安装POSTFIX时需要重新注册下
修改/etc/postfix/main.cf
aliases map 的位置 指向/etc/postfix/aliases
aliases db 的位置 指向/etc/postfix/aliases
执行
newaliases
七, 启动
#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==
然后本机测试,其过程如下(蓝色的文字是我们输入/发送到Postfix的)
[root@smtp root]# telnet localhost 25
Trying 127.0.0.1...
Connected to smtp.test.com (127.0.0.1).
Escape character is '^]'.
220 smtp.trade.abc.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
如果上面方式行不通:使用如下测试
[root@localhost sasl2]# perl -MMIME::Base64 -e \
> 'print encode_base64("test\@test.com\0test\@test.com\0test")';
dGVzdEB0ZXN0LmNvbQB0ZXN0QHRlc3QuY29tAHRlc3Q=
[root@localhost sasl2]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 smtp.test.com ESMTP Postfix
auth plain dGVzdEB0ZXN0LmNvbQB0ZXN0QHRlc3QuY29tAHRlc3Q=
235 2.7.0 Authentication successful
postfix warning: dict_nis_init: NIS domain name not set - NIS lookups disabled 解决方法
[root@mail postfix]# postalias /etc/postfix/aliases
在/etc/postfix/main.cf中加入下面配置信息
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
测试 110
[root@smtp root]# telnet localhost 110
Trying 127.0.0.1...
Connected to smtp.test.com (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
user test@test.com
+OK
pass test
+OK Logged in.
list
+OK 1 messages:
retr 1
dele 1
1 481
[root@localhost ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final
关闭sendmail:
[root@localhost ~]# /etc/init.d/sendmail stop
关闭sendmail自启动:
[root@localhost ~]# chkconfig sendmail off
1. 在CentOS5.5中使用yum install postfix会安装postfix-2.3.3-2.3.el5_6,当我们配置使用dovecot认证的时候会出现错误fatal: no SASL authentication mechanisms
2. 在CentOS5.5中使用yum install dovecot会安装dovecot-1.0.7-7.el5,会出现private/auth没有权限问题
正确方法,下载dovecot-1.2.17.tar.gz postfix-2.7.3.tar.gz
创建用户
useradd -s /sbin/nologin -d /dev/null dovecot
tar -zxvf dovecot-1.2.17.tar.gz
cd dovecot-1.2.17
./configure && make && make install
cp /usr/local/etc/dovecot-example.conf /usr/local/etc/dovecot.conf
配置dovecot
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/ (修改)
disable_plaintext_auth = no
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
建立用户
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
安装
tar -zxvf postfix-2.7.3.tar.gz
cd postfix-2.7.3
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/vdomains
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}密码:(邮件存储目录的用户和组):: 邮件存储目录
以后在添加用户的时候
添加存在域的用户
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/
centos系统安装POSTFIX时需要重新注册下
修改/etc/postfix/main.cf
aliases map 的位置 指向/etc/postfix/aliases
aliases db 的位置 指向/etc/postfix/aliases
执行
newaliases
七, 启动
#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==
然后本机测试,其过程如下(蓝色的文字是我们输入/发送到Postfix的)
[root@smtp root]# telnet localhost 25
Trying 127.0.0.1...
Connected to smtp.test.com (127.0.0.1).
Escape character is '^]'.
220 smtp.trade.abc.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
如果上面方式行不通:使用如下测试
[root@localhost sasl2]# perl -MMIME::Base64 -e \
> 'print encode_base64("test\@test.com\0test\@test.com\0test")';
dGVzdEB0ZXN0LmNvbQB0ZXN0QHRlc3QuY29tAHRlc3Q=
[root@localhost sasl2]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 smtp.test.com ESMTP Postfix
auth plain dGVzdEB0ZXN0LmNvbQB0ZXN0QHRlc3QuY29tAHRlc3Q=
235 2.7.0 Authentication successful
postfix warning: dict_nis_init: NIS domain name not set - NIS lookups disabled 解决方法
[root@mail postfix]# postalias /etc/postfix/aliases
在/etc/postfix/main.cf中加入下面配置信息
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
测试 110
[root@smtp root]# telnet localhost 110
Trying 127.0.0.1...
Connected to smtp.test.com (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
user test@test.com
+OK
pass test
+OK Logged in.
list
+OK 1 messages:
retr 1
dele 1
1 481
相关文章推荐
- CentOS 5.5 x64上使用Postfix + Dovecot + MySQL搭建邮件服务器
- CentOS 5.5 下Postfix和Dovecot 配置邮件服务器
- centos 邮件服务器postfix,saslauthd,dovecot安装配置.
- Centos7下postfix+Dovecot+cyrus-sasl搭建个人局域网邮件服务器(测试使用)
- CentOS7.4中Postfix邮件服务器的搭建(一)-----环境配置及简单搭建
- CentOS 64位下安装Postfix+Dovecot 配置邮件服务器笔记
- oracle环境配置与使用指南
- CentOS 5.5下的svn环境的配置详解 (另外附带:centOS 5.5最新的国内源地址)
- CentOS 6.9 虚拟机下载(LNMP开发环境 + Postfix/Dovecot邮件系统 + TPShop商城系统)
- CentOS+postfix+ExtMail+amavisd-new+Spam_Locker+DSpam配置指南:六、配置Apache
- CentOS 5.5使用yum来安装LAMP(php运行环境)
- 邮件服务器(三)――centos6.5安装配置dovecot并实现sasl认证功能
- CentOS 64位下安装Postfix+Dovecot 配置邮件server笔记
- CentOS6.4+LAMP+Postfix+Dovecot+Postfixadmin+Roundcubemail 打造企业级邮件服务器 (1)
- CentOS 5下搭建使用MySQL认证用户的POSTFIX邮件服务器
- centos6.7环境之kvm虚拟化quem工具配置及使用详解
- CentOS 5.5环境下安装配置Varnish
- CentOS+postfix+ExtMail+amavisd-new+Spam_Locker+DSpam配置指南:七、配置Webmail-ExtMail
- centos6.4 环境下配置使用gfs2以及clvm
- centos6.5环境openldap实战之ldap配置详解及web管理工具lam(ldap-account-manager)使用详解