*************实验前配置环境*****************

***首先重置两台虚拟机***
####desktop主机#####
vim /etc/sysconfig/network-scripts/ifcfg-eth0    ##配置网络环境
BOOTPROTO=none
IPADDR=172.25.254.140
PREFIX=24
systemctl restart network            ##重启网络服务
vim /etc/yum.repos.d/...              ##配置yum源
yum clean all                              ##清除yum缓存
hostnamectl set-hostname westos-mail.westos.com ##设置主机名

*****配置dns解析*******
yum install bind -y
systemctl start named
vim /etc/named.conf
   11 //      listen-on port 53 { 127.0.0.1; };
   12 //      listen-on-v6 port 53 { ::1; };
   17 //      allow-query     { localhost; };
   32         dnssec-validation no;

vim  /etc/named.rfc1912.zones
   zone "westos.com" IN {
        type master;
        file "westos.com.zone";
        allow-update { none; };
   };

zone "qq.com" IN {
        type master;
        file "qq.com.zone";
        allow-update { none; };
   };

vim /var/named/westos.com.zone
$TTL 1D
@       IN SOA  dns.westos.com. root.westos.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                         NS      dns.westos.com.
dns                    A         172.25.254.140
westos.com.     MX 1    172.25.254.140.
###可以用命令:cp -p named.localhost dns.westos.com复制一个配置文件然后修改有关条目

vim /var/named/qq.com.zone

###可以用命令:cp -pdns.westos.com qq.com.zone 复制一个配置文件然后修改有关条目

###进入qq.com.zone后在一般模式下可用命令“:%s/westos/qq/g” 将全文的westos用qq代替

systemctl restart named
vim /etc/resolv.conf
    nameserver 172.25.254.140

#####server主机#####
vim /etc/sysconfig/network-scripts/ifcfg-eth0   ##网络配置
vim /etc/yum.repos.d/rhel_dvd.repo                 ##配置yum源
yum clean all                                                  
hostnamectl set-hostname qq-mail.qq.com
vim /etc/resolv.conf
    nameserver 172.25.254.140

##测试dns配置:dig -t mx qq.com

dig -t mx westos.com

1.postfix

postfix提供smtp协议用来投递邮件(默认25端口)

/var/log/maillog                                     ##邮件服务日志(可以用cat命令来查看)
mail root@westos.com                         ##向root用户发送邮件
Subject: hello                                        ##邮件标题
hello world                                            ##邮件内容
.                                                           ##用"."来结束录入内容回车发送
mailq                                                    ##查看邮件队列
Mail queue is empty                             ##邮件队列为空,说明已发送
**postqueue -f                                      ##重新处理邮件队列

**默认情况下邮件端口只在127.0.0.1上开启


2.邮件系统基础配置
vim /etc/postfix/main.cf
   116 inet_interfaces = all                                                        ##25端口开启的网络接口
   76 myhostname = westos-mail.westos.com                           ##指定mta(邮件服务器)主机名称
   83 mydomain = westos.com                                                  ##指定mta的域名
   99 myorigin = westos.com                                                     ##指定邮件来源结尾(即@后面的字符内容)
   164 mydestination = $myhostname, $mydomain, localhost    ##接收邮件结尾字符的指定

systemctl stop firewalld                  ##关闭火墙
systemctl restart postfix.service    ##重启服务

测试:mail

继续回车,依次显示邮件内容


3.邮件别名
 vim /etc/aliases
    别名:    真名                       ##邮件别名
    别名:    :include:filename    ##邮件群发

vim filename
    user1
    user2

postalias /etc/aliases               ##刷新别名列表

mail 别名

测试:

desktop端:mail 别名@qq.com

server端:mail                        ##查看邮件

或mail -u 真名


4.通过远程主机测试邮件服务

在qq.com端用mail命令测试接收结果。

5.邮件访问控制
(1)发送端:
[root@westos-mail ~]# postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"

###在邮件配置文件中加入配置:开启用户访问检测,并对访问文件进行hash加密

[root@westos-mail ~]# tail -n 1 /etc/postfix/main.cf     ##查看主配置文件的最后一行会发现参数已经添加
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
[root@westos-mail ~]# vim /etc/postfix/access           ##编辑加密文件
       172.25.254.75 REJECT                                      ##最后一行添加要拒绝的主机
[root@westos-mail ~]# postmap /etc/postfix/access   ##加密文件
[root@westos-mail ~]# ls /etc/postfix/                         ##.db文件为真实的加密文件
access     canonical  header_checks  master.cf  relocated  virtual
access.db  generic    main.cf        moreuser   transport
[root@westos-mail ~]# systemctl restart postfix.service     ##重启服务

(2)测试:
[root@foundation150 ~]# telnet 172.25.254.140 25
Trying 172.25.254.140...
Connected to 172.25.254.140.
Escape character is '^]'.
220 westos-mail.westos.com ESMTP Postfix
mail from:root@westos.com
250 2.1.0 Ok
rcpt to:root@qq.com
554 5.7.1 <unknown[172.25.254.40]>: Client host rejected: Access denied                    ##发送邮件时被拒绝
quit
221 2.0.0 Bye
Connection closed by foreign host


6.限制用户发送
(1)首先清除上次实验的控制
[root@westos-mail ~]# vim /etc/postfix/main.cf           ##注释掉邮件访问控制语句
#smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
 
(2)
[root@westos-mail ~]# postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"        ##限制用户发送邮件,使用哈希在/etc/postfix/sender加密
[root@westos-mail ~]# tail -n 1 /etc/postfix/main.cf     ##查看主配置文件发现参数已经添加
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender
[root@westos-mail ~]# vim /etc/postfix/sender           ##编辑加密文件,写入要加密的用户
student@westos.com REJECT                                  ##末尾不能加空格等其他任何字符
[root@westos-mail ~]# postmap /etc/postfix/sender   ##对加密文件进行加密
[root@westos-mail ~]# ls /etc/postfix/                        ##sender.db即生成的加密文件
access     canonical  header_checks  master.cf  relocated  sender.db  virtual
generic    main.cf        moreuser   sender     transport
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务

(3)测试:
[root@foundation41 Desktop]# telnet 172.25.254.140 25
Trying 172.25.254.140...
Connected to 172.25.254.140.
Escape character is '^]'.
220 westos-mail.westos.com ESMTP Postfix
mail from:student@westos.com
250 2.1.0 Ok
rcpt to:root@qq.com
554 5.7.1 <student@westos.com>: Sender address rejected: Access denied    ##发送被限制



7.限制用户接收
(1)
[root@westos-mail ~]# postconf -e "smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip"    ##限制用户接受文件,使用哈希加密在/etc/postfix/recip加密
[root@westos-mail ~]# vim /etc/postfix/recip             ##编辑加密文件,写入加密用户
   westos@westos.com REJECT                              ##末尾不能加空格等其他任何字符
[root@westos-mail ~]# postmap /etc/postfix/recip     ##对加密文件进行加密,生成.db文件
[root@westos-mail ~]# ls /etc/postfix/
access     generic        main.cf    moreuser  recip.db   sender     transport
canonical  header_checks  master.cf  recip     relocated  sender.db  virtual
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务

(2)测试:
[root@foundation41 Desktop]# telnet 172.25.254.140 25
Trying 172.25.254.140...
Connected to 172.25.254.140.
Escape character is '^]'.
220 westos-mail.westos.com ESMTP Postfix
mail from:westos@westos.com                               ##发送者
250 2.1.0 Ok
rcpt to:root@qq.com                                               ##接收者
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
123
1213
.
250 2.0.0 Ok: queued as   29960EAC27                ##由此看出westos@westos.com可以发送邮件
mail from:root@qq.com
250 2.1.0 Ok
rcpt to:westos@westos.com
554 5.7.1 <westos@westos.com>: Recipient address rejected: Access denied ##由此看出不能接受邮件
quit
221 2.0.0 Bye
Connection closed by foreign host.

8.出站地址伪装
(1)
[root@westos-mail ~]# postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"        ##出站地址伪装
[root@westos-mail ~]# vim /etc/postfix/generic                    ##编写加密文件,写入伪装用户
westos@westos.com    hello@haha.com                             ##末尾不能加空格等其他任何字符

[root@westos-mail ~]# postmap /etc/postfix/generic            ##进行加密
[root@westos-mail ~]# systemctl restart postfix.service      ##重启服务

(2)测试:
[root@westos-mail ~]# su - westos
[westos@westos-mail ~]$ mail root@qq.com
Subject: hello1
hello qq
.
[root@qq-mail ~]# mail                                    ##查看邮件,最后一封邮件发送方显示伪装后的名字:hello@haha.com

9.入站地址转换
(1)实验环境:
[root@westos-mail ~]# vim /etc/postfix/main.cf     ##编辑主配置文件,注释westos用户不能收件的功能
   #smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip

(2)DNS解析
[root@westos-mail ~]# vim /etc/named.rfc1912.zones
zone "gmail.com" IN {
        type master;
        file "gmail.com.zone";
        allow-update { none; };
};

[root@westos-mail ~]# cp -p /var/named/westos.com.zone /var/named/gmail.com.zone
[root@westos-mail ~]# vim /var/named/gmail.com.zone
把westos换成gmail                                               ##可用命令“:%s/westos/gmail/g”
[root@westos-mail ~]# systemctl restart named

[root@westos-mail ~]# dig -t mx gmail.com


(3)转换地址
[root@westos-mail ~]# postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"        ##入站地址转换
[root@westos-mail ~]# vim /etc/postfix/virtual                 ##编辑虚拟地址转换文件
虚拟名称    真实名称
hello@gmail.com    westos@westos.com                       ##末尾不能加空格等其他任何字符

[root@westos-mail ~]# postmap /etc/postfix/virtual         ##进行加密   
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务

(4)测试
[root@qq-mail ~]# mail hello@gmail.com                        ##向hello@gmail.com回复邮件
Subject: hi   
hi gmail
.
EOT
[root@westos-mail ~]# mail -u westos
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/mail/westos": 1 message 1 new
>N  1 root                  Wed May 24 08:57  21/717   "hi"
&
Message  1:
From root@qq.com  Wed May 24 08:57:07 2017
Return-Path: <root@qq.com>
X-Original-To: hello@gmail.com                                  ##虚拟名称

Delivered-To: westos@westos.com                           ##转换成了真实名称

Date: Wed, 24 May 2017 08:57:06 -0400
To: hello@gmail.com
Subject: hi
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@qq.com (root)
Status: R

hi gmail

#####出站地址伪装和入站地址转换构成了企业邮箱功能#####

10.dovecot
1.dovecot 用来提供收件协议,给定用户名称,用户密码,dovecot程序代我们去看这个用户的邮件文件

/etc/services  端口文件
pop3    110
imap    143
imaps    993
pop3s    995

2.下载
yum install dovecot -y                               ##下载dovecot

3.配置
vim /etc/dovecot/dovecot.conf                 ##编辑主配置文件
24 protocols = imap pop3 lmtp                 ##使用imap pop3 lmtp协议
48 login_trusted_networks = 0.0.0.0/0     ##全网访问
49 disable_plaintext_auth = no                ##使用明文密码登陆

vim /etc/dovecot/conf.d/10-mail.conf       ##编辑子配置文件
30 mail_location = mbox:~/mail:INBOX=/var/mail/%u    ##用户邮件所在地
#mbox - mail's box
#~/mail - 用户家目录/mail
#INBOX=/var/mail/%u - INBOX中存放的是/var/mail/%u中的文件
#%u - username

systemctl restart dovecot                       ##重启服务

[root@westos-mail ~]# su - westos        ##切换westos用户
[westos@westos-mail ~]$ pwd
/home/westos
[westos@westos-mail ~]$ mkdir mail/.imap/ -p                    ##建立邮件目录
[westos@westos-mail ~]$ touch mail/.imap/INBOX             ##建立邮件存储文件

[root@westos-mail ~]# mkdir /etc/skel/mail/.imap -p            ##建立用户(新建立的所有)邮件目录
[root@westos-mail ~]# touch /etc/skel/mail/.imap/INBOX    ##建立用户(新建立的所有)邮件存储文件

4.测试
mutt -f pop://westos@172.25.254.140    ##查看邮件

11.postfix+mysql

1.数据库基础设置
yum install httpd  php php-mysql.x86_64 mariadb-server.x86_64 -y
mv /etc/postfix/main.cf /mnt                                        ##备份配置文件
yum reinstall postfix.x86_64                                       ##重新下载
vim /etc/postfix/main.cf         
systemctl restart postfix.service     
systemctl start mariadb
mysql_secure_installation                                          ##数据库安全证书初始化
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
rm *.bz2 -f
mv phpMyAdmin-3.4.0-all-languages/ admin/
cp /var/www/html/admin/config.sample.inc.php /var/www/html/admin/config.sample.php
vim /var/www/html/admin/config.sample.php
vim /etc/my.cnf
systemctl restart mariadb
systemctl restart httpd
-----web建立表格
mysql -uroot -pwestos
create user postuser@localhost identified by 'postuser';           ##建立数据库用户
grant select,update,insert on email.* to postuser@localhost;     ##授权

2.设置postfix
(1)用户名查询
vim /etc/postfix/mailuser.cf    ##用户名查询
hosts = localhost                   ##数据库所在主机
user = postuser                     ##登陆数据库的用
password = postuser             ##登陆数据库的用户的密码
dbname = email                     ##postfix要查询的库名称
table = emailuser                   ##postfix要查询的表的名称
select_field = username        ##postfix要查询的字段
where_field = username        ##用户给定的postfix的查询条件

(2)用户域名查询
vim /etc/postfix/maildomain.cf     ##用户域名查询
hosts = localhost
user = postuser
password = postuser
dbname = email
table = emailuser
select_field = domain
where_field = domain

(3)用户邮箱位置查询        
vim /etc/postfix/mailbox.cf         ##用户邮箱位置查询
hosts = localhost
user = postuser
password = postuser
dbname = email
table = emailuser
select_field = maildir
where_field = username

(4)测试
[root@westos-mail postfix]# postmap -q "lee@lee.com" mysql:/etc/postfix/mailuser.cf
lee@lee.com
[root@westos-mail postfix]# postmap -q "lee.com" mysql:/etc/postfix/maildomain.cf
lee.com
[root@westos-mail postfix]# postmap -q "lee@lee.com" mysql:/etc/postfix/mailbox.cf
/mnt/lee.com/lee/

3.配置postfix
(1)
groupadd -g 666 vmail
useradd -s /sbin/nologin -u 666 vmail -g 666

(2)
postconf -e "virtual_mailbox_base = /home/vmail"
postconf -e "virtual_uid_maps = static:666"
postconf -e "virtual_alias_maps = mysql:/etc/postfix/mailuser.cf"
postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/maildomain.cf"
postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mailbox.cf"
systemctl restart postfix.service

(3)
mail lee@lee.com
ls /home/vmail

postfix邮件管理相关推荐

  1. Postfix邮件服务搭建

    最近发现邮件发送服务还是挺重要的.可能对于每天只有一百来封的邮件发送需求的个人博主来说,一个免费的邮箱提供的免费SMTP邮件发送服务就可以满足了,但是对于一些大型的网站.论坛和平台,每天的邮件发送量可 ...

  2. postfix邮件安装配置文档

    POSTFIX邮局系统搭建全过程 第一篇:邮件系统搭建 一.系统环境: 1. 采用Centos 5.5系统也或者是rhel 5.5: 2. 内存最好为512M以上: 3. 本次采用的系统主机名为mai ...

  3. Postfix邮件服务器搭建之roundcube webmail安装与配置

    前几篇文章,我们介绍了有关postfix的相关安装与配置,这篇文章我们再来介绍下,在web下管理postfix的软件roundcube webmail. 注意:本篇文章所需的基础环境都是根据<烂 ...

  4. RedHat el5.0 搭建 Postfix 邮件服务器系统一

    RedHat el5.0 搭建 Postfix 邮件服务器系统                        (postfix+cyrus-sasl2+courier-authlib+courier- ...

  5. 烂泥:Postfix邮件服务器搭建之软件安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postf ...

  6. Linux搭建Postfix邮件服务器

    第一章:实验环境和目标 1.实验环境 Vm虚拟机安装CentOs7系统 CentOs7的IP地址:192.168.81.133 Win7客户端(测试用),有Xshell或者SecureCRT工具 2. ...

  7. Postfix邮件服务器搭建之虚拟用户配置

    参考烂泥的文章 在前一篇文章<烂泥:Postfix邮件服务器搭建之软件安装与配置>中,我们介绍了psotfix邮件服务器搭建所需要的软件,以及各个软件的基本配置. 目前已经达到了通过系统用 ...

  8. postfix邮件服务器部署安装(centos6.5)

    前言:说句实在话,一开始领导以为不就是一个邮件服务器么,搞搞弄弄就搞了.我之前搞过知道里面的弯弯绕.所以并不敢掉以轻心,这里面需要各个软件之间的相互协调,以及配置文件的修改,安全性参数的配置,还是一个 ...

  9. Linux网络服务与shell脚本——Postfix邮件服务器搭建

    Postfix邮件系统 1.电子邮件系统基础 (1)邮件系统角色.邮件协议 ①邮件系统的角色 1)MTA(Mail Transfer Agent,邮件传输代理):邮件服务器软件 2)MUA(Mail ...

最新文章

  1. Mybatis使用时因jdbcType类型大小写书写不规范导致的异常
  2. python网页爬虫-Python 爬虫网页内容提取工具xpath
  3. vue axios 跨域_SpringBoot+Vue从零开始搭建系统(三)前后端整合二
  4. HTML5-寻路跟踪
  5. Linux多任务编程之七:Linux守护进程及其基础实验(转)
  6. u8系统计算机上启动不了,用友erp u8装好后为何启动不了
  7. 【2016年第1期】关于我国农业大数据中心建设的设想
  8. 赵海平专访【2015-03-26】
  9. ecahrts给地图添加贴图纹理
  10. mysql数据库的超级管理员名称_MySQL数据库的超级管理员用户的名称是__________。...
  11. 2021 年,中台的“瓜”你还吃吗?
  12. 图片传输(APP端将图片传至服务器端存储)
  13. 深入浅出系列1:词向量
  14. Python 利用 turtle画出樱花树
  15. STM32F407-外部中断
  16. Spring解析加密配置文件
  17. Stairway to SQL Server Security Level 3: Principals and Securables - SQLServerCentral
  18. 神经网络学习(三):解偏微分方程
  19. vertical-align属性的运用及注意事项
  20. 看雪版主、十年黑客“玩命”:我不作死,我只玩命 | 宅客故事

热门文章

  1. 装修房子流程步骤详解图
  2. php psy,psysh --php交互式控制台
  3. vue+summernote富文本编辑器
  4. 如何在网页中生成PDF
  5. python一键电影搜索与下载_[懒人福利]用Python进行[天堂电影]下载资源的搜索
  6. 软考中级 真题 2014年上半年 系统集成项目管理工程师 基础知识 上午试卷
  7. 求助!编写 sql 语句,输出符合条件的查询结果。
  8. csc和acsc--余割和反余割函数
  9. 图文并茂认识计算机网络
  10. 由一个骂评引发的作者产品体验报告-----我要集气