首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vsftpd用户认证

Vsftpd用户认证
EN

Server Fault用户
提问于 2018-07-31 11:48:19
回答 1查看 2.6K关注 0票数 1

我已经设置了一个运行Centos 7和VSFTPD的虚拟机。

VSFTPD在与本地用户连接时工作得很好。它用"useradd -d"将用户输入到/ftp/pub/{<#>}中先前创建的主页中。我增加了TLS加密,这也是很好的工作(在这里禁用,以了解什么是错误的)。我已经将SElinux上下文<>/ftp设置为public_content_t /ftp/pub (/.*)?设置为public_content_rw_t,并在/ftp/pub上设置了755个权限。

最近,我尝试通过以下操作将LDAP auth添加到VSFTPD服务器:

代码语言:javascript
复制
authconfig --enableldap --enableldapauth --ldapserver=name_of_my_server --ldapbasedn="dc=item1,dc=item2,dc=item3" --enablemkhomedir --update    

但是它只将身份验证添加到服务器本身(我可以ssh添加到具有非本地帐户的服务器),而不是添加到服务(vsftp),因此我选择了a:

500 OOPS:无法更改目录:/home/default/path

我从这个错误中了解到的是,它试图登录默认的主页(显然不存在),而不创建新的主页。我想要做的是,当一个非本地用户试图在我的服务器上FTP时,它会在/ftp/pub/{user_name}中为他创建一个新家,并在其中显示他的颜色。

这里是pan.d/登录:

代码语言:javascript
复制
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       substack     system-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
-session   optional     pam_ck_connector.so

PAMP.d/vsftpd:

代码语言:javascript
复制
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

vsftpd.conf:

代码语言:javascript
复制
anonymous_enable=NO
#Permet aux utilisateurs locaux de RW
local_enable=YES
write_enable=YES
local_umask=022
pasv_enable=YES
pasv_max_port=1026
pasv_min_port=1025
dirmessage_enable=YES
connect_from_port_20=YES
ascii_download_enable=YES
ascii_upload_enable=YES
ftpd_banner=Welcome to blah FTP service.

#Partie chroot
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/ftp/pub/$USER
user_sub_token=$USER
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list

#logs
xferlog_enable=YES
xferlog_std_format=NO
log_ftp_protocol=YES

listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

# Ajouts
use_localtime=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
require_ssl_reuse=NO
ssl_ciphers=HIGH
ssl_enable=NO
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES

我对VSFTPD的ldap需求实在太紧了,无法在服务器故障的其他帖子上找到我应该做的事情。如果有人能帮我或推荐文件,我们将不胜感激。

编辑:SSH登录成功地为默认路径( /home )的用户创建了一个主页,/home登录既没有在/home中创建它,也没有在/ FTP /pub中创建它,我的目标是在/ FTP /pub中为用户创建一个主页。

EDIT2 2:正如mxttie所建议的那样,我可以使用pam_exec,但是如果没有真正解决问题,就会更“绕过”问题。我必须在"/home“中创建一个文件夹,然后在"/ftp/pub”中为每个要连接的用户创建一个文件夹,以解决两个连续的500对象错误。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-07-31 21:09:55

使用pam_exec模块调用执行必要命令的脚本(即在/ftp/pub中为非本地用户创建home )

  • 官方pam_exec手册页:http://www.linux-pam.org/Linux-PAM-html/sag-pam_exec.html
  • 参见ArchLinux维基 (另一个) pam_exec示例。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/924256

复制
相关文章

相似问题

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