You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL8下VSFTPD无需PAM模块对接LDAP(389目录服务器)认证方案咨询

在RHEL8上无需PAM模块实现VSFTPD与389 LDAP服务器对接

核心思路是利用VSFTPD的外部认证功能,通过自定义脚本直接完成LDAP用户的身份验证,绕过传统PAM模块依赖。以下是具体实施步骤:

1. 安装必要工具

先安装VSFTPD和LDAP客户端工具:

dnf install -y vsftpd openldap-clients

2. 编写LDAP认证脚本

创建可执行脚本/usr/local/bin/vsftpd_ldap_auth.sh,用于对接LDAP服务器验证用户名密码:

#!/bin/bash

# 配置LDAP服务器信息,根据实际环境修改
LDAP_URI="ldap://your-ldap-server-ip:389"
BASE_DN="dc=example,dc=com"
USER_ATTR="uid" # 对应LDAP中存储用户名的属性

# 读取VSFTPD传入的用户名和密码
read USERNAME
read PASSWORD

# 匿名查询获取用户的DN(若LDAP不允许匿名查询,需配置绑定账号)
USER_DN=$(ldapsearch -x -H ${LDAP_URI} -b ${BASE_DN} "${USER_ATTR}=${USERNAME}" dn | grep -i "^dn:" | awk '{print $2}')

# 用户不存在直接返回验证失败
if [ -z "${USER_DN}" ]; then
    exit 1
fi

# 使用用户自身DN和密码执行LDAP绑定验证
ldapwhoami -x -H ${LDAP_URI} -D "${USER_DN}" -w "${PASSWORD}" > /dev/null 2>&1

# 返回验证结果:0为成功,非0为失败
exit $?

给脚本添加执行权限:

chmod +x /usr/local/bin/vsftpd_ldap_auth.sh

3. 配置VSFTPD启用外部认证

编辑VSFTPD主配置文件/etc/vsftpd/vsftpd.conf,添加/修改以下配置项:

# 禁用匿名访问
anonymous_enable=NO
# 启用本地用户模式(虚拟用户将模拟本地用户权限)
local_enable=YES
# 开启写权限(按需调整)
write_enable=YES
# 指定外部认证脚本路径
auth_service=/usr/local/bin/vsftpd_ldap_auth.sh
# 配置虚拟用户默认家目录(可结合LDAP属性动态调整,此处为固定路径示例)
local_root=/home/ftp_users/$USER
# 限制用户在自身家目录内,防止越权访问
chroot_local_user=YES
allow_writeable_chroot=YES
# 启用日志记录
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

4. 配置用户家目录权限

创建虚拟用户家目录的父路径,并设置正确权限:

mkdir -p /home/ftp_users
chown root:root /home/ftp_users
chmod 755 /home/ftp_users

如需为特定LDAP用户创建家目录,执行:

mkdir -p /home/ftp_users/[username]
chown nobody:nobody /home/ftp_users/[username]
chmod 755 /home/ftp_users/[username]

5. 启动并启用VSFTPD服务

systemctl start vsftpd
systemctl enable vsftpd

6. 测试认证

使用FTP客户端连接服务器,输入LDAP用户名和密码,验证是否能正常登录:

ftp your-ftp-server-ip
# 输入LDAP用户名和密码,检查登录状态

注意事项

  • 确保LDAP服务器允许FTP服务器发起的连接,防火墙开放389端口(若使用LDAPS则开放636端口)。
  • 若LDAP服务器禁用匿名查询,需在脚本中配置具备用户查询权限的绑定账号信息。
  • 建议使用LDAPS加密传输,将LDAP_URI改为ldaps://your-ldap-server-ip:636,并导入LDAP服务器证书到系统信任库。
  • 脚本中的LDAP配置项(BASE_DN、USER_ATTR等)必须与实际LDAP目录结构匹配。

内容的提问来源于stack exchange,提问作者M-E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:00:59