POP3 与 110 端口
110 是 POP3 的默认端口,用于把邮件下载到本地。它默认明文传输,登录口令与邮件正文都能被抓包还原;连接建立后可以用 STLS 命令升级为加密通道,但客户端兼容性不一致。POP3 的模型是下载后默认删除服务端副本,与 IMAP 的服务器端保留模型完全不同,多设备使用时容易出现互相抢信的情况。加密版本使用 995 端口。
基本信息
| 服务 | POP3(Dovecot、Exchange、企业邮箱系统) |
|---|---|
| 协议 | TCP |
| 规范 | RFC 1939;加密端口 995 |
| 加密方式 | STLS 升级或直接使用 995 |
| 权限要求 | 服务端需监听 110 需特权;用户按邮箱账号授权 |
| 安全等级 | 建议仅内网或强制 TLS |
典型使用场景
- 单设备收信:只在一台电脑或客户端上收邮件,下载后本地归档
- 离线查看与归档:本地保存全部邮件,服务器不长期堆积
- 老旧客户端兼容:部分设备只支持 POP3 协议
- 脚本批量取信:按序号取回并解析,处理告警与通知邮件
- 临时排障:手工建立会话验证账号与服务器是否正常
验证加密与握手
验证加密与握手
openssl s_client -connect mail.example.com:995 -servername mail.example.com </dev/null | head -n 20 # 995 隐式加密
openssl s_client -connect mail.example.com:110 -starttls pop3 -crlf # 110 上尝试升级加密
CAPA # 查看服务端能力,关注 STLS 与 UIDL
USER ops@example.com # 输入账号
PASS 口令 # 110 明文下这条可被抓包还原
QUIT常用命令与应答判读
| 命令 | 作用 | 典型应答 |
|---|---|---|
| USER / PASS | 登录 | +OK 成功;-ERR 表示凭据或策略失败 |
| STAT | 邮件数与总大小 | +OK 后跟封数与字节数 |
| RETR n | 取回第 n 封 | +OK 后跟邮件正文,以单独的点行结束 |
| DELE n | 标记删除 | 标记后需 QUIT 才真正提交删除 |
| CAPA | 列出扩展能力 | +OK 后列出 STLS、UIDL 等支持项 |
| UIDL | 列出邮件唯一标识 | 用于跨次会话去重,避免重复下载 |
服务端强制加密要点(Dovecot)
服务端强制加密要点(Dovecot)
service pop3-login {
inet_listener pop3 {
port = 110
ssl = required # 拒绝明文登录,客户端须先 STLS
}
}
# 改完 reload 服务,再用手工会话确认未加密登录被拒110 明文会话中的账号口令可被抓包还原,这是邮件被窃最常见的途径之一;对外服务应关闭 110 或强制 TLS,并优先引导客户端使用 995。
多设备场景不要选 POP3:默认下载后删除会让多台设备互相抢信,且本地删除后服务端也没有备份,需要多端同步时应使用 IMAP。
脚本化收信要处理空闲超时:连接闲置一段时间后会被服务端断开,程序应捕获断线并退避重连;长时间复用同一条连接还容易因为邮件序号变化而取错邮件,用 UIDL 做去重更稳妥。