TLS与GNU Mailutils 0.6 IMAP4d

我一直在与古代的GNU Mailutils 0.6战斗了很长一段时间。 我应该从这个版本设置IMAP4d服务来进行IT安全性练习。 我可能不会更新程序,但我可以根据自己的喜好进行configuration。

到目前为止,我设法让服务在我的虚拟机上运行,​​但是所有的stream量都以明文forms传输,包括用户名和密码。 当然,这对安全性没有好处。 看来Mailutils 0.6已经支持TLS,所以我想启用它的服务。 但我不知道该怎么做。

我发现这个版本的唯一的文档就是源代码(从这里 )。 有一章关于encryption,但它不是很有帮助:

这些选项控制imap4d和pop3d守护进程中的TLS / SSLencryption。

–ssl-cert {file}
此选项指定服务器端SSL证书的文件名(接受PEM格式)。

–ssl-key {file}
此选项指定服务器端专用SSL密钥的文件名(接受PEM格式)。 密钥必须以0600文件权限保护(u = rw,g =,o =),否则imap4d或pop3d守护进程将拒绝支持TLS / SSLencryption。

–ssl-cafile {文件}
此选项指定一个包含可信CA列表(PEM列表)的文件,以validation客户端的证书。 该选项不是必需的。

至less这告诉我,IMAP4d真的有TLS支持。 但不是如何使用它。 我找不到文档中的其他内容。

我到目前为止所做的:

– 下载源代码,编译并安装它

./configure --with-gnutls make make install 

– 创build一个configuration文件mailutils.rc (我不知道最后一行):

 :mailbox --mail-spool /var/spool/mail :logging --log-facility mail imap4d --ssl-cert /root/CA/imap.cert.pem --ssl-key /root/CA/imap.key.pem 

– configurationinetd来启动IMAP4d

 50123 stream nowait root /usr/local/sbin/imap4d imap4d 

它在指定的端口上运行,但显然不使用TLS。 我尝试连接openssl s_client

 openssl s_client -connect 192.168.178.29:50123 CONNECTED(00000003) 5769:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:601: 

我很确定,我错过了一些东西。 这里的任何人谁实际上有这样的过时的软件的一些经验,可以帮助我?

提前致谢!

对于最常见的用途,build立一个安全的链接要求服务器有一些东西给客户端来标识自己。 这需要一个用于encryptionmath的密钥和一个公开的证书。 证书包含有关密钥的信息,以便只有具有密钥的系统才能向客户certificate其有权使用该证书,并且还包含有关系统身份(如主机名)的信息。 然后这个信息由“另一个”证书签署,该证书是关系中的“发行人”,并且该发行者被称为“证书机构”(CA)。 他们的证书应该(直接或间接)被客户信任。 然后是一些广为接受的CA,被大多数浏览器和邮件客户所接受。 您可以跳过此步骤以使用自签名证书进行testing。

(这忽略了无证书操作和一大堆不太常见的模式;以上使用的是X.509 PKI(公钥基础设施),这是最常见的。)

因此,您至less需要生成(PEM格式)密钥和证书,并将其configuration为--ssl-key--ssl-cert 。 如果您打算要求“客户端证书”,那么您也可以将大量CA证书放在一个文件中,TLS会话的两端都必须提供证书。

各个网站会告诉你如何创build密钥和证书; 几年前我写道: http : //lopsa.org/SSLIntro