3个稳定版本
2.0.0 | 2024年5月31日 |
---|---|
1.0.1 | 2022年12月24日 |
1.0.0 | 2020年8月8日 |
#23 in 电子邮件
3MB
70K SLoC
Crymap IMAP和SMTP服务器
简介
Crymap是针对FreeBSD和Linux的IMAP和SMTP服务器实现,重点关注安全性和管理的简单性。其亮点功能是静态数据的透明加密——没有密码无法读取任何用户的邮件,同时提供常规的IMAP体验,用户离线时也可以接收邮件。
如果使用Crymap SMTP服务器,任何用户的邮件都不会以明文形式存储在磁盘上(至少在你的服务器上是这样),但请注意,Crymap SMTP有一些严重的限制。
Crymap支持传统的UNIX风格部署,其中每个用户对应一个UNIX账户,并拥有自己的邮件,以及“黑盒”部署,其中用户没有shell访问权限,所有邮件都由单个系统UNIX账户拥有。
功能
- 完全符合IMAP4rev1和IMAP4rev2规范。
- 默认安全。仅IMAPS。
- 最小化配置。
- 消息和元数据在静态存储时透明加密。
- 自动密钥轮换。
- 透明文件和在线压缩。
- 所有常规邮箱都是“双用途”(允许消息和子邮箱)。
- 即时邮件投递通知。
- 支持QRESYNC。
- 支持“特殊用途”邮箱。
- 相当数量的附加IMAP扩展。
- 支持8位和二进制内容的消息。
- 作为MDA进行邮件投递。
- 通过SMTP或LMTP进行邮件投递。
- 通过SMTP安全发送邮件,内置DKIM支持。
- 与基于文件系统的备份系统良好兼容。
状态和支持
作者使用Crymap处理所有个人电子邮件。已知在该用例中表现良好。但这自然是一小部分经验;特别是,Crymap仅在Thunderbird和FairEmail的日常使用中看到。
Crymap目前由其作者独立维护。我有解决bug的动力,但除非它们对安全性或非常常见的用例有实质性好处,否则不太可能接受功能请求。我将尽力回答问题,但不能做出承诺。
注意事项
-
如果忘记密码,该用户拥有的所有数据将永远丢失。管理员无法重置用户的密码,因为这会违背Crymap的目的。
-
Crymap无法集成到主机认证系统中。也就是说,Crymap用户账户在密码、启用/禁用状态等方面完全独立于主机用户账户。这是因为Crymap需要完全控制密码更改过程,以便在不破坏用户数据的情况下进行密码更改。例如,创建一个委托给Crymap的PAM模块在技术上可行,但尚未实现,也没有计划实现。
-
当前电子邮件的最大大小是硬编码为64MB。
-
Crymap的出站SMTP体验非常不寻常且有些繁琐。如果在发送电子邮件时遇到临时失败,由于所有对消息的访问都通过用户认证进行加密锁定,因此无法自动重试。必须手动通过IMAP扩展进行重试,目前这只在Crymap CLI工具中实现。为了获得更传统的体验,您可以使用类似OpenSMTPD的工具来处理出站消息。
文档
请参阅Crymap mdbook以获取完整文档。
许可
Crymap采用GPL版本3或更高版本授权。
依赖关系
~64MB
~1M SLoC