估计时间: 2个小时
目标: 建立基本的MTA的配置的技能
试验的起点: 标准的Red Hat Linux安装
确保在Server1上的sednmail.mc文件中的DAEMON_OPTIONS被注释并且重新编译sendmail.cf文件使得能够接受来自其他主机的电子邮件。
介绍
本次实验作为一个安装和配置MTA的介绍。在介绍中我们将提及sendmail和postfix。您可以选择任何一个MTA,如果时间允许,您两个都可以做一下试验。在接下来的步骤中,您将
1. 安装并且验证sendmail的“发件箱”
2. 为您的sendmail的安装添加新的别名
3. 使用m4工具来改变您的转发行为
4. 安装POP3服务器并且配置POP客户端
在整个试验中,主机和域名取决于您的机器的IP地址。如果下面的试验出现了X字样的名称,您应该把X字样的名称替换成你的工作站的号码(您的IP地址的最后一个部分)。例如,如果您的工作站的IP的地址是192.168.0.2,您应该将stationX.domainX.example.com转换成station2.domain2.example.com。
将数据包过滤设定为无效状态。在本次试验开始之前,请您确保您的主机上的所有包过滤已被关闭(显然,在实际使用中您可以利用Linux内核的防火墙机制,然而我们在这里关掉它是为了减少潜在的问题)。
本次试验中以root身份来使用下面命令达成上面的要求:
service iptables stop
chkconfig iptables off
初始化安装-安装必要的软件包
下列软件包对于sendmail是必需的: sendmail,sendmail-cf,sendmail-doc,m4和procmail。对于postfix而言,您需要: postfix。如果需要他们,从CD上进行检视和安装,server1的NFS安装点,从: ftp://server1/pub/RedHat/RPMS/
为了安全的原因,sendmail和postfix的缺省的配置允许发邮件但是不允许从网络上接收邮件(缺省的它们只接受从回环接口上的连接)。按照如下配置您选择的MTA使得它接受传入的连接:
⑴ 对于sendmail: 修改 /etc/mail/sendmail.mc使用dnl注释在下面的行之前,就像这样:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
⑵ 将您的sendmail.cf文件做一个备份:
cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.orig
⑶ 在同一个目录下,编译sendmail.cf
m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
⑷ 重新启动sendmail,通过
service sendmail restart
对于postfix:修改/etc/postfix/main.cf
⑴. 找到并注释如下行
inet_interfaces = localhost
⑵. 取消注释该行:
inet_interfaces = all
⑶. 保存文件并且进行到步骤2 的结束的地方。找到和上面一样的对应于postfix的配置的地方。
对于sendmail: 有几个步骤您应该采用,以确保sendmail被正确安装。
⑴. 确信sendmail已经被在适当的运行级别上运行
检查您的sendmail被适当的配置且能够在重新启动以后其能够运行。使用chkconfig是比较方便的。
chkconfig -–list sendmail
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如果sendmail在标准的用户运行级别时无效,使用chkconfig,ntsysv 或者serviceconf 之类的工具来激活服务。
⑵. 确定sendmail没有在启动的时候出现错误
Red Hat Linux安装的时候使用提供的syslog工具来记录所有的信息到文件/var/log/maillog中去。检查此文件中的最后出现“starting”的地方以确保sendmail在启动的时候没有任何错误。
sendmail可执行文件位于/usr/sbin/sendmail。为了确定sendmail是否正确标识您的主机名称,通过命令行开关开启其调试模式并且设定为0:
sendmail –d0 </dev/null
Version 8.11.6
Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF
SMTP TCPWRAPPERS USERDB
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = station2
(canonical domain name) $j = station2.example.com
(subdomain name) $m = station2
(node name) $k = station2.example.com
Recipient names must be specified
如果sendmail返回您的主机名称为localhost,您可能错误配置了/etc/hosts文件。检查您的/etc/hosts文件,删除所有的但记住留下localhost的指向。如果/etc/hosts文件是正确的,那么检查一下在/etc/sysconfig/netwoek中的HOSTNAME的定义。
试图向root@server1发送简单的邮件。您可以看到一个合理的您的主机的转发服务器的SMTP交换。
#echo “hello root” | mail –v –s hello root@server1
root@server1... Connecting to [127.0.0.1] via relay...
220 localhost.localdomain ESMTP Sendmail 8.12.8/8.12.8Mon, 22 Sep 2003 14:29:24 +0800
>>>EHLO localhost.localdomain
250-localhost.localdomain Hello station1 [127.0.0.1], pleased to meet you
...
>>>MAIL From: SIZE=52 AUTH=root@localhost.localdomain
250 2.1.0 ... Sender ok
>>>RCPT To:
>>>DATA
250 2.1.5 ... Recipient ok
354 Enter mail, end with "." on a line by itself
>>>.
250 2.0.0 h8M6TOU5026513 Message accepted for delivery
root@192.168.241.182... Sent (h8M6TOU5026513 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>>QUIT
221 2.0.0 localhost.localdomain closing connection
如果SMTP交换向上面一样正确,那么消息将被转发到您的工作站上的本地的转发服务器上,并且mailq –Ac将会报告一个空的对列。接下来检查mail(不使用参数)来检查一下消息是否从本地的转发到server1。这样对列也应该是空的。
您的消息是不是在/var/log/maillog中正确的记录呢?在下面的步骤中,监视文件/var/log/maillog。下面的命令将会十分的有用:
xterm –e tail –f /var/log/maillog &
对于postfix:
⑴. 运行‘service sendmail stop’,接下来使用redhat-switch-mail使得postfix成为活跃的MTA。您也可以使用如下的命令行:
alternatives –set mta /usr/sbin/sendmail.postfix
⑵. 确保postfix在合适的运行级别有效:
chkconfig -–list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
⑶. 确定hostname命令正确的返回您的主机名称。应该是您的FQDN。
如果sendmail返回您的主机名称为localhost,您可能错误配置了/etc/hosts文件。检查您的/etc/hosts文件,删除所有的但记住留下localhost的指向,然后再试一遍。如果/etc/hosts文件是正确的,那么检查一下在/etc/sysconfig/netwoek中的HOSTNAME的定义。当这些值都正确的时候,启动postfix服务。
⑷. 确定postfix在启动的时候没有错误
和sendmail一样,Red Hat Linux的安装使用提供的syslog工具来记录所有的信息到文件/var/log/maillog中去。检查此文件中的最后查找任何错误信息。
试图向root@server1发送简单的邮件并且检查/var/log/maillog的记录文
mail –s `echo $USER` root@server1 </etc/redhat-release
应该是如下所示:
Sep 22 02:51:50 station1 postfix/pickup[2865]: A20ED348389: uid=0 from=
Sep 22 02:51:50 station1 postfix/cleanup[3534]: A20ED348389: message-id=<2003092
2065150.A20ED348389@station1.example.com >
Sep 22 02:51:50 station1 postfix/nqmgr[2866]: A20ED348389: from=<root@station1.e span=""></root@station1.e>
xample.com>, size=341, nrcpt=1 (queue active)
Sep 22 02:51:51 station1 postfix/smtp[3536]: A20ED348389: to=<root@192.168.241.1 span=""></root@192.168.241.1>
82>, relay=192.168.241.182[192.168.241.182], delay=1, status=sent (250 Message q
ueued)
对于sendmail:
在sendmail决定消息的接受者的目的地的之前,其先试图在别名中查找。Sendmail的主要的别名配置文件是/etc/aliases。为了优化查找,sendmail为其别名记录建立了一个哈希表数据库/etc/aliases.db.该文件通过newalias命令产生(该命令是sendmail –bi的同名)
下列命令将增加用户student(如果不存在的话)
useradd student
在/etc/aliases 行加入如下的行:
me: student
wizards: root, me
methere: student@stationX.example.com
现在运行newalias 命令来更新数据库,尝试发送邮件给您定义的收件人:
newalias
echo “hello there” | mail –s “hello” m
echo “hello there” | mail –s “hello” wizards
echo “hello there” | mail –s “hello” methere
您是否得到了期望的结果?是否所有的位于wizards的收件人都收到了邮件?如果没有,su – 到不是root的用户再试一次。
在postfix决定消息的接受者的目的地的之前,其先试图在别名中查找。Postfix的主要的别名配置文件是/etc/postfix/aliases。为了优化查找,postfix为其别名记录建立了一个哈希表别名数据库/etc/postfix/aliases.db(和sendmail类似).该文件通过newalias命令产生。
下列命令将增加用户student(如果不存在的话)
useradd student
在/etc/postfix/aliases 行加入如下的行:
注意:注释root别名的那一行为postfix
me: student
wizards: root, me
methere: student@stationX.example.com
现在运行newalias 命令来更新数据库,尝试发送邮件给您定义的收件人:
newalias
echo “hello there” | mail –s “hello” me
echo “hello there” | mail –s “hello” wizards
echo “hello there” | mail –s “hello” methere
您是否得到了期望的结果?是否所有的位于wizards的收件人都受到了邮件?
转发允许邮件通过使用中间的“转发”及其传递到其目的地。尽管这个功能曾经有用,但是转发已经成为Internet上垃圾邮件的源泉了。人们希望发送主动提供的的邮件的时候希望使用转发机制,从而使得邮件发源地很难被侦测出来。
下列步骤将使用下面的主机。替换X,Y和Z为适合的工作站的号码:
stationX:源机器,邮件从这里发出
stationY:转发机器,这里邮件从发送者送出
stationZ:目的机器,邮件的最终目的
该步骤假设您是stationX,转发机器,与某人的stationY合作,该机器为邮件的源头。在该步骤中,注意/var/log/maillog的变化。下列命令将会显得十分的有用。
对于sendmail
步骤⑴ :允许转发
您具有控制允许谁在您的机器上转发的能力。通过控制您的机器的混杂转发,您可以使得任何人都能够将您的机器作为转发的主机。(我们对于这种的尝试表示反对,也希望通过该实验显示出其缺陷)。配置/etc/mail/sendmail.mc, 通过加入如下行使得m4前置处理器允许混杂转发:
/etc/mail/sendmail.mc
(…其他的内容…)FEATURE(promiscuous_relay)dnl
使用m4前置处理机通过这个模板文件生成一个新的sendmail配置文件,然后将新生成的文件与通过sendmail RPM软件包提供的进行比较
m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.test-relay
diff /etc/mail/sendmail.test-relay /etc/mail/sendmail.cf
使用混杂转发以后会有多大的不同呢?现在将新建立的sendmail.test放置在恰当的位置上,重新启动sendmail.
mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf.accept-mail
cp /etc/mail/sendmail.test-relay /etc/mail/sendmail.cf
service sendmail restart
让您的伙伴扮演恶意的垃圾邮件的发送者,该人能够通过telnet到您的机器上的smtp(sendmail)的25号断口,进行垃圾邮件发送地址的欺骗,在stationY键入如下命令:
这个例子对于stationY(源机器) station2,并且stationX(转发,在这里目的机器) station1
[root@station1 root]# telnet station1 25
Trying station1.example.com...
Connected to station1.example.com (station1.example.com).
Escape character is '^]'.
220 station1.example.com (IMail 8.00 8-1) NT-ESMTP Server X1
helo mail.cracker.org
250 hello station1.example.com
mail from: spammer@cracker.org
250 ok
rcpt to:root@station1.example.com
250 ok its for root@mailgrid.ods.org
data
354 ok, send itend with .
Subject: Faked
this was faked!
250 Message queued
quit
221 Goodbye
Connection closed by foreign host.
垃圾邮件现在送到您的机器上了。下一步,看看您的伙伴能不能从您的机器转发给第三台机器:
这个例子对于stationY(源机器) station2,并且stationX(转发,在这里目的机器) station1,并且stationZ(目的机器) station3
[root@station1 root]# telnet station1 25
Trying station1.example.com...
Connected to station1.example.com (station1.example.com).
Escape character is '^]'.
220 station1.example.com (IMail 8.00 9-1) NT-ESMTP Server X1
helo mail.craker.org
250 hello station1.example.com
mail from: spammer@craker.org
250 ok
rcpt to root@station3.example.com
250 ok its for root@station3.example.com
data
354 ok, send itend with .
Subject: Relayed
this was faked any relayed!
250 Message queued
quit
221 Goodbye
Connection closed by foreign host.
由于您的机器已经被配置成为允许混杂转发,垃圾邮件可以通过您的机器进行邮件转发。
对于postfix:
您具有控制允许谁在您的机器上转发的能力。缺省的postfix允许在子网上的任何人通过您的机器进行转发。但是并不是在每一个环境中都安全的。例如,您的机器和其他机器在一起,如果您的本地子网里有一台机器被其他人控制,那么其他的机器都会有麻烦。
让您的伙伴扮演恶意的垃圾邮件的发送者,该人能够通过telnet到您的机器上的postfix的25号断口,进行垃圾邮件发送地址的欺骗,在stationY键入如下命令:
[root@station1 root]# telnet station1 25
Trying 127.0.0.1...
Connected to station1 (127.0.0.1).
Escape character is '^]'.
220 station1.example.com ESMTP Postfix
helo mail.craker.org
250 station1.example.com
mail from:spammer@craker.org
250 Ok
rcpt to: root@station1.example.com
250 Ok
data
354 End data with .
Subject: Faked
this was faked!
.
250 Ok: queued as 4FFA2348389
quit
221 Bye
Connection closed by foreign host.
垃圾邮件现在送到您的机器上了。下一步,看看您的伙伴能不能从您的机器转发给第三台机器:
这个例子对于stationY(源机器) station2,并且stationX(转发,在这里目的机器) station1,并且stationZ(目的机器) station3
[root@station1 root]# telnet station1 25
Trying 127.0.0.1...
Connected to station1 (127.0.0.1).
Escape character is '^]'.
220 station1.example.com ESMTP Postfix
helo mail.craker.org
250 station1.example.com
mail from: spammer@cracker.org
250 Ok
rcpt to: root@station3.example.com
250 Ok
data
354 End data with .
subject: Relayed
this was faked and relayed!
.
250 Ok: queued as 69C7B348389
quit
221 Bye
Connection closed by foreign host.
由于您的机器已经被配置成为允许混杂转发,垃圾邮件可以通过您的机器进行邮件转发。
步骤⑵ :不允许转发
对于sendmail
通过替换新的sendmail.cf为接受传入的信件的配置文件来恢复缺省的sendmail的配置,并且重新启动sendmail:
mv /etc/mail/sendmail.cf.accept-mail /etc/mail/sendmail.cf
service sendmail restart
让您的伙伴再从stationY转发垃圾邮件。您的sendmail还是一个转发器么?任何一个转发的都会产生如下的消息:
550 root@station3.example.com .. Relaying denied
对于postfix
编辑文件/etc/postfix/main.cf取消转发。
查找并且取消注释下面的行,并且重新启动postfix
mynetworks_style = host
让您的伙伴再从stationY转发垃圾邮件。您的postfix还是一个转发器么?任何一个转发的都会产生如下的消息:
554 : Recipient address rejected: Relay access denied
步骤⑶ :选择性的转发
对于sendmail
对于特定的主机,域或者网络,编辑/etc/mail/access并且重新启动sendmail。为了允许所有在example.com域中的机器可以把您的机器作为邮件转发服务器,你在/etc/mail/acces中添加如example.com域。和您的伙伴使用场景A中的命令进行测试。
对于postfix
对于特定的主机,域或者网络,编辑/etc/postfix/main.cf并且重新启动postfix。对于特定的主机允许通过您的机器进行转发,找到并且取消注释该行:
mynetworks_style = host
然后添加新行来允许转发的主机和网络,在这里允许station1和本地转发
mynetworks = 192.168.0.1, 127.0.0.0/8
和您的伙伴使用场景A中的命令进行测试。
在这个步骤中,你将配制您的机器stationX作为邮件的POP3服务器,使得您的在stationY的伙伴扮演POP客户端的角色。
步骤⑴ :安装POP3服务器
配置一个POP3服务器比较简单,只需要两个步骤:
① 安装相关的RPM软件包
② 在xinetd中允许服务
① 安装相关的RPM软件包
POP守护进程和其他的具有相同功能的守护进程,例如IMAP守护进程绑定在软件包imap中。再如xinetd,krb5-libs*和imap软件包来检查imap软件包含有什么软件。
三个守护进程被包括进来:imapd,ipop2d和ipop3d。POP3被用在很多Internet服务提供商,POP2提供是为了向后兼容。IMAP守护进程提供了根加复杂的能力,包括了在服务器端的文件夹的管理。
② 在xinetd中允许服务
对于本实验,我们仅选定POP3服务。ipop3d通过xinetd在请求的时候被启动。为了激活,运行下面的命令:
service xinetd start
chkconfig ipop3 on
查看一下/etc/xinetd.d/ipop3。显式的重新启动xinetd并不是必需的,由于chkconfig发送给xinetd 一个USR2信号告诉他重新调入其配置。
确认服务
运行下面的命令确认服务已经被正确的安装。下面的命令只是一个指导:
echo “mail to be poped” | mail –s “Hello student” student
[root@station1 root]# telnet localhost 110
Trying 127.0.0.1...
Connected to station1 (127.0.0.1).
+OK POP3 station1 v2001.78rh server ready
USER student
+OK User name accepted, password please
PASS student
+OK Mailbox open, 1 messages
list
STAT
+OK 1 440
TOP 1 99999
retr 1
+OK Top of message follows
Return-Path: root@station1.example.com
Delivered-To: student@station1.example.com
Received: by station1.example.com (Postfix, from userid 0)
id 72314348390Mon, 22 Sep 2003 08:02:27 -0400 (EDT)
To: student@station1.example.com
Subject: Hello student
Message-Id: 20030922120227.72314348390@station1.example.com
Date: Mon, 22 Sep 2003 08:02:27 -0400 (EDT)
From: root@station1.example.com (root)
Status:
mail to be poped
.
DELE 1
+OK Message deleted
QUIT
+OK Sayonara
Connection closed by foreign host.
如果一切顺利的话,您现在有一个安装好的POP服务器了。
步骤⑵ :使用POP客户端
所有的现在的邮件用户代理(MUA),例如netscape,elm,Outlook,pine和mutt都是使用POP的,可以被用作POP的客户端。每一个的配置都有所不同。同样有一个流行字符界面的的POP客户端叫做fetchmail。fetchmail是高度的可配置的,可以查询多个邮箱,可以作为守护进程运行,这样使得其每五分钟查询用户的邮箱。fetchmail在主机上递送邮件到邮件传送代理(MTA),例如sendmail。我们将勾画出以后如何安装fetchmail和使用其来查询我们装过的POP服务器。
从CD或者从 ftp://server1/pub/RedHat/RPMS来安装fetchmail软件包
注意到有很多选项可以影响fetchmail的行为。建立一个~/.fetchmailrc文件如下所示:
~student/.fetchmailrc
poll stationX.exmaple.com with protocol pop3: user studentXX there is user studentXX here password “password”
由于密码存储在该文件中,因此fetchmail将会拒绝运行除非您把该文件的属性设定为对于仅仅文件的所有者只读。注意还可以使用chown改变由root创建的文件的所有者为studentXX。
chmod 600 ~student/.fetchmailrc
chown student.student ~student/.fetchmailrc
尝试使用studentXX登陆到POP3邮
echo “hello student” | mail –s “Hola” student
su – student
fetchmail –v
exit
fetchmail能不能接收到student的POP邮件?将递送student的邮件到哪里?比从本地获取POP邮件有意义么?
让您的伙伴在另外一台机器上建立相同的~/.fetchmailrc文件(或者配置其它诸如mozilla的MTA)试图从您的服务器上进行收信。
⑴ m4宏语言提供给sendmail管理哪些东西?把所有的在xyz.com的用户邮件导向到本地用户xzplogin该使用什么语法?该在什么文件的和处填上这句话?
⑵ mailq命令用来作什么?您如何使用?
⑶ 当命令sendmail –q发出以后,sendmail将会试图仍在队列中等待的邮件。何时使用该命令是有用的?
⑷ 如果去除FEATURE(accept_unresolvable_domains)的注释将对垃圾邮件产生如何的影响?
⑸ m4有什么特征允许sendmail发送邮件作为整个域(例如,“example.com”)而不是完全的符合标准的主机名称(例如,“mail.example.com”)?
⑹ 在postfix中mynetworks_style如何影响转发?
请您查看文件/etc/postfix/main.cf。
⑺ 在文件/etc/postfix/access中需要如何的活跃的变化?
效果截图
Sendmail :sendmail 是最古老的 MTA(Mail Transfer Agent,电子邮件系统)之一,最早它诞生的时候,Internet 还没有被标准化,当时主机之间使用的是 UUCP 技术来交换邮件。它被设计得比较灵活,便于配置和运行于各种类型的机器。
Qmail :qmail 是新生一代的 MTA 代表,它以速度快、体积小、易配置安装等特性而著称。作者 D.J.Bernstein 是一个数学教授,富有传奇色彩。他于 1995 年开发 qmail,1996 年发布 0.70 版,并使用了多种当时比较先进的 技术,包括 Maildir,与 sendmail 单个 binary 不同的模块化设计,权限分离,以及使用了大量由他编写的配套工具,如 daemontool,ucsip-tcp 等。qmai 迅速成为了 Internet 上最有名的 MTA,使用者众。
postfix :postfix 如今已经独树一帜,流水线、模块化的设计,兼顾了效率和功能。灵活的配置和扩展,使得配置 postfix 变得富有趣味。其主要的特点是速度快、稳定,而且配置/功能非常强大,并和 sendmail 类似,提供了与外部程序对接的 API/protocol。尤其是配置部分,postfix 另一个优势是至今依然保持活跃的开发工作,而且稳步发展,适合高流量大负载的系统,扩充能力较强。本实验也是基于 postfix 服务器软件来实现。
邮件服务器基本的工作原理
MUA(Mail User Agent):向外发送邮件,以及提供用户浏览与编写邮件的功能。
MTA(Mail Transfer Agent):(可以理解为 smtpd 服务器)帮忙将用户的邮件传递出去或接收进来。
MDA(Mail Delivery Agent):将接收下来的邮件存放到对应用户邮筒当中的程序。通过分析 MTA 所收到邮件的表头或内容,来判断此邮件是属于哪个用户,然后决定将此邮件投递给哪个用户的邮筒里。
MRA(Mail Retrieval Agent):通过 MRA 服务器提供的邮政服务协议(POP)来接收自己的邮件。
邮件中继:
SMTPD 要支持邮件路由功能,需要打开 Open Relay 开放式中继。
SMTPD 是根据收件人判断邮件是否需要中继,而且只给指定的客户端中继。
注:当 DNS 上存在多个 MX 记录的主机这时就是根据 DNS 的邮件级判断了。DNS 上定义的值越小,其优先级越高。辅助交换器接受到邮件并不能保存邮件。而是这个辅助交换器会等到主邮件交换器空闲的时候把代替它接受下来的邮件在转给主邮件交换器。所以任何邮件处理都是主邮件交换器处理的。所以我们实际情况下,如果有 2 台服务器做邮件交换器,性能比较高的应该为主的。
安装配置过程中,postfix 通过 Internet 发送和接收 email,并存储在用户邮箱里。同时客户也可以通过 IMAP 或者 POP3 恢复他们的邮件。其中的客户认证是通过 Courier Authdaemon 模块的。下图表示出了这个过程:
出现安装界面时,首先按下 <tab>键切换到确定,然后按下回车。
安装 postfix 的时候会问你安装的服务器类型,对于我们的需要,我们选择默认的 Internet Site,这是最符合我们的服务器类型,然后按下回车确认。
使用 vim 编辑配置文件:
大概在第 31 行,编辑 myhostname,修改为 myhostname = shiyanlou.com。
然后我们把 alias_map 参数修改为 alias_maps = hash:/etc/postfix/virtual,之后会讲解 virtual 里面填写什么。
之后设置 mynetworks 段落,它定义可以使用这台服务器的主机,我们这里就用默认的本地地址。你也可设置为其他地址。
编辑完成后按下 Esc 键,输入 :wq 保存退出。
此命令创建了一个用户 master,其中 -d 和 -m 选项用来为登录名 master 产生一个主目录 /usr/master(/usr 为默认的用户主目录所在的父目录)。
我们编写之前设置的 virtual 文件,这些邮箱地址是用来传送邮件的。
在这个文件里,我们将设置一个表,对应相关的邮件地址。
完成后保存关闭文件。
我们可以通过调用下面这个命令来实现我们的映射:
接着我们重启 postfix,完成我们的修改:
我们可以用 shiyanlou 这个账号给 master 这个账号发一封邮件。首先我们需要安装一个命令行收发邮件的软件 mailutils 。
写一封邮件
输入如下内容:
其中 -s 参数是指邮件的标题,<后面是将要发送的邮件内容从 hello.txt 中重定向。这个命令如果正确执行不会有输出。
然后我们切换到 master 用户,查看我们的邮件。
按下回车建可以查看邮件内容,输入 quit 即可退出邮箱。
Linux 邮件服务器原理介绍,编译安装 Postfix 实现本地的邮件服务
Ubuntu 服务器指南-邮件服务-Postfix
how-to-run-your-own-mail-server-with-mail-in-a-box-on-ubuntu-14-04
先来介绍一下实验环境:域名:try.com第一台域控制器:计算机名:server.try.comIP:192.168.5.1子网掩码:255.255.255.0DNS:192.168.5.1第二台域控制器:计算机名:test20031.try.comIP:192.168.5.2子网掩码:255.255.255.0DNS:192.168.5.1子域域名: test.try.com第一台域控制器:计算机名:BDC.test.try.comIP:192.168.5.3子网掩码:255.255.255.0DNS:192.168.5.3注:FSMO五种角色全部在第一台域控制器上,这个实验环境本人已经做过一次灾难恢复和一次域的重命名操作,在这里也可以检测一下经过这样的两次操作,整个森林是不是能够稳定运行。同时可以验证我在前面文章中所写的方法是否可靠。实验目的:在网络上部署两台Exchange服务器,为什么要两台呢?因为在后面的文章中我要做一个前后端服务器,所以至少要二台Exchange服务器,这两台Exchange服务器的配置情况如下:第一台Exchange服务器:计算机名:ex1.try.comIP:192.168.5.10子网掩码:255.255.255.0DNS:192.168.5.1第二台Exchange服务器:计算机名:ex2.try.comIP:192.168.5.11子网掩码:255.255.255.0DNS:192.168.5.1好,现在开始来到第一台成员服务器,在这里我顺便要提一下,很多朋友都知道Exchange Server 2003一定要活动目录支持,但是需要活动目录支持并不等于一定要把Exchange Server 2003装到域控制器上,这完全是两个概念,而且微软也不推荐Exchange Server 2003装到域控制器上,因为我建议大家装到成员服务器上就可以了。现在就开始正式部署Exchange Server 2003,首先要安装IIS、NNTP、SMTP及ASP.NET,默认情况下Windows Server 2003是不安装这些组件的,所以我们需要手动添加: 把Windows Server 2003安装盘放入光驱,然后点击“开始-设置-控制面板-添加删除程序”:点击“添加/删除Windows组件”:下拉滚动条,找到“应用程序服务器”:前“应用程序服务器”前打个勾,并且点“详细信息”:在“ASP.NET”前打上勾,并且选中“Internet信息服务”,然后点“详细信息”:在上图所示的“NNTP Service”及“SMTP Service”前打上勾,然后一路点“确定”和“下一步”:直接点“完成”就可以了。接下去就要把Windows Server2003的光盘取出来,放入Exchange Server 2003的安装盘,它会自动运行,出来如下画面:上图的左边的链接都是一些资源,大家有兴趣的话可以点击,自己查阅一下,这里我就不点这些东西了,我们选择的是上图用红框标出的“Exchange部署工具”:这里,因为这是网络中第一台Exchange,所以选择“部署第一台Exchange 2003服务器”:选择“安全全新的Exchange 2003”:这个安装介面上前面的五步操作我这里就不做了,主要是安装Exchange 2003的一些前提条件,添加NNTP、SMTP和万维网服务,我前面已经做过了,至于上面的用DCDiag和NetDiag是用来检测你的活动目录和网络是否正常,大家可以在域控制器上运行一下这两个命令,很多人都问过我,这两个命令运行后什么样的结果算是正常?一般来说你的活动目录应用没有出现什么不正常的现象,并且运行命令后都是“passed”,那么基本上可以认为你的活动目录没有问题。前面的检测没有问题的话,那么就可以从第六步开始操作了,第六步其实就是对Schema的扩展,所以要确保当前用户的权限,点击“立即运行FirestPrep”:点“下一步”:选择“我同意”,然后点“下一步”:一般情况下,我们就把当前的管理员帐号设为Exchange 管理员,所以这时顾惜直接点“下一步”了:这个过程时间有一点长,大家做到这一步的时候,要耐心等待一下,不妨出去喝杯咖啡!呵呵!完成后出现下图:点击“完成”就可以了。然后去执行第七步,点欢迎分享,转载请注明来源:夏雨云
评论列表(0条)