Linux下如何利用Sendmail构建安全可靠的邮件服务器(在家实验成功)

Linux下如何利用Sendmail构建安全可靠的邮件服务器(在家实验成功)

 

实验原理:
       Sendmail是UNIX/Linux环境中稳定性较好的一款邮件服务器软件,通过对Sendmail服务器的配置可以实现基本的邮件转发功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件的收取功能;OpenWebmail是网页形式的邮件应用系统,可实现用户对邮件的发送、收取和管理功能。通过对Sendmail、dovecot和OpenWebmail的综合管理,系统管理员可以构建出功能完善的邮件应用系统。
 
实验步骤:
 
一、 搭建DNS环境,并设置sendmain的主机域名

 

可以通过修改“/etc/hosts”和“/etc/sysconfig/network”两个文件更改主机域名。并在DNS服务器中添加对应的MX记录。


1: vi /etc/hosts


 192.168.11.128  mail.sheng.com

 注明: 192.168.11.128 是本机的ip,修改后,reboot重启:


 [root@mail ~]# hostname
 mail.sheng.com

 

2: 最好把/etc/sysconfig/network 下的hostname 也改掉:


 [root@mail ~]# vi /etc/sysconfig/network
 NETWORKING=yes
 HOSTNAME=mail.sheng.com

 

3: 修改named.conf 文件:


 [root@mail ~]# tail -12 /etc/named.conf


 # the follow is added for the sendmail test : 2010/12/18 at home
 zone "sheng.com" {
         type master;
         file "sheng.com.zone";
 };
 
 zone "11.168.192.in-addr.arpa" {
         type master;
         file "192.168.11.rev";
 };
 include "/etc/rndc.key";
 
4: 按下面的内容添加如下文件:


 [root@mail ~]# tail -5 /var/named/sheng.com.zone
                                        1W              ; expiry
                                        1D )            ; minimum
 @               IN NS           mail.sheng.com.
 mail            IN A            192.168.11.128
 @               IN MX   10      mail.sheng.com.
 [root@mail ~]# tail -5 /var/named/192.168.11.rev
                                       86400 )    ; Minimum
               IN      NS      localhost.
 
 @      IN      NS     mail.sheng.com.
 8      IN      PTR     mail.sheng.com.
 
说明:看一下这些文件:


 [root@mail ~]# cd /var/named
 [root@mail named]# ls -l sheng.com.zone
 lrwxrwxrwx  1 root root 42 Dec 18 17:18 sheng.com.zone -> /var/named/chroot/var/named/sheng.com.zone


 你会发现这些文件是做了link 的:
 ln -s /var/named/chroot/var/named/sheng.com.zone /var/named/sheng.com.zone
 再去:/var/named/chroot/var/named/ 下看看:


 [root@mail named]# cd /var/named/chroot/var/named/
 [root@mail named]# ls -l sheng.com.zone
 -rw-r--r--  1 named named 238 Dec 18 19:12 sheng.com.zone
 可以看到: user: group 是named (说明一定要是named, 不然编译有问题)
 
好,下面来测试一下 sheng.com.zone 的内容:


 1:把: mail            IN A            192.168.11.128 注释掉,然后:启动:sendmail
 2:启动windows 的outlool express 收发邮件,同样可以测试另外一个文件:192.168.11.rev


二、 Sendmail的安装与配置


 1: Sendmail服务器在RHEL4系统中是被默认安装的,软件包的名称是sendmail,m4软件包提供了配置Sendmail服务器必须的工具程序,与Sendmail软件包一同默认安装在系统中。Sendmain和m4两个软件都在RHEL4的第2张安装光盘中。

 

 [root@mail named]# rpm -qa | grep sendmail
 sendmail-devel-8.13.1-2
 sendmail-8.13.1-2
 sendmail-cf-8.13.1-2
 sendmail-doc-8.13.1-2
 [root@mail named]# rpm -qa | grep m4
 m4-1.4.1-16
 
 2:更改sendmail 服务器的启动级别:


 chkconfig --level 2345 senmail on
 修改完以后,看一下:
 [root@mail named]# chkconfig --list sendmail
 sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
 
 修改此目的是为了和下面的saslauthd 服务启动同步。
 
 3:设置local-host-names 文件,用于邮件服务器提供邮件服务的域名:
 [root@mail mail]# vi /etc/mail/local-host-names
 # local-host-names - include all aliases for your machine here.
 sheng.com
 
 同样可以测试一下:把local-host-names 中的内容改变,就发收不到邮件了。
 
 4:编辑sendmail.mc文件


 Sendmail服务器的主配置文件是sendmain.cf,该文件配置及其难,不过可以通过配置sendmail.mc然后生成sendmail.cf文件。

 vi /etc/mail/sendmail.mc
 
 开启Sendmail服务器的网络接口,Sendmail服务器出于安全考虑,默认只对lo网络接口(IP地址为127.0.0.1)提供服务,为了使服务器能够为主机的所有网络接口(地址为0.0.0.0)提供服务,需要在sendmail.mc文件中进行配置的修改。
 ...
 dnl # The following causes sendmail to only listen on the IPv4 loopback address
 dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
 dnl # address restriction to accept email from the internet or intranet.
 dnl #
 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
 dnl #
 ...

 开启SMTP的用户认证功能。将TRUST_AUTH_MECH(‘EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)前面的dnl以及空格去掉即可。开启之后,邮件服务器要求用户提供用户账户和口令进行身份认证,只有通过身份认证的用户才能通过邮件服务器向外部发送邮件。
 
 ...
 dnl # The following causes sendmail to additionally listen to port 587 for
 dnl # mail from MUAs that authenticate. Roaming users who can't reach their
 dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
 dnl # this useful.
 dnl #
 dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
 dnl #
 ...

 

 5:进入/etc/mail目录,然后使用m4 sendmail.mc > sendmail.cf生成sendmail.cf文件。
 cd /etc/mail
 m4 sendmail.mc > sendmail.cf
 
 6: 启动sendmail 服务,使senamail.cf 生效:
 [root@mail mail]# service network restart
 Shutting down interface eth0:  [  OK  ]
 Shutting down loopback interface:  [  OK  ]
 Setting network parameters:  [  OK  ] 
 Bringing up loopback interface:  [  OK  ]
 Bringing up interface eth0:  [  OK  ]
 
 7:开启了Sendmail服务器的认证功能之后,需要确保saslauthd服务程序正确运行。
 chkconfig --level 35 saslauthd on
 [root@mail mail]# service saslauthd restart
 Stopping saslauthd: [  OK  ]
 Starting saslauthd: [  OK  ]
 
三:邮件用户账户的设置

 Sendmail服务器使用Linux系统中的用户账户作为邮件账户,因此为用户添加邮件账户只需要添加Linux账户即可。为了方便用户管理可以将具有同种性质的用户加入某一个组中。
 
 1:添加账户:
 groupadd uk
 useradd -g uk -s /sbin/nologin uk01
 passwd uk01 (为用户uk01 设置password)
 
 2:设置邮件别名和邮件群发功能
 在Sendmail服务器中使用aliases机制实现邮件别名和邮件群发功能。在/etc目录下同时存在名为aliases和aliases.db的两个文件。aliases文件是文本文件,其内容是可阅读和编辑的,aliases.db是数据库文件,是由aliases文件生成而来的。
 [root@mail mail]# ls /etc/alia*
 /etc/aliases  /etc/aliases.db
 
 3:编辑aliases文件,在文件末尾添加“uk: uk01”,意思是通过给uk@sheng.com发邮件,群发到uk01@sheng.com
 vi /etc/aliases
 #root:          marc
 uk:             uk01
 
 4:设置完成之后,通过newaliases生成aliases.db文件。
 [root@mail mail]# newaliases
 /etc/aliases: 80 aliases, longest 10 bytes, 816 bytes total
 
 5:如果想让一个用户通过匿名的方式向外发送邮件,可以通过修改access文件,然后通过“makemap hash access.db < access”生成数据库文件。
 vi /etc/mail/access
 # by default we allow relaying from localhost...
 localhost.localdomain           RELAY
 localhost                       RELAY
 127.0.0.1                       RELAY
 192.168.11.128                  RELAY
 
 在通过:makemap hash access.db < access
 
四:devecot的安装与配置
 Sendmail服务器并不为MUA软件提供收取邮件的功能,因此系统中需要单独安装实现POP3或IMAP4功能的服务器程序。
 系统默认安装了devecot软件,由于devecot服务器以来的软件包比较多,因此建议使用RHEL4系统中提供的软件包管理程序来安装dovecot软件包

 

 1:安装好dovecot软件包之后,需要设置其配置文件dovecot.conf文件.
 vi /etc/dovecot.conf
 
 dovecot服务器默认只提供imap服务,需要修改“#protocols = imap impas”这一行为“protocols = imap imaps pop3 pop3s”
 
 2:重启启动dovecot服务,使dovecot.conf的设置生效。
 [root@mail mail]# service dovecot restart
 Stopping Dovecot Imap: [  OK  ]
 Starting Dovecot Imap: [  OK  ]
 
五:邮件客户端Outlook Express的配置
 使用Windows自带的Outlook Express软件连接sendmail服务器。注意设置完成之后,需要将服务器的“我的服务器要求身份验证”打上勾

 

 1:Outlook 打开后,配置smtp, mop3 服务器可填:服务器的ip:192.168.11.128
 2:用户可以填刚才建的:uk01 ,密码也要填:uk01
 3:完成Outlook 的配置后,打开工具栏中的"工具"--->"账户"--->"全部"--->"mail.sheng.com"--->"服务器"---> 最下面的“我的服务器要求身份验证” 打钩。
 
 4:配好后,就可以收发邮件啦: ^ _ ^.
 
 跟多的内容,可以参考:http://dreamfire.blog.51cto.com/418026/167192
 可以深入了解 openmail 的设置。

 

深入:根据监控原理:可以在root 的组里加上自己的邮箱:

修改 /etc/mail/aliases:

root:  uk01

 

写监控shell 的时候: mail -s " 发送内容" root@localhost < /var/spool/root

  也可一写成:mail -s " 发送内容" root@localhost < /var/spool/uk01

则发送到root 的信就可以发送到uk01@sheng.com

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值