热门标签 | 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==前的字母



推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
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社区 版权所有