带smtp认证的postfix配置

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情


环境:RedHat Linux+Postfix+Cyrus-sasl+Dovecot+Stunnel

在安装Linux时,如果选择全部安装的话,Postfix与Dovecot以及Stunnel将会自动给予安装上去,查看是否已安装,可以执行如下命令:

rpm –qa | grep postfix或dovecot或stunnel

如果没有的话,请直接在光盘里找出来,并给予安装。这里以RPM包安装为列,安装命令如下: rpm –ivh postfix-*.rpm   或

rpm –ivh cyrus-sasl-*.rpm 或

rpm –ivh dovecot-*.rpm 或

rpm-ivh stunnel-*.rpm 这里的*代表的是相关的版本号。

在确认这些安装包已安装到系统里后,现在开始配置Mail服务。

首先,请停止系统内自带的Mail服务-Sendmail,执行如下命令: /etc/init.d/sendmail stop       //先停止sendmail进程

chkconfig sendmail off        //再把自启动服务去掉 

一:配置Cyrus-sasl

确定已安装完Cyrus-sasl后,启动该服务: /etc/init.d/saslauthd start //启动Cyrus-sasl服务。

chkconfig saslauthd on //把Cyrus-sasl设置为开机自启动。 测试一下是否成功: testsaslauthd –u 系统用户名 –p ‘对应的密码’或

/usr/sbin/testsaslauthd –u 系统用户名 –p ‘对应的密码’



如果提示:

0: OK "Success."

则说明已安装成功!

注:Cyrus-sasl的功能就是实现密码验证机制。

二:配置SMTP

现在,开始配置Postfix,Postfix的功能就是实现SMTP服务,也即信件发送服务。Postfix的主要配置文档是/etc/postfix/main.cf,如果没看到mail.cf文档则请执行: cp /etc/postfix/main.cf.default /etc/postfix/main.cf 然后修改main.cf的相关内容。具体内容如下: alias_database = hash:/etc/aliases

alias_maps = hash:/etc/aliases

command_directory = /usr/sbin

config_directory = /etc/postfix

daemon_directory = /usr/libexec/postfix

debug_peer_level = 2

header_checks = regexp:/etc/postfix/header_checks

html_directory = no

mailbox_size_limit = 102400000

mailq_path = /usr/bin/mailq.postfix

manpage_directory = /usr/share/man

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

mydomain = 域名

myhostname = mail.域名

mynetworks = 192.168.1.0/24, 127.0.0.0/8, 192.168.1.100/32

myorigin = $mydomain

newaliases_path = /usr/bin/newaliases.postfix

readme_directory = /usr/share/doc/postfix-1.1.11/README_FILES

relay_domains = nanoconcept.net

sample_directory = /usr/share/doc/postfix-1.1.11/samples

sendmail_path = /usr/sbin/sendmail.postfix

setgid_group = postdrop

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain= ''

smtpd_recipient_restrictions =

permit_sasl_authenticated

permit_auth_destination

permit_mynetworks

check_relay_domain

reject_rbl_client yahoo.com.tw

reject_rbl_client cbl.anti-spam.org.cn

reject_rbl_client cdl.anti-spam.org.cn

reject_rbl_client cblplus.anti-spam.org.cn

reject_non_fqdn_sender

reject_non_fqdn_recipient

reject_unknown_sender_domain

reject_unknown_recipient_domain

reject

broken_sasl_auth_clients = yes

smtpd_client_restrictions = permit_sasl_authenticated

smtpd_recipient_restrictions = permit_sasl_authenticated

smtpd_sasl_security_options=noanonymous

unknown_local_recipient_reject_code = 550



Postfix配置文件默认情况下,没有启用SMTP认证机制,所以,需要修改postfix的主配置main.cf文件,也即上面以smtpd开头的,这些就是实现SMTP功能的配置内容!

现在可以启动postfix服务: /etc/init.d/postfix start        //启动postfix服务

chkconfig postfix on//设置postfix开机自启动。 

可以通过netstat –ntl进行查看SMTP的端口(25)是否起来。

然后就可以进行测试是否能发信,如果不行的话,请查看一下:

/usr/lib/sasl2下是否存在着smtpd.conf与Sendmail.conf两个文件,其内容为: 

[root@xtmail sasl2]# cat Sendmail.conf

pwcheck_method:saslauthd

与:

[root@xtmail sasl2]# cat smtpd.conf

pwcheck_method: saslauthd 

但有时候,Postfix无法自动找到saslauthd的路径,所以需要在smtpd.conf里添加一条: 

saslauthd_path:/var/run/saslauthd/mux 

三:配置POP3

Dovecot的功能就是实现收信功能,即POP3功能。在安装Dovecot的RPM包后,Dovecot的配置文件是在/etc/下的dovecot.conf

为了能让Dovecot正常使用,需要修改一下dovecot.conf的些配置。具体如下: 

protocols = pop3

pop3_listen = [::]

login = imap

login = pop3

mbox_locks = fcntl

auth = default

auth_mechanisms = plain

auth_userdb = passwd

auth_user = root 

完后,请运行以下命令: /etc/init.d/dovecot start //启动Dovecot服务

chkconfig dovecot on //设置开机自启动 四:端口加密

现在就把一台具有SMTP与POP3功能的邮局配置完毕。当然了,这台只具备简单的SMTP与POP3功能的邮局,现在要对其进行端口加密。也就是提到的 Stunnel。Stunnel的配置文件是在/etc/stunnel/stunnel.conf,里面已有SMTP与POP3的进行端口加密。一般只要直接启动起来就可以了。具体形式如下:

/etc/init.d/stunnel //启动stunnel

如果是用tar.gz进行编译的话,有时在启动stunnel时,需要带上stunnel.conf的绝对路径!

五:检查端口是否正常开启

现在一套完整的Postfix邮局已配置完毕,可以投入正常使用。可以通过 netstat –ntl进行查看到25、110、465、995这几个端口的存在。其中25端口加密后就是465,110加密后就是995,110端口只是一个与客户端连接的,可以禁止掉。25端口不可以屏蔽掉,因为Mail服务器之间在互相传输时,还是使用25端口的。


在介绍如何配置Postfix的smtp配置之前有必要首先介绍一下它的背景和特点。 
Postfix是一个由IBM资助下由Wietse Venema负责开发的自由软件工程的一个产物,其目的是为用户提供除sendmail之外的邮件服务器选择。Postfix力图做到快速、易于管理、提供尽可能的安全性,同时尽量做到和sendmail邮件服务器保持兼容性以满足用户的使用习惯。起初,Postfix是以VMailer这个名字发布的,后来由于商标上的原因改名为Postfix。 

Postfix工程的目标是实现一个邮件服务器,提供给用户除sendmail以外的选择。其设计目标包括: 

性能 
Postfix要比同类的服务器产品速度快三倍以上,一个安装Postfix的台式机一天可以收发百万封信件。Postfix设计中采用了web服务器的的设计技巧以减少进程创建开销,并且采用了其他的一些文件访问优化技术以提高效率,但同时保证了软件的可靠性。 

兼容性 
Postfix设计时考虑了保持Sendmail的兼容性问题,以使移植变的更加容易。Postfix支持/var[/spool]/mail, /etc/aliases, NIS, 及 ~/.forward等文件。然而Postfix为保证管理的简单性,所以没有支持配置文件sendmail.cf。 

安全和健壮性 
Postfix设计上实现了程序在过量负载情况下仍然保证程序的可靠性。当出现本地文件系统没有可用空间或没有可用内存的情况时,Postfix就会自动放弃,而不是重试使情况变的更糟。 

灵活性 
Postfix结构上由十多个小的子模块组成,每个子模块完成特定的任务,如通过SMTP协议接收一个消息,发送一个消息,本地传递一个消息,重写一个地址等等。当出现特定的需求时,可以用新版本的模块来替代老的模块,而不需要更新整个程序。而且它也很容易实现关闭某个功能。 

安全性 
Postfix使用多层防护措施防范攻击者来保护本地系统,几乎每一个Postfix守护进程都能运行在固定低权限的chroot之下,在网络和安全敏感的本地投递程序之间没有直接的路径—一个攻击者必须首先突破若干个其他的程序,才有可能访问本地系统。Postfix甚至不绝对信任自己的队列文件或IPC消息中的内容以防止被欺骗。Postfix在输出发送者提供的消息之前会首先过滤消息。而且Postfix程序没有set-uid。 

Postfix的一些特点 

支持多传输域:sendmai支持在Internet, DECnet, X.400及UUCP之间转发消息。Postfix则灵活的设计为无须虚拟域(vistual domain)或别名来实现这种转发。但是在早期的发布里仅仅支持STMP和有限度地支持UUCP,但对于我国用户来说,多传输域的支持没有什么意义。 

虚拟域:在大多数通用情况下,增加对一个虚拟域的支持仅仅需要改变一个Postfix查找信息表。其他的邮件服务器则通常需要多个级别的别名或重定向来获得这样的效果。 

UCE控制(UCE,unsolicited commercial email): Postfix能限制哪个主机允许通过自身转发邮件,并且支持限定什么邮件允许接进。Postfix实现通常的控制功能:黑名单列表、RBL查找、HELO/发送者DNS核实。基于内容过滤当前没有实现。 

表查看: Postfix没有实现地址重写语言,而是使用了一种扩展的表查看来实现地址重写功能。表可以是本地dbm或 db文件等格式。 

好,下面就来看看具体的配置过程: 

版本 

redhat 6.2 
cyrus-sasl-1.5.24 snapshot-20010329 

下载:http://ftp.cnuol.com 

步骤: 

1.安装sasl 

#./configure --enable-login --with-pwcheck;make;make install 
#echo /usr/local/lib>>/etc/ld.so.conf 
#echo /usr/local/lib/sasl >> /etc/ld.so.conf 
# ldconfig 

2.安装postfix 

# make tidy 
# make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include" AUXLIBS="-L/usr/local/lib -lsasl" 
# make 
# adduser -s /bin/false postfix 
# make install 

3.修改postfix的cf文件使支持smtp认证 

在/etc/postfix/main.cf文件最后加上: 
smtpd_sasl_auth_enable = yes 
smtpd_delay_reject=yes 
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated permit_auth_destination reject 
smtpd_client_restrictions = permit_sasl_authenticated broken_sasl_auth_clients = yes 
smtpd_sasl_security_options = noanonymous 

这样用户的postfix就支持smtp认证了。Postfix其余的配置请参考/etc/postfix/main.cf.default和sample-*文件,这里不多说了。 

现在telnet 25口应该有下面的提示 

$telnet 127.0.0.1 25 

Trying 127.0.0.1... 
Connected to 127.0.0.1. 
Escape character is ^]. 

220 mailx.bjcnuol.com ESMTP Postfix 
ehlo 127.0.0.1 
250-mailx.bjcnuol.com 
250-PIPELINING 
250-SIZE 10240000 
250-ETRN 
250-AUTH LOGIN PLAIN 
250-AUTH=LOGIN PLAIN 
如果有就差不多成功了。 

4.配置sasl使支持smtp认证 

# touch /usr/local/lib/sasl/smtpd.conf 
# echo pwcheck_method:shadow >> /usr/local/lib/sasl/smtpd.conf 

5.设置口令文件权限 

因为postfix用户无权读取/etc/shadow所以必须把shadow文件的权限改成postfix,这不能不说是一个缺陷,如果你觉得不安全,你可以将认证方式该为sasldb的方式,但是这样需要额外创建用户和口令不能和邮件用户的口令保持一致修改口令也不方便。此外还可以用pwcheck守护进程,但我没试出来感兴趣的朋友可以试试,如果成功了别忘了告诉我。 


6.配置OE5 

1.)打开你的Outlook Express,修改你的账号属性,在服务器选项,选取我的smtp服务器需要认证选项, 
然后进入配置。 

2.)不要选取安全口令认证,postfix并不支持这个选项。是选取使用pop3同样的口令还是选择另外输入用户密码,这就看你的爱好和设置了,这不是关键。如果你在服务器上有一个真实账号,不妨选取使用同样的口令,如果没有账号,选用其他的用户口令同样可以。 

7.启动和关闭postfix 

启动 postfix start 
关闭 postfix stop 

你可以把postfix start放到/etc/rc.d/rc.local文件的最后用来每次重起后自动启动postfix. 

Shell:用postfix发送邮件到QQ邮箱 文章目录1、开启 QQ 邮箱的 的 SMTP , 获取授权码2、关闭sendmial服务3、开启postfix服务4、创建认证5、配置mail.rc6、测试7、发送一个不附件的邮件到QQ邮箱8、发送一个附件的邮件到QQ邮箱 1、开启 QQ 邮箱的 的 SMTP , 获取授权码 2、关闭sendmial服务 我的虚拟机没有这个服务 [root@vm01 ~]# service sendmai... 阅读详情

相关推荐

配置smtp发信认证

5.配置SMTP发信认证 问题 沿用练习一、二、三,根据现有的Postfix服务配置,基本上任何人都可以连接到邮件服务器,随意提交电子邮件。为了提高邮件系统的安全性、减少垃圾邮件,本案例要求针对SMTP发信功能开启认证限制。 需要完成的配置任务如下: 1)启用saslauthd 认证服务 2)调整postfix 服务配置,添加相关认证设置 3)测试SMTP发信认证 方案 RHEL6系统自了S...

iT__SuperMan的博客 2618

邮件服务器

邮件服务器 邮件服务器的功能与运作原理:他是利用网络传递一些信息给远程服务器的一种信息传递行为,相当具有时效性,不过现在有很多人乱用,导致垃圾信件,色情,广告信件等等 的滥用,时至今日,Google和几个大型的网络公司都有提供免费或者付费的邮件服务器,除非必要,不建议去架设mail server,因为搞定它十分的难,除了目前网络社会的垃圾 信件太多,所以各个主要的ISP对于邮件控管上面越来越

daiyuntao841226的专栏 9972

配置SMTP发信认证

问题 沿用练习一、二、三,根据现有的Postfix服务配置,基本上任何人都可以连接到邮件服务器,随意提交电子邮件。为了提高邮件系统的安全性、减少垃圾邮件,本案例要求针对SMTP发信功能开启认证限制。 需要完成的配置任务如下: 启用saslauthd 认证服务 调整postfix 服务配置,添加相关认证设置 测试SMTP发信认证 方案 RHEL6系统自SASL(Simple Authe...

d_x_p_152265的博客 2781

postfix smtp 拒绝接受不存在的收件人地址信

postconf -e smtpd_recipient_restrictions="permit_mynetworks,reject_unauth_destination,reject_unknown_recipient_domain"测试发现上现这个写法并没有起到我想要的作用,可能是规则应用逻辑上不是我理解的那样会把所有的规则检测一次,而是在某个规则适合了就终止检测了.所以需要写成下面的写法,因

我的笔记 8769

邮件服务系列(三)

邮件服务系列之postfix常用配置SMTP --> SMTPS ESMTP POP3: 邮局协议 IMAP4: Internet Mail Access ProtocolSASL: Simple Authentication Secure Layer v1, v2MDA: 邮件投递代理 procmail, maildropMUA: mutt, mailtom@a.org --> c

yongchaocsdn的博客 2168

邮件服务器-postfix服务器

Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件。 sendmail由于出现的比较早,但是各方面的问题也比较突出,postfix就是为了替代sendmail的缺点而出现的,postfix 邮件服务器的优点很明显: 开源的,要知道开源的即是免费的 速度更快,比sendmail×××倍 兼容

萌兔兔MMQ!! 4189

Postfix开启内网SMTP认证

在我配置Postfix后,发现内网发信时无需认证,外网则一切正常。经检查为此项配置中的问题: smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domai

kepa520的博客 1272

mail 465邮件配置

1.开启QQ邮箱SMTP服务 然后点击图片右下角生成授权码 ,获取到授权码 2.停止服务 此操作是在root用户下进行 [root@hadoop000 ~]# service sendmail stop Redirecting to /bin/systemctl stop sendmail.service Failed to stop sendmail.service: Unit sendma...

cllblogs 1234

postfix中实现基于cyrus-saslSMTP认证

前言:    postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。下面一段话摘自postfix的官方站点(http://www.postfix.org):“postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户

fireman 4572

LINUX 配置SMTP发信认证

问题 沿用练习一、二、三,根据现有的Postfix服务配置,基本上任何人都可以连接到邮件服务器,随意提交电子邮件。为了提高邮件系统的安全性、减少垃圾邮件,本案例要求针对SMTP发信功能开启认证限制。 需要完成的配置任务如下: 1)启用saslauthd 认证服务 2)调整postfix 服务配置,添加相关认证设置 3)测试SMTP发信认证 方案 RHEL6系统自SASL(Simple Auth...

LYJ_man的博客 1727

关于postfixsmtp认证

http://blog.sina.com.cn/s/blog_5f2a24070100kqkg.html SASL的验证框架 SASL的验证框架大致如下: 支持SASL服务器端(比如postfixsmtpd这个daemon)监听网络连接 客户端连接应用并发起认证过程:客户端选择一个SMTP AUTH的机制,并根据这个机制准备相应的凭证,然后把它选择的机制和相应的凭证发给服务器 ...

sujin的博客 4376

Postfix部署【5】认证配置

文章目录一、Postfix+Dovecot+Sasl 工作原理二、Postfix+SASL 进行用户发邮件认证三、SMTP 认证指令四、Postfix内部邮件过滤 一、Postfix+Dovecot+Sasl 工作原理 1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户端,就会去连接SASL。当SASL接受到验证请求时就会根据验证方式去进行验证,常用的有PAM,passwd等。验证成功后就会返回给Smtpd

focus_lyh的博客 2165

Postfix配置SMTP认证

完成以上配置后,需要重启Postfix服务,使其生效。至此,SMTP认证已经配置完成。为SMTP服务器地址和端口号,表示使用TLS加密连接。重启Postfix服务。安装SASL认证插件。然后使用以下命令生成。表示不允许匿名认证

twins3520的博客 1835

postfix中实现基于cyrus-saslSMTP认证(转)

postfix中实现基于cyrus-saslSMTP认证(转)   前言:   postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。下面一段话摘自postfix的官方站点(...

cuemes08808的博客 1117

构建postfix邮件服务器(三)启用SMTP用户认证

一、使用smtp用户认证 1.发信时无需认证邮件服务器,很容易造成大量垃圾邮件的产生,也给服务器来了不必要的负担 2.SMTP发信认证的常见形式如下:当用户通过SMTP协议向外部邮件域发送邮件时,服务器会要求用户提供用户帐号和口令进行身份认证,只有成功通过身份认证的用户才被允许向外部发送邮件,否则将拒绝发信请求。 3.Cyrus SASL(Cyrus Simple Authenticat...

weixin_33887443的博客 2288

postfixsmtp认证

基本的smtp协议没有验证用户身份的能力。虽然信封上的寄件人地址已经隐含了发信者的身份,然而,由于信封地址实在太容易假造,所以不能当成身份凭据。 为了判断客户端是否有权使用转发服务(relay),服务器端必须确认客户端(寄件人)是否当真是对方所自称的那个人。在不能以寄件人地址为×××书的前 提下,smtp势必需要其他补充机制,才能验证客户端的身份。 从postfix的角...

weixin_33724570的博客 1443
上一篇: CentOS下(PostFix)SMTP服务器的构建
下一篇: mysql主从复制
寒风问雪
博客等级 码龄18年 18粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值