longrujun

运维:基础、架构、管理

龙如俊ID:longrujun
342031次访问,排名145好友1人,关注者17
longrujun的文章
原创 179 篇
翻译 0 篇
转载 16 篇
评论 93 篇
沧海笑一声的公告

沧海笑一声档案


姓名:龙如俊
Mail:longrujun@Gmail.com
GTalk:longrujun
Skype:longrujun
MSN:longrujun@live.com

近日关注


Shared Reading


推荐读...


技术活动


最近评论
mldstk:wow power leveling
hunhun02:难道这个他仅仅道歉了,没有上法庭,不是便宜了他吗?
dajunwriter:这也算道歉啊
program_net:看e文,真的好累
program_net:很难听的名字,不过最近发展不错
文章分类
收藏
    相册
    out me
    A.Technology Forum
    CSDN技术社区(RSS)
    运维网:技术运用、架构、管理(RSS)
    B.Read @ a day
    liuren (RSS)
    刘润(RSS)
    牛角尖(RSS)
    C.Friends
    Jun Hyung(RSS)
    SQL Server Engine (RSS)
    SQL Team(RSS)
    우주의 가을이 다가온다!(RSS)
    华宏伟(RSS)
    大鱼儿(RSS)
    张一雷(RSS)
    曾登高(RSS)
    盖国强(RSS)
    蒋涛(RSS)
    闫辉(RSS)
    韩磊(RSS)
    D.体验IT
    365key-天天网摘(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 [Linux专题_SendMail]RedHatLinux AS3中SendMail的配置 收藏

    新一篇: [Linux专题_APACHE]RedHatLinux AS3中APACHE的配置_1  | 旧一篇: [Linux专题_BIND]RedHatLinux AS3中BIND 的配置

    [Linux专题_SendMail]RedHatLinux AS3中SendMail的配置

    RedHatLinux AS3中配置sendmail服务器
    这篇文章主要是示范如何在一台新装的RedHatLinux AS3上用配置sendmail-8.12.10-1服务,构架你的e-mail服务器.
    1.sendmail
    的安装
    若用户在RedHatLinux AS3默认安装时已经安装了sendmail 8.12服务.可忽略安装过程,相关资料请查阅redhat CD里的文档.
    若没有安装,安装sendmail服务,操作如下:
    //
    查看是否安装了sendmail
    #rpm
    qa|grep sendmail
    //
    RedHatLinux AS3的第一张安装光盘放入光驱后挂载
    #cd /mnt/cdrom
    //
    进入光盘的RedHat/RPMS目录
    #cd/mnt/cdrom/RedHat/RPMS
    //
    安装所需的软件包
    #rpm
    ivh sendmail-8.12.10-1.i386.rpm
    //
    RedHat Linux9的第3张安装光盘放入光驱后挂载
    #cd /mnt/cdrom
    //
    进入光盘的RedHat/RPMS目录
    #cd/mnt/cdrom/RedHat/RPMS
    //
    安装所需的软件包
    #rpm
    ivh sendmail-cf-8.12.10-1.i386.rpm
    #rpm
    ivh sendmail-doc-8.12.10-1.i386.rpm
    //
    弹出光盘
    #cd;eject

    2.
    检验DNS SERVER的正反向解析是否成功
    要使你的新e-mail服务器正常工作,必须先解决DNS问题.把你的e-mail服务器的主机名和ip地址加入到DNS,并用nslookup来确认:
    [root@AS3 / ]#  nslookup -sil mail.supermaster.com
    Server:         192.168.0.111

    Address:        192.168.0.111#53

     

    Name:   www.supermaster.com

    Address: 192.168.0.111

    同样你也要试一下反向域名解析,这个对防止邮件延迟有很重要的作用.现在大部分的邮件服务器都是把反向域名解析作为邮件传送时
    认证的一部分.所以用的你ip地址来试一下反向域名解析是否正确.
    [root@AS3 / ]# nslookup -sil 192.168.0.111

    Server:         192.168.0.111

    Address:        192.168.0.111#53

     

    111.0.168.192.in-addr.arpa      name = www.supermaster.com.

    111.0.168.192.in-addr.arpa      name = mail.supermaster.com.

    111.0.168.192.in-addr.arpa      name = ftp.supermaster.com.

    111.0.168.192.in-addr.arpa      name = ssL.supermaster.com.
    3.
    配置sendmail服务
    >>1.
    监听本机的smtp端口
    RedHatLinux AS3
    默认安装已经可以使SMTP服务在本机运行.
    你用netstat -nl可以看到所有后台程序监听的端口,注意这一行:127.0.0.1:25,这个表示sendmail服务已经在监听本机的25(SMTP)
    端口了:
    [root@AS3 / ]#
    netstat -nl

    Active Internet connections (only servers)

    Proto Recv-Q Send-Q Local Address           Foreign Address         State     

    tcp        0      0 0.0.0.0:32768           0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:32769         0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:32770           0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:931             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:913             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     

    tcp        0      0 192.168.0.111:53        0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN     

    udp        0      0 0.0.0.0:32768           0.0.0.0:*                          

    udp        0      0 0.0.0.0:2049            0.0.0.0:*                          

    udp        0      0 0.0.0.0:32769           0.0.0.0:*                          

    udp        0      0 0.0.0.0:32770           0.0.0.0:*                          

    udp        0      0 192.168.0.111:137       0.0.0.0:*                          

    udp        0      0 0.0.0.0:137             0.0.0.0:*                          

    udp        0      0 192.168.0.111:138       0.0.0.0:*                          

    udp        0      0 0.0.0.0:138             0.0.0.0:*                          

    udp        0      0 0.0.0.0:910             0.0.0.0:*                          

    udp        0      0 0.0.0.0:928             0.0.0.0:*                           

    udp        0      0 192.168.0.111:53        0.0.0.0:*                          

    udp        0      0 127.0.0.1:53            0.0.0.0:*                          

    udp        0      0 0.0.0.0:710             0.0.0.0:*                           

    udp        0      0 0.0.0.0:111             0.0.0.0:*                          

    udp        0      0 0.0.0.0:631             0.0.0.0:*                          

    Active UNIX domain sockets (only servers)

    Proto RefCnt Flags       Type       State         I-Node Path

    unix  2      [ ACC ]     STREAM     LISTENING     2456   /dev/gpmctl

    unix  2      [ ACC ]     STREAM     LISTENING     2634   /tmp/.gdm_socket

    unix  2      [ ACC ]     STREAM     LISTENING     2496   /tmp/.font-unix/fs7100

    unix  2      [ ACC ]     STREAM     LISTENING     2644   /tmp/.X11-unix/X0

     

    但这个仅仅表示e-mail服务器只接收你本机的邮件.为了解决这个问题,你必须修改配置,告诉sendmail去监听你对外的网卡地址.
    >>2.
    解决对外smtp端口的监听
    假设你的服务器上安装了一块网卡(eth0),并用ifconfig配置好你的ip地址.这个地址可以和DNS解析的地址不一样,但你要保证DNS可以正确
    地解析邮件服务器的地址.这里我们使用的地址是一样的(推荐):
    [root@AS3 / ]#
    ifconfig eth0

    eth0      Link encap:Ethernet  HWaddr 00:0C:29:65:C8:DC 

              inet addr:192.168.0.111  Bcast:192.168.0.255  Mask:255.255.255.0

              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

              RX packets:661 errors:0 dropped:0 overruns:0 frame:0

              TX packets:399 errors:0 dropped:0 overruns:0 carrier:0

              collisions:0 txqueuelen:1000

              RX bytes:68152 (66.5 Kb)  TX bytes:50136 (48.9 Kb)

              Interrupt:10 Base address:0x1400

    可以看到这台主机的eth0ip地址是192.168.0.111.现在修改/etc/mail/sendmail.cf文件来配置sendmail的监听端口:
    # SMTP daemon options
    O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
    更改为
    O DaemonPortOptions=Port=smtp,Addr=192.168.0.111, Name=MTA
    改完后保存退出,并且重新启动sendmail服务:
    [root@AS3 / ]# service sendmail restart
    Shutting down sendmail:                                    [  OK  ]

    Shutting down sm-client:                                   [  OK  ]

    Starting sendmail:                                         [  OK  ]

    Starting sm-client:                                        [  OK  ]
    [root@mail /root]#
    现在可以用netstat -nl来查看是不是已经更改了.如你所看到的,sendmail的监听端口现在是eth0ip地址:192.168.0.111.
    [root@AS3 / ]# netstat -nl

    Active Internet connections (only servers)

    Proto Recv-Q Send-Q Local Address           Foreign Address         State     

    tcp        0      0 0.0.0.0:32768           0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:32769         0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:32770           0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:931             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:913             0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     

    tcp        0      0 192.168.0.111:53        0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     

    tcp        0      0 192.168.0.111:25        0.0.0.0:*               LISTEN     

    tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN     

    tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN     

    udp        0      0 0.0.0.0:32768           0.0.0.0:*                          

    udp        0      0 0.0.0.0:2049            0.0.0.0:*                          

    udp        0      0 0.0.0.0:32769           0.0.0.0:*                          

    udp        0      0 0.0.0.0:32770           0.0.0.0:*                          

    udp        0      0 192.168.0.111:137       0.0.0.0:*                          

    udp        0      0 0.0.0.0:137             0.0.0.0:*                          

    udp        0      0 192.168.0.111:138       0.0.0.0:*                          

    udp        0      0 0.0.0.0:138             0.0.0.0:*                          

    udp        0      0 0.0.0.0:910             0.0.0.0:*                          

    udp        0      0 0.0.0.0:928             0.0.0.0:*                          

    udp        0      0 192.168.0.111:53        0.0.0.0:*                          

    udp        0      0 127.0.0.1:53            0.0.0.0:*                          

    udp        0      0 0.0.0.0:710             0.0.0.0:*                          

    udp        0      0 0.0.0.0:111             0.0.0.0:*                           

    udp        0      0 0.0.0.0:631             0.0.0.0:*                          

    Active UNIX domain sockets (only servers)

    Proto RefCnt Flags       Type       State         I-Node Path

    unix  2      [ ACC ]     STREAM     LISTENING     2456   /dev/gpmctl

    unix  2      [ ACC ]     STREAM     LISTENING     2634   /tmp/.gdm_socket

    unix  2      [ ACC ]     STREAM     LISTENING     2496   /tmp/.font-unix/fs7100

    unix  2      [ ACC ]     STREAM     LISTENING     2644   /tmp/.X11-unix/X0


    >>3.
    设置允许接受的域名
    现在sendmail已经可以接收来自外部的连接了.我们还需要设定sendmail允许接收的域名.这个可以在/etc/mail/local-host-names
    文件中设定.就把域名输入进去就可以了:
    # local-host-names - include all aliases for your machine here.

    supermaster.com //add
    保存退出后重新启动sendmail服务:/etc/init.d/sendmail restart .这样sendmail就可以接收来自多个域的信件了. 如果你需要再增加新的域,只有修改这个文件就可以了.
    >>4.client
    端的设置
    现在的e-mail服务器在本机上已经可以完全正常的工作.它已经可以接收来自任何地方的信件(允许的域),但如果想要发送和传递邮 ,则必须在这台电脑上执行.如果你的用户都直接登录到你的服务器上来发送邮件,则不需要更改任何配置,如果你希望大部分或者所有的用户可以在远程主机上使用该e-mail服务器,例如利用KMailOutlook ExpressMozilla Mail等客户端工具,则你必须更改配置来允许这些主机使
    用你的e-mail服务器.你需要在/etc/mail/access文件中加入下面一行,保存后运行make access.db 的命令来生成access.db文件.
    supermaster.com RELAY
    改完后的access文件应该是这样的:
    # Check the /usr/share/doc/sendmail/README.cf file for a description

    # of the format of this file. (search for access_db in that file)

    # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc

    # package.

    #

    # by default we allow relaying from localhost...

    localhost.localdomain           RELAY

    localhost                       RELAY

    127.0.0.1                       RELAY

    supermaster.com                 RELAY //add
    然后运行:
    [root@AS3 mail ]# make access.db
    [root@AS3 mail ]#
    这个make access.db命令把你的新的设定添加到sendmailhash数据库里.sendmail用它来判断允许那些主机通过你的e-mail服务器来传递邮件.而且这样还可以通过设定子网(例如:192.168)来限制该域.但你要注意,这样设定就对外开放了,可能会有人发大量的垃圾 信件来攻击你的系统.
    现在你可以收到所有来自外部的邮件.并且允许信赖的客户在远程传递信件.接下去你想要做的可能是如何在远程收取这些信件.要达到
    这个目的,你需要安装IMAP 或者 POP. RedHatLinux AS3默认安装的时候并没有安装POP/IMAP,所以你需要安装imap-2002d-2.
    要查看这个包的安装状态,可以用下面的命令:rpm -aq | grep -i imap.如果发现没有安装,那就把RedHatLinux AS3第二张安装光盘
    放到光驱里.然后运行如下命令:
    [root@AS3 mail ]# mount /dev/cdrom /mnt/cdrom
    mount: block device /dev/cdrom is write-protected, mounting read-only
    (Successful Mount of Read-Only Media)
    mount
    上光盘后运行这个命令来安装这个包:rpm -Uvh /mnt/cdrom/RedHat/RPMS/ imap-2002d-2.i386.rpm.
    [root@AS3 mail ]# rpm -Uvh /mnt/cdrom/RedHat/RPMS/ imap-2002d-2.i386.rpm
    Preparing... ########################################### [100%]
    1:imap ########################################### [100%]
    再运行一次 rpm -aq | grep -i imap
    IMAP
    包就罗列出来了.
    [root@AS3 mail ]# rpm -aq | grep -i imap
    imap-2002d-2
    [root@AS3 mail ]#
    >>5.ipop3