7.7 配置Vsftp-允许匿名用户上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.7 配置Vsftp-允许匿名用户上传相关的知识,希望对你有一定的参考价值。

参考技术A anon_upload_enable

anon_mkdir_write_enable

anon_world_readable_only=NO 放开匿名用户对整个服务器的浏览权限。

⑴ 修改vsftpd 的主配置文件/etc/vsftpd.conf

# vi /etc/vsftpd.conf

⑵ 将如下两行前的#删除

#anon_upload_enable=YES 允许匿名用户上传

#anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限

若要以上两项设置生效,同时还要求:

write_enable=YES

⑶ 匿名用户对文件系统的上传目录具有写权限,添加如下的配置语句

anon_world_readable_only=NO

上面的配置语句用于放开匿名用户的浏览权限

修改后存盘退出vi

⑷ 创建匿名上传目录

# mkdir  /var/ftp/incoming

⑸ 修改上传目录的权限

# chmod  o+w  /var/ftp/incoming/

⑹ 重新启动vsftpd

# service vsftpd restart

⑴ 匿名用户对/var/ftp/incoming 目录而言是其他用户,所以必须为此目录添加对其他用户的可写权限才可上传,即此目录权限的数字表示是707。

⑵ 只有设置anon_world_readable_only=NO 后,才能开放匿名用户的读权限,即:浏览此服务器中全部的内容。

⑶ 若想匿名用户能够进行续传文件还应使用anon_other_write_enable=YES配置,并随时对FTP站点进行维护,即:将incoming目录中有用的文件移向pub目录。

vsftp虚拟用户

两种方式建立Vsftpd虚拟用户

 

我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。

匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。

本地用户登录:使用系统用户登录,在/etc/passwd中。

虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。

FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

一、本地数据文件方式

1. 添加虚拟用户口令文件

[[email protected] /]#vi /etc/vsftpd/vftpuser.txt

添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。

bobyuan #用户名

123456 #密码

markwang #用户名

123456 #密码

2. 生成虚拟用户口令认证文件

将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。

首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。

[[email protected] /]#rpm –qa |grep db4-utils
[[email protected] /]#rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm

下面使用db_load命令生成虚拟用户口令认证文件。

[[email protected] /]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

3. 编辑vsftpd的PAM认证文件

在/etc/pam.d目录下,

[[email protected] /]#vi /etc/pam.d/vsftpd

将里面其他的都注释掉,添加下面这两行:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

 (标注出注意:必须保证这两个文件是存在的,否则pam模块是加载不到的)

4. 建立本地映射用户并设置宿主目录权限

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。

[[email protected] /]#useradd -d /home/vftpsite -s /sbin/nologin vftpuser
[[email protected] /]#chmod 700 /home/vftpsite

5. 配置vsftpd.conf(设置虚拟用户配置项)

[[email protected] /]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #开启虚拟用户
guest_username=vftpuser #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf

 对不同虚拟用户设置不同权限
# mkdir /etc/vsftpd/vsftpd_user_conf
# vim /etc/vsftpd/vsftpd_user_conf/user1 (建立用户单独配置文件,文件名就是用户名)
local_root=/home/ftp/user1 #这里的虚拟用户目录可以根据实际情况修改
write_enable=YES
virtual_use_local_privs=YES
#虚拟用户具有写权限(上传、下载、删除、重命名)
在 vsftpd.conf 添加以下参数配置项:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
 禁锢FTP用户在宿主目录
将需要禁锢的用户名写入“vsftpd.chroot_list”文件
# vim /etc/vsftpd.chroot_list
user1
user2
在 vsftpd.conf 添加以下参数配置项:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list


6. 重启vsftpd服务

[[email protected] /]#service vsftpd restart

7. 测试虚拟用户登录FTP

C:\User\Administrator>ftp 192.168.120.240
连接到192.168.120.240。
220 Welcome to BOB FTP server
用户(192.168.120.240(none)):markwang
331 Please specify the password.
密码:
230 Login successful.

备注:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。


以上是关于7.7 配置Vsftp-允许匿名用户上传的主要内容,如果未能解决你的问题,请参考以下文章

vsftp服务器目录为/var/ftp/,该服务器允许匿名用户访问,只读。建立用户sydsftp能上传下载但不能登录系统?

搭建VSFTP服务

Linux系统学习 十VSFTP服务—匿名用户访问(不推荐使用,不安全)

vsftp服务器配置文件详解

vsftp 使用匿名帐号登陆

Vsftp_conf