vsftpd 任何密码适用于本地用户

vsftpd 任何密码适用于本地用户

我的 vsftpd 设置允许本地用户使用他们通常的密码登录,并允许另一组用户通过 passwd 文件登录。

我现在遇到的问题是,当使用本地用户登录时,任何密码都会被接受并可以让用户登录(使用 passwd 文件登录是可以的)。

这是 vsftpd.conf:

$ cat /etc/vsftpd.conf  | grep -v ^#
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=066
anon_umask=066
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES

chmod_enable=YES

chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/ftp/$USER
guest_enable=YES
guest_username=ftp

以及 /etc/pam.d/vsftpd 文件:

$ cat vsftpd | grep -v ^#
auth sufficient /lib/security/pam_pwdfile.so pwdfile /home/ftp/passwd
auth    required    pam_shells.so
account required pam_permit.so

不确定是否还有其他相关文件我应该发布(?)

答案1

我的 vsftpd 工作正常,不允许使用任何随机密码。这是我的配置文件的输出。

# cat /etc/vsftpd.conf | grep -ve "^#.*"
listen=YES
anonymous_enable=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
local_enable=YES

# cat /etc/pam.d/vsftpd | grep -ve "^#.*"
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
@include common-account
@include common-session
@include common-auth
auth    required        pam_shells.so

希望这能有所帮助。

相关内容