05sendmail.php.html
来自「鸟哥LINUX 学习课本」· HTML 代码 · 共 609 行 · 第 1/3 页
HTML
609 行
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"><html><head> <meta http-equiv="Content-Type" content="text/html; "> <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]"> <meta name="Author" content="VBird"> <title>鸟哥的 Linux 私房菜 -- 邮件认证系统</title> <!-- saved from url=(0022)http://internet.e-mail --><style> <!-- body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-attachment=fixed} --> </style><meta name="Microsoft Theme" content="strart 101"><meta name="Microsoft Border" content="none, default"></head><body background="http://linux.vbird.org/VBirdLinux.jpg" nosave><center><b><font size=+2 color="#3333FF"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org" target="_top"><img SRC="http://linux.vbird.org/VBirdTitle2.jpg" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/linux_basic"><img SRC="http://linux.vbird.org/icon_system.gif" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/linux_server"><img SRC="http://linux.vbird.org/icon_server.gif" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/linux_security"><img SRC="http://linux.vbird.org/icon_security.jpg" NOSAVE BORDER=0 height=25 width=90></a><a href="http://phorum.vbird.org" target="_blank"><img SRC="http://linux.vbird.org/icon_forums.gif" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/adsl"><img SRC="http://linux.vbird.org/icon_adsl.gif" NOSAVE BORDER=0 height=25 width=90></a><br><hr WIDTH="100%"></center><font size=+2 color="#3333FF"><font face="SimSun">邮件主机在寄信时的</font><font face="Times New Roman Baltic">SMTP</font><font face="SimSun">认证问题</font></font><div align=right><font size=-1 color="#3333FF" face="SimSun">最近更新日期:2001/12/13</font></div><hr WIDTH="100%"><font size=+1 color="#000099"><a href="#RedHat7.1">RedHat 7.1 的方法</a>:</font><br><font size=+1 color="#000099"><a href="#RedHat6.1">其它 Red Hat(以 Red Hat 6.1 为例) 的方法</a>:</font><br><hr WIDTH="100%"><a NAME="RedHat7.1"></a><font size=+1 color="#000099">RedHat 7.1 的方法:</font><ul><font color="#000099">前言</font><font color="#000000">:</font></ul><ul><font color="#000000">网管人员对于邮件服务器最厌烦的地方大概就是在管理邮件传递(Relay)的问题了!因为如果将邮件传递的范围限制的太小,那么只要一个不小心,使用者在能转递信件的domain 之外,就无法使用邮件主机!而如果没有设定的很好,那么邮件主机又很容易被拿来当成广告垃圾信件的中继站!这里提供一个邮件认证的机制,让你的使用者方便而邮件主机又不会有被做为广告中继站的问题!</font></ul><ul><font color="#000000">邮件主机是如何运作的呢?你可以看一下 <a href="http://aerosol.ev.ncku.edu.tw/~vbird/linux/linux_25mailsendmail.html">MailServer</a> 这一篇文章,相信就可以约略了解邮件的传送过程了!不过,这里有个观念要让大家了解一下:就是</font><font color="#3333FF">sendmail在寄信与收信的通讯协议是不一样的</font><font color="#000000">!你在客户端(Client)使用的收信程序在接收信件时,是使用pop3 的协议,至于寄信的时候就是需要 smtp 的通讯协议了。常常会发现到邮件主机挂掉的时候并不是两者同时挂掉,有时候只挂掉smtp 的协议,那么此时这个邮件主机还是可以在客户端收信的,只是就会无法寄信就是了!</font></ul><ul><li><font color="#000099">关于 Relay 的问题</font><font color="#000000">:</font></li></ul><ul><dt><font color="#000000">很多的网管人员对于邮件主机最感到棘手的,应该是 Relay的问题!在 Red Hat 6.x 以前的 Sendmail 版本中,邮件主机预设是可以让所有的客户端计算机传递信件的!此话何解?刚刚说到邮件主机有两个通讯协议,分别是pop3 与 smtp ,你会发现到,如果是使用 Red Hat 6.x 以前版本的主机系统时,收信是一定需要账号与密码的(使用pop3 协议),但是寄信呢?寄信者只要随便取一个账号名称(这个账号不一定要在Red Hat Linux 中存在),然后直接按下寄信之后,邮件主机不会判别 smtp 的来向,一律通通予以接受,并且予以转寄!那你就知道了!广告信件从此将可以直接经由你的主机来将信件送出去!这就是问题啦!</font></dt></ul><ul><dt><font color="#000000">这个问题的解决方法大概就是在 /etc/mail 当中的 access档案中,将你所发现的乱发垃圾广告的计算机 IP Reject 掉,不过,由于目前发广告信件的计算机实在太多了,你根本就挡不完!那如果使用了将所有的计算机都deny 掉之后,再开放一些可以 Relay 的计算机呢?这样一来不就可以挡掉所有的广告信了吗?没错!但是如此一来却也让你的信任用户合理的使用权也遭受到同样被挡掉的命运!</font></dt></ul><ul><dt><font color="#000000">除了这个问题之外,在目前的 Red Hat 7.x 版本的 sendmail中,也将预设的 Relay 功能取消了,因此,你必须设定 </font><font color="#3333FF">/etc/mail/access</font><font color="#000000">这个档案的内容,才能将合法的使用者的权限开放!这样是不是很麻烦呢?我觉得,很麻烦......</font></dt></ul><ul><li><font color="#000099">设定 SMTP 认证机制简介</font><font color="#000000">:</font></li></ul><ul><dt><font color="#000000">为了让使用者可以很方便的就拥有寄信的权力,也为了让广告信件可以有效的被挡掉,因此sendmail 本身也提供了一个有效的管理办法,那就是 SMTP 的身份认证机制了!</font><font color="#3333FF">这个机制的好处在于让SMTP 与 pop3 一样,都需要输入账号与密码之后,才可以进行寄信的动作!</font><font color="#000000">则如此一来,将可以让广告信件的发送者无法经由匿名来转寄,而您的信任的使用者仍然可以快快乐乐的使用您的邮件主机啰!以下将介绍Red Hat 7.x 以后版本的认证方法,在 Red Hat 6.x 以前的版本的认证机制可以参考<a href="http://beta.wsl.sinica.edu.tw/~ylchang/Email/sendmail-auth/" target="_blank">Yu-LinChang 先生的文章</a>。</font></dt></ul><ul><li><font color="#000099">系统需求:</font></li></ul><ul><dt><font color="#000000">由于要使 smtp 通讯协议具有身份认证的功能,则必须要有底下的版本的套件才有支持!</font></dt></ul><ul><ol><li><font color="#000000">由 Sendmail Inc. 发行的 8.10.0 以上版本的 Sendmail套件;</font></li><li><font color="#000000">由 Carnegie Mellon University 发行的 Cyrus SASL (SimpleAuthentication and Security Layer) 认证链接库;</font></li><li><font color="#000000">C 语言的编辑器。</font></li></ol></ul><ul><dt><font color="#000000">很幸运的, Red Hat 7.x 以后的版本中,以上的套件都已经含有了!所以我们并不需要重新安装上面的套件喔!不过,如果您是使用Red Hat 6.x 以前版本的 Linux 系统,那么您只好更新您的 Sendmail 及 CyrusSASL 套件啰!</font></dt></ul><ul><li><font color="#000099">设定方法:</font></li></ul><ul><dt><font color="#000000">在 Red Hat 7.x 版本中的设定真的是很简单!你只要依序做底下的动作就可以了!</font></dt></ul><ul><ul><li><font color="#3333FF">修改 /usr/share/sendmail-cf/cf 底下的 redhat.mc 档案:</font></li><br> <table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root@tsai/root]# cd /usr/share/sendmail-cf/cf</font><br><font size=-1 color="#FFFFFF" face="SimSun">[root@tsaicf]# vi redhat.mc</font><br><font size=-1 color="#FFFFFF" face="SimSun">..........</font><br><font size=-1 color="#FFFFFF" face="SimSun">dnl TRUST_AUTH_MECH(`DIGEST-MD5CRAM-MD5 LOGIN PLAIN')dnl</font><br><font size=-1 color="#FFFFFF" face="SimSun">dnl define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl</font><br><font size=-1 color="#FFFFFF" face="SimSun">..........</font><br><font size=-1 color="#FFFFFF" face="SimSun">DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')</font><br><font size=-1 color="#FFFFFF" face="SimSun">..........</font></td></tr></table><font color="#000000">将上面的三行改成中,前两行 dnl 去掉,第三行则将 127.0.0.1改成 0.0.0.0 如下所示:</font><br> <table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">..........</font><br><font size=-1 color="#FFFFFF" face="SimSun">TRUST_AUTH_MECH(`DIGEST-MD5CRAM-MD5 LOGIN PLAIN')dnl</font><br><font size=-1 color="#FFFFFF" face="SimSun">define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl</font><br><font size=-1 color="#FFFFFF" face="SimSun">..........</font><br><font size=-1 color="#FFFFFF" face="SimSun">DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA')</font><br><font size=-1 color="#FFFFFF" face="SimSun">..........</font></td></tr></table><li><font color="#3333FF">制作 sendmail 参数档与重新启动 sendmail:</font></li><br><font color="#000000">修改完成之后,再来则是制作 sendmail 的参数档sendmail.cf 了,指令下达:</font><br> <table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root@tsai/root]# cd /usr/share/sendmail-cf/cf</font><br><font size=-1 color="#FFFFFF" face="SimSun">[root@tsaicf]# sh Build redhat.cf</font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root@tsaicf]# mv /etc/sendmail.cf /etc/sendmail.cf.old </font><font color="#FFFF00"><==备份旧的档案</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root@tsaicf]# cp redhat.cf /etc/sendmail.cf </font><font color="#FFFF00"><==加入新的参数档</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root@tsaicf]# /etc/rc.d/init.d/sendmail restart </font><font color="#FFFF00"><==重新启动sendmail</font></font></td></tr></table>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?