sendmail-cf-8.13.8-2.el5.i386.rpm:sendmail宏文件包
sendmail-devel-8.13.8-2.el5.i386.rpm:sendmail服务器开发工具软件包
sendmail-doc-8.13.8-2.el5.i386.rpm:sendmail服务器的说明文档
m4-1.4.5-3.el5.1.i386.rpm:宏处理过虑软件包
dovecot-1.0.7-2.el5.i386.rpm:接收邮件软件包,安装时需要注意安装顺序














第一步:设置域名
为了简单起见,不用DNS服务器,用/etc/hosts文件来解决域名的问题(以后专门写一篇文章来讲如何配置DNS服务器)
linux系统的主机名是Ora92,ip地址是192.168.56.78 在/etc/hosts文件添加
192.168.56.78 Ora92.com
192.168.56.78 smtp.Ora92.com
192.168.56.78 pop3.Ora92.com
同样在我的xp系统上安装foxmail,在C:\Windows\System32\drivers\etchosts文件添加
192.168.56.78 Ora92.com
192.168.56.78 smtp.Ora92.com
192.168.56.78 pop3.Ora92.com
为了简单起见,先关闭以下两个,排除干扰。
setenforce 0
修改/etc/selinux/config文件中设置SELINUX=disabled
service iptables stop
chkconfig iptables off
第二步:修改配置文件
修改/etc/mail/sendmail.mc(总共有四处要修改的地方)
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
LOCAL_DOMAIN(`localhost Ora92.com smtp.Ora92.com')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
特别注意:前面一定不能留有空格,否则在启动sendmail服务时会出错!
m4 sendmail.mc > sendmail.cf
service postfix stop(关闭这个服务,以免和sendmail起冲突)
chkconfig sendmail on
service sendmail restart
在sendmail服务器中,使用了sasl的第二版sasl2作为SMTP的认证方式,在/etc/sasl2/Sendmail.conf配置文件中设置了使用saslauthd服务程序提供用户认 证服务,因此当sendmail服务器使用SMTP认证功能时,需要确保saslauthd服务程序正确运行:
#cat /etc/sasl2/Sendmail.conf
pwcheck_method:saslauthd#cat /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
#chkconfig saslauthd on
service saslauthd start
/usr/sbin/testsaslauthd -u lmc -p '7654321' -s smtp(验证是否有效)
第三步:dovecot的安装与配置
Sendmail服务器并不为foxmail软件提供收取邮件的功能,因此系统中需要单独安装实现POP3或IMAP4功能的服务器程序dovecot
需要修改dovecot主配置文件/etc/dovecot/dovecot.conf(新版redhat) 或者/etc/dovecot.conf(老版redhat)
protocols = imap pop3
login_trusted_networks = 0.0.0.0/0(这个只有新版redhat才需要设置)
chkconfig dovecot on
service dovecot restart
第四步 foxmail设置
linux中有一个真实用户lmc
打开foxmail的系统设置--服务器
邮箱类型:pop3
账号:lmc@Ora92.com
收件服务器:pop3.Ora92.com
发件服务器:smtp.Ora92.com
发件服务器身份验证:和收件服务器相同
1.Sendmail服务软件包<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />sendmail-8.13.8-2.el5.i386.rpm:sendmail服务的主程序包,服务器端必须安装该软件包。
sendmail-cf-8.13.8-2.el5.i386.rpm:sendmail宏文件包
sendmail-devel-8.13.8-2.el5.i386.rpm:sendmail服务器开发工具软件包
sendmail-doc-8.13.8-2.el5.i386.rpm:sendmail服务器的说明文档
m4-1.4.5-3.el5.1.i386.rpm:宏处理过虑软件包
dovecot-1.0.7-2.el5.i386.rpm:接收邮件软件包,安装时需要注意安装顺序2.Sendmail相关配置文档sendmail.cf:sendmail核心配置文件,位于/etc/mail/sendmail.cfsendmail.mc:sendmail提供sendmail文件模板,通过编辑此文件后再使用m4工具将结果导入sendmail.cf完成配置sendmail核心配置文件,降低配置复杂度,位于/etc/mail/sendmail.mclocal-host-name:定义收发邮件服务器的域名和主机别名,位于/etc/mail/local-host-nameaccess.db:用来设置sendmail服务器为哪些主机进行转发邮件,位于/etc/mail/access.dbaliases.db:用来定义邮箱别名,位于/etc/mail/aliases.dbvirtusertable.db:用来设置虚拟账户,位于/etc/mail/virtusertable.db3.邮件功能组件MUA:邮件用户代理(Mail User Agent)MTA:邮件传输代理(Mail Transfer Agent)MDA:邮件递送代理(Mail Delivery Agent)4.Sendmail常规服务器配置搭建Sendmail服务器流程:(1)配置sendmail.mc文件(2)使用m4工具将sendmail.mc文件导入sendmail.cf文件(3)配置local-host-names文件(4)建立用户帐号(5)重新启动服务使配置生效Sendmail应用案例1:局域网网段:192.168.1.0/24企业域名:benet.comDNS及Sendmail服务器地址:192.168.1.2sendmail服务是和DNS服务结合相当紧密的一个服务,所以我们在配置sendmail之前,需要设置并调试好DNS服务器,DNS配置中设置MX资源记录指定邮件服务器地址。
(1)配置DNS主配置文件named.conf
(2)配置benet.com区域文件使用MX记录设置邮件服务器,这条记录一定要有,否则Sendmail无法正常工作。(3)修改DNS域名解析的配置文件vim /etc/resolv.conf(4)重启named服务使配置生效
(5)安装Sendmail软件包RHEL5默认安装sendmail-8.13.8-2.el5及m4-1.4.5-3.el5.1软件包,我们只需要安装sendmail-cf-8.13.8-2.el5宏文件包就可以了。(6)编辑sendmail.mc修改SMTP侦听网段范围配置邮件服务器需要更改IP地址为公司内部网段或者0.0.0.0,这样可以扩大侦听范围(通常都设置成0.0.0.0),否则邮件服务器无法正常发送邮件。vim /etc/mail/sendmail.mc第116行将smtp侦听范围从127.0.0.1改为0.0.0.0第155行修改成自己域:LOCAL_DOMAIN(`benet.com')dnl
使用m4命令生成sendmail.cf文件,其实sendmail.mc即是一个模板文件哈~m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf(7)修改local-host-names文件添加域名及主机名vim /etc/mail/local-host-names(8)安装Dovecot软件包(POP3和IMAP)到这里sendmail服务器基本配置完成后,Mail Server就可以完成邮件发送工作,如果需要使用POP3和IMAP协议接收邮件还需要安装dovecot软件包。在rhel5里dovecot整合了IMAP。安装dovecot软件包要解决其依赖性,安装per-DBI-1.52-1.fc6.i386.rpm和mysql-5.0.22-2.1.0.1.i386.rpmyum –y install dovecot*(9)启动Sendmail服务service sendmail restart和service dovecot restart命令启动sendmail和dovecot服务,如果每次开机启动,可以使用chkconfig命令修改。service sendmail restartservice dovecot restartOpenWebMail需要Apache、perl-Compress-Zlib(默认已经安装)、perl-CGI-SpeedyCGI、perl-suidperl、perl-Text-Iconv、openwebmail、openwebmail-data1.Apache的安装:(这里就不再演示了,博客里有)
2.这里我们已经把openwebmail的rpm包拷到/home下面了,下面我们来安装:rpm -ivh /mnt/Server/perl-suidperl-5.8.8-10.el5_0.2.i386.rpmrpm -ivh perl-Text-Iconv-1.7-2.el5.i386.rpmrpm -ivh perl-CGI-SpeedyCGI-2.22-1.2.el5.rf.i386.rpmrpm -ivh openwebmail*3.初始化OpenWebmali系统/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init4.修改配置文件中的设置项:vim /var/www/cgi-bin/openwebmail/etc/openwebmail.conf(这里的修改是为了让OpenWebmail登陆的时候出现比较亲切的中文哈:) )5.添加用户:6我们来测试下哈……测试之前记得要重启Apache服务呀……Service httpd restart到这里已经算好了,但是在IE里面输入的东西太多了有点麻烦,我们可以做个别名在 /etc/httpd/conf/httpd.conf里的最后一行添加保存退出并重启Apache服务然后再来看下哈……转载于:https://blog.51cto.com/neverstop/283324
一.电子邮件服务简介:
Sendmail是UNIX/Linux环境中稳定性较好的一款邮件服务器软件,通过对Sendmail服务器的配置可以实现基本的邮件转发功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件的收取功能;OpenWebmail是网页形式的邮件应用系统,可实现用户对邮件的发送、收取和管理功能。通过对Sendmail、dovecot和OpenWebmail的综合管理,系统管理员可以构建出功能完善的邮件应用系统。
一个完整的电子邮件系统分为以下3个部分:
(1)邮件用户代理,简称MUA,其主要功能就是帮助用户发送和收取电子邮件。目前常用的Outlook,Outlook Express,Foxmail,Thunderbird。
(2)邮件传送代理,简称MTA。用来监控以及传送电子邮件。基于linxu下的一般有sendmail,Qmail, Postfix。
(3)电子邮件协议,电子邮件客户端和服务器的种类繁多,他们之间的电子邮件协议包括以下几种:
1)SMTP. 即简单邮件传输协议。他为用户提供高效,可靠地邮件传输,监听25号端口。它是一个请求/响应协议,用于接收用户的邮件请求,并与远端邮件服务器建立smtp连接。
2)POP3. 即邮局协议。它使用tcp的110端口。用于电子邮件的接收。目前常用的是POP3.
3)IMAP4. 是通过互联网获取信息的一种协议。它同样可以提供像POP那样方便的下载邮件服务 。IMAP还提供一种摘要浏览功能,让用户可以在阅读完邮件的主题,发件人,大小和到达时间等信息后才能决定是否下载。
4)Webmail。Webmail不是一种协议,而是一种专门针对邮件程序被安装在服务器上的WEB支持插件,让用户可以直接通过浏览器查收,阅读和发送邮件。
二.关于sendmail,我们来认识几个人间和必须要安装的包:
在red hat Enterprise Linux 5中,默认已经安装并且可以启动sendmail。
sendmail的配置文件:sendmail的配置文件都放在/etc/mail目录下。
1)/etc/mail/sendmail.cf ,这是sendmail的主配置文件,所有sendmail的配置都保存在该文件中,该文件的语法复杂建议通过修改其他文件参数来由程序生成该主配置文件。
2)/etc/mail/sendmail.mc ,这个文件与sendmail.cf中的内容完全一样,但却拥有比较简单的语法。可以通过程序M4将其转化为sendmail.cf 。
3)/etc/mail/access.db ,访问数据库,用来定义允许访问本地邮件服务器的主机ip地址,以及访问的类型
4)/etc/mail/aliases.db ,即别名数据库,用来定义用户别名。
5)/etc/mail/local-host-names ,该文件用于指定本地接收邮件的域。
需要安装的包:sendmail-cf m4
三.下面就sendmail来举一个案例:
有一个位于北京的邮件系统,域名为bj.com ,ip地192.168.5.100,一个位于上海的邮件系统,域名为sh.com ,ip地址为192.168.5.101,北京有两个用户 user1 和user2 ,域名分别为user1@bj.com 和user2@bj.com,上海有两个用户 user3 和user4,域名分别为user3@sh.com 和user4@sh.com,现在要通过加密和认证来实现双方用户的邮件通信。
实验步骤
1.编辑access文件
2.启动sendmail服务,
编辑local-host-names文件
[root@localhost mail]# vim local-host-names
3.配置北京地区的dns服务器(需要安装下面的包)
[root@localhost etc]#vim named.conf
编辑区域声明文件,修改如下
[root@localhost etc]# vim named.rfc1912.zones
查看端口开启
[root@localhost etc]# vim /etc/resolv.conf
修改地区名称
[root@localhost named]# vim /etc/sysconfig/network
[root@localhost named]# vim /etc/hosts
重新启动linux系统
[root@localhost named]# init 6
查看服务是否开启
4.在家目录下创建两个用户user1,user2,密码为“123”
安装dovecot并重启服务
[root@localhost ~]# yum install -y dovecot
[root@localhost mail]# vim sendmail.cf
修改为这样的一行
测试北京本地用户是否能收发邮件
5.使用Outlook Oxpress工具测试邮件的发送 创建用户user1
点击“完成”
创建邮件
6.安装接收服务器: 首先安装dovecot包:
启动dovecot
创建用户user2,方法步骤跟user1 一样(这里省略)
使用user1给user2 发送邮件
(建立上海邮件服务器同北京)
因为私有域名的原因,上海和北京两个地区要满足互相收发邮件,必须开启转发功能:
[root@mail ~]vim /var/named/chroot/etc/named.conf
同样,上海地区的也一样要改,并且转发的地址为192.168.2.10
[root@mail ~]# rndc reload
测试上海用户user3给北京用户user1发送邮件的结果:
说明上海的user3用户已经成功的将邮件发送给了北京的user1用户,实现了两地用户之间的通信。
为了保证邮件收发的安全性,下面我们对邮件系统的收发进行加密:
启用加密设置:[root@mail ~]# cd /etc/pki/
[root@mail pki]# cd tls/
[root@mail tls]# vim openssl.cnf
CA证书的搭建过程:
[root@mail pki]# cd CA/
[root@mail CA]# mkdir crl
[root@mail CA]# mkdir certs
[root@mail CA]# mkdir newcerts[root@mail CA]# touch index.txt serial
[root@mail CA]# echo "01" >serial
[root@mail CA]# openssl genrsa 1024 >private/cakey.pem
[root@mail CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
[root@mail CA]# chmod 600 private/cakey.pem #修改钥匙权限
给sendmail颁发一个证书:
[root@mail CA]# mkdir /etc/mail/certs
[root@mail CA]# cd /etc/mail/certs/
[root@mail certs]# openssl genrsa 1024 >sendmail.key
[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr
[root@mail certs]# openssl ca -in sendmail.key -out sendmail.cert
[root@mail certs]# cp /etc/pki/CA/cacert.pem .
[root@mail certs]# cd /etc/mail
[root@mail mail]# vim sendmail.mc
[root@mail mail]# cd certs/
[root@mail certs]# chmod 600 *
查看ssl是否启动
[root@mail mail]# telnet 127.0.0.1 25
为接收服务器颁发认证:
[root@mail mail]# mkdir -pv /etc/dovecot/certs
[root@mail mail]# cd /etc/dovecot/certs/
[root@mail certs]# openssl genrsa 1024 >dovecot.key
[root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr
[root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert
[root@mail certs]# chmod 600 *
[root@mail certs]# vim /etc/devecot.conf
[root@mail certs]# service dovecot restart
7.测试:使用110端口的pop3进行测试
首先安装抓包工具:wireshark
[root@mail ~]# tshark -ni eth0 -R "tcp.dstport eq 110"
从这里可以看出输入的信息被抓获,非常不安全。
使用993端口进行测试
[root@mail ~]# tshark -ni eth0 -R "tcp.dstport eq 993"
客户端使用加密端口接收邮件
至此实验完成,如有不对,多谢批评指正!
转载于:https://blog.51cto.com/chengmingshu/816751
linux下可以配置sendmail作为邮件服务器,可以使用系统用户作为账号进行发送邮件(不需要真实的邮箱账号)
安装:
sudo apt install sendmail
或 sudo yum install sendmail
CentOS 配置
root@ubuntu:~# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
ubuntu.com
#localhost
root@ubuntu:~# cat /etc/hosts
127.0.0.1 ubuntu.com ubuntu
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
root@ubuntu:~# cat /etc/resolv.conf
nameserver 192.168.50.88
nameserver 192.168.50.89
#search bogon
root@ubuntu:~#
nameserver 自行配置,能解析外网即可
Ubuntu
lipl@ubuntu:wspx$ cat /etc/mail/local-host-names
#mailtest.com
ubuntu.com
localhost
lipl@ubuntu:wspx$ cat /etc/hosts
127.0.0.1 ubuntu.com ubuntu
127.0.0.1 localhost
lipl@ubuntu:wspx$ cat /etc/mail/local-host-names ^C
lipl@ubuntu:wspx$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
lipl@ubuntu:wspx$