分享
 
 
 

Linux网络管理员手册(15)

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

第十五章 Sendmail+IDA

15.1 Sendmail+IDA概述

有人曾说过只有编辑过一个sendmail.cf文件,你才是一个真正的Unix系统管理员。也有人说

如果你试图这样编辑两次,那你一定是疯了?

Sendmail是一个难以置信的功能强大的程序。对大多数人来说它也是不可思义的难学。具有

792页长的权威性参考资料(Sendmail,由O’Reilly and Associates出版)的任何程序不可

辩驳地会吓跑大多数人。

Sendmail+IDA则不同,它删除了对编辑总是隐晦的sendmail.cf文件的需要并且允许管理人员

通过相对简单易懂的称为tables的支持文件来定义与站点有关的路由选择和寻址配置。切换

到sendmail+IDA上,可以节约你的许多工作时间和精力。

与其它邮件传输代理相比,使用sendmail+IDA几乎没有什么不可以做的更快和更简单的了。

运行常规的UUCP或Internet站点所需的典型工作变得很容易完成。通常非常困难的配置也变

得简单,易于建立和维护。

在编写本书的这个时候,当前版本sendmail5.67b+IDA1.5可以通过匿名FTP从vixen.cso.uiu

c.edu取得。在Linux下,它的编译不需要任何补丁程序。

对于在Linux下的sendmail+IDA源程序编译、安装和运行所需的所有配置文件包括在newspak

-2.2.tar.gz中,该压缩文件可以通过匿名FTP从sunsite.unc.edu的/pub/Linux/system/Mai

l下载。

15.2 配置文件―概述

传统的sendmail是通过一个系统配置文件进行设置的(典型的是/etc/sendmail.cf或者是/u

sr/lib/sendmail.cf),这个文件不是与你所见过的任何程序语言相近的。编辑sendmail.c

f文件以提供定制的性能可能是一种卑下的经验技巧。

Sendmail+IDA通过将所有配置选项做成句法易于理解的表格驱动方式使得这种痛苦基本上成

过时的情况了。这些选项经由源代码提供的制作文件(Makefiles)通过在许多数据文件上运

行m4(一个宏处理程序)或者dbm(一个数据库处理程序)来配置的。

sendmail.cf文件仅仅定义了系统缺省的性能。事实上,所有特殊的定制操作是通过很多可选

的表格做到的,而不是直接编辑sendmail.cf文件来做的。图15.1中列出了sendmail所有的表

格。

mailertable 为远程主机或域定义特殊的性能。

uucpxtable 迫使UUCP邮件投递到具有DNS格式的主机。

pathtable 定义到远程主机或域的UUCP bang-paths。

uucprelays 短路路径别名路径到著名的远程主机。

genericfrom 将内部地址转换成外部世界可见的普通地址。

xaliases 将普通地址转换成有效的内部地址/或将内部地址转换成普通地址。

decnetxtable 将RFC-822地址转换成DECnet形式的地址。

图15.1: sendmail的支持文件。

15.3 sendmail.cf文件

用于sendmail+IDA的sendmail.cf文件不用直接编辑的,而是从一个本地系统管理员提供的m

4配置文件中生成的。下面,我们将称它为sendmail.m4。

这个文件含有几个定义和其它一些仅仅是指向进行真正工作表格的连接。一般地,仅需要指

明:

。在本地系统上所使用的路径名和文件名。

。用于e-mail目的的站点名称。

。哪个缺省邮件程序(也可以是灵敏主机)是所期望的。

有大量的参数可以被定义,用来设立本地站点的性能或覆盖编译进的配置项目。这些配置选

项是在源代码目录中的ida/cf/OPTIONS文件中确定的。

对于最小配置的sendmail.m4文件(具有所有非本地邮件被中继到直接连接的灵敏主机去的U

UCP或SMTP)如果不算注释行的话,能够短到只有10或15行。

15.3.1 一个sendmail.m4的例子文件

下面示出了在虚拟酿酒厂的vstout的sendmail.m4文件。vstout用SMTP与酿酒厂局域网上的所

有主机对话,而将所有其它目的地的所有邮件通过UUCP发送到它的Internet中继主机moria。

15.3.2 用于sendmail.m4的典型参数

sendmail.m4文件中有几项是一直需要的;其它的可以被省略如果你使用缺省值侥幸成功的话

。下面几节详细描述了sendmail.m4例子文件中的每个项。

定义路径的项(Items that Define Paths)

dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go

LIBDIR定义了一个目录,在这个目录中,sendmail+IDA期望能找到各个配置文件、

dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------

dnl # (the string ‘dnl’ is the m4 equivalent of commenting out a line)

dnl # you generally don’t want to override LIBDIR from the compiled in paths

dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go

define(LOCAL_MAILER_DEF, mailers.linux)dnl # mailer for local delivery

define(POSTMASTERBOUNCE)dnl # postmaster gets bounces

define(PSEUDODOMAINS, BITNET UUCP)dnl # don’t try DNS on these

dnl #-------------------------------------------------------------

dnl #

define(PSEUDONYMS, vstout.vbrew.com vstout.UUCP vbrew.com)

dnl # names we’re known by

define(DEFAULT_HOST, vstout.vbrew.com) # our primary ‘name’ for mail

define(UUCPNAME, vstout)dnl # our uucp name

dnl #

dnl #-------------------------------------------------------------

define(UUCPNODES, |uuname|sort|uniq)dnl # our uucp neighbors

define(BANGIMPLIESUUCP)dnl # make certain that uucp

define(BANGONLYUUCP)dnl # make is treated correctly

define(RELAY_HOST, moria)dnl # our smart relay host

define(RELAY_MAILER, UUCP-A)dnl # we reach moria via uucp

dnl #

dnl #-------------------------------------------------------------------

dnl #

dnl # the various dbm lookup tables

dnl #

define(ALIASES, LIBDIR/aliases)dnl # system aliases

define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainize hosts

define(PATHTABLE, LIBDIR/pathtable)dnl # paths database

define(GENERICFROM, LIBDIR/generics)dnl # generic from addresses

define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers per host or domain

define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # paths to hosts we feed

define(UUCPRELAYS, LIBDIR/uucprelays)dnl # short-circuit paths

dnl #

dnl #--------------------------------------------------------------------

dnl #

dnl # include the ‘real’ code that makes it all work

dnl # (provided with the source code)

dnl #

include(Sendmail.mc)dnl # REQUIRED ENTRY !!!

dnl #

dnl #------------- END OF SAMPLE SENDMAIL.M4 FILE -------

图15.2:用于vstout的sendmail.m4例子文件。

各种dbm表格和特殊的本地定义。在一个典型的执行程序发行版中,这被编译进了sendmail的

执行程序中,不需要在sendmail.m4文件中明确地设置。

上面的例子有一前导dnl,这表示该行基本上是一个作为信息的注释行。

为了将支持文件的位置改变到一个不同的地方去,从上面一行中去掉dnl注释,将路径设置到

期望的位置,并且重建和重安装sendmail.cf文件。

定义本地邮件程序(Defining the Local Mailer)

define(LOCAL_MAILER_DEF, mailers.linux)dnl # mailer for local delvery

许多操作系统提供了处理本地邮件投递的程序。对于许多主要的Unix变体来说,典型的程序

早已制作进sendmail执行程序中了。

在Linux中,就需要明确地定义合适的本地邮件程序,因为本地投递程序并无必要一定会包括

在你已经安装的发行版中。这是通过在sendmail.m4文件中指明LOCAL_MAILER_DEF来做到的。

例如,为了让通用的deliver程序[1]提供这个服务,你应该将LOCAL_MAILER_DEF设置成mail

ers.linux。

然后,下面的文件应该作为mailers.linux被安装在由LIBDIR指定的目录中。它明确地用适当

的参数在内部Mlocal邮件程序中定义了deliver程序,以使得sendmail能正确地投递目标面向

本地系统的邮件。除非你是一个sendmail专家,否则一般你不需要改变下面的例子。

# -- /usr/local/lib/mail/mailers.linux ?

# (local mailers for use on Linux )

Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u

Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh ?c $u

在包括在sendmail.cf文件中的Sendmail.mc文件里对于deliver也有一内建缺省值。为了指明

它,你不能使用mailers.linux文件,而是要在你的sendmail.m4文件中进行如下定义:

dnl --- (in sendmail.m4) ---

define(LOCAL_MAILER_DEF, DELIVER)dnl # mailer for local delivery

不幸的是,Sendmail.mc假定deliver被安装在/bin中,而对于Slackware1.1.1(它将其安装

在了/usr/bin中)并不是这种情况。在那种情况下,你就必须用链接伪装它或者从源代码中

重建deliver以使它驻留在/bin中。

处理反弹的邮件(Dealing with Bounced Mail)

define(POSTM

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有