我正在 Debian 11 服务器上设置 proftpd 服务。我希望能够使用本地用户(对于管理员)和 AD 用户连接到 FTP。我使用 realmd 将 Debian 服务器加入到我的 AD,并且它可以很好地进行 ssh 连接。 注意:域用户的主目录位于 NFS 共享上。
当我尝试使用 Filezilla 客户端和本地用户连接到 FTP 时,一切正常,文件名也正确。但我的问题是,当我在 FTPS 中连接到我的 AD 用户时,文件名如下:用户;UNIX.mode=0666;UNIX.owner=978115167;UNIX.ownername=myuser;文件.txt
我甚至无法与此文件交互(传输、重命名、删除),因为我收到 550 错误:
Status: Deleting "/users;UNIX.mode=0666;UNIX.owner=978115167;UNIX.ownername=myuser; file.txt"
13:01:44 Command: DELE users;UNIX.mode=0666;UNIX.owner=978115167;UNIX.ownername=myuser; file.txt
13:01:44 Response: 550 users;UNIX.mode=0666;UNIX.owner=978115167;UNIX.ownername=myuser; file.txt: Aucun fichier ou dossier de ce type
WinSCP 也有同样的问题。但是使用 Proftpd 的 SFTP 模块没有问题(我猜是 ssh)。
这是我的配置文件:
Include /etc/proftpd/modules.conf
ServerName "ftp.domain.com"
UseIPv6 off
User proftpd
Group nogroup
Port 21
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
#
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
#
<Global>
DefaultRoot ~
Umask 000 000
CreateHome on 777
PassivePorts 20000 20200
AllowOverwrite on
######
#TLS#
######
TLSEngine off
TLSRSACertificateFile /etc/ssl/certs/domain.com.crt
TLSRSACertificateKeyFile /etc/ssl/private/domain.com.key
TLSCACertificateFile /etc/ssl/certs/ca.crt
TLSOptions NoSessionReuseRequired
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSVerifyClient off
TLSRequired on
</Global>
######
#FTPS#
######
<VirtualHost 0.0.0.0>
Port 990
TLSEngine on
TLSOptions UseImplicitSSL
ListOptions "-l"
</VirtualHost>
######
#SFTP#
######
<IfModule mod_sftp.c>
<VirtualHost 0.0.0.0>
Port 2222
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
SFTPCompression delayed
SFTPAuthMethods password
SFTPHostKey /etc/proftpd/ssh_host_rsa_key
SFTPHostKey /etc/proftpd/ssh_host_ecdsa_key
SFTPHostKey /etc/proftpd/ssh_host_ed25519_key
</VirtualHost>
</IfModule>
并且在modules.conf中,mod_tls和mod_sftp被激活。
我做了一些研究,但没有发现类似我的问题。在此之前,我尝试使用 mod_ldap 来记录我的 AD 用户,但我记得它没有起作用。
感谢您的帮助。
答案1
存在与组名带空格相关的错误。更多详细信息请参见此处:https://github.com/proftpd/proftpd/issues/1495 对于 Active Directory 而言,暂时解决问题的一种可能性是将有问题的用户的主要组从“域用户”更改为不包含空格的组。