Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7177981
  • 博文数量: 368
  • 博客积分: 9600
  • 博客等级: 上校
  • 技术积分: 18875
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-01 00:00
文章分类

全部博文(368)

文章存档

2017年(9)

2016年(19)

2015年(3)

2014年(6)

2013年(8)

2012年(78)

2011年(66)

2010年(135)

2009年(44)

分类: LINUX

2010-04-23 14:51:01

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 的加密功能完成

阅读(5465) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~