郵件服務的修真之旅

1、築基期之郵件服務簡介

郵件服務經過如下幾個協議來實現
簡單郵件傳輸協議(SMTP),用來發送或中轉發出的電子郵件,佔用tcp 25端口。
郵局協議 第三版(POP3),用於把服務器上的郵件存儲到本地主機,佔用tcp 110端口。
互聯網信息訪問協議 第四版(IMAP4),用於在本地主機上訪問郵件,佔用tcp 143端口。
瞭解了三種協議,如今再來看看郵件服務的基本概念
郵件傳輸:MT 郵件傳輸代理:MTA
郵件投遞:MD 郵件投遞代理:MDA
郵件用戶:MU 郵件用戶代理:MUA
在一臺郵件服務器上,用戶要寫一封郵件,是經過MUA(郵件用戶代理)來寫郵件的;寫好郵件後將郵件提交本地SMTPD服務(MTA);SMTPD服務對郵件進行分類,本地的郵件直接經過lmtp(本地郵件傳輸協議)放在本地;須要遠程發送的郵件經過smtp客戶端發送遠程SMTP主機的服務端;遠程SMTPD將郵件經過MDA發送到本地郵局,接收方經過MUA將郵件接收到本身的家目錄linux

郵件服務的修真之旅

實現SMTP協議使用postfix,實現pop3和imap4協議使用dovecot,同時部署用於實現域名解析的bind服務器web

郵件服務的修真之旅

2、開光期之部署named服務

2.一、環境準備

關閉防火牆vim

systemctl stop firewalld.service

2.二、配置bind服務以提供域名解析

模擬內網環境:使用系統光盤做yum源centos

2.2.一、掛載鏡像至/media目錄下

mkdir /media/cdrom
mount /dev/cdrom /media/cdrom

2.2.二、啓用c7-media源

yum-config-manager --enable c7-media

2.2.三、使用c7-media源安裝bind

yum -y install bind bind-libs bind-libs-lite bind-license bind-utils

2.2.四、配置bind

備份配置文件:cp /etc/named.conf{,.bak}
修改全局配置中的監聽地址,加上本機可與外網通訊的地址服務器

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;
    dnssec-enable yes;
dnssec-validation yes;
};

2.2.五、配置bind解析郵件服務

添加正反向區域(根據實際狀況配置)
vim /etc/named.rfc1912.zones網絡

zone "zhongdianjizhi.com" IN {
        type master;
        file "zhongdianjizhi.com.zone";
        allow-update { none; };
};
zone "118.168.192.in-addr.arpa" {
        type master;
        file "zhongdianjizhi.com.local";
        allow-update { none; };
};

定義區域解析庫文件(配置A記錄與MX記錄)
cd /var/nameddom

cp -p named.localhost zhongdianjizhi.com.zone
cp -p named.localhost zhongdianjizhi.com.local

zhongdianjizhi.com.zonetcp

$TTL 1D
@       IN SOA  @ zhongdianjizhi.com. (
                                        201901  ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.118.150
        MX 10   mail.zhongdianjizhi.com.
mail    A       192.168.118.150
mail    AAAA    fe80::3f32:be25:88e8:79b1

zhongdianjizhi.com.local ide

$TTL 1D
@       IN SOA  @ zhongdianjizhi.com. (
                                        201901  ; serial 
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.118.150
        MX 10   mail.zhongdianjizhi.com.
150     PTR     mail.zhongdianjizhi.com.
        AAAA    fe80::3f32:be25:88e8:79b1

2.2.六、檢查配置文件是否有語法錯誤

named-checkzone "zhongdianjizhi.com.zone" /var/named/zhongdianjizhi.com.zone
named-checkzone "118.168.192.in-addr.arpa" /var/named/zhongdianjizhi.com.local

2.2.七、修改主機名,指定本機DNS

hostnamectl set-hostname mail.zhongdianjizhi.com

將本機dns解析指向本機dns服務器post

vim /etc/resolv.conf 
nameserver 192.168.118.150

2.2.八、啓動named服務(bind是包名,服務名爲named)

systemctl start named
systemctl enable named

2.2.九、測試解析

dig -t A mail.zhongdianjizhi.com @192.168.118.150
dig -x 192.168.118.150 @192.168.118.150

3、融合期之postfix部署

在centos7系統中postfix已經安裝,版本爲2.10.1

3.一、配置postfix

備份
cp /etc/postfix/main.cf{,.bak}
配置文件main.cf

#第76行 修改郵局主機名
myhostname = mail.zhongdianjizhi.com
#第83行 修改郵局域名
mydomain = zhongdianjizhi.com
#第99行 修改寄出郵件域名
myorigin = $mydomain
#第114行 修改監聽全部網卡
inet_interfaces = all
#第119行 開啓同時使用ipv4和ipv6協議
inet_protocols = all
#第164行 修改可接收郵件的主機名和域名
mydestination = $myhostname, $mydomain
mynetworks = 192.168.118.0/24, 127.0.0.0/8
home_mailbox = Maildir/

3.二、編輯/etc/hosts文件

vim /etc/hosts

192.168.118.150 mail@zhongdianjizhi.com

3.三、啓動服務,並檢查MTA是否運行

systemctl start postfix
systemctl enable postfix
alternatives --display mta

3.四、建立虛擬用戶

useradd jym 
echo '123456' |passwd --stdin jym
useradd boss
echo '123456' |passwd --stdin boss

3.五、測試postfix發郵件

[root@mail ~]# telnet mail.zhongdianjizhi.com 25
Trying 192.168.118.150...
Connected to mail.zhongdianjizhi.com.
Escape character is '^]'.
220 mail.zhongdianjizhi.com ESMTP Postfix
mail from:boss@zhongdianjizhi.com
250 2.1.0 Ok
rcpt to:jym@zhongdianjizhi.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
this is test mail.
.
250 2.0.0 Ok: queued as 43A6B2033E0D
quit
221 2.0.0 Bye
Connection closed by foreign host.

4、金丹期之dovecot部署

4.一、安裝

yum install dovecot

4.二、配置

備份

cp /etc/dovecot/dovecot.conf{,.bak}

配置dovecot.conf

sed -i '24s/^#//g' /etc/dovecot/dovecot.conf
sed -i '48s/#login_trusted_networks =/login_trusted_networks = 192.168.118.150\/24/g'

修改子配置文件10-mail.conf

sed -i '24s/^#//g' /etc/dovecot/conf.d/10-mail.conf

4.三、啓動

systemctl start dovecot
systemctl enable dovecot

4.四、測試dovecot收郵件

[root@mail named]# telnet mail.zhongdianjizhi.com 110
Trying 192.168.118.150...
Connected to mail.zhongdianjizhi.com.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user jym
+OK
pass 123456
+OK Logged in.
list
+OK 6 messages:
1 559
2 559
3 559
4 2564
5 2564
6 469
.
retr 6
+OK 469 octets
Return-Path: <boss@zhongdianjizhi.com>
X-Original-To: jym@zhongdianjizhi.com
Delivered-To: jym@zhongdianjizhi.com
Received: from unknown (unknown [192.168.118.150])
    by mail.zhongdianjizhi.com (Postfix) with SMTP id 86CAC2033DFF
    for <jym@zhongdianjizhi.com>; Sun, 30 Jun 2019 10:20:50 -0400 (EDT)
Message-Id: <20190630142105.86CAC2033DFF@mail.zhongdianjizhi.com>
Date: Sun, 30 Jun 2019 10:20:50 -0400 (EDT)
From: boss@zhongdianjizhi.com

this is test mail.

.

5、元嬰期之繼續修行

本次部署的郵件服務適用於內部網絡,郵件服務用於消息通知,發件與收件由腳本完成,用於鏈接互聯網的郵件服務建議配置webmail(Extmail與Extman)來收發件,win平臺使用LDAP來管理用戶認證,linux平臺使用Courier-authlib與MySQL來管理用戶認證,同時務必關閉開放式中繼。

參考文章:

https://blog.51cto.com/12227558/2074095
https://blog.51cto.com/13728740/2141927

相關文章
相關標籤/搜索