首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SSSD进行vsFTPd认证

用SSSD进行vsFTPd认证
EN

Server Fault用户
提问于 2015-01-16 19:11:34
回答 4查看 6.4K关注 0票数 3

我目前正在尝试设置一个FTP服务器,该服务器使用SSSD通过Active进行身份验证。

我的配置文件如下:

/etc/vsftpd/vsftpd:

代码语言:javascript
复制
[root@StudentOrgFTP vsftpd]# cat vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_log=YES
tcp_wrappers=NO
chroot_local_user=YES
session_support=YES

/etc/sssd/sssd.conf

代码语言:javascript
复制
[sssd]

domains = WORK
services = nss, pam
config_file_version = 2

[pam]
offline_credentials_expiration = 5

[nss]

[domain/WORK]
description = Work domains

enumerate = false

id_provider = ldap
auth_provider = ldap
chpass_provider = none
access_provider = ldap

ldap_pwd_policy = none
ldap_schema = ad
ldap_user_name = sAMAccountName
ldap_user_object_class = person
ldap_group_object_class = group
ldap_id_mapping = True
case_sensitive = false

ldap_id_mapping = True
override_shell = /bin/bash
override_homedir = /srv/student_ftp/%u

# Connection Properties
ldap_uri = ldaps://xxxxx.xxxxxxxx.xxx
# Temporary measure until I can get a hold of a proper certificate
ldap_tls_reqcert = never

ldap_search_base = dc=xxxxxxxx,dc=xxx
ldap_group_search_base = OU=students,dc=xxxxxxxx,dc=xxx
ldap_default_bind_dn = CN=<AD User>,OU=Users,OU=Labs,dc=xxxxxxxx,dc=xxx
ldap_default_authtok_type = password
ldap_default_authtok = <password>

ldap_access_filter = (&(objectClass=person)(ou=students,dc=xxxxxxxx,dc=xxx))

/etc/pam.d/vsftpd

代码语言:javascript
复制
auth required pam_env.so
auth sufficient pam_sss.so
ce with pam_winbind.so
account sufficient pam_sss.so
ce with pam_winbind.so
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpuse
rs onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth

我能够让SSSD使用这个配置,我可以运行'id username‘或'getent passwd username’,它们都返回正确的信息,但是如果我使用通用的linux 'ftp‘命令vsftp似乎无法正确验证。

编辑: /var/log/secure输出:

代码语言:javascript
复制
Jan 27 04:32:36 StudentOrgFTP vsftpd: vsftpd: PAM (vsftpd) illegal module type: ce
Jan 27 04:32:36 StudentOrgFTP vsftpd: PAM pam_parse: expecting return value; [...with]
Jan 27 04:32:36 StudentOrgFTP vsftpd: PAM (vsftpd) illegal module type: ce
Jan 27 04:32:36 StudentOrgFTP vsftpd: PAM pam_parse: expecting return value; [...with]
Jan 27 04:32:36 StudentOrgFTP vsftpd: PAM (vsftpd) illegal module type: rs
Jan 27 04:32:36 StudentOrgFTP vsftpd: PAM pam_parse: expecting return value; [...onerr=succeed]
Jan 27 04:32:36 StudentOrgFTP vsftpd: PAM (vsftpd) no module name supplied
Jan 27 04:32:36 StudentOrgFTP vsftpd: pam_sss(vsftpd:auth): authentication success; logname= uid=0 euid=0 tty=ftp ruser=some_username rhost=localhost user=some_username
Jan 27 04:32:36 StudentOrgFTP vsftpd: pam_sss(vsftpd:account): Access denied for user some_username: 6 (Permission denied)
Jan 27 04:32:36 StudentOrgFTP vsftpd: pam_sss(vsftpd:account): Access denied for user some_username: 6 (Permission denied)
EN

回答 4

Server Fault用户

发布于 2017-02-23 14:58:05

我首先检查了shell设置,并将以下行添加到我的/etc/sss/sssd.conf中:

代码语言:javascript
复制
[domain/example.org]
override_shell = /sbin/rbash

但这并没有解决问题。

在注释掉这行之后

代码语言:javascript
复制
account  [default=bad success=ok user_unknown=ignore]  pam_sss.so

在/etc/pam.d/common活动目录中,用户可以使用他们的AD帐户登录。

但是这个设置比vsftpd影响更多的登录服务。因此,我从该行中删除了注释(回到原来的版本),并更改了vsftpd的pam配置:

/etc/pam.d/vsftpd

代码语言:javascript
复制
# Standard behaviour for ftpd(8).
auth  required   pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes

##@include common-account
account [success=1 new_authtok_reqd=done default=ignore]  pam_unix.so 
account requisite      pam_deny.so
account required       pam_permit.so
account sufficient     pam_localuser.so 

@include common-session
@include common-auth
auth    required       pam_shells.so
票数 1
EN

Server Fault用户

发布于 2015-01-16 20:54:32

我猜问题是

代码语言:javascript
复制
auth required pam_shells.so

/etc/pam.d/vsftpd配置文件中的行。这要求所有用户都有/etc/ shell中列出的默认shell,您的AD身份验证可能没有提供正确的shell。

我将通过简单地注释这一行来测试,然后,如果它工作,就决定是否需要该测试提供的安全性,以及它是否知道如何使它与AD和SSSD一起工作。

票数 0
EN

Server Fault用户

发布于 2015-01-17 16:39:17

我怀疑缺少的shell是问题所在,配置文件使用override_shell指令为shell指定了一个本地覆盖。

您是否在/var/log/secure (或您的发行版的等效版本)中看到任何错误?您能打开debug_level的帕姆和域名部分,看看是否有什么值得关注的地方吗?

检查AD用户是否能够通过另一个PAM服务(可能是su)进行身份验证,也可能有助于确定问题是在SSSD还是vsftpd。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/660153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档