linux搭建邮件服务器总结
1. 用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能给其他的公网邮箱互发邮件,求解
快速配置Postfix邮件服务器
Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix/main.cf。
在main.cf文件中,参数都是以类似变量的设置方法来设置的,这些参数的使用主要包含两部分的内容:
(1)定义和声明变量:例如definename = good-better-best。等号左边是变量的名称,等号右边是变量的值。
(2)引用变量:可以在变量的前面加上符号“$”来引用该变量,如:myname = $ definename(相当于definename = good-better-best)。
需要注意的是:等号两边需要有空格字符。此外,如果变量有两个以上的设置值,就必须用逗号“,”或者空格符“ ”将它们分开。
在熟悉了上述变量的定义和引用方法后,下面详细介绍如何安全、高效地配置Postfix服务器的相关选项。
1.设置Postfix服务监听的网络接口
默认情况下,inet_interfaces参数的值被设置为localhost,这表明只能在本地邮件主机上寄信。如果邮件主机上有多个网络接口,而又不想使全部的网络接口都开放Postfix服务,就可以用主机名指定需要开放的网络接口。不过,通常是将所有的网络接口都开放,以便接收从任何网络接口来的邮件,即将inet_interfaces参数的值设置为“all”,如下所示:
inet_interfaces = all
2.安全设置可接收邮件的主机名称或域名
mydestination参数非常重要,因为只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。通过该选项的设置可以过滤掉许多没有经过认证和授权的邮件,从而节省服务器的存储空间,以及节省用户的邮件处理时间。
举一个简单的例子,用户可以将该参数值设置为如下:
accept_domain = test.net
mydestination = $accept_domain
这就表明无论来信的收件人地址是[email protected](其中X表示某用户在test.net域中的邮件账户名),Postfix都会接收这些邮件。而除此之外的邮件,Postfix都不会接受。
3.安全设置可转发邮件的网络(IP设置)
有关安全设置可转发邮件的网络可以使用mynetworks参数来设置。可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(采用“,”或者“ ”分隔)。
比如,用户可以将mynetworks参数值设置为172.168.96.0/24,则表示这台邮件主机只转发子网172.168.96.0/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件:
mynetworks = 172.168.96.0/24
除了mynetworks参数外,还有一个用于控制网络邮件转发的参数是mynetworks-style,它主要用来设置可转发邮件网络的方式。通常有以下三种方式:
(1)class:在这种方式下,Postfix会自动根据邮件主机的IP地址得知它所在的IP网络类型(即A类、B类或是C类),从而开放的它所在的IP网段。
(2)subnet:这是postfix的默认值,postfix会根据邮件主机的网络接口上所设置的IP地址、子网掩码来得知所要开放的IP网段。
(3)host:在这种方式下,postfix只会开放本机。
通常,用户一般不需要设置mynetworks-style参数,而直接设置mynetworks参数。如果这两个参数都进行了设置,那么mynetworks参数的设置有效。
4.设置可转发邮件的网络(域名设置)
上面介绍的mynetworks参数是针对邮件来源的IP来设置的,而relay_domains参数则是针对邮件来源的域名或主机名来设置的,其实从原理上来说是一致的,不过是区分了IP地址和域名而已,不过,relay_domains还需要依赖DNS这个基础设施。
例如,用户可以将relay_domains参数值设置为test.net,则表示任何由域test.net发来的邮件都会被认为是信任的,Postfix会自动对这些邮件进行转发,如下所示:
relay_domains = test.net
那么,要使它能在实际网络中更好地转发邮件,还必须进行相应的DNS设置。那么,需要在该网络的DNS服务器上定义了一个主区域test.net,并在该区域配置文件中定义了以下记录:
//定义邮件服务器的IP地址
patterson.test.net. IN A 172.168.96.254
//定义邮件服务器的别名
mail.test.net. IN CNAME patterson.test.net.
//定义优先级别
test.net. IN MX 10 mail.test.net.
上述记录只对邮件服务器进行了定义,还有诸如SOA、NS等的定义,在这里就不再赘述。
配置Postfix使用SMTP安全认证
Postfix默认不会对外开放转发功能,而仅对本机(localhost)开放转发功能。但是,在实际应用中,必须在Postfix主配置文件中通过设置mynetworks、relay_domains参数来开放一些所信任的网段或网域,否则该邮件服务器几乎没有什么用处。在开放了这些所信任的网段或网域后,还可以通过设置SMTP认证,对要求转发邮件的客户端进行用户身份(用户账户名与密码)验证。只有通过了验证,才能接收该用户寄来的邮件并帮助转发。同样,Postfix中目前比较常用的SMTP认证机制是通过Cyrus SASL包来实现的。
默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须对Postfix的主配置文件/etc/postfix/main.cf进行修改。用户需要在main.cf文件中添加如下有关SMTP认证的设置部分:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks
permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients=yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
其中,每个选项的具体含义如下:
(1)smtpd_sasl_auth_enable:指定是否要启用SASL作为SMTP认证方式。默认不启用,这里必须将它启用,所以要将该参数值设置为yes。
(2)smtpd_sasl_local_domain:如果采用Cyrus-SASL版进行认证,那么这里不做设置。
(3)smtpd_recipient_restrictions:表示通过收件人地址对客户端发来的邮件进行过滤。通常有以下几种限制规则:
permit_mynetworks:表示只要是收件人地址位于mynetworks参数中指定的网段就可以被转发邮件。
permit_sasl_authenticated:表示允许转发通过SASL认证的邮件。
reject_unauth_destination:表示拒绝转发含未信任的目标地址的邮件。
(4)broken_sasl_auth_clients:表示是否兼容非标准的SMTP认证。有一些Microsoft的SMTP客户端采用非标准的SMTP认证协议,只需将该参数设置为yes就可解决这类不兼容问题。
(5)smtpd_client_restrictions:表示限制可以向Postfix发起SMTP连接的客户端。如果要禁止未经过认证的客户端向Postfix发起SMTP连接,则可将该参数值设置为permit_sasl_authenticated。
(6)smtpd_sasl_security_options:用来限制某些登录的方式。如果将该参数值设置为noanonymous,则表示禁止采用匿名登录方式。
在完成上述设置后,必须使用
/etc/init.d/postfix reload
重新载入配置文件,或使用
/etc/init.d/postfix restart
重新启动Postfix服务,以使该配置生效。这两个命令的具体使用需要根据不同的Linux版本来选用。
此外,由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件中的内容,以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/smtpd.conf文件中的内容为:
pwcheck_method: saslauthd
2. 如何在自己的linux服务器上搭建邮件服务器
在互联网时代,企业邮箱成为企业对外交流的必备工具。部分企业出于安全保密考虑,选择自行搭建邮件服务器。下面将介绍在Linux系统上搭建邮件服务器的步骤。
一、搭建预备
1. 准备一台服务器,可以是云服务器或本地虚拟机。
2. 安装CentOS 6/7系统,确保系统环境干净全新。
3. 选择邮件服务器软件,推荐U-Mail for CentOS 邮件服务器(7.x)64位独立安装包。
二、Linux邮件服务器搭建步骤
1. 从comingchina.com下载U-Mail for CentOS 邮件服务器(7.x)64位独立安装包。
2. 使用unzip命令解压安装包。
3. 进入u-mail目录并运行./install.sh。
4. 根据软件安装向导设置邮件服务器域名、webmail端口号(默认80端口)、Apache端口和MySQL root密码。
5. 确认设置无误后,点击【Install】开始安装。
6. 安装完成后,系统会提示输入'系统@域名.com'的密码,设置邮件服务器管理员密码。随后重启服务器。
7. 服务器启动后,使用设置的域名登录新创建的邮件服务器,验证是否正常访问。
8. 登录邮件服务器管理后台,URL为:http://域名.com/operation,登录账号:system@域名.com(将域名.com替换为自己的邮件服务器域名地址)。
9. 成功登录管理员后台后,即可对邮件服务器进行相关配置。
至此,Linux邮件服务器搭建完成。若想学习更多Linux知识,可点击下方卡片领取免费学习资料。
3. Linux系统中的Sendmail服务器的安装和配置
Linux系统中Sendmail服务器的安装和配置步骤如下:
安装Sendmail及相关软件:
- 首先检查Sendmail是否已安装,使用命令rpm -q sendmail m4。
- 如果未安装或需要其他相关软件,挂载相应的光盘并使用rpm -ivh sendmail-*命令安装所有与sendmail相关的软件包。
配置本地主机名和域名:
- 修改/etc/mail/local-host-names文件,增加本地主机和域名的FQDN(完全限定域名),确保只添加本地主机的FQDN和域名FQDN,避免向外域发送邮件时出现user unknown错误。
修改Sendmail配置文件:
- 编辑/etc/mail/sendmail.mc文件,修改DaemonPortsOptions设置,将Addr=127.0.0.1更改为Addr=yourip或0.0.0.0,以允许外部连接。
- 运行m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf命令,生成新的sendmail.cf配置文件。
用户管理认证配置:
- 在/etc/mail/sendmail.mc文件中,取消TRUST_AUTH_MECH和下一行define处的注释,以启用认证机制。
- 再次运行m4命令生成新的sendmail.cf文件。
- 使用chkconfig命令确保saslauthd服务在特定运行级别上启用,并创建邮件用户账号,如mike和john。
设置邮件别名和邮件群发:
- 修改/etc/aliases文件,为邮件用户设置别名或实现邮件群发。
- 运行newaliases命令使更改生效。
访问控制设置:
- 编辑/etc/mail/access文件,添加允许中继的主机或域名。
- 使用makemap hash命令更新访问控制数据库。
启动并测试Sendmail服务:
- 使用service sendmail restart命令重启Sendmail服务。
- 使用telnet命令测试Sendmail服务的SMTP端口(25端口)是否开放,并发送测试邮件以验证配置是否正确。
安装并配置邮局服务(如Dovecot):
- 安装Dovecot及相关软件包。
- 修改Dovecot配置文件,如/etc/dovecot.conf,启用POP3和POP3S协议。
- 重启Dovecot服务,并设置其在特定运行级别上自动启动。
注意事项:
- 在进行配置前,请确保DNS服务器已正确安装并能解析域名。
- 配置过程中,请仔细检查每一步的语法和路径,确保没有遗漏或错误。
- 测试邮件发送和接收功能时,请确保网络连接正常,并检查防火墙和SELinux等安全设置是否允许相关服务的访问。
4. iRedMail在linux服务器上的搭建教程
打造专业邮件解决方案,iRedMail助您一臂之力! 在Linux世界里,寻找稳定且易用的邮件服务器?iRedMail无疑是您的理想选择。这款开源工具不仅免费,而且拥有强大的垃圾邮件防护机制,让你的邮件服务既安全又高效。
安装指南,一步到位:
- 基于卓越技术: iRedMail基于开源力量,集成SMTP、POP3、IMAP服务,还提供用户友好的WebMail和管理界面,让管理变得轻松简单。
具体步骤如下:
1. 准备CentOS环境:确保基础软件包已安装,从官网下载iRedMail(1.4.2版本)并解压。
2. 登陆CentOS,更新系统并修改主机名,使之更具识别性。
3. 优化安全设置: 为提升服务器性能,禁用SELinux并切换到root权限。
4. 选择国内镜像: 为了更快的下载速度,使用国内镜像源下载iRedMail,并执行特别为国内用户设计的安装命令。
5. 定义邮箱存储路径,为数据存储做好规划,同时选择合适的数据库配置。
步入细节:
- 选择OpenLDAP,并自定义LDAP前缀和管理员密码,确保账户管理有序。
- 接下来,安装关键组件,特别推荐使用Roundcube作为Web邮件访问平台。
- 安装过程中,明智地选择n对iptables以优化防火墙设置,y对数据库,确保稳定运行。别忘了重启服务器,让新配置生效。
检查与维护:
- 登录后,务必检查SMTP/S、POP3/S等服务是否正常运行,确保邮件顺畅传递。
- 参考iRedMail.tips文件,注意其中的敏感信息,维护数据安全。
- 安装完毕,获取登录链接和管理员信息。考虑是否启用SSL,或者修改config.inc.php中的force_https为false,以满足个性化需求。
验证与优化:
- 在Webmail和管理界面,试添加新用户并验证其邮箱,通过发送测试邮件来确认一切运行正常。
- 探索更多教程资源,如高治中个人空间,持续提升您的运维技能。
<iRedMail,以高效、安全的邮件服务,助力您的企业或个人需求,让沟通无阻!
5. LINUX下如何搭建邮件服务器
可以使用U-Mail邮件服务器
步骤如下:
1、下载U-Mail邮件系统forCentOS(6.X)一体盘
请去http://www.comingchina.com/html/downloads/下载U-Mail邮件服务器最新版本。
2、解析好域名,将域名的MX记录和的A记录解析到邮件服务器的IP地址。
MX记录和A记录解析方法参考:http://www.comingchina.com/html/faq/anzhuangzhongzhuangbeifen/954.html
如果是将邮件服务器放置在内网,通过端口映射的方式将外网IP的服务端口映射到内网,那么必须映射端口:25、110、80等。
3、将BIOS启动方式设置为光驱启动,并放入U-MailforCentOS(6.X)一体盘光盘
4、出现安装界面后,按回车键
5、设置TCP/IP参数(使用Tab键切换,空格键选择),选择如下图,按“OK”按钮。
6. Linux系统下安装配置postfix邮件服务器的教程
一,安装postfix,cyrus-sasl,cyrus-imapd
如果yum提示找不到软件包,请换一下源,请参考centos 6推荐使用epel源
[root@localhost ~]# yum install postfix
[root@localhost ~]# yum install cyrus*
二,删除了sendmail
[root@localhost ~]# rpm -e sendmail
或者
复制代码代码如下:
[root@localhost ~]# yum remove sendmail
三,更改默认邮件传输代理(MTA)
[root@localhost sasl2]# alternatives --config mta
共有 1 个程序提供“mta”。
选择 命令
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix
按 Enter 来保存当前选择[+],或键入选择号码:1
上面的只有一个postfix,sendmail已经被我删了。可以通过下面命令来查看。
复制代码代码如下:
[root@localhost ~]# alternatives --display mta
四,postfix,cyrus-sasl,cyrus-imapd相关配置
1,postfix主配置文件main.cf
[root@localhost postfix]# vim /etc/postfix/main.cf
myhostname = localhost //76行,将等号后面的部分改写为本机主机名
mydomain = 51yip.com //82行,设置域名
myorigin = $mydomain //97行,把$myhostname改为$mydomain
inet_interfaces = all //112行,把后面的localhost改成all
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //163行,把前面的注释拿掉,并加一下$mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0/8 //263行,设置内网和本地IP
local_recipient_maps = //209行,把前面的注释拿掉。
smtpd_banner = $myhostname ESMTP unknow //568行,把前面的注释拿掉,然后把$mail_name ($mail_version)改成unknow
//在main.cf文件的底部加上以下内容
smtpd_sasl_auth_enable = yes //使用SMTP认证
broken_sasl_auth_clients = yes //让不支持RFC2554的smtpclient也可以跟postfix做交互。
smtpd_sasl_local_domain = $myhostname // 指定SMTP认证的本地域名
smtpd_sasl_security_options = noanonymous //取消匿名登陆方式
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设置允许范围
message_size_limit = 15728640 //邮件大小
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp //设置连接cyrus-imapd的路径
如果不加local_recipient_maps这个配置,收邮件收不到,下面是qq的退信。
收件人邮件地址([email protected])不存在,邮件无法送达。host mail.51yip.com[122.225.***.***] said: 550 5.1.1: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command)
2,cyrus-sasl配置
[root@localhost postfix]# vim /etc/sasl2/smtpd.conf //在文件尾部加上以下内容
log_level: 3 //记录log的模式
saslauthd_path:/var/run/saslauthd/mux //设置一下smtp寻找cyrus-sasl的路径,在这里要提一下的32位的机器和64位的机器smtpd.conf的路径是不一样的。
//这是centos 5.5 32位机器上smtpd的配置文件
[root@linux sasl2]# ls |grep conf
Sendmail.conf
smtpd.conf
[root@linux sasl2]# pwd
/usr/lib/sasl2
//这是centos 6.0 64位机器上smtpd的配置文件,其他地方没有smtpd的配置文件
[root@localhost postfix]# ls /etc/sasl2/ |grep smtpd
smtpd.conf
网上有不少关于postfix安装文章,配置的时候并没有明确提出是32位机器,还是64位机器。所以在这里标明一下。
3,配置cyrus-imapd
cyrus-imapd的主要配置文件有下面三个
这里是默认的配置,也就是说上面三个文件我是没有动过的。在这里提醒一下imapd.conf在这个文件里面,你可以设置管理账号
,设置邮件存放目录,设置密码连接方式等。
五,启动postfix,cyrus-sasl,cyrus-imapd
启动cyrus-imapd服务,就可以同时提供pop和imap服务,如果你已安装了dovecot服务就可以删除掉,cyrus-imapd和dovecot二者选其一就行了,二都可以提供pop和imap服务,不过cyrus-imapd可以为每个用户创建一个信息,而且信箱具有层次结构,比较好管理。建议用cyrus-imapd。
[root@linux sasl2]# /etc/init.d/postfix start
[root@linux sasl2]# /etc/init.d/saslauthd start
[root@linux sasl2]# /etc/init.d/cyrus-imapd start
查看一下进程,
复制代码代码如下:
//smtp监听是25端口
[root@linux u]# netstat -tpnl |grep smtpd
tcp 0 0 127.0.0.1:25复制代码代码如下:
/etc/sysconfig/cyrus-imapd
/etc/cyrus.conf
/etc/imapd.conf
0.0.0.0:* LISTEN 6319/smtpd
//110(POP3)和143(IMAP)端口,下面都已经有了
[root@linux u]# netstat -tpnl |grep cyrus
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 :::993 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::995 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::110 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::143 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::2000 :::* LISTEN 23593/cyrus-master
启动是没有问题的。
六,测试cyrus-sasl
[root@linux t]# passwd cyrus //设置cyrus的密码
[root@linux sasl2]# testsaslauthd -u cyrus -p '******' //系统用户和密码
0: OK "Success."
如果显示是上面的内容说是smtp是没有什么问题
七,cyrus-imapd生产邮件管理员账号,并添加测试账号
安装完cyrus-imapd后会产生一个管理账号是cyrus,所属用户组是mail
[root@linux sasl2]# id cyrus //imapd.conf里面默认的管理员账号就是cyrus
uid=76(cyrus) gid=12(mail) groups=12(mail),76(saslauth)
在认证admin账号时,我发现32位系统和64位系统有一点不同,二种系统我都配置过,配置都是一样的,
但是出现的结果不一样,看下图
32位机器cyrus管理员用户认证
64位机器cyrus管理员用户认证
从上图可以看出,32位的系统是不用加上--auth plain,64位的要,如果不加的话,根本进不去。
进去后,我们来添加一下测试账号
[root@linux sasl2]# cyradm -u cyrus localhost
IMAP Password:
localhost> cm tank
localhost> lm
tank (HasNoChildren)
localhost> quit
这样我们可以在/var/spool/imap中看到,生成的目录,32位机器和64位机器生成的目录是不一样的
复制代码代码如下:
//这是64位系统生成的目录
[root@localhost u]# ls
user^tank
[root@localhost u]# pwd
/var/spool/imap/u
//这是32位系统生成的目录
[root@linux t]# ls
tank
[root@linux t]# pwd
/var/spool/imap/t
八,测试收发邮件
测试前添加一下DNS,
1,mail.51yip.com A 默认 122.225.***.***
2,mail.51yip.com A 联通 60.12.***.***
3,@ MX 默认 mail.51yip.com
第1和第2,是添加二条A记录,第三行,设置了一下MX记录,这个千万不要忘了,不然你的域名是不通的。
方法有很多,我们可以利用telnet来测试,不过用telnet来测试收发邮件比较麻烦,用linux自带的
mail命令就方便多了
[root@localhost u]# mail -s '看一下' [email protected] < /etc/imapd.conf
7. Linux服务器---邮件服务器dovecot
Dovecot是一款在Linux服务器上广泛使用的POP3/IMAP邮件服务器解决方案。以下是关于Dovecot的简要介绍和配置步骤:
一、Dovecot简介 功能强大:Dovecot以其高效和可靠性为电子邮件管理提供了强大的支持。 协议支持:支持POP3和IMAP两大邮件协议,满足不同的邮件管理需求。POP3负责将邮件从服务器下载到本地,而IMAP则更注重效率,仅获取邮件摘要信息,按需下载具体邮件。
二、Dovecot配置步骤1. 安装Dovecot 执行命令sudo yum install dovecot,安装Dovecot组件。
激活Dovecot
- 打开配置文件/etc/dovecot/dovecot.conf,确保Dovecot服务被正确启用。
设定邮件存储路径
- 在/etc/dovecot/conf.d/10mail.conf中,修改mail_location参数,指定邮件的存储位置。
创建用户邮件目录
- 为每个用户创建专属的邮件存储空间,例如执行sudo mkdir /var/spool/dovecot/users/david为用户david创建邮件目录。
开放网络访问权限
- 在防火墙中打开IMAP和POP3的TCP访问权限,确保邮件客户端能够顺利连接。
启动Dovecot服务
- 执行命令sudo systemctl start dovecot,启动Dovecot服务。
验证连接
- 使用命令行工具如telnet或nc检查110和143端口是否已经正确监听,确保Dovecot已准备就绪。
通过以上步骤,你可以在Linux服务器上成功搭建一个Dovecot邮件服务器,为电子邮件管理提供高效、可靠的解决方案。