TLSMGR(8) TLSMGR(8)
名称
tlsmgr - Postfix TLS 会话缓存及伪随机数生成器(PRNG)管理器
概述
tlsmgr [通用 Postfix 守护进程选项]
描述
tlsmgr(8) 负责管理 Postfix 的 TLS 会话缓存。该服务会根据 smtpd(8) 和 smtp(8) 进程的请求存储和检索缓存条目,并定期清理已过期的缓存记录。
此外,tlsmgr(8) 还负责管理伪随机数生成器(PRNG)池。它会响应 smtpd(8) 和 smtp(8) 进程的请求,为这些进程内部的 PRNG 池提供随机数种子。
该服务的 PRNG 池初始化时会从外部源(如 EGD、/dev/urandom 或普通文件)获取熵值。系统会按照可配置的时间间隔从外部源更新熵值,同时也会定期使用 TLS 会话缓存条目中的数据和当前时间戳来更新熵值池。每当有进程请求 tlsmgr(8) 服务时,系统都会用当前时间戳更新熵值池。
tlsmgr(8) 会定期将 PRNG 状态保存到交换文件中,在服务终止时也会执行此操作。当服务初始化时,会从交换文件中读取 PRNG 状态。
安全性
tlsmgr(8) 不属于安全敏感服务。其维护外部和内部 PRNG 池的代码不会"信任"所操作的数据,而维护 TLS 会话缓存的代码除了为内部 PRNG 池提供种子外,不会接触缓存条目的实际内容。
该服务可以在 chroot 环境和降权状态下运行。在进程启动时,它会连接到熵源和交换文件,并创建或清空可选的 TLS 会话缓存文件。
从 Postfix 2.5 版本开始,tlsmgr(8) 在打开缓存文件时不再需要 root 权限。这些缓存文件现在应该存放在 Postfix 专属的 data_directory 目录下。为了兼容旧版本,当尝试打开非 Postfix 目录下的缓存文件时,系统会自动重定向到 Postfix 专属的 data_directory 目录,同时会记录警告信息。
诊断
问题和事务日志会被记录到 syslogd(8) 或 postlogd(8) 中。
已知问题
目前系统无法自动限制 TLS 会话缓存中的条目数量,也无法自动控制 TLS 缓存文件的大小。
配置参数
由于 tlsmgr(8) 是持久化进程,修改 main.cf 后需要执行 "postfix reload" 命令才能使配置生效。
以下仅列出参数摘要,详细说明和示例请参阅 postconf(5) 文档。
TLS 会话缓存
lmtp_tls_loglevel (0)
smtp_tls_loglevel 配置参数的 LMTP 专用版本
lmtp_tls_session_cache_database (空)
smtp_tls_session_cache_database 配置参数的 LMTP 专用版本
lmtp_tls_session_cache_timeout (3600s)
smtp_tls_session_cache_timeout 配置参数的 LMTP 专用版本
smtp_tls_loglevel (0)
启用 Postfix SMTP 客户端 TLS 活动的额外日志记录
smtp_tls_session_cache_database (空)
指定 Postfix SMTP 客户端 TLS 会话缓存的文件路径
smtp_tls_session_cache_timeout (3600s)
设置 Postfix SMTP 客户端 TLS 会话缓存信息的过期时间
smtpd_tls_loglevel (0)
启用 Postfix SMTP 服务器 TLS 活动的额外日志记录
smtpd_tls_session_cache_database (空)
指定 Postfix SMTP 服务器 TLS 会话缓存的文件路径
smtpd_tls_session_cache_timeout (3600s)
设置 Postfix SMTP 服务器 TLS 会话缓存信息的过期时间
伪随机数生成器
tls_random_source (参见 'postconf -d' 输出)
指定 tlsmgr(8) 内存中伪随机数生成器(PRNG)池的外部熵源
tls_random_bytes (32)
设置 tlsmgr(8) 从 $tls_random_source 读取的字节数,用于(重新)初始化内存中的 PRNG 池
tls_random_exchange_name (参见 'postconf -d' 输出)
指定由 tlsmgr(8) 维护的 PRNG 状态文件路径
tls_random_prng_update_period (3600s)
设置 tlsmgr(8) 将 PRNG 状态保存到 $tls_random_exchange_name 指定文件的间隔时间
tls_random_reseed_period (3600s)
设置 tlsmgr(8) 从外部源重新初始化内存中 PRNG 池的最大间隔时间
其他控制参数
config_directory (参见 'postconf -d' 输出)
指定 Postfix main.cf 和 master.cf 配置文件的默认存储目录
data_directory (参见 'postconf -d' 输出)
指定 Postfix 可写入数据文件(如缓存、伪随机数等)的存储目录
daemon_timeout (18000s)
设置 Postfix 守护进程处理请求的超时时间,超过此时限将被看门狗定时器终止
process_id (只读)
显示 Postfix 命令或守护进程的进程 ID
process_name (只读)
显示 Postfix 命令或守护进程的进程名称
syslog_facility (mail)
设置 Postfix 日志的 syslog 设施
syslog_name (参见 'postconf -d' 输出)
设置 syslog 记录中进程名称的前缀,例如将 "smtpd" 显示为 "prefix/smtpd"
Postfix 3.3 及以上版本新增:
service_name (只读)
显示 Postfix 守护进程在 master.cf 中定义的服务名称
参见
smtp(8), Postfix SMTP 客户端
smtpd(8), Postfix SMTP 服务器
postconf(5), 配置参数
master(5), 通用守护进程选项
master(8), 进程管理器
postlogd(8), Postfix 日志记录
syslogd(8), 系统日志记录
参考文档
TLS_README, Postfix TLS 配置与操作指南
许可
使用本软件需遵守 Secure Mailer 许可证条款。
历史
本服务首次出现于 Postfix 2.2 版本。
作者
Lutz Jaenicke
德国科特布斯工业大学
电子工程系
Universitaetsplatz 3-4
德国科特布斯 D-03044
改编:
Wietse Venema
IBM T.J. Watson 研究中心
邮政信箱 704
美国纽约州约克镇高地 10598
Wietse Venema
Google 公司
纽约第八大道 111 号
美国纽约州纽约市 10011
TLSMGR(8)