您的位置:首页 > 其它

postfix+sasl+dovecot

2016-09-27 09:03 176 查看
一、邮件服务依赖于DNS服务,所以先配置一个DNS服务器(我的地址是10.0.146.18)
1.修改主机名# hostname mail.fsy.com# vim /etc/hostname修改为:mail.fsy.com2.安装bind并修改其配置文件# yum -y install bind# vim /etc/named.conf去掉options中的:listen-on port 53 { 127.0.0.1; }; allow-query { localhost; };3.配置正向区域和反向区域,并测试有无语法错误# vim /etc/named.rfc1912.zones 添加:zone "fsy.com" IN { type master; file "fsy.com.zone"; allow-update { none; }; allow-transfer { none; };};zone "146.0.10.in-addr.arpa" IN { type master; file "10.0.146.zone"; allow-update { none; }; allow-transfer { none; };};# named-checkconf(测试有无语法错误)4.编辑正向和反向区域文件# cd /var/named/# vim fsy.com.zone(编辑正向区域文件)添加以下内容:$TTL 86400@ IN SOA ns.fsy.com. admin.fsy.com. ( 2016092501 2H 10M 3D 1D) IN NS ns IN MX 10 mailns IN A 10.0.146.18mail IN A 10.0.146.18www IN A 10.0.146.18# vim 10.0.146.zone(编辑反向区域文件)添加以下内容:$TTL 86400@ IN SOA ns.fsy.com. admin.fsy.com. ( 2016092501 2H 10M 3D 1D) IN NS ns.fsy.com.18 IN PTR ns.fsy.com.18 IN PTR mail.fsy.com.18 IN PTR www.fsy.com.5.修改区域配置文件的属组和权限,并测试有无语法错误# chgrp named fsy.com.zone 10.0.146.zone# chmod 640 fsy.com.zone 10.0.146.zone# named-checkzone "fsy.com" fsy.com.zone# named-checkzone "146.0.10.in-addr.arpa" 10.0.146.zone6.重启DNS服务,使其开机自动启动,并测试注意:请先更改本机的DNS服务器# vim /etc/resolv.conf nameserver 10.0.146.18# service named restart# chkconfig named on# dig -t MX fsy.com @10.0.146.18# dig -t A mail.fsy.com @10.0.146.18一切正常!
二、想要实现基于mysql的虚拟用户,所以先安装mysql(这里用rpm包安装)
# yum install mysql-server mysql-devel# service mysqld start# chkconfig mysqld on三、编译安装postfix,(我这里用 postfix-2.10.10.tar.gz,相关软件包可以到postfix官网下载)
注意:首先同步一下时间,取得和硬件时间一致的时间# hwclock -s1.解压# tar xf postfix-2.10.10.tar.gz# cd postfix-2.10.102.建立postfix和postdrop组和用户# groupadd -g 2525 postfix# useradd -g postfix -u 2525 -s /sbin/nologin -Mpostfix# groupadd -g 2526 postdrop# useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop3.安装所需软件包# yum -y install cyrus-sasl-devel# yum -y install gcc# yum install db*-devel4.安装#make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'释义:CCARGS:指明头文件位置,CCARGS=-DHAS_MYSQL 指明启用mysql的连接能-I/usr/include/mysql 指明mysql的头文件位置-DUSE_SASL_AUTH启用SASL认证-I/usr/include/sasl指明SASL头文件位置-DUSE_TLS使SMTP支持smtps协议AUXLIBS:指明库文件位置,-L/usr/lib/mysql 指明MySQL库文件位置-lmysqlclient指明MySQL客户端库文件-lz压缩库文件-lm模块库文件-lsslssl的库文件# make# make install按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值,省略的表示采用默认值) install_root: [/] /tempdir: [/root/postfix-2.10.10] /root/postfix-2.10.10config_directory: [] /etc/postfixcommand_directory: [] /usr/sbindaemon_directory: [] /usr/libexec/postfixdata_directory: [] /var/lib/postfixhtml_directory: [] nomail_owner: [] postfixmailq_path: [] /usr/bin/mailq.postfixmanpage_directory: [] /usr/share/mannewaliases_path: []/usr/bin/newaliases.postfixqueue_directory: [] /var/spool/postfixreadme_directory: [] /usr/share/doc/postfix-2.6.6/README_FILESsendmail_path: [] /usr/sbin/sendmail.postfixsetgid_group: [] postdrop5、生成aliases.db文件# newaliases# ls /etc/aliases.db6、修改配置文件# cd /etc/postfix/# vim main.cfmynetworks = 192.168.182.0/24, 127.0.0.0/8(定义给哪些网段中继邮件)myhostname = mail.fsy.com(定义主机名)myorigin = $mydomainmydomain = fsy.commydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,ns.$mydomaininet_interfaces = all监听的ip地址说明:mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问myhostname 参数指定运行postfix邮件系统的主机的主机名,默认情况下,其值被设定为本地机器名;myorigin参数用来指明发件人所在的域名,即做发件地址伪装;mydomain 参数指定您的域名,默认情况下,postfix将myhostname的第一部分删除而作为mydomain的值;mydestination参数指定postfix接收邮件时收件人的域名,即您的postfix系统要接收到哪个域名的邮件; 5.现在即可启动测试了(此处可能遇到服务无法启动,看日志)# service postfix restart此时可使用本地用户测试邮件收发了四、安装dovecot,实现收邮件
1.安装:# yum -y install dovecot2.修改配置文件# vim /etc/dovecot/dovecot.conf ,修改以下内容protocols = pop3 imap lmtplogin_trusted_networks = 0.0.0.0/0# cd /etc/dovecot/conf.d# vim 10-auth.conf 修改如下内容disable_plaintext_auth = yes# vim 10-ssl.conf修改如下内容ssl = no# vim 10-mail.conf修改以下内容mail_location = mbox:~/mail:INBOX=/var/mail/%umbox_write_locks = fcntl3.创建用户,并且在用户家目录下创建mail/.imap/INBOXmkdir -p mail/.imap/INBOX4.启动服务,并将其添加至服务列表中 # service dovecot start# chkconfig dovecot on5.可以测试使用了如:# telnet mail.fsy.com 110Trying 10.0.146.18...Connected to mail.fsy.com.Escape character is '^]'.+OK Dovecot ready.user openstack+OKpass 123456+OK Logged in.LIST+OK 5 messages:1 2832 2763 2784 2785 281.retr 2 五、配置SASL (此时我的系统上有一个用户hadoop,密码为:123456)
1.、编辑配置文件# vim /etc/sysconfig/saslauthdMECH=shadow2、启动sasl服务,并使其开机自动启动# service saslauthd start# chkconfig saslauthd onsaslauthd -v: 显示当前主机saslauthd服务所支持的认证机制,默认为pam3、测试命令进行测试# testsaslauthd -u hadoop -p 1234564、说明基于哪种方式实现认证# vim /usr/lib/sasl2/smtpd.conf添加如下内容:pwcheck_method: saslauthdmech_list: PLAIN LOGIN5、重启sasl服务,使其读取smtpd.conf这一配置文件# service saslauthd restart6、测试是否支持SASL# postconf -a其中出现:cyrus,表明支持SASL7、编辑postfix的配置文件,添加以下内容# vim /etc/postfix/main.cf############################CYRUS-SASL############################broken_sasl_auth_clients = yessmtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,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_destinationsmtpd_sasl_auth_enable = yessmtpd_sasl_local_domain = $myhostnamesmtpd_sasl_security_options = noanonymoussmtpd_sasl_path = smtpdsmtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!释义:broken_sasl_auth_clients = yes是否启用客户端sasl验证smtpd_recipient_restrictions=permit_mynetworks允许本地网络permit_sasl_authenticated允许sasl验证通过的用户reject_invalid_hostname拒绝主机名不合法的用户reject_non_fqdn_hostname拒绝主机名不是fqdn格式的用户reject_unknown_sender_domain拒绝无法识别的发件人域reject_non_fqdn_sender拒绝不是fqdn格式的发件人reject_non_fqdn_recipient拒绝没有fqdn格式的发件人reject_unknown_recipient_domain拒绝无法识别的收件人域reject_unauth_pipelining拒绝无法验证的管道reject_unauth_destination拒绝非本域的收件人smtpd_sasl_auth_enable = yes启用sasl认证功能smtpd_sasl_local_domain = $myhostname本地主机不用认证smtpd_sasl_security_options = noanonymous不主持匿名用户smtpd_sasl_path = smtpdsmtpd要使用sasl功能smtpd_banner =显示欢迎信息 为了显示效果,修改如下mynetworks = 127.0.0.0/87、重启服务,可以测试![root@mail ~]# service postfix restart8、注意:用户认证需要生成需要将用户名和密码转换为base64[root@mail ~]# echo -n "hadoop" | openssl base64[root@mail ~]# echo -n "123456" | openssl base64
测试:
测试结果:[root@mail ~]# telnet localhost 25Trying ::1...telnet: connect to address ::1: Connection refusedTrying 127.0.0.1...Connected to localhost.Escape character is '^]'.220 Welcome to our mail.fsy.com ESMTP,Warning: Version not Available!auth login334 VXNlcm5hbWU6aGFkb29w334 UGFzc3dvcmQ6MTIzNDU2235 2.7.0 Authentication successfulmail from:hadoop@fsy.com250 2.1.0 Okrcpt to:hello@aol.com250 2.1.5 Okdata354 End data with <CR><LF>.<CR><LF>hello hao are you.250 2.0.0 Ok: queued as 76B841FDE5quit 221 2.0.0 ByeConnection closed by foreign host.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  postfix dovecot sasl