邮件服务器(三)——centos6.5安装配置dovecot并实现sasl认证功能

一.安装配置dovecot

1.dovecot简介

Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持四种协议:pop3(110/tcp), imap4(143/tcp), pop3s, imaps。POP / IMAP 是 MUA 从邮件服务器中读取邮件时使用的协议。其中,与 POP3 是从邮件服务器中下载邮件存起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。

2.安装dovecot

# yum install dovecot -y

3.配置dovecot

# vim /etc/dovecot.conf

启用并修改以下参数

protocols = imap pop3

4.启动服务并让其开机自启动

# service dovecot start
# chkconfig dovecot on

二.为postfix开启基于cyrus-sasl的认证功能
1.启动sasl服务并让其开机自启动

# vim /etc/sysconfig/saslauthd

修改sasl服务配置文件,将sasl认证机制修改为shadow

MECH=shadow

注:saslauthd -v: 显示当前主机saslauthd服务所支持的认证机制,默认为pam

# service saslauthd start
# chkconfig saslauthd on

2.测试是否能实现用户认证

# testsaslauthd -u username -p password

3.实现postfix基于客户端的访问控制
1)、基于客户端的访问控制概览
postfix内置了多种反垃圾邮件的机制,其中就包括“客户端”发送邮件限制。客户端判别机制可以设定一系列客户信息的判别条件:
smtpd_client_restrictions:定义客户端连接限定
smtpd_data_restrictions:定义是否允许发送数据(即data阶段)
smtpd_helo_restrictions:定义是否允许发送hello信息(即helo阶段)
smtpd_recipient_restrictions:定义是否允许向谁发送邮件(即rcpt to阶段)
smtpd_sender_restrictions:定义是否允许谁向外发送邮件(即mail from阶段)

上面的每一项参数分别用于检查SMTP会话过程中的特定阶段,即客户端提供相应信息的阶段,如当客户端发起连接请求时,postfix就可以根据配置文件中定义的smtpd_client_restrictions参数来判别此客户端IP的访问权限。相应地,smtpd_helo_restrictions则用于根据用户的helo信息判别客户端的访问能力等等。

如果DATA命令之前的所有内容都被接受,客户端接着就可以开始传送邮件内容了。邮件内容通常由两部分组成,前半部分是标题(header),其可以由header_check过滤,后半部分是邮件正文(body),其可以由check_body过滤。这两项实现的是邮件“内容检查”。

postfix的默认配置如下:
smtpd_client_restrictions =
smtpd_data_restrictions =
smtpd_end_of_data_restrictions =
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_sender_restrictions =
这限制了只有mynetworks参数中定义的本地网络中的客户端才能通过postfix转发邮件,其它客户端则不被允许,从而关闭了开放式中继(open relay)的功能。

Postfix有多个内置的限制条件,如上面的permit_mynetworks和reject_unauth_destination,但管理员也可以使用访问表(access map)来自定义限制条件。自定义访问表的条件通常使用check_client_access, check_helo_access, check_sender_access, check_recipient_access进行,它们后面通常跟上type:mapname格式的访问表类型和名称。其中,check_sender_access和check_recipient_access用来检查客户端提供的邮件地址,因此,其访问表中可以使用完整的邮件地址,如[email protected];也可以只使用域名,如magedu.com;还可以只有用户名的部分,如[email protected]。

2)、实现示例1
这里以禁止172.16.100.200这台主机通过工作在172.16.100.1上的postfix服务发送邮件为例演示说明其实现过程。访问表使用hash的格式。

(1)首先,编辑/etc/postfix/access文件,以之做为客户端检查的控制文件,在里面定义如下一行:
172.16.100.200        REJECT

(2)将此文件转换为hash格式

# postmap /etc/postfix/access

(3)配置postfix使用此文件对客户端进行检查
编辑/etc/postfix/main.cf文件,添加如下参数:
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access

(4)让postfix重新载入配置文件即可进行发信控制的效果测试了。

3)、实现示例2
这里以禁止通过本服务器向microsoft.com域发送邮件为例演示其实现过程。访问表使用hash的格式。
(1)首先,建立/etc/postfix/denydstdomains文件(文件名任取),在里面定义如下一行:
microsoft.com        REJECT

(2)将此文件转换为hash格式

# postmap /etc/postfix/denydstdomains

(3)配置postfix使用此文件对客户端进行检查
编辑/etc/postfix/main.cf文件,添加如下参数:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/denydstdomains, permit_mynetworks, reject_unauth_destination(顺序对结果会有影响)

(4)让postfix重新载入配置文件即可进行发信控制的效果测试了。

4)、检查表格式的说明
hash类的检查表都使用类似如下的格式:
pattern   action

检查表文件中,空白行、仅包含空白字符的行和以#开头的行都会被忽略。以空白字符开头后跟其它非空白字符的行会被认为是前一行的延续,是一行的组成部分。

(1)关于pattern
其pattern通常有两类地址:邮件地址和主机名称/地址。

邮件地址的pattern格式如下:
[email protected]  用于匹配指定邮件地址;
domain.tld   用于匹配以此域名作为邮件地址中的域名部分的所有邮件地址;
[email protected]              用于匹配以此作为邮件地址中的用户名部分的所有邮件地址;

主机名称/地址的pattern格式如下:
domain.tld   用于匹配指定域及其子域内的所有主机;
.domain.tld   用于匹配指定域的子域内的所有主机;
net.work.addr.ess
net.work.addr
net.work
net        用于匹配特定的IP地址或网络内的所有主机;
network/mask  CIDR格式,匹配指定网络内的所有主机;

(2)关于action
接受类的动作:
OK   接受其pattern匹配的邮件地址或主机名称/地址;
全部由数字组成的action   隐式表示OK;

拒绝类的动作(部分):
4NN text
5NN text
    其中4NN类表示过一会儿重试;5NN类表示严重错误,将停止重试邮件发送;421和521对于postfix来说有特殊意义,尽量不要自定义这两个代码;
REJECT optional text...   拒绝;text为可选信息;
DEFER optional text...    拒绝;text为可选信息;

4.为postfix开启基于cyrus-sasl的认证功能
使用以下命令验正postfix是否支持cyrus风格的sasl认证,如果您的输出为以下结果,则是支持的:
# /usr/local/postfix/sbin/postconf  -a
cyrus
dovecot

# vim /etc/postfix/main.cf

添加以下内容:
############################CYRUS-SASL############################
broken_sasl_auth_clients = yes:是否通过sasl验证客户端身份
smtpd_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_destination
smtpd_sasl_auth_enable = yes:启用sasl认证功能
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous:不支持匿名用户
smtpd_sasl_application_name = smtpd:哪一个应用程序使用sasl功能(2.3版本以后已废弃,改用smtpd_sasl_path = smtpd)
smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!:telnet连接时显示信息

# vim /usr/lib/sasl2/smtpd.conf

添加如下内容:
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

让postfix重新加载配置文件

#/usr/sbin/postfix reload
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]‘.
220 Welcome to our mail.magedu.com ESMTP,Warning: Version not Available!
ehlo mail.magedu.com
250-mail.magedu.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN               (请确保您的输出以类似两行)
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
时间: 2024-10-12 17:01:52

邮件服务器(三)——centos6.5安装配置dovecot并实现sasl认证功能的相关文章

烂泥:Postfix邮件服务器搭建之软件安装与配置

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postfix.dovecot.postfixadmin.roundcubemail,只有这几个软件相互配合才能搭建一套完整的邮件服务器. PS:本次实验在centos6.5 64bit上进行. 一.软件功能介绍 cyrus-sasl.postfix.dovecot.postfixadmin.roundcub

烂泥:Postfix邮件服务器搭建之虚拟用户配置

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 在前一篇文章<烂泥:Postfix邮件服务器搭建之软件安装与配置>中,我们介绍了psotfix邮件服务器搭建所需要的软件,以及各个软件的基本配置. 目前已经达到了通过系统用户可以登录到postfix邮件服务器,但是为了管理的方便和系统安全,我们一般是通过postfix的虚拟用户来管理邮件用户的. Postfix虚拟用户的原理是,先在系统中创建一个用户,该用户不能登录到系统,然后把邮件

Centos6.5安装配置Mantisbt

Centos6.5安装配置Mantisbt 一.安装配置Apache 1.1.安装依赖包(APR,APR-UTIL,pcre) tar -zxf apr-1.4.5.tar.gz[[email protected] apr-1.4.5]# ./configure --prefix=/usr/local/apr[[email protected] apr-1.4.5]# make[[email protected] apr-1.4.5]# make install [[email protecte

Centos6.5安装配置Cloudera Manager CDH5.6.0 Hadoop

环境规划操作系统版本:CentOS-6.5-x86_64-minimal.iso 192.168.253.241    master   虚拟机4G内存192.168.253.242    slave1    虚拟机2G内存192.168.253.243    slave2    虚拟机2G内存 一.环境初始化1.修改主机名(每台机器都执行) 192.168.253.241    master 192.168.253.242    slave1 192.168.253.243    slave2

[转]Centos6.5安装配置keepalived

参考博文: Centos6.5安装配置keepalived CentOS6.5 keepalived详解及实现Nginx服务的高可用性 CentOS6.5 LVS + KeepAlived搭建步骤 我采用yum 方式  直接安装  版本为1.2.13 # yum -y install keepalived global_defs { #全局定义 notification_email { #定义邮件提醒 一行一个 多个人写多行 acassen@firewall.loc failover@firew

CentOS6.5安装配置Samba

CentOS6.5安装配置Samba 本文的场景是虚拟机运行CentOS6.5,本机是Win7,现欲把CentOS上的一个文件夹共享出来,Win的机器可以读写. Samba与window连接需要使用NetBIOS协议,请确认你的Win7系统已经安装了NetBIOS协议. 组成Samba运行的有两个服务,一个是SMB,另一个是NMB:SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务

34. CentOS-6.3安装配置Apache2.2.6

安装说明 安装环境:CentOS-6.3安装方式:源码编译安装 软件:httpd-2.2.6.tar.gz  | pcre-8.32.tar.gz | apr-1.4.6.tar.gz | apr-util-1.5.1.tar.gz下载地址:http://mirror.bjtu.edu.cn/apache/httpd/http://apr.apache.org/download.cgihttp://jaist.dl.sourceforge.net/project/pcre/pcre安装位置:/u

Linux环境CentOS6.9安装配置Elasticsearch6.2.2最全详细教程

Linux环境CentOS6.9安装配置Elasticsearch6.2.2最全详细教程 前言 第一步:下载Elasticsearch6.2.2 第二步:创建应用程序目录 第四步:创建Elasticsearch用户和所在组 第五步:更改解压的Elasticsearch应用所属用户及组 第六步:执行脚本添加可执行权限 第八步:启动 前言 操作系统版本:CentOS6.9 64位(CentOS7及其他Linux系统都没有问题) Elasticsearch版本:6.2.2 这里默认你已经安装配置好了J

CentOS-6.5安装配置Tomcat-7

https://my.oschina.net/u/593517/blog/304483 http://blog.csdn.net/lgh0824/article/details/51194116 摘要: CentOS-6.5安装配置Tomcat-7 安装说明 安装环境:CentOS-6.3安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz下载地址:http://tomcat.apache.org/download-70.cgi 安装前提 系统必须已经安装配置了JDK