CentOS 5.3系统设置vsftpd虚拟用户的具体步骤




CentOS 5.3系统设置vsftpd虚拟用户的具体步骤

2022-07-20 21:05:56 网络知识 官方管理员

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

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

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

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

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

本文的Linux系统是CentOS5.3

yum-yinstallvsftpd

一、建立Vsftpd虚拟用户:

1、添加虚拟用户口令文件安装Vsftpd

[root@51ou.com~]#vi/etc/vsftpd/vftpuser.txt

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

ftp1#用户名

123456#密码

ftp2#用户名

123456#密码

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

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

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

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

[root@51ou.com~]#db_load-T-thash-f/home/vuser.txt/etc/vsftpd_login.db

-bash:db_load:commandnotfound

###############################

出现没有db_load的提示是因为有些db4的包没有安装,需要安装下列包:

db4-*.rpm

db4-tcl-*.rpm

db4-utils-*.rpm

或者直接:yum-yinstalldb4db4-tcldb4-utils

db_load命令主要是用来生成db数据库使用的

格式:

db_load-T-thash-fpasswd.txt/etc/vsftpd/user_passwd.db

生成一个hash码型的数据库文件供ftp虚拟用户使用。

##########################

[root@51ou.com~]#db_load-T-thash-f/etc/vsftpd/vftpuser.txt/etc/vsftpd/vftpuser.db

3、编辑vsftpd的PAM认证文件

在/etc/pam.d目录下,

[root@51ou.com~]#vi/etc/pam.d/vsftpd

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

authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vftpuser

accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vftpuser

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

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

[root@51ou.com~]#useradd-d/home/vftpsite-s/sbin/nologinvftpuser

[root@51ou.com~]#chmod755/home/vftpsite//网上为700,设置为700后FTP用户无上传权限

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

[root@51ou.com~]#vi/etc/vsftpd/vsftpd.conf

guest_enable=YES#开启虚拟用户

guest_username=vftpuser#FTP虚拟用户对应的系统用户[useradd-d/home/vftpsite-s

/sbin/nologinvftpuser]

pam_service_name=vsftpd#PAM认证文件

6、重启vsftpd服务

[root@51ou.com~]#servicevsftpdrestart

7、测试虚拟用户登录FTP

C:\DocumentsandSettings\Administrator>ftp192.168.2.12

Connectedto192.168.2.12.

220(vsFTPd2.0.5)

User(192.168.2.12:(none)):ftp1

331Pleasespecifythepassword.

Password:

500OOPS:cannotchangedirectory:/home/vftpsiteConnectionclosedbyremotehost

.//在配置vsftpd的时候连接vsftpd出现了500OOPS:cannotchangedirectory:/home/vftpsite

的错误,vftpsite为登录时使用的本地用户名。

解决办法:

[root@51ou.com~]#setsebool-Pftp_home_diron

也有网上说在终端输入命令:

setsebool-Pftpd_disable_trans1

servicevsftpdrestart

就OK了!

测试:

C:\DocumentsandSettings\Administrator>ftp192.168.2.12

Connectedto192.168.2.12.

220(vsFTPd2.0.5)

User(192.168.2.12:(none)):ftp1

331Pleasespecifythepassword.

Password:

230Loginsuccessful.

二、虚拟用户高级设置:

1、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时,虚拟用户只能下载、删除和重命名文件,无其他权限。

2.建立各个虚拟用户自身的配置文件

[root@51ou.com~]#vi/etc/vsftpd/vsftpd.conf

添加:

user_config_dir=/etc/vsftpd/vsftpd_user_conf

[root@51ou.com~]#mkdir/etc/vsftpd/vsftpd_user_conf

编辑ftp1的配置文件

[root@51ou.com~]#vi/etc/vsftpd/vsftpd_user_conf/ftp1

添加:

anon_world_readable_only=NO#开放ftp1的下载权限(只能下载)。注意这个地方千万不能写成YES

,否则ftp1将不能列出文件和目录。

编辑ftp2的配置文件

[root@51ou.com~]#vi/etc/vsftpd/vsftpd_user_conf/ftp2

添加:

write_enable=YES#开放ftp2的写权限

anon_world_readable_only=NO#开放ftp2的下载权限

anon_upload_enable=YES#开放ftp2的上传权限

anon_mkdir_write_enable=YES#开放ftp2创建目录的权限

anon_other_write_enable=YES#开放ftp2删除和重命名的权限

3、所有虚拟用户使用一般配置

[root@51ou.com~]#vi/etc/vsftpd/vsftpd.conf

write_enable=YES

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=vftpuser

virtual_use_local_privs=NO

pam_service_name=vsftpd

anon_world_readable_only=NO#可以下载

anon_upload_enable=NO(默认值)#不能上传

anon_mkdir_write_enable=NO(默认值)#不能新建文件夹

anon_other_write_enable=NO(默认值)#不能删除和重命名文件

ftpd_banner=WelcometoyoozhuFTPserver

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

tcp_wrappers=NO

setproctitle_enable=YES

listen_port=21

connect_from_port_20=YES

idle_session_timeout=600

data_connection_timeout=120

max_clients=0

max_per_ip=3

local_max_rate=512000

4、各个虚拟用户使用自身配置

[root@51ou.com~]#vi/etc/vsftpd/vsftpd.conf

write_enable=YES

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=vftpuser

virtual_use_local_privs=NO

pam_service_name=vsftpd

user_config_dir=/etc/vsftpd/vsftpd_user_conf#设定用户配置文件存放目录

ftpd_banner=WelcometoyoozhuFTPserver

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

tcp_wrappers=NO

setproctitle_enable=YES

listen_port=21

connect_from_port_20=YES

idle_session_timeout=600

data_connection_timeout=120

max_clients=0

max_per_ip=3

local_max_rate=512000

[root@51ou.com~]#mkdir/etc/vsftpd/vsftpd_user_conf

编辑ftp1的配置文件

[root@51ou.com~]#vi/etc/vsftpd/vsftpd_user_conf/ftp1

anon_world_readable_only=NO

编辑ftp2的配置文件

[root@CentOS5/]#vi/etc/vsftpd/vsftpd_user_conf/ftp2

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

以上就是CentOS5.3系统设置vsftpd虚拟用户的具体步骤,谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。


发表评论:

最近发表
网站分类
标签列表