设为首页 收藏本站
查看: 1716|回复: 0

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

[复制链接]

尚未签到

发表于 2015-11-25 14:29:37 | 显示全部楼层 |阅读模式
  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重启:
  
[iyunv@mail ~]# hostname
mail.sheng.com
  
  2: 最好把/etc/sysconfig/network 下的hostname 也改掉:
  
[iyunv@mail ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mail.sheng.com
  
  3: 修改named.conf 文件:
  
[iyunv@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: 按下面的内容添加如下文件:
  
[iyunv@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.
[iyunv@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.

说明:看一下这些文件:
  
[iyunv@mail ~]# cd /var/named
[iyunv@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/ 下看看:
  
[iyunv@mail named]# cd /var/named/chroot/var/named/
[iyunv@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张安装光盘中。
  
  [iyunv@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
[iyunv@mail named]# rpm -qa | grep m4
m4-1.4.1-16

2:更改sendmail 服务器的启动级别:
  
chkconfig --level 2345 senmail on
修改完以后,看一下:
[iyunv@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 文件,用于邮件服务器提供邮件服务的域名:
[iyunv@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 生效:
[iyunv@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
[iyunv@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文件生成而来的。
[iyunv@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文件。
[iyunv@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的设置生效。
[iyunv@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.iyunv.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
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143490-1-1.html 上篇帖子: LINUX 暂停SendMail功能 下篇帖子: Linux下Mail服务器架设 Sendmail
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表