全部博文(368)
分类: 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 的加密功能完成