对于linux本人估计连新手都不算,就当初听过简单的东西,自己平常也不用,最近想要学点东西,就是关于sendmail服务器搭建,由于对这里不熟悉,也只能是通过查资料,


所以此篇文章只针对和我一样的小小菜鸟作为入门,也希望看到此文的大牛进行提携、同是菜鸟的朋友共同探讨。。。



要搞邮件之前得大概知道一个入门的东西,可能这个东西对真正的搭建起不了太大的作用,但是也算是一个基础知识吧。SMTP协议即简单邮件传输协议,在整个电子邮件系统中,大概有两处用到SMTP。

一:发送邮件的MUA与MTA建立连接并发送邮件。

二:MTA之间也是用SMTP进行电子邮件的转发。

MUA:MAIL USER AGENT ,电子邮件系统的构成之一,即接受用户输入的各种指令,将用户的邮件发送至MTA或者通过POP3、IMAP协议将邮件从MTA取到本机,常见额MUA有FOXMAIL,OUTLOOK等。邮件客户端程序。

MTA:MAIL TRANSFER AGENT,即用于收发邮件的程序,一般称为邮件代理。

MUA与MTA的关系:邮件服务器—MTA—MUA—MTA—邮件服务器

SMTP的通信过程如下:

(1)客户端通过3次握手与服务器(通常是TCP25端口)建立一个TCP连接,然后等待服务器发送220READY FOR MAIL。

(2)客户端在收到220保温后,发送HELO命令。

(3)服务器以250please to meet you 响应,表示一切正常。

(4)客户端以MAIL命令开始电子邮件的交互,在MAIL命令中,有一个“From:”字段,用于在出错时通知发件人。

(5)服务器收到MAIL命令后,发送250OK作为响应,表示一切正常。

(6)MAIL命令成功后,客户端就可以讲收信人的地址告诉服务器,这是用一连串的RCPT命令实现的。

(7)服务器接收到每个RCPT命令后,发送250OK作为响应,表示正确接收,或者发送550 No such user here 作为响应,表示没有这个用户。

(8)客户端的RCPT命令得到正确响应猴,就可以用DATA命令发送数据。

(9)服务器接收到DATA命令后,发送354 start mail input:end with "." on a line by itself。

(10)客户端此时可以输入信件的内容,并以单行的句号作为结束。

(11)服务器发送250OK表示信息发送成功。

(12)客户端请求断开连接。

(13)服务器断开连接。


上面简单的介绍了一下这些东西,下面开始sendmail服务器的搭建。

(一)DNS的配置

1)首先确定 sendmail、bind、nameserver、dovecot包是否安装好。

2)把虚拟机当做mail server,本机当做client,确定mail server和clinet是否处于同一网段,如果不处于同一网段进行修改。

下图是我的client和server的ip配置。

client


server



server的ip配置有几种方式,我是通过setup进行配置,这里就不想写说了,或者修改/etc/sysconfig/network-scripts/ifcfg-eth0。配置完成以后重启服务 service netword restart

3)进入到/var/named/chroot/etc/下配置named.conf,如果没有named.conf文件,则copy一份命名为此进行修改。

 cp -p named.caching-nameserver.conf named.conf 如下图:


directory       "/var/named";
zone文件的存放目录,指的是chroot环境下面的/var/named
dump-file       "/var/named/data/cache_dump.db";
存放缓存的信息
statistics-file "/var/named/data/named_stats.txt";
统计用户的访问状态
memstatistics-file "/var/named/data/named_mem_stats.txt";
每一次访问耗费多少内存的存放文件
allow-query     { any; };
       允许查询的客户端,any 表示任何人;
allow-query-cache { any; };
       允许那些客户端来查询缓存,any表示允许任何人

ps:接着两个zone,指定dns以及反向查询域,我们同时可以在directory下加一行:forwarders {202.96.134.133;}forwarders参数指明了其后的ip所  在的服务器作为备选的dns服务器。也就是说,把本机的dns不能解析的主机发送到这个备选的dns服务器上,让它来进行解析。


4)下面配置两个zone文件,位置为:/var/named/chroot/var/named/ 

cp -p localhost.zone  kobe.com

cp -p localhost.zone 180.64.10.in-addr.arpa

具体配置如下图:

kobe.com


180.64.10.in-addr.arpa


Serial配置文件的修改版本

refresh 刷新频率

retry 重试时间

expire 过期时间

SOA 指的是授权起始,后面接着写你的dns服务器的主机名,这里是“kobe.com.”。(注意,主机名称后面的小圆点。凡是出现在记录文件了的主机名,记得        都要加上这各小圆点。)NS 是名称服务器资源记录,指明域中的名称服务器,这里就是dns服务器,且一个NS可以对应多个例:如下图

     MX是邮件交换者资源记录,指明这个域的邮件服务器。你可以     写多个MX记录,指明多个邮件服务器,优先级别由MX后的数字决定,数字越小,邮件服务     器优先权越高。A是主机记录,把主机和ip地址对应起来。CNAME是别      名记录,它赋予一个主机不同的名称。@表示当前授权域名。A指的是     Address


     5)下面指定当前主机的dns服务器,vi /etc/resolv.conf具体配置如图,最多可以指定3个nameserver。

    


    6)上述配置完成以后检验配置的是否正确:



  

如果报错检查配置文件,没有报错,配置成功重启named服务:service named restart。如果启动没有问题,则通过,我初次配置的时候出现了一个问题:

1.找不到zone文件,原因是可能对文件夹的错误理解,zone文件放错位置,切记,zone文件放的是/var/named/chroot/var/named中。


     7)上述步骤没有问题,用nslookup命令进行测试:如下图

    

  此处可能遇到2个问题,至少我是遇到了2个问题,下面说下解决办法:

  1.server failed 。查看tail /var/log/messages,查看错误信息,我当时是因为权限不够无法打开zone文件。

  2.no answer。此原因就是因为配置不正确了。找不到dns



目前来说DNS配置完毕,后继的sendmail server的配置看下一篇文章。



GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐