热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

sendmail邮件服务器配置详解

电子邮件服务电子邮件服务基于客户/服务器模式,对于一个完整的电子邮件系统而言,它由三部分构件组成1.用户代理(UserAgent)用户与电子邮件系统的接口,负责发送邮件到邮件服务器,和从邮件服务器上接受邮件MUA(MailUserAgent)邮件用户代理,用于收
电子邮件服务
电子邮件服务基于客户/服务器模式,对于一个完整的电子邮件系统而言,它由三部分构件组成

1.用户代理 (User Agent) 用户与电子邮件系统的接口,负责发送邮件到邮件服务器,和从邮件服务器上接受邮件
MUA(Mail User Agent)邮件用户代理 ,用于收发mail的程序,前主流的是Outlook,Foxmail Evolution Thunderbird

2.邮件服务器 邮件服务器是电子邮件系统的核心构件
MTA(Mail Transfer Agent)邮件传送代理,将MUA的信件转发给指定的用户,最主流的MTA 有Sendmail,Postmail Qmail,等
MDA(Mail Delivery Agent)邮件投递代理,用来投递邮件 主流MDA有 Pocmail, Maildrop等
MRA(Mail Retrieval Agent)邮件访问代理 常用的MRA 有imap cryus-imap ,dovecot等
SASL 简单认证安全层,提供一种做认证的功能


3.电子邮件使用的协议
SMTP 简单邮件传输协议
是一组用于由源地址到目的地址传送邮件的规则,由它来控制邮件的中转方式,属于TCP/IP协议,帮助每台计算机在发送或中转邮件时找到下一个目的地

POP3 邮件接收协议
它规定怎样将个人计算机连接到Internet 的邮件服务器和下载电子邮件的协议,是Internet电子邮件的第一个离线协议标准,pop3允许从服务器上把电子邮件存储到本地主机,同时删除保存在邮件服务器上的邮件。
了解邮件服务的工作原理后,我们来介绍邮件服务器的配置

sendmail 服务器
sendmail 的安装包有三个 sendmail , sendmail -cf (转换各个配置文件到所需要的格式),sendmail Cdoc
默认监听端口为 25 ,主程序:/usr/sbin/sendmail , 进程名为 sendmail, 服务脚本:/etc/init.d/sendmail ,配置目录:/etc/mail 主配置文件是: /etc/mail/sendmail.mc 定义别名:/etc/aliases 定义访问控制:/etc/mail/access 定义自己管理的域:/etc/mail/local-host-names/
smtp:25 ,smtps:465,pop3:110 ,pops:995,imap:143,imaps:993


查看主配置目录会发现,在目录下有许多与配置文件相同的后缀名为.db的文件,这是因为sendmail读取的是二进制文件,我们只需要安装sendmail Ccf 包,在配置好服务后,重启sendmail服务,它就会将配置好的服务自动生成到.db文件中。与sendmail.mc 相对应的二进制文件是sendmail.cf
(做sendmail实验需要dns正反向解析的支持,请先配好dns,mx记录,mail A记录,主机名与域名)

下面先开启一个sendmail 服务器
安装sendmail的三个包后,就可以编辑配置文件了
1。vim +116 /etc/mail/sendmail 指定协议,监听端口


2. vim /etc/mail/access 允许给0网段做转发


3. vim /etc/mail/local-host-name 添入自己负责域


现在一个基本的sendmail服务已经配置好 开启服务,建立两个用户发送邮件,测试一下吧
发送邮件


接收邮件



一。现在深入定义别名,在/etc/aliases 下格式
body1: body2
body1 这个用户名可能就是不存在的,但是凡是发给body1的都会转到body2的邮箱里
为redhat定义别名wendy,将发送给redhat的邮件都转发给windy,将发送给anyone这个用户(虚拟组)的邮件转发给wendy,redhat,root,
1 vim /etc/aliases


分别给redhat anyone 发送邮件,测试会发现redhat没有收到邮件,wendy都到两份,那是发给redhat的都被转发给wendy
虚拟用户别名 /etc/mail/virtusertable 顾名思义前面的域或用户都是虚拟的,与 aliase相似,对域的定义能力更强
@123.com root #发送给这个域的都发送给root
admin@xxyz.com jdj #将发送admin的信件都发送给jdj
pagem@he.net lmiwtc@pg.com
@cba.com cba@acl.com #将发送到cba.com域的所有邮件都转发到cba@acl.com
@doml.org %1@dom2.org #发送到第一个域每个用户的文件都转发都后面域的同一个用户

二。sendmail的访问控制
1.开启sendmail.mc 的一项 (sendmail默认为开启)
FEATURE(`blacklist_recipients')dnl
2.在/etc/mail/access 编辑控制策略
Connect:204.168.23 REJECT 明确拒绝
Connect:abc.net DISCARD 悄悄丢弃
Connet:10.3 OK 即使有协议拒绝,它也OK
To:nobody@ ERROR:550 error informations 错误给予错误信息
From:domain.com RELAY 给予转发
To:user@dom9.com SKIP 跳过
看看例子


不允许wendy@st.com 发邮件明确拒绝





三. 做地址伪装, 修改发送前的地址域名
1 编辑 /etc/mail/sendmail.mc 开启下列各项
MASQUERADE_AS(`mydomain.com')dnl 是否对信息作伪装
修改 MASQUERADE_AS(`text.com')dnl 伪装成text.com域名
FEATURE(masquerade_envelope)dnl 是否对整个域(包括子域)做伪装
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl 对localhost域做伪装
MASQUERADE_DOMAIN(localhost.localdomain)dnl
将locahost.com域伪装成text.com

四 。为sendmail做认证
用户发信必须提供账号和密码,不能冒名发信
1 主配置文档 /etc/mail/sendmail.mc
开启下列两项


2强行要求用户必须通过认证发信


3 开启sasl服务


可以先测试一下看sendmail是否支持认证
执行命令确保出现标记文字




现在尝试发送邮件已经不在被yunxu
现在为natasha用户的用户名和密码做base64码




#拷贝Cg==前的字母



推荐阅读
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 解决MongoDB Compass远程连接问题
    本文记录了在使用阿里云服务器部署MongoDB后,通过MongoDB Compass进行远程连接时遇到的问题及解决方案。详细介绍了从防火墙配置到安全组设置的各个步骤,帮助读者顺利解决问题。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
author-avatar
苦蔷薇1988
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有