虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。
[过程]
1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:
#vi account.txt
hahazhu
123456
zhangguo
4321
tianshan
5678
2.生成口令库文件,并修改其权限:
#db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
3.新建一个虚拟用户的PAM文件。加上如下两行内容:
#vi /etc/pam.d/vsftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account
4.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:
#useradd -d /home/ftpsite virtual_user
#chmod 700 /home/ftpsite
经过该步骤的设置,/home/ftpsite就是virtual_user用户的主目录,该用户也是ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。
5.编辑/etc/vsftpd/vsftpd.conf文件,使其整个文件内容如下所示(去掉了注释内容):
anonymous_enable=NO #禁止匿名用户登录
local_enable=YES #开启本地用户登录
local_umask=022 #新建文件权限
xferlog_enable=YES #开启日志记录功能
connect_from_port_20=YES #开启20端口数据传输
xferlog_std_format=YES #日志记录格式
listen=YES #监听
write_enable=YES #对文件有写的权限
anon_upload_enable=YES #允许匿名上传
anon_mkdir_write_enable=YES#允许匿名用户新建目录
anon_other_write_enable=YES #是否拥有其他权限
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftp.vu
上面代码中,guest_enable=YES表示启用虚拟用户;guest_username=virtual则是将虚拟用户映射为本地用户,这样虚拟用户登录后才能进入本地用户virtual的目录/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件为vsftp.vu。
6.重新启动VSFTP:
#service vsftpd restart
7.以虚拟用户gou(Linux中并无该账号)进行测试:
# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcom to my FTP server.
Name (127.0.0.1:root): gou
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
在虚拟FTP服务器中,也可以对各个用户的权限进行设置。方法是在/etc/vsftpd.conf文件中添加如下一行:
user_config_dir=用户配置文件目录
然后在用户配置文件目录下创建相应的用户配置文件,比如为上述名为gou的用户创建一个配置文件(假设配置文件目录为/etc/vsftpd_user_conf):
#vi /etc/vsftpd_user_conf/gou
write_enable=NO
anono_upload_enable=NO
8.虚拟用户个人目录设置
大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/ftpsite,即都是guest用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。
一种作法是在虚拟用户的个人配置文件中使用local_root选项指定虚拟用户的自家目录。以gou为例,在第上步的基础上,首先/etc/vsftpd_user_conf/gou文件中加入:
local_root=/home/ftpsite/gou
/home/ftpsite下新建gou目录,并将权限设为virtual_user:
9.添加FTP用户的步骤
1.在account.txt中添加用户名和密码
2.运行如下命令,将用户名和密码添加到数据库中
db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
3.在/home/ftpsite中新建一个文件夹,与用户明相同
4.在vsftpd_user_conf文件夹下新建和用户名相同的文件,并在其中加入
local_root=/home/ftpsite/用户名
注:按照这个做,能实现虚拟用户的配置,不过,个人认为不要把单独的用户建立的ftpsite文件夹下,应该单独建立,只要他的文件夹拥有者权限是virtual_user就成.
范例:
1.在account.txt中添加用户名和密码(如添加一个test password)
2.运行如下命令,将用户名和密码添加到数据库中
db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
3.在/home中新建一个文件夹,与用户明相同(mkdir /home/test
chown virtual_user:virtual_user /home/test)
4.在vsftpd_user_conf文件夹下新建和用户名相同的文件,并在其中加入
local_root=/home/用户名
(如:local_root=/home/test)
注意:如果需要对虚拟用户做权限设置,配置文件参考
vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=ftp
pam_service_name=vsftpd
listen=YES
listen_port=21
pasv_min_port=30000
pasv_max_port=30999
ftpd_banner=Welcom to my FTP server.
xferlog_enable=YES
xferlog_std_format=YES
local_umask=022
one_process_model=NO
anon_world_readable_only=NO
connect_from_port_20=YES
user_config_dir=/etc/vsftpd/userconf/
vi wg_upload
local_root=/var/ftp/wg_upload/ #mkdir -p /var/ftp/wg_upload chown -R ftp:ftp /var/ftp/wg_upload
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
vi wg_down
local_root=/var/ftp/wg_upload/
write_enable=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
[关联资料]
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORTN+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORTP命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。
如果只想提供主动模式,修改vsftpd.conf为:
port_enable=YES
connect_from_port_20=YES
pasv_enable=NO
########################
#pasv_min_port=30000
#pasv_max_port=30999
这里只给出日志这块的参数设置
##################log settings###################
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/xferlog
#
#log in two files /var/log/xferlog and /var/log/vsftpd.log
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
#log time setting
这里只给出日志这块的参数设置(很不错的参数)
##################log settings###################
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/xferlog
#
#log in two files /var/log/xferlog and /var/log/vsftpd.log
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
#log time setting
use_localtime=YES #时间的精确
分享到:
相关推荐
### vsftpd虚拟用户的配置详解 #### 一、虚拟用户概念 在介绍具体的配置步骤之前,我们先来了解一下什么是虚拟用户。虚拟用户是指在FTP服务器上使用的非真实系统账户,通常用于提高安全性以及方便管理和控制。 **...
VSFTPD 虚拟用户建立是指在 CentOS 服务器上安装和配置 VSFTPD 服务,以便实现虚拟用户的 FTP 访问。下面是相关的知识点: 1. 安装 VSFTPD 服务 在 CentOS 服务器上,需要安装 VSFTPD 服务相关组件,包括 VSFTPD ...
vsftpd 虚拟用户设置权限 vsftpd 虚拟用户设置权限是指在 vsftpd 服务器中,如何设置虚拟用户的权限,以满足不同的用户需求。本文将详细介绍如何设置虚拟用户的权限,包括普通用户、管理员用户和网站管理员用户的...
### Centos7下安装vsftpd并启用虚拟用户访问 ...以上步骤完成了CentOS 7环境下vsftpd的安装与虚拟用户功能的配置。通过这种方式,可以有效地管理FTP服务器上的用户访问权限,提高安全性与灵活性。
Centos 8 vsftpd 多用户 FTP 服务器配置完美方案 在CentOS 8系统中,配置vsftpd多用户FTP服务器,实现多虚拟用户...同时,本文还介绍了vsftpd.conf配置文件的详细参数设置,实现了多用户虚拟用户方式的FTP服务器配置。
5. 配置 vsftpd.conf(设置虚拟用户配置项) 在 /etc/vsftpd/vsftpd.conf 文件中添加以下配置项: guest_enable=YES guest_username=vftpuser pam_service_name=vsftpd 6. 重启 vsftpd 服务 重启 vsftpd 服务,...
### 建立Vsftpd虚拟用户 #### 1. FTP登录方式概述 FTP(File Transfer ...通过以上步骤,我们可以成功地配置Vsftpd服务器使用虚拟用户进行认证,这不仅可以提高系统的安全性,同时也便于管理员管理和维护用户账号。
总之,安装并配置VSFTPD虚拟目录涉及多个步骤,包括安装软件、配置服务、创建虚拟用户、设置数据库和权限,以及验证服务的正确运行。这个过程需要对Linux系统管理、FTP服务原理以及PAM认证机制有一定的理解。一旦...
VSFTPD 虚拟用户配置步骤 VSFTPD 是一个功能强大且流行的 FTP 服务器软件,对于大多数 Linux 发行版来说都是默认的 FTP 服务器解决方案。虚拟用户配置是 VSFTPD 中的一种高级配置方式,允许管理员创建虚拟用户账户...
在本文中,我们将深入探讨如何在CentOS 5.5 x86_64环境下配置Vsftpd服务器的虚拟用户模式。虚拟用户模式允许管理员创建独立于系统用户的FTP账户,提供更高的安全性和管理便利性。 首先,我们需要安装Vsftpd和必要的...
本教程将详细讲解如何在Linux环境下配置VSFTPD,实现FTP服务器的虚拟用户功能,以便为不同的用户提供独立的权限和目录访问。虚拟用户允许我们通过用户名和密码认证,而这些信息并不直接与系统的实际用户账户对应,...
4. 修改 vsftpd 配置:启用虚拟用户模式(`virtual_use_local_users=YES`),配置 pam 模块认证。 5. 权限设定:为虚拟用户指定家目录和文件权限,如 `chown vuser:vuser /home/vuser` 并设置 `chmod 755 /home/...
本文介绍了CentOS5中vsftp虚拟用户配置的实例,包括安装db4-utils软件包、创建logins_list文件、生成vsftpd_login.db文件、配置PAM认证、创建vsftpd_user_conf目录、配置vsftpd.conf文件、重启vsftpd服务等步骤。...
### 配置vsftpd本地用户登录详解 在Linux系统中,vsftpd(Very Secure FTP Daemon)是一款非常流行的FTP服务器软件,它以其强大的安全性和稳定性而被广泛使用。本文将详细介绍如何配置vsftpd来支持本地用户的登录,...
vsftpd.conf 配置大全 本文档旨在介绍 vsftpd 配置文件的详细内容,帮助读者深入理解 vsftpd 的配置选项。vsftpd 是一个功能强大且流行的 FTP 服务器软件,广泛应用于 Linux 和 Unix 系统中。了解 vsftpd 配置文件...