sendmail+dovecot+openwebmail作邮件服务器

拓扑环境
实验简介
MUA:Mail User Agent 邮件用户代理,所谓的邮件客户端软件(outlook,foxmail,thunderbird)
MTA:Mail Transfer Agent 邮件传输代理,所谓的邮件服务器
(sendmail,postfix,qmail)
 
三种邮件协议
smtp:简单邮件传输协议,sendmail支持的
pop3:邮件协议第3版,dovecot支持
imap:因特网消息访问协议第4版,dovecot支持
由于sendmail只支持smtp协议因此当sendmail服务搭建后只能让用户发送邮件,而对方用户却没法接收邮件,由于这须要pop3和imap4的支持,因此才会用到dovecot软件
 
实验目的
1.两个用户有两个邮箱 user1@lvs.com user2@lvs.com
2.两个用户用foxmail可以互相发送邮件
3.两个用户用foxmail使用别名发送邮件
4.两个用户用foxmail能够群发邮件
5.当客户端没有邮件应用程序时用浏览器收发邮件
6.邮件收发过程当中邮件服务器的解析依靠dns完成
 
所须要的软件包
bind-9.3.6-4.P1.el5_4.2
sendmail-8.13.8-8.el5
m4-1.4.5-3.el5.1
sendmail-cf-8.13.8-8.el5
dovecot-1.0.7-7.el5
openwebmail
 
实验步骤
1.前期工做(制做yum本地源)
2.前期工做(挂载光驱)
3.安装邮件服务器软件包
yum install *sendmail*
yum install dovecot
 
4.开启网卡监听,就是让sendmail监听哪块网卡上得邮件传输请求。能够指定网卡,也能够监听全部网卡(0.0.0.0替换指定IP便可).并同时开启用户登陆认证功能,也就是说用户要发送或者接受邮件必须输入密码才能够作,以抵御冒名顶替的非法用户发送垃圾或者不良邮件。
vi  /etc/mail/sendmail.mc
 
5.让mc配置生效从新写到sendmail的主配置文件中sendmail.cf
为何不直接编辑主配置文件sendmail.cf是由于这个配置文件的结构太过于复杂,不便于工程师配置邮件服务,因此开发者提供了一个sendmail.mc的基本配置文件,经过这个基本配置文件来配置邮件服务,并把配置过程和变动从新定向给sendmail.cf.由于sendmail启动仍是要读取主配置文件sendmail.cf的.
若是你执行上述命令时提示以下错误cannot open "/usr/share/sendmail.cf/m4"证实sendmail.cf软件包没有装
 
6.配置邮件的收发域
vi  /etc/mail/local-host-names
这个作法是让邮件服务器可以正确的解析是给哪一个域在作邮件收发,若是不写这个配置那么用户的邮件地址就要写成 user1@mail.lvs.com ,反之能够写成 user1@lvs.com
 
7.配置sendmail转发域
vi  /etc/mail/access
而后把这个配置文件转成sendmail能够识别的数据库文件access.db
这个文件用来配置邮件转发权限的,sendmail能够帮助哪些网络或哪台计算机转发邮件给另外一台邮件服务器
 
 
8.配置dovecot以启用pop3和imap4协议
vi  /etc/dovecot
 
9.配置dns服务以支持邮件服务器MX记录解析
yum install bind
yum install bind*
yum install caching-nameserver
 
 
9.1拷贝配置文件到指定目录
 
9.2给予配置文件named:named所属关系,由于bind是靠named用户来启动的若是named帐户没有权限执行启动脚本那么bind启动失败
 
9.3编写bind的主配置文件
vi /var/named/chroot/etc/named.conf
 
9.4编写区域配置文件
vi  /var/named/chroot/etc/named.zone
 
9.5编写正向和反向区域数据库文件
vi /var/named/chroot/var/named/lvs.com.zone
vi /var/named/chroot/var/named/0.168.192.zone
 
9.6启动dns服务
 
9.7把dns服务器指向本身作测试
vi  /etc/resolv.conf
nameserver  192.168.0.200
 
9.6测试dns正向反向解析邮件记录是否正常
 
 
10.设置sendmail,dovecot,bind开机启动
 
 
11.启动sendmail和dovecot服务
 
11.1看看端口是否都开放了,咱们看到端口都开放了
dns:53
smtp:25
pop3:110
imap:143
 
12.客户端测试邮件系统
12.1添加两个测试帐户
12.2把windows客户端dns指向linux服务器
12.3配置foxmail邮件客户端
以一样的方法创建 user2@lvs.com
user1开始给user2发信
给user1和user2都搞个别名
user1对应fish
user2对应shark
这样user1在给user2发邮件就能够写成 shark@lvs.com 了以保护user2帐户,由于邮件服务器的帐户就是系统自身帐户出于对系统帐户安全考虑才这么作的.而紫色的部分是一个邮件群发设置,当给 animal@lvs.com 发邮件的时候就等于给fish,shark都发邮件
vi  /etc/aliases
让上述设置生效
newaliases
 
此时此刻咱们在来配置一下以浏览器为邮件客户端的邮件服务器openwebmail
1.咱们先利用linux的samba共享一个目录把openwebmail及相关组件都复制到linux下,由于openwebmail并非linux默认的组件包。
yum  install  samba
 
vi  /etc/samba/smb.conf
修改security等级和添加一个共享目录
mkdir  /software  建立这个目录
chmod 777 /software  给彻底权限
启动samba服务
 
 
2.windows客户端来访问linux共享目录,由于openwebmail被我下载到windows上了
这是我拷贝以后的结果
 
3.安装软件包
先安装perl开头的软件包
在安装openwebmail
 
4.关闭selinux
vi   /etc/config/selinux
 
 
5.修改openwebmail配置文件
vi /var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf
 
6.安装并启动httpd服务
由于openwebmail是一款网页邮件服务,因此要借助80端口才能提供给客户端浏览器进行邮件界面操做。
 
7.对openwebmail的数据库初始化
 
8.在浏览器中输入
 
9.设置中文项
vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
 
10.咱们在来登陆试试页面是否变成中文的
 
11.登陆进去看看可否找到本身的邮件
 
 
接下来我就要给你们演示如何利用证书
 
实验介绍
1.有一台邮件服务器供user1和user2相互传送邮件
2.有一台CA证书服务器提供签署证书以完成邮件加密和签名
3.CA证书服务器自签名为合法
4.邮件服务器须要从CA那里得到一份证书以证实本身的合法性
5.user1和user2也要从CA那里得到证书以完成邮件加密和签名
6.在邮件服务器上安装证书
7.在客户端上安装证书
 
实验步骤
1.CA证书中心自签名认可本身合法
配置/etc/pki/tls/openss.cnf文件
 
2.建立在配置文件中的支持目录和支持文件
 
3.CA给本身建立一个私钥,按照openssl.cnf文件中的解释,CA的私钥必须放在/etc/pki/CA/private/ca.key
 
4.在经过CA本身的私钥来生成公钥。这里要说明一下对于其余应用服务器或者客户端而言得到证书的步骤以下:
4.1服务器或客户端先用openssl本身生成一个私钥server.key
4.2而后利用本身的server.key生成一个server.csr的证书请求文件,这个文件包含了你的server所在的国家,省份,公司名称,邮箱等一系列证实你身份的属性。
4.3你要把这个server.csr交给CA中心,让CA中心来核查你的信息是否属实(万一你是钓鱼网站或者有欺诈性质的),当CA中心认为你的信息都属实,就按照server.csr的内容给你签署一份证书(包括了CA的签名,Server的公钥,Server的基本属性)叫server.crt
4.4把server.crt传回来给这个server服务器,那么这台server服务器就有server.key私钥和server.crt公钥了
4.5而后就安装server.key和server.crt到本身的证书库中。同时也包括给你签署证书的CA中心的公钥也要安装进来,
4.6那么客户端得到证书的过程和server同样,都要安装本身的私钥和公钥以及CA中心的公钥
4.7如今server有CA的公钥,client也有CA的公钥,他们都相信这个CA,ok!他们直接就能够创建间接的信任开始进行加密和签名了。
我当前的操做目录是/etc/pki/CA.按照openssl.cnf配置文件中说certificate=/etc/pki/CA那么CA中心本身的公钥就放在/etc/pki/CA目录下
你也许觉的很奇怪为啥CA中心本身不要csr证书请求文件,而后就很随意的很霸道的就给本身签署证书了。其实不该该这样随意的。
一个合法的CA中心创建也要向他的上级CA中心来提交csr证书请求的,同时上级CA也会来验证你的CA中心合法性的,好比世界上三大证书中心Verisign,Thawte,GeoTrust他们就本身给本身签了,由于找不到比他们更权威的CA来制衡,管辖他们了。
 
 
5.如今个人操做是在邮件服务器上完成的
5.1邮件服务器本身先生成一个私钥mailserver.key并把这个文件放在本身的/etc/pki/tls/private目录中
5.2利用邮件服务器本身的mailserver.key生成一个mailserver.csr的证书请求文件
5.3如今咱们在邮件服务器管理员的家目录里能够看到mailserver.key私钥和mailserver.csr的证书请求文件
 
6如今要作得就是把邮件服务器的证书请求文件发给CA中心,并让CA中心签署
scp mailserver.csr  ca.lvs.com:/etc/pki/CA/newcerts/mailserver.csr
我把mailserver.csr从邮件服务器的家目录拷贝到CA中心的/etc/pki/CA/newcerts目录中,做为即将签署证书的地方
 
7.如今得操做已经在CA中心上了,证书请求发过来了但是怎么验证以前要查看这个csr中的内容呀。有几种办法
7.1你能够介绍CA中心的网页把你的csr种的1024加密内容复制到一个文本框中,网页会本身翻译这个加密内容的.以下图是个人mailserver.csr的内容包括了国家,地域等,这咱们都确定解释不了的。
我复制到一个神奇的网页中
7.2你在用CA中心本身的私钥给这个csr请求签署证书的时候就能够罗列出里面的信息了,你核查后赞成就签署,不一样意就over.
那就啥也别说了大笔一挥直接签吧!
 
8.ok!如今就把CA中心签署好的mailserver.crt证书文件和CA本身的证书ca.crt一同传给邮件服务器。为啥也要CA的证书呢?缘由很简单
8.1客户端来发邮件以前要检查邮件服务器是否合法(不是那种嗅探者或拦截者)
8.2但检查邮件服务器合法性以前就必须检查给这个邮件服务器签署证书的CA中心是否合法
8.3客户端安装的系统都会带有世界合法的CA中心库,客户端会从邮件服务器的证书中提取CA签名的信息,并拿此信息和本身的CA中心库对比查找有没有匹配的记录,若是有客户端就信任这个CA中心以及这个CA中心签署给其余人的证书也是没发错的。
8.4若是没找到匹配的CA中心记录就会问你是否相信这个CA以及这个CA签署这台邮件服务器(他们有多是蛇鼠一窝的),固然你能够选择相信也能够否定。相信了就借助 这台邮件服务器收发邮件,不相信就拜拜断掉链接。
在CA中心上操做拷贝mailserver.crt和ca.crt给邮件服务器
 cp ./certs/mailserver.crt   mail.lvs.com:/etc/pki/tls/certs/mailserver.crt
 
cp ca.crt mail.lvs.com:/etc/pki/CA
 
9.如今邮件服务器的mailserver.key和mailserver.crt以及CA的ca.crt,这2个公钥1个私钥都齐全了分别放在邮件服务器目录中的
CA的公钥ca.crt-----/etc/pki/CA
邮件服务器公钥mailserver.crt-----/etc/pki/tls/certs
邮件服务器私钥mailserver.key----/etc/pki/tls/private
而后mailserver.key和mailserver.crt拷贝成pem格式的文件
为何要这么作的主要缘由在于.crt文件都是二进制存放的不含有私钥信息
cp  /etc/pki/tls/certs/mailserver.certs  /etc/pki/tls/certs/mailserver.pem
cp  /etc/pki/tls/private/mailserver.key  /etc/pki/tls/private/mailserver.pem
 
10.编辑dovecot配置文件支持证书
vi  /etc/dovecot.conf
 
 
11.我用thunderbird作邮件客户端测试一下
当这台邮件服务器没有安装CA中心的公钥时,也就是说没有CA能证实这个邮件服务器的合法性,此时你接受邮件会提示你一个警告。第一行说不能核查和识别mail.lvs.com的真实性.底下的选项1是一直相信这个邮件服务器,选项2是就这一次相信,选项3是不相信,拜拜!
 
那么如今为了避免在弹出这个对话框,就是说让客户端相信这个邮件服务器是合法的CA中心签署的一台邮件服务器咱们要作得一件事就是把咱们自签名的CA证书导入到客户端的全球CA中心库里
 
 
以一样的方式client1和client2也要申请证书
cp  /root/client1.key  /etc/pki/CA/private/client1.key
而后把本身的client1.csr证书请求文件发给CA中心,让CA中心来签署并生成证书,下面的操做我是在CA中心的/etc/pki/CA/newcerts
把client1.crt签署好的证书和CA中心的证书ca.crt一并拷给client1客户端
scp  /etc/pki/CA/certs/client1.crt    client1.lvs.com:/etc/pki/CA/certs/client1.crt
 
scp  /etc/pki/CA/ca.crt  client1.lvs.com:/etc/pki/CA
 
打开thunderbird客户端
这里就会有问题了,客户端client1的私钥和公钥是.key和.crt结尾的文件,而此时导入咱们须要pkcs12证书格式的文件,这里存在一个证书格式转换的问题
 
如今就开始转换证书
我把client1.crt和client1.key文件都放在了一个我新建的client1文件夹下并把client1.crt改名为client1.pem,由于pkcs12格式转换是只能读取源证书格式是pem的。不过我没有作pem转得过程。这里还须要输入保护pkcs12格式私钥的密码。其实pkcs12格式就是吧.crt和.key即公钥和私钥统集合在一个文件了。
 
而后客户端就能够看到证书了
 
以一样的方位为client2申请证书并证书格式为pkcs12
 
那如今咱们就能够在thunderbird中让用户选择本身的证书了
按照一样的方法给client2申请并转换了pkcs12类型格式的证书了,那么如今我用 user1@lvs.com user2@lvs.com 发邮件并选中加密和签名看可否发过去
 
 
当我发送邮件的时候提示你创建pkcs12证书格式时保护密码
 
 
咱们在来看看证书服务器都签署了哪些证书,总共多少个
 
OK了!一个简单的sendmail+dovecot+openwebmail+dns+openssl证书组合的小型邮件系统就搭建完成了,这里不值得一提,只是给不少新人们一点思路。最后这个openwebmail其实也是一个邮件服务器,和sendmail区别在于
sendmail----foxmai,outlook,thunderbird这些应用程序客户端.属于C/S架构
openwebmail----IE,firefox,这些浏览器.属于B/S架构
高手留下灰尘,新手留下足迹
相关文章
相关标签/搜索