Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 搭建郵件服務器postfix 步驟(轉)

搭建郵件服務器postfix 步驟(轉)

編輯:關於android開發

搭建郵件服務器postfix 步驟(轉)


學習一個服務的流程;

1、此服務器的概述:名字,功能,特點,端口號

2、安裝

3、配置文件的位置

4、服務啟動關閉腳本,查看端口

5、此服務的使用方法

6、修改配置文件,實戰舉例

7、服務的安全

8、排錯(從下到上,從內到外)

9、模擬錯誤<對服務的原理要精通>


背景介紹;


RHEL5默認,地位已失

地位失守原因:

 第一個重要的缺點是它的安全性較差,這是因為當其作者Eric Allman最初開始寫作這個軟件的時候,Internet的用戶還很少,因而安全性並不沒有得到大家的重視。

由於郵件系統需要處理的是外部發送來的各種各樣的信息,甚至包含一些惡意數據,然而sendmail在大多數系統中都是以root身份運行,一旦出現問題,就會對系統安全造成嚴重影響。在這種情況下,要防止出現安全問題,僅僅依賴程序本身是不可取的,應該從系統結構出發,使程序擁有的特殊權限限制到最小。

第二個,使用Sendmail還會遇到的另一個問題是它的設置相當復雜,對於使用缺省設置來收發電子郵件,問題並不存在。當管理員打算進行一些特殊設置,以便利用Sendmail提供的復雜郵件處理能力時,就不得不面對復雜的宏和正則表達式。

Qmail可以替代Sendmail

Qmail,為了解決sendmail的安全問題,整個系統結構需要重新設計。基本的原則是將系統劃分為不同的模塊,有負責接收外部郵件的,有管理緩沖目錄中待發送的郵件隊列的,有將郵件發送到遠程服務器或本地用戶的。Qmail就是按照這個原則進行的設計,它由多個不同功能的小程序組成,只有必要的程序才是setuid程序(即以root用戶權限執行),這樣就減少了安全隱患,並且由於這些程序都比較簡單一些,因此就可以達到較高的安全性。Qmail已經許多年沒有更新了,用戶已經習慣於通過第三方的插件及補丁來使qmail增加新的功能.


postfix 介紹:


另一種替換軟件:Postfix 可以替代sendmail
postfix同樣也是采用了模塊化的方式,但與Qmail不同的是,Postfix使用了一個主控進程進行監控。Postfix在很多方面都考慮到了安全問題,它甚至不向root分發電子郵件,以避免以root身份讀寫文件或啟動外部程序。考慮到它的作者Wietse Venema曾編寫了著名的安全軟件TcpWrapper,Postfix的安全性是非常值得信賴的。


Postfix的性能也非常不錯,甚至在Qmail作者自己進行的測試中也表明,Postfix的性能和Qmail基本相當。postfix在性能上大約比sendmail快三倍


官網:http://www.postfix.org/

logo


作者:Wietse Venema

作者介紹:http://www.porcupine.org/wietse/


前面我們說的都是郵件發送服務器

接下來我們看看郵件接收服務器


Dovecot:郵件接收服務器:

Dovecot是一個開源的 IMAP 和 POP3 郵件服務器,支持 Linux/Unix 系統。

POP / IMAP4是 MUA 從郵件服務器中讀取郵件時使用的協議。

POP3是從郵件服務器中下載郵件存起來,IMAP 則是將郵件留在服務器端直接對郵件進行管理、操作。比POP3更先進。

由 Timo Sirainen 開發,最初發布於 2002年7月。作者將安全性考慮在第一,所以 Dovecot 在安全性方面比較出眾。

IMAP4是TCP/IP協議族中的一員,現在的版本是“IMAP第四版第一次修訂版”。

一個完整的郵件服務器由以下內容構成:

postfix(作為發送郵件服務器)+dovecot(作為接收郵件服務器)+mysql(作為數據庫)


25端口:SMTP協議。 發送郵件


是本地郵件傳輸協議,與SMTP類似,但不支持郵件隊列(queue),主要應用於非廣域網的郵件網關。


110端口:POP3協議


是本地郵件傳輸協議,與SMTP類似,但不支持郵件隊列(queue),主要應用於非廣域網的郵件網關。


143:IMAP


IMAP: (InternetMail Access Protocol Internet郵件訪問協議) 。IMAP是斯坦福大學在1986年開發的一種郵件獲取協議。它的主要作用是郵件客戶端(例如Outlook)可以通過這種協議從郵件服務器上獲取郵件的信息,下載郵件等。

當前的權威定義是RFC3501。IMAP協議運行在TCP/IP協議之上,使用的端口是143。它與POP3協議的主要區別是用戶可以不用把所有的郵件全部下載,可以通過客戶端直接對服務器上的郵件進行操作。兩者之前的區別

POP3協議允許電子郵件客戶端下載服務器上的郵件,但是在客戶端的操作(如移動郵件、標記已讀等),不會反饋到服務器上,比如通過客戶端收取了郵箱中的3封郵件並移動到其他文件夾,郵箱服務器上的這些郵件是沒有同時被移動的 。

而IMAP提供webmail 與電子郵件客戶端之間的雙向通信,客戶端的操作都會反饋到服務器上,對郵件進行的操作,服務器上的郵件也會做相應的動作。

郵件功能組件

MUA:郵件用戶代理(Mail User Agent) 收郵件

MTA:郵件傳輸代理(Mail Transfer Agent) 發郵件

rhel5默認采用sendmail做為MTA,rhel6則采用postfix

MDA:郵件遞送代理(Mail Delivery Agent)


名稱

全名

基於協議

作用

常見軟件

MUA

Mail User Agent用戶郵件代理

替用戶收發郵件的

Outlook Foxmail Thunderbird mutt

MTA

Mail Transfer Agent郵件傳輸代理

SMTP

服務器中接受郵件

Sendmail qmail postfix(IBM) exchange

MDA

Mail Deliver Agent郵件投遞代理

把SMTP收到的郵件投遞的用戶郵箱

Procmail maildrop

MRA

Mail Retrival Agent郵件檢索代理

POP3/IMAP

幫用戶去郵箱取郵件

dovecot courier-imap cyrus-imap


工作原理圖





搭建postfx服務端


[root@post-test ~]# hostname
postfix-server
[root@postfix-server ~]# rpm -qa |grep sendmail
[root@postfix-server ~]# yum remove sendmail -y


[root@postfix-server ~]# alternatives --config mta

共有 1 個提供“mta”的程序。

選項 命令
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix

按 Enter 保留當前選項[+],或者鍵入選項編號: #如果有多個輸入數字進行選擇


[root@postfix-server ~]alternatives --display mta#查看所有詳細的版本

[root@postfix-server ~]#yuminstall postfix –y# postfix服務的主程序包,服務器端必須安裝該

[root@postfix-server ~]#yuminstall dovecot –y#接收郵件軟件包。 安裝在服務端用於測試收郵件。 安裝客端用於收郵件。

[root@postfix-server ~] #vim /etc/postfix/main.cf


[root@postfix-server ~] # vim/var/log/maillog


[root@postfix-server ~]#service postfix start


[root@postfix-server ~]#lsof -i :25

COMMAND PID USERFD TYPE DEVICE SIZE/OFF NODENAME

master 2336 root12u IPv4 132160t0 TCP localhost:smtp (LISTEN)

master 2336 root13u IPv6 132180t0 TCP localhost:smtp (LISTEN)


服務的使用方法:

linux:

發送:

[root@postfix-server ~]# mail -s 'Postfix'[email protected] < /etc/passwd

-s:指定郵件主題名

接收:

mail

windows:

通過浏覽器訪問或 foxmail


案例一;

配置postfix郵件服務器,實現郵件發送功能。實現給郵箱:[email protected] 發送郵件。

1)修改主機名和對應關系:

[root@postfix-server~]# hostname

xuegod63.cn


[root@postfix-server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
postfix-server 172.16.1.201

2.修改postfix服務配置文件

[root@postfix-server ~]#vim /etc/postfix/main.cf



queue_directory= /var/spool/postfix#隊列目錄,也是運行的根目錄

mydomain =postfix-server#指定郵件域,接收用來識別的

myhostname= postfix-server#發送郵件的主機名

mynetworks= 192.168.1.0/24, 127.0.0.0/8#指定允許使用的ip地址段

myorigin =$mydomain#發信地址,此設置顯示為@postfix-server

inet_interfaces= all#對外提供MTA服務設置為監聽所有網卡,默認只監聽本地

#inet_interfaces= localhost #注釋掉,這個是只監聽本地的

mydestination= $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks_style= subnet #允許轉發的來源網段,可選subnet子網,class網段,host本機

local_recipient_maps=//209行,把前面的注釋拿掉

relay_domains= $mydestination#允許轉發的目標域

alias_maps= hash:/etc/aliases#對某個用戶發,文件中的用戶都可以收到郵件

alias_database= hash:/etc/aliases

smtpd_banner= $myhostname ESMTP "postfix mail server"#自定服務器信息


3.啟動postfix服務;


[root@postfix-server ~]#servicepostfix restart


1)測試給[email protected]發送郵件:


[root@xuegod63 ~]# mail -s 'Postfix'[email protected]< /etc/postfix/main.cf

由於要經過很多域名解析發送中轉,所以會有些延遲

-s:郵件主題

#

[root@postfix-server ~]#mail

HeirloomMail version 12.4 7/29/08. Type ? forhelp.

"/var/spool/mail/root":12 messages 1 new 2 unread

>N 12 Mail Delivery System Sun Nov 29 21:14 752/29445 "UndeliveredMail Returned to S"

&


沒有發送出去,經驗證是網絡ip的問題

http://www.anti-spam.org.cn/反垃圾郵件聯盟,看看你的ip是否被拉入黑名單

用別的地方的一台機器,一樣的配置文件,可以發送


[root@postfix~]# mail -s 'Postfix' [email protected]


1.我們怎樣才能讓我們的郵件服務器給別人發送郵件不顯示垃圾郵件?


需要為郵件服務器添加DNS解析

雖然不加DNS解析也能把郵件發出去,但會被大多數郵件服務器當作垃圾郵件。根據我們的實際經驗,需要添加三條DNS解析記錄:A記錄、MX記錄、TXT記錄比如域名cnblogs.info,對應的DNS記錄如下





例2:配置postfix給一個人發送郵件多個人可以收到

需求:

我們先創建2個用戶,創建一個組HA,當我們給HA送郵件的時候,alice和bob兩個用戶可以收到郵件

別名功能


1)添加測試用戶:

[root@postfix-server ~]# groupadd HA

[root@postfxi-server ~]# useradd alice

[root@postfix-server ~]# echo "123456" | passwd --stdinalice

[root@postfix-server ~]# useradd bob

[root@postfix-server~]# echo "123456" | passwd --stdin bob

[root@postfix-server~]# vim /etc/aliases

HA: alice,bob

[root@postfix-server ~]# service postfixrestart

3)發送測試郵件:

[root@postfix-server ~]# mail HA

Subject: Test

This is a Test-mail

lllloo

kllll

lll

EOT按ctrl-D結束輸入

4)切換用戶查看:


[root@postfix-server ~]# su - alice

[alice@postfix-server ~]$ mail

配置dovecot服務器,實現發郵件和接收郵件

  • 修改dovecot配置文件:

[root@postfix-server ~]# vim /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp#啟用,lmtp被淘汰的地步。可能不被支持,不用就刪掉

login_trusted_networks = 192.168.1.0/24//指定允許登錄的網段地址

或login_trusted_networks = 0.0.0.0設置為四個零,允許所有網絡

[root@postfix-server ~]# grep -v '^#' /etc/dovecot/dovecot.conf |grep-v '^$' |grep -v '#'

protocols= imap pop3 lmtp

login_trusted_networks= 192.168.1.0/24

dict {

}

!includeconf.d/*.conf


  • 設置郵件存放目錄:

[root@postfix-server~]# vim/etc/dovecot/conf.d/10-mail.conf

mail_location = mbox:~/mail:INBOX=/var/mail/%u#指定郵件的位置

  • 重啟dovecot服務

[root@postfix ~]# service dovecot restart

  • 修改創建用戶模板文件,使用戶創建時自動生成mail存放目錄

[root@postfix ~]# vim /etc/skel/.bash_profile

if[ ! -d ~/mail/.imap/INBOX ] ; then

mkdir -p ~/mail/.imap/INBOX

fi

[root@postfix-server ~]# source .bash_profile

5)測試:

先創建用戶

[root@postfix-server~]# useradd alice

[root@postfix-server~]# echo alice:123456 |chpasswd

[root@postfix-server~]# useradd bob

[root@postfix ~]# echobob:123456 |chpasswd

測試發郵件

測試發郵件:

mail發郵件三種用法

1:以文件中的內容為郵件內容發信

[root@postfix-server ~]# su - alice

[alice@postfix-server ~]$ mail -s'Posfix1' bob@postfix-server < /etc/hosts

2:手動輸入內容作為發送內容

[alice@postfix-server ~]$ echo"2222222222" | mail -s 'Postfix2' bob@postfix-server

3:手動輸入一串作為發送內容

[alice@postfix-server~]$ mail -s 'Postfix3' bob@postfix-server

yyyuuu

hhhhhkkk

jjjnnnn

EOT

通過mail命令查看郵件:

[root@postfix-server~]# su - bob

[bob@postfix-serve~]$ mail

&#mail命令的提示符為 &

& 1#輸入數字1,查看第一封郵件

& h#查看郵件列表

& l #查看所有支持的命令

& d 2#刪除第二個郵件; d 2-4 刪除第2-4的郵件

&?#查看 所有用法。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved