postfix+sasl+dovecot

一、邮件服务依赖于DNS服务,所以先配置一个DNS服务器(我的地址是10.0.146.18)

1.修改主机名

# hostname mail.fsy.com

# vim /etc/hostname

修改为:mail.fsy.com

2.安装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      mail

ns              IN      A       10.0.146.18

mail            IN      A       10.0.146.18

www           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.zone

6.重启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 -s

1.解压

# tar xf postfix-2.10.10.tar.gz

# cd postfix-2.10.10

2.建立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 postdrop

3.安装所需软件包

# yum -y install cyrus-sasl-devel

# yum -y install gcc

# yum install db*-devel

4.安装

#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.10

config_directory: [] /etc/postfix

command_directory: [] /usr/sbin

daemon_directory: [] /usr/libexec/postfix

data_directory: [] /var/lib/postfix

html_directory: [] no

mail_owner: [] postfix

mailq_path: [] /usr/bin/mailq.postfix

manpage_directory: [] /usr/share/man

newaliases_path: []/usr/bin/newaliases.postfix

queue_directory: [] /var/spool/postfix

readme_directory: [] /usr/share/doc/postfix-2.6.6/README_FILES

sendmail_path: [] /usr/sbin/sendmail.postfix

setgid_group: [] postdrop

5、生成aliases.db文件

# newaliases

# ls /etc/aliases.db

6、修改配置文件

# cd /etc/postfix/

# vim main.cf

mynetworks = 192.168.182.0/24, 127.0.0.0/8(定义给哪些网段中继邮件)

myhostname = mail.fsy.com(定义主机名)

myorigin = $mydomain

mydomain = fsy.com

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,

ns.$mydomain

inet_interfaces = all监听的ip地址

说明:

mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问

myhostname 参数指定运行postfix邮件系统的主机的主机名,默认情况下,其值被设定为本地机器名;

myorigin参数用来指明发件人所在的域名,即做发件地址伪装;

mydomain 参数指定您的域名,默认情况下,postfix将myhostname的第一部分删除而作为mydomain的值;

mydestination参数指定postfix接收邮件时收件人的域名,即您的postfix系统要接收到哪个域名的邮件;

5.现在即可启动测试了(此处可能遇到服务无法启动,看日志)

#  service postfix restart

此时可使用本地用户测试邮件收发了

四、安装dovecot,实现收邮件

1.安装:

# yum -y install dovecot

2.修改配置文件

# vim /etc/dovecot/dovecot.conf ,修改以下内容

protocols = pop3 imap lmtp

login_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/%u

mbox_write_locks = fcntl

3.创建用户,并且在用户家目录下创建mail/.imap/INBOX

mkdir -p mail/.imap/INBOX

4.启动服务,并将其添加至服务列表中

# service dovecot start

# chkconfig dovecot on

5.可以测试使用了

如:# telnet mail.fsy.com 110

Trying 10.0.146.18...

Connected to mail.fsy.com.

Escape character is ‘^]‘.

+OK Dovecot ready.

user openstack

+OK

pass 123456

+OK Logged in.

LIST

+OK 5 messages:

1 283

2 276

3 278

4 278

5 281

.

retr 2

五、配置SASL (此时我的系统上有一个用户hadoop,密码为:123456)

1.、编辑配置文件

# vim /etc/sysconfig/saslauthd

MECH=shadow

2、启动sasl服务,并使其开机自动启动

# service saslauthd start

# chkconfig saslauthd on

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

3、测试命令进行测试

# testsaslauthd -u hadoop -p 123456

4、说明基于哪种方式实现认证

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

添加如下内容:

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

5、重启sasl服务,使其读取smtpd.conf这一配置文件

# service saslauthd restart

6、测试是否支持SASL

# postconf -a

其中出现:cyrus,表明支持SASL

7、编辑postfix的配置文件,添加以下内容

# vim /etc/postfix/main.cf

############################CYRUS-SASL############################

broken_sasl_auth_clients = yes

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

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_security_options = noanonymous

smtpd_sasl_path = smtpd

smtpd_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/8

7、重启服务,可以测试!

[[email protected] ~]# service postfix restart

8、注意:用户认证需要生成需要将用户名和密码转换为base64

[[email protected] ~]# echo -n "hadoop" | openssl base64

[[email protected] ~]# echo -n "123456" | openssl base64

测试:

测试结果:

[[email protected] ~]# telnet localhost 25

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is ‘^]‘.

220 Welcome to our mail.fsy.com ESMTP,Warning: Version not Available!

auth login

334 VXNlcm5hbWU6

aGFkb29w

334 UGFzc3dvcmQ6

MTIzNDU2

235 2.7.0 Authentication successful

mail from:[email protected]

250 2.1.0 Ok

rcpt to:[email protected]

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

hello hao are you

.

250 2.0.0 Ok: queued as 76B841FDE5

quit

221 2.0.0 Bye

Connection closed by foreign host.

时间: 2024-12-12 02:59:55

postfix+sasl+dovecot的相关文章

邮件服务Postfix+Sasl+Dovecot

环境: DNS:192.168.200.100 mail:192.168.200.101 Bind服务配置 安装Bind软件包. yum install -y bind Bind配置文件. vim /etc/named.conf 12 options { 13         listen-on port 53 { 192.168.200.100; }; 14         listen-on-v6 port 53 { ::1; }; 15         directory       "/

CentOS7.0下部署Postfix Sasl Dovecot Openwebmail服务(唐杰)

http://note.youdao.com/noteshare?id=3249001a4c4fd024545581f0284e82c5

dnsmasq+postfix+sasl+tls+dovecot(邮件服务器)

dnsmasq(DNS解析) postfix(邮件发送服务器) sasl(smtp认证) tls(加密) dovecot(邮件接收服务器) 一.基础环境 1.内核 cat /etc/debian_version  7.8 2.版本 uname -r 3.2.0-4-amd64 3.IP(eth0) serverA 10.1.10.185 dnsmasq postfix sasl tls dovecot clientB 10.1.10.117 clientC 10.1.10.131(windows

centos下 postfix + extmail + dovecot + maildrop 安装笔记2014更新

本文最初是2008年发表的,最近几天照此笔记又安装了一遍系统,这里更新一下记录. 作者:wangdy 安装环境是CentOS 6.5,拿到服务器的时候只有根目录的分区.邮件准备存储到 /var/mailbox 下.有条件的建议对 /var/spool/postfix 和 /var/vmail 进行了单独分区. /var/spool/postfix 是postfix存储队列的地方, /var/vmail 是用来存储邮件的. CentOS提供了很方便的yum在线安装,我的基本原则是非重要.对版本不敏

postfix+extmail+dovecot+ courier-authlib 实现公网邮件服务器

Postfix+extmail+dovecot+ courier-authlib 实现公网邮件服务器 系统环境: Centos 6.5 x64 准备工作:关 selinux .iptables 基于: lnmp 环境 先安装 epel  yum源 : Rpm -ivh  epel-release-6-8.noarch.rpm 安装所需rpm包: 为了方便,yum安装的php.mysql yum -y install vim gcc gcc-c++ openssl openssl-devel db

Linux+postfix+extmail+dovecot打造基于web页面的邮件系统

Linux+postfix+extmail+dovecot打造基于web页面的邮件系统 linuxwebmysqlapacheredhat数据库服务器 Linux+postfix+extmail+dovecot打造基于web页面的邮件系统 最终效果图: 准备阶段:需要手动下载的软件包: postfix-2.6.5.tar.gz courier-authlib-0.62.4.tar.bz2 eextmail-1.2.tar.gz xtman-1.1.tar.gz Time-HiRes-1.9707

Linux与云计算——第二阶段Linux服务器架设 第九章:Mail电子邮件服务器架设—postfix和Dovecot

Linux与云计算--第二阶段Linux服务器架设 第九章:Mail电子邮件服务器架设-postfix和Dovecot 安装Postfix 安装Postfix来配置SMTP服务器. SMTP使用25/TCP. [1] Postfix 是CentOS系统默认安装,哪怕你选择了最小安装,如果确认没有安装,请先安装. [[email protected] ~]# yum -y install postfix [2] 使用Dovecot's SASL 来配置SMTP认证. [[email protect

Postfix+courier-authlib+dovecot+Extmail与Extman邮箱系统

Postfix+courier-authlib+dovecot+Extmail与Extman实现web服务的邮件服务器 一.环境准备 1. 系统环境 centos7.x Linux mail.apicloud.com 3.10.0-862.3.3.el7.x86_64 #1 SMP Fri Jun 15 04:15:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 2. 软件环境 #删除自带的Postfix软件 yum remove postfix #yum 

搭建 Postfix、Dovecot 邮件服务

搭建 Postfix.Dovecot 邮件服务 准备域名 任务时间:15min ~ 20min 域名注册 如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频. 视频 - 在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为: <您的 CVM IP 地址> 在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频: 视频 - 如何在腾讯云上解析域名 完成该实验共需要添加两条记录: A 记录 记录类型:A 主机记录:@ 记录值:&