我有一个 ftp 服务器在 192.168.122.50 机器上运行
以下是 /etc/vsftpd/vsftpd.conf 文件中的最后三个指令
pam_service_name=vsftpd
#userlist_enable=YES
#userlist_deny=YES
以下是 /etc/pam.d/vsftpd 文件的内容
#%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
以下是 /etc/vsftpd/ftpusers 文件的内容
#This is the list of blocked users as per the following line /etc/pam.d/vsftpd
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
因此,例如,root
应该阻止两个用户访问本机上的 ftp 服务器,而ssam
应该允许两个用户访问。
现在从客户端计算机 192.168.0.2,我尝试了这个。
am@centos ~]$ ftp 192.168.122.50
Connected to 192.168.122.50 (192.168.122.50).
220 (vsFTPd 2.2.2)
Name (192.168.122.50:ssam): ssam
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit
221 Goodbye.
[ssam@centos ~]$ ftp 192.168.122.50
Connected to 192.168.122.50 (192.168.122.50).
220 (vsFTPd 2.2.2)
Name (192.168.122.50:ssam): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> bye
221 Goodbye.
输出与帕姆ssam
设置为允许用户和root
阻止用户。
现在我已经在客户端尝试了lftp命令以root用户连接到服务器。
[ssam@centos ~]$ lftp [email protected]
Password:
lftp [email protected]:~>
确实可以登录被阻止用户, root
因为我收到 lftp 提示。现在我尝试运行命令。
lftp [email protected]:~>
ls: Login failed: 530 Login incorrect.
现在,服务器似乎已经恢复理智,它告诉我我无法做任何其他事情。但可插入的身份验证模块应该在第一个实例中阻止用户root
进入服务器。
有人能为我解释一下吗?
答案1
IMO,这是客户端工作的一种方式lftp
。检查日志文件/var/log/secure
(在 RHEL/CentOS 上)或类似的事件,例如
pam_listfile(vsftpd:auth): Refused user root for service vsftpd
我通过嗅探 FTP 流量(RHEL 6.x、vsftpd 2.2.2、lftp 4.0.9)验证了这种行为。 FTP 连接只有在您输入一些有效的 FTP 命令(又称为ls
)后才会建立,而在您输入用户名及其密码时才会建立。
答案2
vim /etc/vsftpd/vsftpd.conf
来吧倒数第二行......userlist_enable="NO"
保存并之后
# vim /etc/vsftpd/ftpusers
从中删除“root”用户...在此文件中
不允许通过 ftp 登录的用户。保存并重新启动服务。我希望它能起作用......