linux下架设邮箱 实例篇一[sendmail+dovecot+cyrus-sasl]
Linux下如何利用Sendmail构建安全可靠的邮件服务器
Linux下如何利用Sendmail构建安全可靠的邮件服务器实验原理:Sendmail是UNIX/Linux环境中稳定性较好的一款邮件服务器软件,通过对Sendmail服务器的配置可以实现基本的邮件转发功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件的收取功能;OpenWebmail是网页形式的邮件应用系统,可实现用户对邮件的发送、收取和管理功能。
通过对Sendmail、dovecot 和OpenWebmail的综合管理,系统管理员可以构建出功能完善的邮件应用系统。
实验步骤:一、搭建DNS环境,并设置sendmain的主机域名可以通过修改“/etc/hosts”和“/etc/sysconfig/network”两个文件更改主机域名。
并在DNS服务器中添加对应的MX记录。
二、 Sendmail的安装与配置Sendmail服务器在RHEL4系统中是被默认安装的,软件包的名称是sendmail,m4软件包提供了配置Sendmail服务器必须的工具程序,与Sendmail软件包一同默认安装在系统中。
Sendmain和m4两个软件都在RHEL4的第2张安装光盘中。
更改sendmial服务器的启动级别。
设置local-host-names文件,用于设置邮件服务器提供邮件服务的域名。
编辑sendmail.mc文件Sendmail服务器的主配置文件是sendmain.cf,该文件配置及其难,不过可以通过配置sendmail.mc然后生成sendmail.cf文件。
开启Sendmail服务器的网络接口,Sendmail服务器出于安全考虑,默认只对lo网络接口(IP地址为127.0.0.1)提供服务,为了使服务器能够为主机的所有网络接口(地址为0.0.0.0)提供服务,需要在sendmail.mc文件中进行配置的修改。
开启SMTP的用户认证功能。
将TRUST_AUTH_MECH(‘EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)前面的dnl以及空格去掉即可。
最新linux下sendmail的安装与配置教学文稿
附2Linux下SendMail的安装与配置一、安装sendmail如果你在安装LINUX的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。
如果你在安装时没有选择,或者你需要升级sendmail就可以使用以下方法进行。
1通过RPM包来安装或升级(仅用于RedHat LINUX):1) 首先在光盘上或Internet上找到下面几个RPM包:sendmail-8.9.3-10.i386.rpm sendmail可执行文件sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文档2) 然后使用以下命令安装或升级:安装:rpm ?ivh sendmail-8.9.3-10.i386.rpm升级:rpm ?Uvh sendmail-8.9.3-10.i386.rpm2.用源代码编译关安装:1) 首先取得最新版本的源代码:/ftp:///pub/unix/mail/sendmail/2) 展开源代码:cd /hometar ?zxvf sendmail-8.9.3.tar.gz这样就会在/home目录下建立一个sendmail-8.9.3目录:/home/sendmail-8.9.3/README/home/sendmail-8.9.3/src/home/sendmail-8.9.3/cf/home/sendmail-8.9.3/doc3) 编译:由于sendmail自己带了一个编译程序Build,所以不用make命令:cd /home/sendmail-8.9.3/src./Buildinstall二、用sendmail构建一个E-Mail服务器当我们在系统中安装了sendmail后我们就可以使用这台机成为我们的电子邮局了。
因为sendmail的功能强大,配置繁琐。
LINUX e-mail服务器搭建
第9章E-mail服务器的配置与应用--------------------------------RPM安装方式--------------------------------下面是使用RPM包安装的具体步骤。
第1步,检测系统是否安装了该RPM包,使用命令rpm –qa | grep Sendmail。
第2步,如果没安装,则将Red Hat Enterprise Linux的安装光盘放入光驱并挂载,并安装相应的软件包。
第3步,安装生成Sendmail配置文件的m4工具包,使用命令:[root@localhost /]#rpm –ivh mc-4.6.1-0.8.1.i386然后退到“/”目录,将光盘卸载,取出光盘。
第4步,将Red Hat Enterprise Linux的光盘放入光驱并挂载,并安装相应的软件包。
--------------------------------启动Sendmail服务器--------------------------------安装好该软件后,首先使用命令来确认Sendmail是否已经启动:[root@localhost /]#pstree | grep sendmail上图的命令行显示了Sendmail服务已经启动,如果没启动,将没有任何提示回到命令行。
如果没启动,可以用以下命令启动。
[root@localhost /]#service sendmail start--------------------------------Sendmail的发送邮件功能--------------------------------Sendmail默认只会为本机用户发送邮件,并非一个真正的邮件服务器。
怎么让Sendmail将注意力扩展到整个Internet(最小也是局域网中),具体的操作步骤如下。
第1步,打开Sendmail的配置宏文件/etc/mail/sendmail.mc。
linux下搭建邮件服务器
linux下搭建邮件效劳器默认分类2021-11-16 18:51:54 阅读42 评论0 字号:大中小订阅一、Sendmail概述sendmail是最重要的邮件传输代理程序。
理解电子邮件的工作模式是非常重要的。
一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。
用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。
而投递代理那么从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。
当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。
信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理效劳器,并且通过网络将邮件传送给它。
对方的效劳器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者观察自己的电子信箱。
显然,邮件传输是从效劳器到效劳器的,而且每个用户必须拥有效劳器上存储信息的空间〔称为信箱〕才能接受邮件〔发送邮件不受这个限制〕。
可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件效劳器,将信件在效劳器之间传输并且将接收到的邮件缓冲或者提交给最终投递程序。
有许多的程序可以作为信件传输代理,但是sendmail是其中最重要的一个,事实证明它可以支持数千甚至更多的用户,而且占用的系统资源相当少。
不过,sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如qmail、postfix等等。
当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的效劳器,这是通过DNS效劳实现的。
例如一封邮件的目标地址是tom@example ,那么sendmail首先确定这个地址是用户名〔tom〕+机器名〔example 〕的格式,然后,通过查询DNS来确定需要把信件投递给某个效劳器。
Linux服务器部署系列之八—Sendmail篇
Linux服务器部署系列之⼋—Sendmail篇Sendmail是⽬前Linux系统下⾯⽤得最⼴的邮件系统之⼀,虽然它存在⼀些不⾜,不过,⽬前还是有不少公司在使⽤它。
对它的学习,也能让我们更深的了解邮件系统的运作。
下⾯我们就来看看sendmail邮件服务器的部署。
本⽂将从以下⼏个⽅⾯讲解Sendmail邮件系统:1.Sendmail安装;2.Sendmail基本配置;3.Openwebmail安装和配置;4.配置Mailscanner+clamav过滤病毒;5.配置SpamAssassin+mimedefang过滤垃圾邮件。
本⽂系统运⾏环境:CentOS 5。
⼀、安装Sendmail1. 软件需求(以下软件在安装光盘上都可以找到)cyrus-sasl-2.1.22-4.i386.rpmcyrus-sasl-lib-2.1.22-4.i386.rpmcyrus-sasl-plain-2.1.22-4.i386.rpmcyrus-sasl-devel-2.1.22-4.i386.rpmcyrus-sasl-md5-2.1.22-4.i386.rpmsendmail-8.13.8-2.el5.i386.rpmsendmail-cf-8.13.8-2.el5.i386.rpmsendmail-devel-8.13.8-2.el5.i386.rpmsendmail-doc-8.13.8-2.el5.i386.rpmm4-1.4.5-3.el5.1.i386.rpmdovecot-1.0.7-2.el5.i386.rpm另外,dovecot需要两外两个程序包的⽀持:perl-DBI-1.52-1.fc6.i386.rpmmysql-5.0.45-7.el5.i386.rpm2. 软件安装1)cyrus-sasl的安装先检查⼀下,系统默认安装了哪些软件包,如下图:安装cyrus-sasl-md5-2.1.22-4.i386.rpm,如下图:2)安装sendmail、dovecot等相关程序包,如下图:Sendmail要正常⼯作,是需要DNS⽀持的,⼀般企业都有DNS服务器,如果没有,可以参考我的另⼀篇⽂章:Linux服务器部署系列之三—DNS篇(/379574/169718),⾃⼰搭建⼀台DNS服务器。
如何在Linux系统上搭建邮件代理服务器
如何在Linux系统上搭建邮件代理服务器随着互联网的发展,电子邮件已经成为我们日常生活和工作中不可或缺的一部分。
为了更好地管理和保护我们的电子邮件,搭建邮件代理服务器是非常有必要的。
在本文中,我将介绍如何在Linux系统上搭建邮件代理服务器,并提供一些实用的技巧和建议。
一、选择适合的邮件代理服务器软件在搭建邮件代理服务器之前,首先需要选择适合的邮件代理服务器软件。
常见的邮件代理服务器软件有Postfix、Sendmail和Exim等。
在选择之前,我们需要考虑以下几个方面:1.稳定性和安全性:选择一个稳定且有良好安全记录的邮件代理服务器软件是非常重要的,以确保您的电子邮件安全。
2.易于配置和管理:选择一个易于配置和管理的邮件代理服务器软件将帮助您节省时间和精力。
3.可扩展性:选择一个具有良好扩展性的邮件代理服务器软件,以便您可以根据需要进行功能扩展和定制。
基于以上几个方面的考虑,我推荐使用Postfix作为邮件代理服务器软件。
Postfix是一款稳定、安全且易于配置的邮件代理服务器软件,广泛应用于各种Linux发行版中。
二、安装和配置Postfix1.安装Postfix在Linux系统上安装Postfix非常简单。
首先,打开终端并以root用户身份运行以下命令来安装Postfix:```sudo apt-get install postfix```根据系统提示进行配置,一般选择“Internet Site”选项,并输入您的域名。
2.配置PostfixPostfix的配置文件位于/etc/postfix/main.cf。
您可以使用任何文本编辑器打开该文件并进行必要的配置。
以下是几个常见的配置选项:- myhostname:设置您的邮件代理服务器的主机名。
- mydomain:设置您的邮件代理服务器的域名。
- mydestination:设置邮件将被投递的目的地域名。
根据您的实际需求进行配置,并保存文件。
linux下架设邮箱 原理篇
A、邮件使用的协议1.SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。
SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
使用端口(port)25。
2.POP3(Post Office Protocol 3)即邮局协议(Post Office Protocol)的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。
它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
POP3协议是TCP/IP协议族中的一员,由RFC1939定义。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
使用端口(port)110。
3.IMAP(Internet Mail Access Protocol)即交互式邮件存取协议,IMAP是斯坦福大学在1986年开发的研发的一种邮件获取协议。
它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。
当前的权威定义是RFC3501。
它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。
使用端口(port)143。
4.SASL(Simple Authentication and Security Layer)即简单认证安全层,是一种用来扩充C/S模式验证能力的机制。
Linux1 邮件服务器 配置Sendmail
Linux1 邮件服务器配置Sendmail完成Sendmail安装操作后,接下来以开放Sendmail监听端口与设置收件计算机名称、使用MTA Relay权限设置/etc/mail/access为目的来对Sendmail邮件服务器进行配置。
1.开放监听端口及设置收件计算机名称事实上Red Hat Enterprise Linux5.4在安装Sendmail后默认已经启动Sendmail (端口25处于LISTEN状态),只是它仅接收来自本计算机的MTA要求,验证此结果可在终端下输入“netstat -tulnp”命令,并按【回车】键查阅,如图9-19所示。
图9-19 查看Sendmail默认端口状态由图9-19可查看到端口25处于LISTEN状态,且只监听127.0.0.1这个lookup 接口。
所以用户的重点就是如何将监听的接口开启到整个Internet上,否则它是无法接收来自Internet的邮件的。
虽然配置文件在/etc/mail/sendmail.cf中,但建议不要手动修改它,应该修改的是sendmail.mc文件。
这个文件设置项目的基本语法为“设置组件(`设置项目’,`参数一’,`参数二’)”。
提示每个设置项目与参数左边使用的符号均为数字键1左边的引用键(quote),右边则是单引号。
这个文件的设置项目用户可以参考/m4/readme.html网页说明。
若要开放Sendmail对整个Internet的监听功能,只需要在终端下输入“vi /etc/mail/sendmail.mc”命令,按【回车】键进入sendmail.mc文件的编辑界面。
然后按“i”,切换到插入模式,将第116行中“Addr=127.0.0.1”改为“Addr=0.0.0.0”,按【ESC】键退出插入模式,最后按“:”并输入wq”按【回车】键保存配置,如图9-20所示。
图9-20 开放Sendmail监听功能修改sendmail.mc参数后,在使用m4宏文件生成器和修改后的配置创建新的sendmail.cf配置文件之前,还需要使用mv命令对原有的设置文件进行备份,这一点很重要,如图9-21所示。
Linux下架构安全邮件服务器之Sendmail
Linux下架构安全邮件服务器之SendmailLinux下架构安全邮件服务器之Sendmail简介一、E-mail 概述Internet最基本的服务,也是最重要的服务之一,就是电子邮件服务。
据统计Internet上百分之三十以上的业务量是电子邮件,仅次于WWW服务。
与传统的邮政信件服务类似,电子邮件可以用来在Internet或Intranet上进行信息的传递和交流,但电子邮件服务还具有快速、经济的特点。
发一份电子邮件给远在他方的一位用户,通常来说,对方几分钟之内就能收到。
如果选用传统邮件,发一封特快专递也需要至少一天的时间。
而且电子邮件的费用最多只需几毛钱。
与实时信息交流,如电话相比,因为电子邮件是采用存储转发的方式,发送邮件时,并不需要收件人处于在线状态,收件人可以根据实际需要随时上网从邮件服务器上收取邮件,方便了信息的交流。
1. E-mail系统的组成一个完整的E-mail系统一般由三个部分组成,包括用户邮件代理、邮件服务器和邮件协议。
用户邮件代理(Mail User Agent,简称MUA)是用户与电子邮件系统的接口,负责用户和邮件服务器之间的交互工作。
大多数情况下,MUA就是运行在客户端上的应用程序,其作用是将邮件发送到邮件服务器上和从邮件服务器上接收邮件。
邮件服务器是电子邮件系统的核心,其主要功能是发送和接收邮件,并向发件人告知邮件的传送情况。
邮件服务器根据其功能,分为邮件传输服务器(SMTP服务器)和邮件接收服务器(POP3或IMAP4服务器)。
2. E-mail工作原理E-mail的传输过程如下。
① 用户在各自的POP服务器注册登记,由网络管理员设置为授权用户,并取得一个POP信箱,获得POP和SMTP服务器的地址信息。
假设两个服务器的域名分别为 和,注册用户分别为liu和chen,E-mail地址分别为liu@和chen@。
② 当服务器上的用户liu向chen@发送E-mail时,E-mail首先从客户端被发送至的SMTP服务器。
Linux简单配置SendMail发送邮件
Linux简单配置SendMail发送邮件本⽂简单整理了⼀下如何在Linux服务器上安装、配置SendMail发送邮件的步骤,此⽂不是配置邮件服务器,具体测试环境为CentOS Linux release 7.2.1511 (Core) ,如遇特殊平台有所差别,请以实际情况为准则。
Linux 系统版本查看检查、了解系统版本信息,主要是如果使⽤rpm安装时,需要下载合适的版本。
[root@mylnx06 ~]# more /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)检查是否安装sendmail组件如下所⽰,该服务器上并没有安装sendmail的相关组件。
那么我们直接使⽤yum安装sendmail组件即可。
[root@mylnx06 ~]# rpm -qa | grep sendmail[root@mylnx06 ~]# yum list sendmailLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile* epel: .hkAvailable Packagessendmail.x86_64 8.14.7-4.el7 base使⽤yum安装sendmail组件,当然你可以使⽤其它⽅式安装,此处不做展开介绍。
[root@mylnx06 ~]#编辑/etc/aliases⽂件Sendmail有⼀个⾮常实⽤的功能,就是为每个账号取别名(Aliase) 会使⽤⼀个在 /etc/aliases 中的档案做使⽤者名称转换的动作。
所以这个配置⽂件是可配也可以不配,具体视你的需求⽽定。
修改/etc/mail/sendmail.cf 添加对应的DS, DS后⾯为邮件服务器的IP地址。
根据实际具体情况配置。
其实这个配置⽂件,如果需要,还有蛮多需要配置、细化的地⽅,此处只讲述最简单的配置。
Linux下简单邮件服务器搭建
好了,假如我们创建一个admin的用户:
# 创建用户
useradd admin
#设置密码,会要求输入两次密码
passwd admin
接下来登录Foxmail,如图:
点击创建,进入:
这里需要注意,邮件账号是admin,并不是邮箱,另外我们没有配置SSL,所以也不要勾选。 接下来点击创建,如果一切正常的话,你已经成功了。
经过上面这些折腾,也算明白了如果要想顺畅的发出邮件的话,除了花钱,就只有自己搭建一个邮件服务器了。
好了,下面开始进入正题,教你搭建一个简单的邮件服务器。
用于搭建的服务器信息
阿里云 Centos 6.5 32位
Postfix-2.8.12.tar.gz Postfix MTA(邮件传输代理)
但是在前几天由于有重要信息需要立即通知用户,所以选择了群发邮件的方式。在当我以为一切都是辣么完美的时候,陆续有用户过来问我什么情况,我都会跟他们说请查收邮件,但是有好几个人说并没有任何
邮件,于是我试着再发一次,结果返回了错误提示。在网上找了下原因,后来看到这个:各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况,才知道是因为发信数量限制了。
到这里,我们的邮件服务器就已经搭建成功了。
5.域名解析
最后别忘了还需要进行域名解析工作。
添加一个子域名mail,A记录解析到服务器IP。
再添加一个MX记录,主机记录为空,记录值为上面解析的二级域名mail.lomu.me,优先级10。
注意:解析生效可能需要一段时间。
6.防火墙设置
MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,Sendmail和Postfix就是扮演MTA的角色。
linux邮件配置
linux postfix 邮件服务器配置一.使用Tarball安装完整的postfix+pop3+smtp+procmail1.安装cyrus sasl2. xx版本首先下载cyrus sasl2. xx版本(假设我们网站文件下载到 /root 下)[root@test root] # cd /usr/local/src[root@test src] # tar -zxvf /root/cyrus-sasl-2.1.12.tar.gz[root@test src] # cd cyrus-sasl-2.1.12[root@test cyrus-sasl-2.1.12] # ./configure[root@test cyrus-sasl-2.1.12] #make[root@test cyrus-sasl-2.1.12] # make install上面三个步骤会花去一些时间,请耐心等待2.准备建立postfix与cyrus sasl使用的简易配置文件:[root@test lib]# cd /usr/lib/sasl2[root@test sasl2]# echo 'pwcheck_method: saslauthd' >smtpd.conf[root@test sasl2]# echo 'mech_list:plain login' >> smtpd.conf一般来说,postfix会使用sasl函数库里相关的配置文件,/usr/lib/sasl2/smtpd.conf文件的配置就是postfix默认使用sasl的参数文件.3.检验saslauthd程序是否正确!在cyrus-sasl的源代码中提供了一个小程序来判断saslauthd的认证机制是否成功的启动了,这个程序就是testsaslauthd,可以进行如下操作:[root@test sasl2]# /usr/local/cyrus-sasl2/sbin/saslauthd -a shadow[root@test sasl2]#cd /usr/local/src/cyrus-sasl-2.1.12/saslauthd/[root@test saslauthd]#make testsaslauthd[root@test saslauthd]#./testsaslauthd -u userID -p 'your.passwd'0:ok"success."若显示ok,那么就是成功了!4.设置开机时启动[root @test saslauthd]# vi /etc/rc.d/rc.local加入这一行:/usr/local/cyrus-sasl2/sbin/saslauthd -a shadow二.安装postfix1.首先将数据解压缩(假设我们将安装文件下载到 /root下了!)[root @test src]# cd /usr/local/src[root @test src]# tar -zxvf /root/postfix-2.0.4.tar.gz[root @test src]# cd /usr/local/src/postfix-2.0.4[root @test postfix2.0.4]# make tidy #清除规则[root @test postfix2.0.4]# make makefiles CCARGS="-DUSE_SASL_AUTH \>-I/usr/local/cyrus-sasl2/include/sasl/" \>AUXLIBS="-L/usr/local/cyrus-sasl2/lib -lsasl2"[root @test postfix-2.0.4]# make2.安装前准备工作如果您的系统是由sendmail改换到postfix,不需要卸载sendmail,只要进行一些小操作即可![root @test postfix-2.0.4]#mv /usr/sbin/sendmail/usr/sbin/sendmail.OFF[root @test postfix-2.0.4]#mv /usr/bin/newaliases/usr/bin/newaliases.OFF[root @test postfix-2.0.4]#mv /usr/bin/mailq /usr/bin/mailq.OFF[root @test postfix-2.0.4]#chmod 755 /usr/sbin/sendmail.OFF \> /usr/bin/newaliases.OFF /usr/bin/mailq.OFF此外,还需要建立一个名为postdrop 的用户组与postfix的用户![root @test postfix-2.0.4]# groupadd -r postdrop[root @test postfix-2.0.4]# useradd -r -s /bin/false postfix[root @test postfix-2.0.4]#echo 'postfix: root' >> /etc/aliases3.开始安装postfix到 /etc/postfix目录下[root @test postfix-2.0.4]# make install下面会出现一大堆问题集,不管如何,通常按enter键即可三.主机的设置1.配置文件:postfix的配置文件都在 /etc/postfix 中,主要配置文件有:/etc/postfix/main.cf:该文件是最重要的postfix配置文件!不过,需要注意的是,在修改完了main.cf后,一定要重新加载或重新启动postfix!在main.cf中有如下几个需要设置的地方:<1>主机名称的设置:myhostname与mydomainmyhostname = (这里写你的主机名称)mydomain = (这里写你域的名称)<2>可用来接收邮件的主机名称: mydestination该参数非常重要!它与sendmail中的/etc/mail/local-host-names的意义相同! postfix只有在发现mydestination参数中存在写入的主机名称作为收信主机时,才会将该信接收下来!mydestination = 简易的Relay控制: inet_interfaces mynetworks_style mynetworksrelay_domainsinet_interfaces = allmynetworks = 192.168.10.0/24,127.0.0.0/8,hash:/etc/postfix/accessrelay_domains = 设置完成之后还需要启动access!先手动在 /etc/postfix/access 当中修改你想要的动作完成数据库的设置[root @test root]# postmap hash: /etc/postfix/access<3>设置帐号别名的数据库:aliases_mapsalias_maps = hash: /etc/postfix/aliasesalias_database = hash: /etc/postfix/aliases改完之后还需要以postalia来设置成为postfix可以读取的数据库格式[root @test root]# postalias hash: /etc/postfix/aliases设置完上面这几个重要的参数之后,你的postfix主机就已经准备好拉!请将它重启.确认配置文件有没有错误:[root @test root]#postfix check <==若没有任何显示,表示正确设置开机时立刻启动:[root @test root]# vi /etc/rc.d/rc.local加入下面这行:/usr/sbin/postfix start四.启动smtp邮件认证功能目前邮件认证的功能有很多种,本篇使用 saslauthd认证功能!通常,大部分内容我们在安装时已经设置完毕,只需要再设置main,cf文件即可. [root @test root]# vi /etc/postfix/main.cf下面自行新增在这个文件的最后面:smtpd_sasl_auth_enable = yessmtpd_sasl_local_domain = ' 'smtpd_recipient_restrictions =permit_mynetworks,permit_sasl_authenticated,reject_unauth_destinationsmtpd_client_restrictions = permit_sasl_authenticatedsmtpd_sasl_security_options = noanonymous这样就设置完毕了! 然后重新启动postfix即可!环境:RedHat Linux+Postfix+Cyrus-sasl+Dovecot+Stunnel在安装Linux时,如果选择全部安装的话,Postfix与Dovecot以及Stun nel将会自动给予安装上去,查看是否已安装,可以执行如下命令:rpm –qa | grep postfix或dovecot或stunnel如果没有的话,请直接在光盘里找出来,并给予安装。
Linux环境搭建邮件服务器
Linux 5.x平台搭建extmail邮件服务器作者:洪卓辉文档编辑于2011年8月Linux5.x平台搭建extmail邮件服务器二操作系统安装1RedHat系统所需组件:本文档支持RedHat Enterprise-5.x及CentOS-5.x版本。
要注意的是安装系统时,只安装如下的组件:MYSQL数据库:注意必须选中php-mysql模块,否则extmail将无法连接mysqlVIM编辑器:建议安装vim软件包,它支持main.cf彩色高亮语法分析。
其余的Xwindows,打印,KDE/Gnore,服务器配置工具,网络工具,开发包等都不是必选组件。
安装完毕进入操作系统后,为增加系统安全性,建议禁止root直接登陆,并增加一个非root 帐户,例如sysadmin。
这样无法以root账户直接登陆系统,必须先以sysadmin身份登陆再su到root执行。
2安装操作系统的时候把mysql数据库的php-mysql-5*这个包安装了!必须的!并且设置关闭防火墙和SELinux3配置SSH:以root身份登进系统后,增加一个非root帐户,名称为sysadmin,密码按您的需求设置一个即可。
接下来我们要禁止root直接登陆。
shell#vim/etc/ssh/sshd_config修改以下配置为:PermitRootLogin no然后重新启动sshd,这样禁止了root直接登陆。
shell#service sshd restart三创建yum源1下载EMOS软件包整个系统的安装全过程都要求以root身份执行,如果机器没有访问外部网络的能力,则事先下载好EMOS光盘映像,并上传到服务器。
备注:如果要在CentOS 5.x上面进行配置,请下载EMOS-1.5.ISO,配置方法不变;2制作本地yum仓库使用EMOS-1.5.ISO光盘制作本地yum仓库;此外,我们假设本次安装默认域是,主机名为:安装CentOS-5.3光盘中createrepo工具shell#rpm-ivh createrepo-0.4.11-3.el5.noarch.rpm加载EMOS-1.5的光盘,请把emos的光盘放到光驱中shell#mkdir/mnt/EMOS#mount/dev/cdrom/mnt/EMOS#cd/mnt#createrepo.3、创建客户端yum的定义文件:shell#cd/etc/yum.repos.d#mkdir backup#mv*.repo./backup#vi EMOS.repo加入以下内容:[EMOS]name=EMOSbaseurl=file:///mnt/enabled=1gpgcheck=0重新获取最新的仓库信息:shell#yum clean all#yum list四配置MTA-postfix1、安装postfix安装postfixshell#yum install postfix#rpm-e sendmail2、配置postfixshell#postconf-n>/etc/postfix/main2.cf#mv/etc/postfix/main.cf/etc/postfix/main.cf.old #mv/etc/postfix/main2.cf/etc/postfix/main.cf编辑main.cf:shell#vi/etc/postfix/main.cf增加如下内容:#hostnamemynetworks=127.0.0.1myhostname= mydestination=$mynetworks$myhostname#bannermail_name=Postfix-by smtpd_banner=$myhostname ESMTP$mail_name#response immediatelysmtpd_error_sleep_time=0s#Message and return code controlmessage_size_limit=5242880mailbox_size_limit=5242880show_user_unknown_table_name=no#Queue lifetime controlbounce_queue_lifetime=1dmaximal_queue_lifetime=1d设置postfix开机自启:shell#chkconfig postfix on五配置courier-authlib1、安装Courier-Authlib安装以下软件包:shell#yum install courier-authlib#yum install courier-authlib-mysql编辑/etc/authlib/authmysqlrc文件:shell#vim/etc/authlib/authmysqlrc并将其内容清空(dG),然后增加如下内容:MYSQL_SERVER localhostMYSQL_USERNAME extmailMYSQL_PASSWORD extmailMYSQL_SOCKET/var/lib/mysql/mysql.sock MYSQL_PORT3306MYSQL_OPT0MYSQL_DATABASE extmailMYSQL_USER_TABLE mailboxMYSQL_CRYPT_PWFIELD passwordMYSQL_UID_FIELD uidnumberMYSQL_GID_FIELD gidnumberMYSQL_LOGIN_FIELD usernameMYSQL_HOME_FIELD homedirMYSQL_NAME_FIELD nameMYSQL_MAILDIR_FIELD maildirMYSQL_QUOTA_FIELD quotaMYSQL_SELECT_CLAUSE SELECTusername,password,"",uidnumber,gidnumber,\ CONCAT('/home/domains/',homedir),\CONCAT('/home/domains/',maildir),\quota,\name\FROM mailbox\WHERE username='$(local_part)@$(domain)'注意:此处添加之后,要把文件内容对齐,否则数据库导入导出可能出错!修改authdaemonrc文件shell#vi/etc/authlib/authdaemonrc修改如下内容:authmodulelist="authmysql"authmodulelistorig="authmysql"2、启动courier-authlib:shell#service courier-authlib start如一切正常,命令行将返回如下信息:Starting Courier authentication services:authdaemond修改authdaemon socket目录权限如果该目录权限不正确修改,maildrop及postfix等将无法正确获取用户的信息及密码认证:shell#chmod755/var/spool/authdaemon/六配置maildrop1、安装maildropshell#yum install maildrop配置master.cf为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,并改为:maildrop unix-n n--pipeflags=DRhu user=vuser argv=maildrop-w90-d ${user}@${nexthop}${recipient}${user}${extension} {nexthop}注意:flags前面有“两个空格”配置main.cf由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:maildrop_destination_recipient_limit=12、测试maildrop对authlib支持shell#maildrop-v看是否出现以下内容:maildrop2.1.0Copyright1998-2005Double Precision,Inc. GDBM/DB extensions enabled.Courier Authentication Library extension enabled.Maildir quota extension enabled.This program is distributed under the terms of the GNU GeneralPublicLicense.See COPYING for additional information.注意事项:1、如需重新编译Maildrop软件包,必须先获得其源码rpm包,并且必须先行安装courier-authlib及其devel软件包,否则编译后的maildrop将无法打开authlib支持。
RHEL5 邮件服务器sendmail与dovecot的配置
RHEL5 邮件服务器sendmail与dovecot的配置2010-12-29 22:26RedHat Enterprise Linux 5邮件服务器sendmail和dovecot的搭建需要在DNS域名服务器的搭建成功的前提下进行。
实验拓扑图如下:配图1前期准备工作:三台主机、DNS域名服务器。
主机A:Linux系统,IP为192.168.0.1,子网掩码为255.255.255.0,域名为192.168.0.1。
主机B:Windows系统,IP为192.168.0.2,子网掩码为255.255.255.0,域名为192.168.0.1。
主机C:Windows系统,IP为192.168.0.3,子网掩码为255.255.255.0,域名为192.168.0.1。
在主机A上配置域名服务器,域名为。
当前期工作做完后按照以下步骤进行:服务器端配置步骤如下:1、在“域名服务系统”中的“域名”下添加一个“MX 邮件交换”,然后在弹出的配置窗口中将“域名”设置为“”,“邮件服务器名”设置为“mail”。
2、在文件/var/named/chroot/etc/named.conf中找到:zone "." IN {type master;file ".db";};其中的.db即域名的信息数据库文件,不同的域名有不同的文件名。
3、在文件/var/named/chroot/var/named/.db中找到:mail IN 1H MX 0 mail//将其改为:@ IN 1H MX 0 //并在下一行加上:mail IN 1H MX 0 192.168.0.14、在文件/etc/mail/local-host-names中输入:[]5、在文件/etc/mail/sendmail.mc中找到:(1)dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl//将其改为:DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl (2)找到:dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl把前面的dnl注释去掉,变成:TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl上面两句的意思是:放行那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件用户,无视access文件中的设置。
linux下架设邮箱 配置篇一[sendmail]
A、sendmail.mc配置批注vi /etc/mail/sendmail.mcdivert(-1)dnl在生成配置文件时删除额外的输出。
dnl #dnl # This is the sendmail macro config file for m4. If you make changes todnl # /etc/mail/sendmail.mc, you will need to regenerate thednl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package isdnl # installed and then performing adnl #dnl # make -C /etc/maildnl #这是m4的sendmail宏观设置文件。
如果您做变动/etc/mail/sendmail.mc,您将需要通过认证安装的sendmail-cf包执行make -C /etc/mail命名生成/etc/mail/sendmail.cf文件。
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl将sendmail所需的规则包含进来。
VERSIONID(`setup for linux')dnl指出配置文件是针对linuxOSTYPE(`linux')dnl必须设置为linux以获得sendmail所需文件的正确位置。
dnl #dnl # Do not advertize sendmail version.dnl #dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnldnl #dnl # default logging level is 9, you might want to set it higher todnl # debug the configurationdnl #默认的日志记录级别为9,您可能希望将其设置较高级别,则调整这个配置dnl define(`confLOG_LEVEL', `9')dnldnl #dnl # Uncomment and edit the following line if your outgoing mail needs todnl # be sent out through an external mail server:dnl #如果你需要通过外部邮件服务器发送的邮件的,取消注释和编辑以下行。
linux sendmail配置详解
sendmailMUA (mail user agent 邮件用户代理),用于用户端发送邮件或者阅读邮件 linux有mutt这个工具MTA (mail tranfer agent 邮件传输代理),相当于一个邮局,server端的软件,主要的功能有,接收MUA发来的邮件和把邮件发送给下一个MTA,可以说是一个邮件路由(mail router),server端的软件就属于MTA,现在开源的有sendmail,postfix,qmail等MDA (mail devilery agent 邮件投递代理),主要是将MTA所接受的邮件,依照邮件的目的地将此邮件放到本机账号下或者是给下一个MTA,一般就是指mail 这样的命令邮件的协议:发信: SMTP (simple mail tranfer protocol 简单邮件传输协议)端口号TCP的25端口,在发信时,MUA会主动连接MTA的port 25,然后经由SMTP协议发送出去,SMTP分为接受SMTP和发送SMTP,它不管两端主机的配置或者系统等,只要两边SMTP协议OK就可以发送邮件收信: POP (post office protocol 邮局协议),来连接到MTA,以读取或者下载邮件,现在常用的版本是POP3,端口为110IMAP (internet message access protocol 网络报文件协议),能在下载邮件前先下载邮件头信息,以可以让用户选择性下载端口 143软件包yum install sendmail*yum install dovecotsendmail.i386 --邮件服务器端 MTA sendmail-cf.i386 --配置文件包sendmail-devel.i386 --开发包sendmail-doc.i386 --文档包dovecot.i386 --(鸽舍),pop邮件服务端 MDAm4.i386 --处理配置文件的包端口: smtp (25) pop3 (110) imap (143)协议: TCP服务启动脚本:/etc/init.d/sendmail/etc/init.d/dovecot配置文件:/etc/mail/sendmail.cf --sendmail邮件服务启动时读取的主配置文件/etc/mail/sendmail.mc --管理员修改sendmail服务器功能时的配置文件/etc/mail/local-host-names --配置支持发送邮件时使用短域名形式/etc/mail/virtusertable --虚拟用户列表/etc/aliases --用户别名/etc/mail/access --邮件中继/etc/init.d/sendmail restart[root@li ~]# netstat -ntl |grep 25 --看到默认是只监听了127.0.0.1的回环地址tcp 0 0127.0.0.1:25 0.0.0.0:* LISTEN--发送邮件方法一:[root@li ~]# mail -s "mail" root@ --用此命令发送邮件 -s 后接邮件主题1111 --写邮件内容. --“." 点号表示结束Cc: --直接回车退出[root@li ~]# mail -s 'yyyy' a@ < /etc/grub.conf --还可以这样把/etc/grub.conf的内容直接发送给a用户--查看邮件方法一:cat /var/mail/rootcat /var/spool/mail/root --查看这两个一样的这样是可以查看到刚才发送的邮件,因为一个是自己发送给自己用的127.0.0.1这个回环地址,这种情况不需要DNS的MX支持--发送邮件方法二:[root@li ~]# telnet 127.0.0.1 25 --对smtp协议进行验证Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 11:30:09 +0800helo --定义来访者,可以用help去查看支持哪些命令集,用help+命令来看单个命令如何使用250 Hello localhost.localdomain [127.0.0.1], pleased tomeet youmail from:aa@ --定义一个发送者,这里可以随便定义250 2.1.0 aa@... Sender okrcpt to:a@ --定义接收者,这里是我本机的a用户250 2.1.5 a@... Recipient okdata --表示下面要写邮件内容354 Enter mail, end with "." on a line by itself4444444444 --随便写上你要发送的邮件的内容. --"." 点号表示结束250 2.0.0 o4T3U9l1026581 Message accepted for deliveryquit --quit退出,有时候一次退不出,就多敲几次quit221 2.0.0 closing connectionConnection closed by foreign host.yum install muttmutt --是一个在unix-like系统下小巧但强大的基于文本的一个能发送和阅读邮件的工具(MUA)--查看邮件方法二:直接在root用户下使用mutt命令,可以看到root用户的收信箱如果要看普通的邮件,就要先su - 普通用户名切换到普通用户再使用mutt命令查看--发送邮件方法三:[root@li ~]# mutt a@ --可以直接使用这样的命令发送给a@,会提示用户写内容,还有附件等功能--发送邮件方法四:[root@li ~]# cat /etc/rc.local |sendmail -v a@-------------------------下面先把DNS的MX记录给配置好[root@li mail]# vim/var/named/chroot/var/named/data/.zone$TTL 86400@ IN SOA . . ( 2010051605606036086400)IN NS .IN MX 0 . --MX是邮件交换记录,0是代表优先级别,可以写多个,数字越小优先级越高li IN A 10.1.1.35pop IN A 10.1.1.35smtp IN A 10.1.1.35/etc/init.d/named reloadvim /etc/resolv.conf --DNS指向改为本机[root@li mail]# nslookup --验证MX记录的方法> set type=mx> Server: 10.1.1.35Address: 10.1.1.35#53 mail exchanger = 0 . --看到这样的信息表示成功最好把时间同步也配好[root@li mail]# echo 'while :; do ntpdate 10.1.1.1> /dev/null 2>/dev/null; sleep 10; done'>> /etc/rc.local--每十秒同步一次10.1.1.1,放到/etc/rc.local里,开机自动运行把邮件客户端软件claws-mail拷过去装好ls /share/soft/soft/mail_client/tar xvf /share/soft/soft/mail_client/claws-mail-3.5.0.tar.gz -C/usr/src/tar xvf /share/soft/soft/mail_client/libetpan-0.57.tar.gz -C /usr/src/ cd /usr/src/libetpan-0.57/./configure ;make ;make installcd /usr/src/claws-mail-3.5.0/./configure ;make ;make install例一:让smtp协议监听所有端口vim /etc/mail/sendmail.mcDAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl --把127.0.0.1改为0.0.0.0,或者是把中间那一小段去掉保存退出m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf --如果没有装m4.i386这个包,就需要使用m4命令去生成sendmail.cf配置文件,装了就不需要,重启sendmail服务自动生成/etc/init.d/sendmail restart[root@li claws-mail-3.5.0]# netstat -ntl|grep 25tcp 0 00.0.0.0:25 0.0.0.0:* LISTEN[root@li claws-mail-3.5.0]# telnet 10.1.1.35 25 --对本机的IP(非回环地址)做smtp协议的测试是可以做的,如果只监听127.0.0.1,就不能这样用IP测试Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 13:47:01 +0800helo 250 .................例二:用claws-mail收发邮件用claws-mail 发送一封邮件给本机用户,能写,但点收信时会报连接到:110失败原因检验:[root@li /]# nslookup --先查看DNS,能解析Server: 10.1.1.35Address: 10.1.1.35#53Name: Address: 10.1.1.35netstat -ntl |grep 110 --再查看端口,发现没有110端口,表示pop3协议没有配置所以要去配置dovecot服务[root@li /]# vim /etc/dovecot.confprotocols = imap imaps pop3 pop3s --在20行找到有一行注释,打开注释,或者写一行,表示支持pop3和imap协议/etc/init.d/dovecot restart --重启服务后,就可以看到监听143和110端口打开了[root@li /]# netstat -ntlup |grep 143tcp 0 0 :::143 :::* LISTEN 21674/dovecot[root@li /]# netstat -ntlup |grep 110tcp 0 0 :::110 :::* LISTEN 21674/dovecot然后就可以收邮件了例三:使用支持短域名来发送邮件[root@li /]# mail -s '222' a@ --使用短域名222222.Cc:[root@li /]# tail /var/mail/a --查看时看不到,表示不支持短域名[root@li /]# tail /var/mail/root --可以看到扔到root的邮箱去了配置方法:[root@li /]# vim /etc/mail/local-host-names --写上短域名--注意的是写的域名,最好是DNS能解析,否则测试失败/etc/init.d/sendmail reload再用短域名发送并测试发现是可以成功的例四:邮件别名,邮件转发,邮件群发[root@li /]# vim /etc/aliases加上a: b --表示发送给a用户的邮件,发给了b用户,a用户自己收不到c: d,e,f --表示发送c用户的邮件,发给了d,e,f三个用户,a用户自己收不到salegroup: :include:/etc/mail/salegroup --还可以这样写,把一些用户分组,注意/etc/mail/salegroup是不存在的,要手动建立并把这个组的成员写进去,一行一个用户;测试时发给的用户名要写成salegroup,例如:mail -s '7777' salegroup@/etc/init.d/sendmail reload例五:邮件的虚拟账号,虚拟用户表格[root@li /]# vim /etc/mail/virtusertablea@ b@ --把b@的账号虚拟成a@账号@ c --所有发往域的邮件都会发到本地的c用户的mailbox/etc/init.d/sendmail reload例五:邮件中继保持上面的配置不变的情况下,用另一台电脑做测试[root@dns ~]# telnet 10.1.1.35 25 --另一台电脑测试35这台服务器上的smtp 协议Trying 10.1.1.35...Connected to 10.1.1.35 (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 15:39:36 +0800helo 250 Hello [10.1.1.218], pleased to meet youmail from:sdfsa@250 2.1.0 sdfsa@... Sender okrcpt to:sfsadfa@550 5.7.1 sfsadfa@... Relaying denied. --可以看到中继拒绝[root@li /]# vim /etc/mail/access --默认是只允许127.0.0.1中继Connect:10.1.1.218 OK --非常信任的主机可以用OKConnect:10.1.1 RELAY --表示允许10.1.1.0网段中继FROM: REJECT --表示从来的邮件都拒绝TO: discard --到的邮件丢弃--reject和discard的区别,discard是直接丢弃,reject还要返回一个错误或者警告我在这里加上了Connect:10.1.1 RELAY/etc/init.d/sendmail reload再用刚才的另一台电脑来测试(要是10.1.1.0网段,因为上面我只允许这个网段relay)[root@dns ~]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to 10.1.1.35 (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 15:51:35 +0800helo dns.lu.con250 Hello [10.1.1.218], pleased to meet youmail from:sfsafa@250 2.1.0 sfsafa@... Sender okrcpt to:sdfsadf@250 2.1.5 sdfsadf@... Recipient ok --这次测试没有报relay deny的错误------------------------------------------------------------------- 使用smtp验证yum install cyrus-sasl*vim /etc/mail/sendmail.mc --把下面三行注释打开TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl/etc/init.d/sendmail restart/etc/init.d/dovecot restart/etc/init.d/saslauthd restart[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:42:54 +0800ehlo --注意这里是ehlo 不是 helo Hello [10.1.1.35], pleased to meet you 250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN --看到这里有login plain验证信息表示支持smtp验证250-DELIVERBY250 HELP验证:[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:45:12 +0800helo 250 Hello [10.1.1.35], pleased to meet youmail from:fsfafa@250 2.1.0 fsfafa@... Sender ok --这里没有要求验证原因:是因为smtp验证默认只是在587端口,而不是25端口,所以你还是直接telnet 10.1.1.35 25 就避开了使用smtp验证vim /etc/mail/sendmail.mc把下面这句DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl改为DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea')dnl然后还要DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl --把这名注释掉,注意注释时用dnl,不用#--表示强制使用smtp验证/etc/init.d/sendmail restart[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:55:58 +0800helo 250 Hello [10.1.1.35], pleased to meet you mail from:sfsafsa@530 5.7.0 Authentication required --现在就会看到需要验证auth login --开始验证334 VXNlcm5hbWU6a --输入用户名,会报错,因为这里是用base64位编码501 5.5.4 cannot decode AUTH parameter aauth login334 VXNlcm5hbWU6YQ== --这就是a的base64位编码334 UGFzc3dvcmQ6MTIz --这是123的base64位编码235 2.0.0 OK Authenticated --验证成功,可以发送邮件了mail from:sdfasfas@250 2.1.0 sdfasfas@... Sender okrcpt to:b@250 2.1.5 b@... Recipient okdata354 Enter mail, end with "." on a line by itselflast test.250 2.0.0 o4T8twFU025598 Message accepted for deliveryquit221 2.0.0 closing connectionConnection closed by foreign host.cat /var/mail/b 是可以看到发送的邮件---------------用claws-mail来验证点设置--目前账号的偏好设置--发送--把SMTP鉴权(SMTP AUTH)前面的勾打上--鉴权方式选PLAIN--用户ID和密码写上本机的一个普通名和其密码就OK再发送信件等都是经过了SMTP验证的。
Linux网络配置-Sendmail
sendmail运行的主机需要具有完整的域名# service sendmail start# m4 sendmail.mc > sendmail.cf实例配置要求邮件服务器的IP地址为192.168.1.2,主机域名为邮件服务器将为“”域中的用户提供邮件服务邮件服务器具有SMTP用户认证功能域名设置:邮件服务器需要进行域名注册在区域文件中进行A记录和MX记录的设置@ IN MX5 .mail IN A 192.168.1.2设置local-host-names文件, local-host-names文件用于设置提供邮件服务的域名在local-host-names文件中增加“”域# vi /etc/mail/local-host-names//添加邮件服务器提供邮件服务的域名开启sendmail服务的网络接口在sendmail.mc文件中设置服务地址# vi sendmail.mcDAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl//修改为 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl设置SMTP的用户认证, sendmail.mc文件中的配置# vi /etc/mail/sendmail.mcdnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl//去除行首的注释标记“dnl”,修改为TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl启动saslauthd服务程序# service saslauthd start邮件用户帐号,Sendmail服务器使用Linux系统中的用户帐号作为邮件帐号建立邮件用户组# groupadd mailuser建立邮件用户帐号# adduser -g mailuser -s /sbin/nologin mike初始化用户口令# passwd mike设置邮件别名和邮件群发功能邮件别名和邮件群发功能使用aliases机制实现,aliases和aliases.db文件/etc/aliases/etc/aliases.dbaliases文件的记录格式name: addr_1, addr_2, addr_3, . . .设置邮件别名admin:mike设置邮件群发testgroup:mike,john修改aliases文件后更新aliases.db文件# newaliases访问控制的设置,access.db数据库可实现基于主机地址的访问控制# cat /etc/mail/accesslocalhost.localdomain RELAYlocalhost RELAY127.0.0.1RELAY192.168.1 RELAY(加入允许网段)#makemap hash access.dbaccess.db数据库默认开启了对邮件服务器本机用户的邮件投递生成sendmail.cf文件# cd /etc/mail# m4 sendmail.mc> sendmail.cf重新启动sendmail服务器,当完成对sendmail服务器的配置后,需要重新启动服务程序# service sendmail restart验证服务程序启动# netstat -ntpl | grep 25tcp 00 0.0.0.0:250.0.0.0:*LISTEN6835/sendmail: acce安装dovecot 服务器(pop3服务)# system-config-packages开启dovecot 的pop3服务修改dovecot.conf文件# vi /etc/dovecot.conf//将以下配置行#protocols = imap imaps//修改为protocols = imap imaps pop3 pop3s使用脚本启动dovecot服务对dovecot.conf配置文件进行设置后,需要重新启动dovecot服务程序# service dovecot restart设置dovecot服务的启动状态设置dovecot的启动状态# chkconfig --level 35 dovecot on验证dovecot服务启动使用netstat命令查看dovecot已经监听110端口# netstat -ntpl | grep 110loris注:未经验证基本配置需要修改的配置文件:/etc/mail/sendmail.mc/etc/mail/local-host-names/etc/mail/access打开sendmail.mc,搜索”127.0.0.1″,找到如下代码;DAEMON_OPTIONS (`Port=smtp,Addr=127.0.0.1,Name=MTA’)修改为:DAEMON_OPTIONS (`Port=smtp,Addr=0.0.0.0,Name=MTA’)监听所有IP地址,搜索”MD5″,找到如下代码:dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnldnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl,去掉这两行前面的”dnl”,后面的dnl保留.在shell下执行命令:m4 sendmail.mc > sendmail.cf在local-host-names 中添加邮件服务所使用的域名,比如有账户zbwz@,这里面就填,一个域名占一行,域名最后不用加”.”,域名要解析要sendmail 服务器的IP.最后就是access文件,这个文件只有跨服务器发送邮件时才会用到.比如现在的sendmail服务器S1的IP为”192.168.1.2″,另外一台sendmail服务器S2的IP为”192.168.2.2″,要用S1上的一个邮箱帐号向S2服务器上的邮箱帐号发送邮件.在S2上就需要修改access文件了,在access文件中添加如下内容:192.168.1.2RELAY中继来自192.168.1.2的邮件.保存一下,然后在shell中执行命令:makemap hash access.db最终sendmail程序要用到的还是access.db文件,所以这里要把access文件转换为access.db文件.access文件中其他的一些选项:192.168.1REJACK(拒绝)192.168.1.2OK(绝对允许,完全信任该IP)这里的IP可以使一个IP地址,也可以是一个网段.两台sendmail服务器之间发送邮件需要注意的一些问题:两台sendmail服务器的主机名不可为localhost.localdomain(默认的主机名).需要修改配置文件:/etc/sysconfig/network.或者直接在”网络”里修改,修改后重启网卡,打开/etc/hosts.里面的内容为不能包含新的主机名.telnet到Sendmail服务器的25端口,这里的主机名不为localhost.localdomain时,两台Sendmail就可以互发邮件了.DNS服务器里一定要做好相应的A记录和MX记录.以服务器S1为例:域名为在dns服务器中建立如下记录:@ IN A 192.168.1.2mail IN A 192.168.1.2@ IN MX 10 mail群发功能的实现:实现向team1发送邮件 People[1-3]都能收到打开/etc/aliases文件.添加如下内容:team1:People1,People2,People3team2:People4,People5,People6这里的team[1-2],People[1-6]都是真实用户.需要用useradd命令创建新建Sendmail用户时,如果不希望该用户登陆到系统,可以使用如下命令添加用户: useradd 用户名-s /sbin/nologin照这样配置好后,Sendmail服务器就可以进行最基本的收发邮件工作了Sendmail邮件配置(sendmail-8.13.8-2.el5.i386.rpm,sendmail-cf-8.13.8-2.el5.i386.rpm,m4-1.4.5 -3.el5.1.i386.rpm)由于sendmail的真正配置文件作者是用一种生僻的语言写的,号称天书,没几个人看得懂,所以我们配置的时候是配置的/etc/mail/sendmail.mc,这个比较好懂,每次修改后都要用m4 sendmail.mc > sendmail.cf将修改的内容写到天书里面去。
linux
Linux下采用sendmail+dovecot+openwebmail架构邮件系统Linux下采用sendmail+dovecot+openwebmail架构邮件系统是一套比较成熟的邮件服务器系统,其中sendmail是邮件服务的核心,dovecot可以提供pop3和imap的支持,openwebmail可以为邮件服务器提供web邮件功能。
首先配置实验环境bind提供DNS服务解析域名:服务同时做DNS服务器和邮件服务器服务器域名: IP:192.168.0.231设置邮件服务器的mx记录Apache提供web服务,是openwebmail必备的选项sendmail和dovecot在安装关盘中有的,openwebmail及相关组件需要到网站上下载:/openwebmail/download/安装sendmail[root@mail ~]# rpm -ivh /media/Server/sendmail-8.13.8-2.el5.i386.rpm[root@mail ~]# rpm -ivh /media/Server/sendmail-cf-8.13.8-2.el5.i386.rpm[root@mail ~]# rpm -ivh /media/Server/m4-1.4.5-3.el5.1.i386.rpm修改/etc/mail/sendmail.mc配置邮件服务器地址及域名DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnlLOCAL_DOMAIN(`')dnl添加smtp认证需要:TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl生成sendmail.cf 主配置文件[root@mail ~]# cd /etc/mail[root@mail mail]# m4 sendmail.mc > sendmail.cf安装dovecot让mail支持使用MUA接收邮件首先需要一些包的支持:[root@mail mail]# rpm -ivh /media/Server/postgresql-libs-8.1.4-1.1.i386.rpm [root@mail mail]# rpm -ivh /media/Server/perl-DBI-1.52-1.fc6.i386.rpm [root@mail mail]# rpm -ivh /media/Server/mysql-5.0.22-2.1.i386.rpm安装dovecot[root@mail mail]# rpm -ivh /media/Server/dovecot-1.0-1.2.rc15.el5.i386.rpm 修改/etc/dovecot.conf去掉注释protocols = imap imaps pop3 pop3slisten = [::]启动sendmail和dovecot服务Service sendmail startService dovecot start邮件别名,群组/etc/aliases加入liusuping: frank,frankliu让新添加的组生效[root@mail mail]# newaliases/etc/aliases: 77 aliases, longest 14 bytes, 788 bytes total转发控制[root@mail mail]# vim /etc/mail/access增加一行,192.168.0.0为服务器所在网段Connect:192.168.0.0 RELAY重新生成access数据[root@mail mail]# makemap hash access.db < access安装openwebmail所需要的包:[root@mail tmp]# rpm -ivh /media/Server/perl-suidperl-5.8.8-10.i386.rpm[root@mail tmp]# rpm -ivh perl-Text-Iconv-1.7-1.el5.rf.i386.rpm[root@mail tmp]# rpm -ivh openwebmail-data-2.53-3.i386.rpm --nodeps[root@mail tmp]# rpm -ivh openwebmail-2.53-3.i386.rpm检查dbm.conf配置[root@mail tmp]# vim /var/www/cgi-bin/openwebmail/etc/dbm.confdbm_ext .dbdbmopen_ext .dbdbmopen_haslock no初始化openwebmail配置:[root@mail tmp]# /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --initWelcome to the OpenWebMail!This program is going to send a short message back to the developer,so we could have the idea that who is installing and how many sites are using this software, the content to be sent is:OS: Linux 2.6.18-8.el5 i686Perl: 5.008008WebMail: OpenWebMail 2.53 20080123Send the site report?(Y/n) nThank you.修改openwebmail.conf文件,中文化[root@mail tmp]# vim /var/www/cgi-bin/openwebmail/etc/openwebmail.confdefault_language zh_CN.GB2312default_iconset Cool3D.Chinese.Simplified启动http服务。
Linux下SendMail的安装与配置
附2Linux下SendMail的安装与配置一、安装sendmail如果你在安装LINUX的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。
如果你在安装时没有选择,或者你需要升级sendmail就可以使用以下方法进行。
1通过RPM包来安装或升级(仅用于RedHat LINUX):1) 首先在光盘上或Internet上找到下面几个RPM包:sendmail-8.9.3-10.i386.rpm sendmail可执行文件sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文档2) 然后使用以下命令安装或升级:安装:rpm ?ivh sendmail-8.9.3-10.i386.rpm升级:rpm ?Uvh sendmail-8.9.3-10.i386.rpm2.用源代码编译关安装:1) 首先取得最新版本的源代码:/ftp:///pub/unix/mail/sendmail/2) 展开源代码:cd /hometar ?z xvf sendmail-8.9.3.tar.gz这样就会在/home目录下建立一个sendmail-8.9.3目录:/home/sendmail-8.9.3/README/home/sendmail-8.9.3/src/home/sendmail-8.9.3/cf/home/sendmail-8.9.3/doc3) 编译:由于sendmail自己带了一个编译程序Build,所以不用make命令:cd /home/sendmail-8.9.3/src./Buildinstall二、用sendmail构建一个E-Mail服务器当我们在系统中安装了sendmail后我们就可以使用这台机成为我们的电子邮局了。
因为sendmail的功能强大,配置繁琐。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A、安装相应软件
邮件服务器需要安装以下软件
0.查看是否已经安装
rpm -qa | grep sendmail
rpm -qa | grep m4
rpm -qa | grep dovecot
rpm -qa | grep cyrus
1.安装邮件服务器
yum install sendmail sendmail-cf sendmail-doc sendmail-devel
sendmail主程序包
sendmail-cf宏文件包
sendmail-doc说明文档/usr/share/sendmail-cf/README
sendmail-devel服务器开发工具
yum install m4
宏处理过滤
2.安装pop3/imap服务
yum install dovecot
3.安装用户认证
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-lib cyrus-sasl-md5
或安装所有组件
yum install cyrus-sasl cyrus-sasl-*
4.安装邮件过滤器SpamAssassin
yum install spamassassin
chkconfig spamassassin on
service spamassassin restart
B、配置服务
B.1、配置sendmail.cf
sendmail.cf是sendmail的核心配置文件,位于/etc/mail/sendmai.cf,里面有大量的宏语言,一般直接编辑的难度很大,所以我们需要编辑另外一个配置文件sendmail.mc,然后使用m4命令生成sendmail.cf文件。
1.编辑sendmail.mc
vi /etc/mail/sendmail.mc
1.1.SendMail在默认只侦听127.0.0.1,此处要修改为侦听指定网络接
#DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
找到以上行,更改为下面的行
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
1.2.设置SMTP的用户认证
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
找到以上行,把上面两行前面的dnl给删除掉,让这两行的配置生效,这两行的作用是激活邮件服务器的认证功能。
1.3.设本地域名为
找到以下行
LOCAL_DOMAIN(`')dnl
1.4.使以下配置生效
DAEMON_OPTIONS(`Port=submission,Name=MSA,M=Ea')dnl
2.生成sendmail.cf
因为sendmail.cf的配置文件全部是用宏语言来编写的,一般人很难读懂,所以我们上步骤中的配置是为了最终体现在sendmail.cf文件中,在这里要用到m4命令。
cd /etc/mail/
m4 sendmail.mc > sendmail.cf
3.重启sendmail和saslauthd服务
service sendmail restart
service saslauthd restart
4.开机启动sendmail和saslauthd服务
chkconfig sendmail on
chkconfig saslauthd on
B.2、修改local-host-names文件
local-host-names用来收发邮件的主机别名。
举个例子吧:假设邮件服务器有两个主机名称,分别是和,而只想收到发给的信件,发给 的邮件则拒收,那么需要添加到/etc/mail/local-host-names文件中,即可实现。
vi /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
添加这个字段
B.3、修改access文件
1.配置access
vi /etc/mail/access
允许所有网段访问并转发,
RELAY 表示允许转发的
OK 表示无条件转发
DISCARD:拒绝
REJECT 表示拒绝并发退信通知
在原有基础上添加以下内容
#Connect:0.0.0.0 RELAY
Connect: RELAY
Connect:192.168.1 RELAY
2.编译生成访问控制文件
makemap hash access.db<access
B.4、修改aliases文件
定义邮箱别名
B.5、修改saslauthd文件
SMTP认证功能
vi /etc/sysconfig/saslauthd
把MECH=pam改为MECH=shadow
B.6、配置dovecot
为了保证客户端能够使用加密的形式接受邮件,还需要为dovecot添加相应的密钥和证书,启动pop3s或者IMAPS的支持。
1.生成私钥和自签名证书
cd /etc/pki/tls/certs
make -C /etc/pki/tls/certs/ dovecot.pem
2.修改dovecot.conf配置文件
vi /etc/dovecot.conf
2.1.找到以下配置
protocols=imap imaps pop3 pop3s
删除前面的#,使其生效。
2.2.找到以下配置
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/certs/dovecot.pem
改成以上形式
3.重启dovecot服务
service dovecot restart
4.开机启动dovecot服务
chkconfig dovecot on
B.7、配置procmail
现在SpamAssassin安装好了,如何告诉sendmail调用SpamAssassin扫描邮件呢?这里使用procmail来处理。
vi /etc/procmailrc
添加以下内容
LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
VERBOSE=off
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin
LOGFILE=/var/log/procmail.log
:0fw: spamassassin.lock
* < 100000
| /usr/bin/spamassassin
:0:
* ^X-Spam-Flag: Yes
$HOME/mail/spam-mail
C、测试邮箱
1.添加邮件用户
groupadd mailgroup
adduser -g mailgroup -s /sbin/nologin mail1
adduser -g mailgroup -s /sbin/nologin mail2
这样添加的用户名就没有了shell,只能收发信而不能登录到服务器运行其他程序
2.本地测试
用CentOS自带的Evolution进行测试
点击编辑->首选项,点击添加按钮,邮件地址输入mail1@,接受服务器选POP或者IMAP,服务器地址输入本机IP地址,发送服务器选Sendmail,也可以选择SMTP,SMTP 服务器输入本机IP地址。
设置完成,可以发邮件测试。
3.局域网内测试
用Windows下 Outlook进行测试
点击工具->帐号设置,邮箱地址输入mail2@,接受邮件服务器输入邮件服务器IP 地址,发送服务器只能选SMTP,发送邮件服务器输入邮件服务器IP地址。
设置用户名密码。
设置完成,可以发邮件测试。