您的位置:首页 > 大数据 > 人工智能

rhel5下为sendmail添加SSL/TLS加密功能

2010-04-23 14:51 357 查看
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: "Times New Roman" }
a:link,span.MsoHyperlink { color: blue; text-decoration: underline }
a:visited,span.MsoHyperlinkFollowed { color: purple; text-decoration: underline }
p.p15,li.p15,div.p15 { margin-right: 0cm; margin-left: 0cm; font-size: 12.0pt; font-family: 宋体 }
p.p0,li.p0,div.p0 { margin-right: 0cm; margin-left: 0cm; font-size: 12.0pt; font-family: 宋体 }
div.Section1 { }

rhel5下为sendmail添加SSL/TLS加密功能

按照这篇文档配置sendmail http://hi.baidu.com/kolex/blog/item/25004935d36f26325ab5f54e.html

一、配置
dovecot

用简单的/etc/shadow 文件的认证

[root@nana
/]# dovecot -n

# /etc/dovecot.conf

protocols: pop3s

login_dir:
/var/run/dovecot/login

login_executable:
/usr/libexec/dovecot/pop3-login

login_greeting: FreeLAMP.com
Day Day Up

mail_location:
mbox:~/mail:INBOX=/var/mail/%u

mail_executable:
/usr/libexec/dovecot/pop3

mail_plugin_dir:
/usr/lib/dovecot/pop3

auth default:

mechanisms: plain login

cache_size: 1024

passdb:

driver: shadow

userdb:

driver: passwd

这里只用了
pop3s 协议,也就是 995 端口。

配置 dovecot 证书

[root@nana /]# vi
/etc/pki/dovecot/dovecot-openssl.cnf

[root@nana
/]# mv /etc/pki/dovecot/private/dovecot.pem /etc/pki/dovecot/private/dovecot.pem.orig

[root@nana
/]# mv /etc/pki/dovecot/certs/dovecot.pem
/etc/pki/dovecot/certs/dovecot.pem.orig

生成新的自己 domain 的证书

[root@nana /]#
/usr/share/doc/dovecot-1.0/examples/mkcert.sh

[root@nana
/]# mv /etc/pki/dovecot/private/dovecot.pem
/etc/pki/dovecot/private/mydomain.pem

[root@nana
/]# mv /etc/pki/dovecot/certs/dovecot.pem /etc/pki/dovecot/certs/mydomain.pem

主要修改的地方是:

[root@nana
/]#vi /etc/dovecot.conf

ssl_disable=no

ssl_cert_file=/etc/pki/dovecot/certs/mydomain.pem

ssl_key_file=/etc/pki/dovecot/private/mydomain.pem

ssl_parameters_regenerate=168

verbose_ssl=no

这样,POP3S 收取邮件时,就可以在
/etc/log/maillog 里看到这样的日志:

Oct 8 22:22:40 freelamp dovecot: pop3-login: Login: user=, method=PLAIN,
rip=::ffff:61.171.62.106, lip=::ffff:61.152.249.2, TLS

至此,POP3 的加密完成。下面介绍 SMTP 的加密。

二、配置sendmail

1. 生成 CA 证书

[root@nana /]# cd /etc/pki/tls/misc

[root@nana /]#./CA -newca

根据提示输 入,Common Name 输入自己的邮件服务器主机名字,mail.yourdomain.com

会生成两个文件:

/etc/pki/CA/cacert.pem (CA证书,你可以和其他通信的机构交换这个证书)

/etc/pki /CA/private/cakey.pem(密码保护的私密证书,用来签名和撤销证书)

2.生成私密和证书签名请求(CSR)

[root@nana /]#./CA -newreq

在 /etc/pki/tls/misc 目录下生成两个文件:

/etc/pki/tls/misc/newreq.pem

/etc/pki/tls/misc/newkey.pem

3.签名:

[root@nana /]#./CA -sign

这一步生成 /etc/pki/CA/newcerts/.pem 和 /etc/pki/tls/misc/newcert.pem 2个一样的文件。

4.拷贝证书到 sendmail 的证书目录下,并修改文件权限

[root@nana /]# mkdir /etc/mail/certs

[root@nana /]# cp /etc/pki/CA/cacert.pem
/etc/mail/certs

[root@nana /]# cp /etc/pki/tls/misc/newcert.pem
/etc/mail/certs/mycert.pem

[root@nana /]# openssl pkcs8 -in newkey.pem
-topk8 -nocrypt -out mykey.pem (解决
SSL_CTX_use_PrivateKey_file Error 问题)

[root@nana /]# cp /etc/pki/tls/misc/mykey.pem
/etc/mail/certs

[root@nana
/]# chmod -R 700 /etc/mail/certs

[root@nana /]# chown -R root:sys /etc/mail/certs

5.配置 sendmail,并重启

修改 /etc/mail/sendmail.mc

define(`confCACERT_PATH’,
`/etc/mail/certs’)

define(`confCACERT’,
`/etc/mail/certs/cacert.pem’)

define(`confSERVER_CERT’,
`/etc/mail/certs/mycert.pem’)

define(`confSERVER_KEY’, `/etc/mail/certs/mykey.pem’)

测试 Sendmail 是否编译支持 STARTTLS:

[root@nana
/]# sendmail -bt -d0.8 < /dev/null

Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP
LOG MAP_REGEX

MATCHGECOS MILTER MIME7TO8
MIME8TO7 NAMED_BIND NETINET NETINET6

NETUNIX NEWDB NIS PIPELINING
SASLv2 SCANF STARTTLS TCPWRAPPERS

USERDB USE_LDAP_INIT

[root@nana
/]# m4 /etc/mail/sendmail.mc
>/etc/mail/sendmail.cf

[root@nana
/]# service sendmail restart

6.从客户端检查:

[root@nana
/]# telnet mail.freelamp.com 25

EHLO your_hostname

应该看到:

250-STARTTLS

至此, SMTP 的加密功能完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: