sendmail接收邮件的加密认证
原创
©著作权归作者所有:来自51CTO博客作者19ji89ng的原创作品,请联系作者获取转载授权,否则将追究法律责任
sendmail的数据加密:smtps :提供ssl
tls的服务:starttls通过25端口实现ssl加密
做smtps加密只是实现一段数据的加密,中继时候不支持 点到点的(主机到主机)
基于ip的
端口:465
查看sendmail是否支持starttls
1、telnet mail.a.com 25
ehlo mail.a.com 在开启的情况下会显示starttls表示已经启用
2、sendmail -d0.1 -bv 查看是否出现STARTTLS ,有表示在sendmail二进制编译过程
中支持tls功能,并不表示已经启用
配置:
1、证书 ,做CA认证/etc/pki/CA/cacert.pem
2、mkdir /etc/mail/certs
cd /etc/mail/certs
openssl genrsa 1024 >sendmail_key.pem
openssl req -new -key sendmail_key.pem -out sendmail_cert.csr
openssl ca -in sendmail_cert.csr -out sendmail_cert.pem -days 3650
rm -rf sendmail_cert.csr
cp /etc/pki/CA/cacert.pem
chmod 600 ./*
3、sendmail启用认证
vim /etc/mail/sendmail.mc
启用 define(`confCACERT_PATH', `/etc/mail/certs')dnl
define(`confCACERT', `/etc/mail/certs/cacert.pem')dnl
define(`confSERVER_CERT', `/etc/mail/certs/sendmail_cert.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/sendmail_key.pem')dnl
启用 define(`confLOG_LEVEL', `14')dnl启用日志功能
启用 DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl开启会监听465端口
vim /etc/mail/access 添加为192.168.0网段做转发
service sendmail restart
测试:telnet mail.a.com 25
ehlo mail.a.com 会有starttls
可以用outlook测试--创建用户-->属性勾选服务器需要安全的连接ssl--fa邮件
smtps本身并没有认证的功能,需要借助sasl进行认证:
组件:cyrus-sasl
进程为saslauthd
sendmail -d0.1 -bv 会显示SASLv2 表示支持
sasl配置:
service saslauthd restart
chkconfig saslauthd on
vim /etc/mail/sendmail.mc
添加 define(`confAUTH_OPTIONS', `A y')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA', M=Ea')dnl
vim /usr/lib/sasl2/Sendmail.conf 添加
mech_list: login plain 支持的认证机制
测试:telent mail.a.com 25 会显示login 、plain
ehlo mail.a.com
auhtlogin 账号要编码base64---> echo -n 'root@a.com' | openssl base64
密码-----> echo -n 'redhat' | openssl base64
mail from:root@a.com
rcpt to:student@a.com
hello
.
quit
一般发邮件不要为root用户
使用outlook测试:工具--账户--属性--服务器勾选我的服务器需要身份认证
发邮件 ,可以不用/etc/mail/access里的配置 这时的过程是基于sasl的
接受邮件加密:
dovecot配置---ssl
pop3---pop3s 端口995<---- grep pop /etc/services
imap---imaps 端口993<----grep imap /etc/services
配置:192.168.0.85
1、给dovecot发证书
mkdir -pv /etc/dovecot/ssl
cd /etc/dovecot/ssl
openssl genrsa 1024 >dovecot.key
openssl req -new -key dovecot.key -out dovecot.csr
openssl ca -in dovecot.csr -out dovecot.crt -days 3650
2、配置dovecot.conf
vim /etc/dovecot.conf
ssl_cert_file = /etc/dovecot/ssl/dovecot.crt
ssl_key_file = /etc/dovecot/ssl/dovecot.key
protocols = imaps
service dovevot restart
netstat -ntlp | grep 993
2、测试:
outlook发邮件--账户--
收邮件 mutt -f imap://sara@192.168.0.85 或imap://sara@mail.a.com
验证加密过程是加密的:抓包wireshark
yum install wireshark -y
打开110端口 vim /etc/dovecot.conf 在protocol添加pop3协议
service dovecot restart
netstat -ntlp | grep 110
抓包 tshark -ni eth0 "tcp.srcport eq 110 or tcp.dsport eq 110"
1、发邮件测试 telnet 192.168.0.85 110 (windows下命令模式)
USER sara
PASS redhat
LIST
RETR 1
可以看到邮件的详细信息 110为明文,加密后就为更为的安全
tshark -ni eth0 "tcp.srcport eq 993 or tcp.dsport eq 993"
使用加密的账户发邮件 过程是加密的
2、模拟加密连接:192.168.0.121
openssl s_client -connect 192.168.0.85:993
USER sara
在192.168.0.85 上查看是加密的看不到信息
下一篇:sendmail及基本配置
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux 下sendmail 的加密与认证
Linux 下sendmail 的加密与认证 上节我们只是搭建了一个初步的sendmail服务器,它没有提供加密和认证的功能,也就是说谁都可以访问你的sendmail服务器,也可以
sendmail认证 sendmail加密 smtp pop3加密与认证 -
电子邮件服务器以及sendmail加密、证书、认证(1)
电子邮件服务器以及sendmail加密、证书、认证
sendmail 电子邮件服务器