sendmail

软件包
sendmail.i386
sendmail-cf.i386
sendmail-devel.i386
sendmail-doc.i386
m4
dovecot (pop3服务端)
procmail

配置之前的准备:
1、同步时间
2、设定好主机名
# vim /etc/hosts
192.168.0.249   station249.example.com

配置目录:/etc/mail
sendmail.mc
sendmail.cf
local-host-names
access

例子1:最简单的邮件系统,只允许本机对本机发送邮件

[root@station249 mail]# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 station249.example.com ESMTP Sendmail 8.13.8/8.13.8; Sun, 12 Sep 2010 22:58:14 +0800
helo moto
250 station249.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
mail from: root@station249.example.com
250 2.1.0 root@station249.example.com... Sender ok
rcpt to:user1@station249.example.com
250 2.1.5 user1@station249.example.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
This is contents
End
.
250 2.0.0 o8CEwEIE014102 Message accepted for delivery
quit
221 2.0.0 station249.example.com closing connection
Connection closed by foreign host.

查看user1是否接受到邮件
# cat /var/mail/user1

例子2:允许其他机器连接过来发送邮件(接受邮件的用户都是在邮件服务器上的用户)
注意:当前的“其他机器”只能是在同一个域或者同一个网段的用户
# vim /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# service sendmail restart

iptables设定
# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
# iptables -A INPUT -p udp --dport 25 -j ACCEPT

例子3:允许本机和其他来自任何地方IP登录发送邮件,发送的邮件可以是其他域的邮件

解决方法:开启smtp验证

1、开启smtp验证的配置
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

2、安装验证支持的软件包

# yum install cyrus-sasl* -y

3、重启相关的服务

# service sendmail restart
# service saslauthd restart
# service dovecot restart

# chkconfig ... on

验证是否支持smtp验证功能

[root@php rhce_env]# telnet 192.168.0.249 25
Trying 192.168.0.249...
Connected to station249.example.com (192.168.0.249).
Escape character is '^]'.
220 station249.example.com ESMTP Sendmail 8.13.8/8.13.8; Sun, 12 Sep 2010 23:20:30 +0800
ehlo station249.example.com  #《-----
250-station249.example.com Hello station254.example.com [192.168.0.254], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN  #《----看到AUTH关键字
250-DELIVERBY
250 HELP

例子4:只允许本机和example.com域下的用户登录发送外部邮件
题目的本意就是要求针对某个IP的用户打开中继功能。
什么叫中继?就是允许发送邮件到其他域

# vim /etc/mail/access
Connect:127.0.0.1                       RELAY  <---本身没有
Connect:example.com                     RELAY  <---增加一行

# makemap hash /etc/mail/access.db  < /etc/mail/access

例子5:支持短域名
# vim /etc/mail/local-host-names
station249.example.com
example.com

例子6:设置pop3s,imaps

设计的软件包
dovecot
服务
service dovecot
一般情况下,dovecot服务只支持pop3(110),imap(143)协议

# mutt -f pop://user1@station249.example.com

为了保证邮件内容保密,设置pop3s(995),imaps(993)

# vim /etc/dovecot.conf
protocols = imap imaps pop3 pop3s

ssl_cert_file = /etc/pki/tls/certs/localhost.crt
ssl_key_file = /etc/pki/tls/private/localhost.key
ssl_key_password = 123456

生成密钥文件:
# cd /etc/pki/tls/certs/
# make localhost.key <---输入密码
# mkke localhost.crt
# cp localhost.key  ../private/

# service dovecot restart

iptables设定
iptables -A INPUT -p tcp -m multiport --dports 110,143,993,995 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 110,143,993,995 -j ACCEPT

验证
# mutt -f pops://user1@station249.example.com

限制只允许example.com域下的用户使用pop3/imap等接收邮件。
首先确定example.com是哪个网段
iptables -A INPUT -p tcp -s 192.168.0.0/24  -m multiport --dports 110,143,993,995 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.0.0/24 -m multiport --dports 110,143,993,995 -j ACCEPT

sendmail配置详解相关推荐

  1. Linux中Nginx安装与配置详解及常见问题

    3 Nginx安装 3.1 安装前的准备     1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库.     2) 准备 nginx-1. ...

  2. keepalived介绍、安装及配置详解

    文章目录 keepalived简介 keeplived和LVS关系 VRRP工作原理 keepalived体系结构及工作原理 keepalived安装 keepalived配置详解 keepalive ...

  3. elasticsearch-.yml(中文配置详解)

    此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...

  4. (ASA) Cisco Web ××× 配置详解 [三部曲之一]

    (ASA) Cisco Web ××× 配置详解 [三部曲之一] 注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍.   首先,先来 ...

  5. mybatis 同名方法_MyBatis(四):xml配置详解

    目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...

  6. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  7. PM配置详解之一:企业结构

    1.维护计划工厂 功能说明 在公司结构中定义维护工厂(通常已经作为后勤工厂存在)和维护计划工厂(简称计划工厂). 维护工厂:设备所安装的位置,如某机组安装在合营公司,那么合营公司就是此机组的维护工厂, ...

  8. 转 Log4j.properties配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  9. Iptables防火墙配置详解

    iptables防火墙配置详解 iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. (1)filter表负责过滤数 ...

最新文章

  1. oracle数据库性能优化 - 降低IO
  2. 小米做的这件事,捍卫了你的隐私
  3. 【laravel5.4 + TP5.0】hasOne和belongsTo的区别
  4. 使用Angular HTTP client对数据模型进行删除操作
  5. 码工里开关灯为什么遮罩层在下面_装修公司为什么推荐无主灯设计?
  6. 在分布式环境中解决session共享问题
  7. 鲲鹏支持java_#化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 JAVA 环境
  8. 项目优化到一半还是崩了,新同事换了一套调优方案,全体颤抖。。。
  9. python自动压图贴图到Excel小工具
  10. CKEditor和CKFinder配置(asp.net)
  11. Tensorflow的最佳实践
  12. PHP中的simplehtmldom学习
  13. 学校网络认证服务器无响应,校园网常见问题
  14. 软件测试技术进阶篇——花椒测试平台 - 接口篇
  15. xshell官方个人免费版申请下载使用
  16. java maven 读写pdf_Java向PDF模板写入数据
  17. 一元三次方程重根判别式_一元三次方程的判别式和求根公式是什么?
  18. wireshark执行XDG问题
  19. php转换大小写函数,149-PHP大小写转换函数
  20. 网络通信安全部分笔记二

热门文章

  1. 珍爱生命,远离微软,一点感受源自知乎上的某人评论
  2. html里p标签里面如何让首行缩进两格?
  3. 【计算机网络】Socket详解
  4. 北风网课程开放下载第一季
  5. 一篇文章,搞懂自动化行业现状
  6. PMP49个子过程ITTO总结
  7. 交友盲盒源码h5开发浅谈
  8. 线上相亲交友源码APP开发,是互联网婚恋市场的新途径
  9. 导致谷歌账号停用的原因
  10. c#dataview遍历_C# DataView.Find方法代码示例