首页/网络/常用端口速查/389 ldap 轻量目录访问协议
300-399 系统端口74 条

389 ldap 轻量目录访问协议

LDAP v3 标准端口(RFC 4511):企业目录(AD/OpenLDAP)的查询、认证与目录管理;默认明文,凭据与目录内容易被嗅探。

常用端口速查网络更新于 2026-10-13

LDAP 与 389 端口

389 是 LDAP v3 的标准端口(RFC 4511),企业的目录服务用它提供用户、组、设备的查询与认证,Windows 域的 AD、OpenLDAP 与 389 Directory Server 都把 389 作为主要入口。默认明文传输,Simple Bind 的口令不经加密就过网,所以 389 是内网横向渗透中的高价值目标。636 是 LDAPS 隐式 TLS,3268 与 3269 为 AD 全局编录及其加密版本。

基本信息

服务ldap(Lightweight Directory Access Protocol)
协议TCP/UDP
规范RFC 4511(LDAP v3)
权限要求匿名绑定常见但危险;绑定账户按最小权限授予读范围
常见实现AD、OpenLDAP、389 Directory Server
常用工具ldapsearch、ldapwhoami、ldapmodify

典型使用场景

  • 员工账号统一认证:VPN、堡垒机、OA 等系统对接目录做登录校验
  • 通讯录与组织架构查询:按 uid、mail、memberOf 检索人员信息
  • 系统对接授权:应用读取组成员关系判断角色
  • AD 全局编录查询:跨域林查询用户与对象信息
  • 只读镜像:从主目录同步到查询专用节点,隔离认证与查询流量

相关端口对照

端口用途加密方式
389/tcpLDAP 主入口明文,可用 StartTLS 就地升级
636/tcpLDAPS连接即建立 TLS(隐式加密)
3268/tcpAD 全局编录查询明文,可用 StartTLS
3269/tcpAD 全局编录加密查询隐式 TLS

查询与绑定自检

查询与绑定自检
ldapsearch -x -H ldap://192.0.2.10:389 -b 'dc=example,dc=com' -s base   # 只取根条目,判断服务是否响应
ldapsearch -x -H ldap://192.0.2.10:389 -b 'dc=example,dc=com' '(uid=alice)' cn mail   # 匿名或已配置绑定的检索
ldapsearch -x -ZZ -H ldap://192.0.2.10:389 -D 'uid=alice,ou=people,dc=example,dc=com' -W '(uid=alice)'   # -ZZ 要求 StartTLS 成功再继续
ldapsearch -x -H ldaps://ldap.example.com:636 -b 'dc=example,dc=com' '(uid=alice)'   # 换协议头即走 636 隐式加密
ldapwhoami -x -H ldaps://ldap.example.com:636 -D 'uid=alice,ou=people,dc=example,dc=com' -W   # 确认绑定成功的身份

输出逐列读法

输出项含义正常/异常
dn条目的唯一标识路径与检索的基准路径层级应一致
objectClass对象类型person 与 organizationalPerson 的组合属正常
numEntries返回条目数匿名查询返回大量条目说明暴露面过大
result: 0 Success操作返回码49 为凭据无效,32 为条目不存在
ldap_start_tlsStartTLS 结果出现 Protocol error 多为服务端未启用 TLS

常用检索与输出控制

常用检索与输出控制
ldapsearch -x -H ldaps://ldap.example.com -b 'dc=example,dc=com' '(objectClass=person)' cn mail   # 只取需要的属性
ldapsearch -x -H ldaps://ldap.example.com -b 'dc=example,dc=com' -LLL '(uid=alice)' memberOf   # -LLL 去掉注释行,输出更干净
ldapsearch -x -H ldaps://ldap.example.com -b 'dc=example,dc=com' '(memberOf=cn=ops,ou=groups,dc=example,dc=com)' cn   # 按组成员反查人员
允许匿名绑定会把整个目录结构(用户、组、邮箱、电话)暴露给任何能连上 389 的人;生产目录应禁用匿名查询并强制加密传输。
StartTLS 判读:带 -ZZ 时若提示无法升级,多数是服务端未启用 TLS 或证书配置不完整;AD 域控通常现成支持,OpenLDAP 需要先配好服务端证书再启用。
排障顺序:先用 ldapwhoami 确认绑定身份是否为预期账户,再用最窄的基准路径与过滤器检索,最后才放宽范围;把服务不可用与权限不足分清楚,能省掉大半来回试错。

目录加固清单

  • 禁用匿名绑定,未认证的检索请求直接拒绝
  • 强制加密:能上 636 就上 636,保留 389 时要求 StartTLS 成功后才允许绑定
  • 收窄可查范围:绑定账户只授予以应用为单位的基准路径与必需属性
  • 关闭不必要的写权限,目录写入只留给运维账户
  • 只在内网或专用管理网可达,不向公网发布 389 与 636
  • 开启访问日志,定期核对异常绑定来源与高频枚举行为

常见返回码判读

返回码含义处置方向
0 Success操作成功无需处理
32 No such object基准路径或条目不存在核对 -b 基准路径与目录实际结构
49 Invalid credentials凭据无效或该绑定方式不被允许核对口令与账户 DN,确认服务端是否禁用该方式
53 Unwilling to perform服务端策略拒绝操作多为权限或只读副本限制,查服务端日志
AD 环境注意:除 389 与 636 外还有全局编录 3268/3269,跨域林查询必须走后者;若本域 389 正常而跨域查询失败,先确认应用连的是 3268 而不是 389。
引用要留意:OpenLDAP 的 referral 会把客户端转到另一台服务器继续查询,输出里出现 ref 行说明结果并非当前服务器给出,此时问题可能在下一跳而不是入口节点。

易错点

  • 389 暴露公网且允许匿名绑定,等于公开企业通讯录
  • Simple Bind 不走 TLS,一次嗅探即可拿到域账号口令
  • 应用绑定账户给了过大读范围,泄露一份账号即可枚举全部目录
  • 排查时只用明文 389 复现问题,上线后接口因强制 TLS 而失败

数据来源与参考

  • RFC 4511:Lightweight Directory Access Protocol (LDAP)
  • IANA 端口注册表

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌