理论教育 Linux操作系统中FTP用户分类及权限设置

Linux操作系统中FTP用户分类及权限设置

时间:2023-11-25 理论教育 版权反馈
【摘要】:VSFTPD 验证虚拟用户, 则采用PAM 方式。由于虚拟用户的用户名/口令被单独保存, 因此在验证时, VSFTPD 需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证, 这就是Guest 用户。而在该限制下的例外处理通过chroot_list_enable、chroot_list_file 设置配合。

Linux操作系统中FTP用户分类及权限设置

1. 匿名用户

匿名用户需要系统内建的FTP 用户身份登录。

2. 本地用户

本身是系统的用户, /etc/passwd 中的以用户名为登录认证方式的用户, 除了可以登录FTP 服务器外, 还可以登录系统使用其他系统资源。

3. 虚拟用户

将用户名和密码保存在文件或数据库中, 将登录用户映射到指定的系统账号(/sbin/nologin)来访问资源。

比如常用的FTP 服务VSFTPD(Very Secure FTP Daemon), 是UNIX 类平台上安全的FTP 服务器。 服务器主机可采用数据库文件来保存用户/口令(hash), 也可以将用户/口令保存在数据库服务器中, 如MySQL 等。 VSFTPD 验证虚拟用户, 则采用PAM 方式。 由于虚拟用户的用户名/口令被单独保存, 因此在验证时, VSFTPD 需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证, 这就是Guest 用户。 这正如匿名用户需要一个系统用户FTP 一样, Guest 用户可以被认为是用于映射虚拟用户。

4. 用户权限管理

VSFTPD 安装目录/etc/vsftpd 下能看到与用户有关的文件user_list、 ftpusers、 chroot_list, 这些文件的作用是配合服务的主配置文件/etc/vsftpd/vsftpd.conf 进行用户权限控制。

首先要提到访问控制常见的“黑名单”和“白名单”机制, 简单地说:

白名单是设置能通过的用户, 白名单以外的用户都不能通过;

黑名单是设置不能通过的用户, 黑名单以外的用户都能通过。

一般情况下白名单比黑名单限制的用户要多。(www.daowen.com)

(1) ftpusers 文件: 登记不允许通过FTP 登录的用户名列表。 (黑名单)

(2) user_list 文件: 如果主配置文件中设置userlist_deny=NO, 则仅允许该文件中的用户(白名单); 如果userlist_deny=YES(默认), 则永远不允许该文件中的用户, 甚至不提示输入密码(黑名单), 一般默认安装后该文件和ftpuser 文件内容一样, 登记了被禁止用户名。 如默认情况下, root 被写在该文件中, 所以不能登录FTP。

(3) chroot_list 文件: 控制用户是否可以跳出主目录之外浏览服务器上的其他目录。

默认安装后主配置文件中chroot_local_user=NO, 没有启用“限制用户只在主目录”功能。 此时FTP 用户可以切换到其他目录。 这个设置是全局设置, 对所有用户都起效。 而在该限制下的例外处理通过chroot_list_enable、chroot_list_file 设置配合。 可按顺序这样理解:

①是否限制所有用户切换目录: 看chroot_local_user 设置为YES 还是NO;

②是否做微调, 或者说是否应用chroot_list_file 的列表: 看chroot_list_enable 设置为YES 还是NO;

③一般推荐利用白名单策略: 在主配置文件中设置所有用户都禁止跳出主目录, 使用chroot_list 添加例外, 则/etc/vsftpd/vsftpd.conf 内应配置如下。

◎注意

VSFTPD 为了安全, 不允许连接一个开放了写入权限的主目录, 所以目录权限设置不正确能导致FTP 连接不能建立, 但是如果在主配置文件/etc/vsftpd/vsftpd.conf 中设置:

allow_writeable_chroot=YES

即使用户没有写入chroot_list 的白名单中, 用户也可以连接到一个开放写入权限主目录的FTP 服务器, 而且在连接上后能在任意目录中跳转, 除非用户用单独的配置文件限定主目录。 作为服务器管理员应避免设置这种过于宽松的参数, 以免带来安全问题。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈