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架構
高手留下灰塵,新手留下足跡
相關文章
相關標籤/搜索