vsftpd虚拟用户


介绍

vsftpd是一个在Linux系统上广泛使用的FTP服务器软件,支持多种配置选项和安全特性。在vsftpd中,虚拟用户是指那些使用FTP服务进行文件传输的用户,但不直接对应于服务器上的本地系统用户。这种机制可以增强系统的安全性,因为虚拟用户与本地用户是分离的。
使用虚拟用户的vsftpd配置通常涉及以下几个步骤:

  1. 创建虚拟用户列表:首先,需要创建一个文本文件,其中列出所有虚拟用户的名字和对应的密码。这个文件通常是虚拟用户的密码文件,格式通常是用户名和密码的明文或者加密后的字符串。
  2. 创建虚拟用户数据库:vsftpd可以使用不同的数据库后端来存储虚拟用户的信息,比如dbm、plaintext或mysql等。根据所选的 后端,需要创建相应的数据库文件。
  3. 配置vsftpd以使用虚拟用户:在vsftpd的配置文件中(通常是/etc/vsftpd/vsftpd.conf),需要指定使用虚拟用户的参数。这包括告诉vsftpd使用哪个虚拟用户数据库文件,以及在用户登录时如何处理这些用户。
  4. 限制虚拟用户的权限:可以配置vsftpd,使得虚拟用户只能访问特定的目录或者文件。这样可以进一步减少安全风险,并确保用户只能访问其被授权的资源。
  5. 配置vsftpd监听端口和模式:根据需要,可以配置vsftpd监听不同的端口,以及运行在主动模式还是被动模式。主动模式(PORT)通常用于直接客户端与服务器之间的数据连接,而被动模式(PASV)则适用于防火墙后的服务器。
  6. 启动和测试vsftpd服务:配置完成后,启动vsftpd服务并进行测试,以确保虚拟用户能够正常登录并访问其指定的资源。

虚拟用户的优点

  • 安全性增强:因为虚拟用户与本地系统用户分离,即使某个虚拟用户的账户被破解,攻击者也不会获得系统上的其他权限。
  • 易于管理:可以集中管理所有的FTP用户,而不是为每个需要访问文件的用户在系统上创建一个本地账号。
  • 灵活性:可以轻松地更改用户权限,而不需要更改系统用户。

在使用vsftpd虚拟用户时,应当注意遵守相关的安全准则和法规要求,确保用户数据的安全和隐私保护。


环境

系统版本
CentOS7.6.1810 (Core)
CPU/内存4核、8G
vsftp

vsftp安装

yum -y install vsftpd

备份配置文件

cd /etc/vsftpd/
mv vsftpd.conf vsftpd.conf.bak

vsftpd.conf

# 禁用匿名FTP登录
anonymous_enable=NO

# 允许本地用户通过FTP登录到服务器
local_enable=YES

# 允许用户上传文件到服务器
write_enable=YES

# 设置本地用户上传文件的权限掩码
local_umask=022

# 启用目录信息消息,允许服务器在用户进入目录时显示消息
dirmessage_enable=YES

# 启用传输日志,用于记录FTP传输的详细信息
xferlog_enable=YES

# 控制数据连接的端口,使用端口20进行数据连接
connect_from_port_20=YES

# 指定传输日志的文件路径
xferlog_file=/var/log/vsftpd.log

# 使用标准的传输日志格式记录传输日志
xferlog_std_format=YES

# 允许ASCII模式上传文件
ascii_upload_enable=YES

# 允许ASCII模式下载文件
ascii_download_enable=YES

# 启用chroot列表,可以配置哪些用户被限制在其主目录下
chroot_list_enable=YES

# 启用FTP服务器监听
listen=YES

# 启用虚拟用户登录
guest_enable=YES

# 指定虚拟用户的用户名,通常是一个特殊的FTP用户
guest_username=ftp

# 指定FTP服务器监听的端口号,这里是50021
listen_port=50021

# 指定PAM服务的名称,用于身份验证
pam_service_name=vsftpd

# 启用用户列表功能,允许定义哪些用户可以访问FTP服务器
userlist_enable=YES

# 启用TCP包过滤器,允许使用TCP Wrapper配置限制访问
tcp_wrappers=YES

# 指定用户特定的配置文件目录,可以用于为不同用户定义不同的FTP设置
user_config_dir=/etc/vsftpd/vuser_conf

# 允许虚拟用户使用本地用户的权限
virtual_use_local_privs=YES

# 启用被动模式,允许客户端与服务器建立数据连接
pasv_enable=YES

# 指定被动模式数据连接的最小端口号
pasv_min_port=61001

# 指定被动模式数据连接的最大端口号
pasv_max_port=62000

# 允许在chroot环境中创建可写文件,通常在虚拟用户的情况下使用
allow_writeable_chroot=YES

64位pam认证

cat  /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
auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_ftp
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_ftp

虚拟用户名和密码

cat /etc/vsftpd/vuser_ftp.txt
test
111222
digitlink
111222
gitlink
123456789

生成db文件

  • 注意没添加一个虚拟用户,都需要重新生成db文件
cd /etc/vsftpd/
db_load -T -t hash -f vuser_ftp.txt vuser_ftp.db

虚拟用户配置目录

cd /etc/vsftpd/
mkdir vuser_conf
cd vuser_conf
# digitlink是用户,也是文件名字
cat digitlink
#----------------------------------------------------------------
# 指定本地用户的根目录,本地用户将被限制在此目录下
local_root=/data/ftp/digitlink

# 启用chroot列表,允许配置哪些用户被限制在其主目录下
chroot_list_enable=YES

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

# 允许匿名用户创建目录
anon_mkdir_write_enable=YES

# 允许匿名用户进行其他写操作
anon_other_write_enable=YES

# 设置匿名用户上传的文件权限掩码
anon_umask=022

# 不限制匿名用户的文件只能被它们自己读取
anon_world_readable_only=NO

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

# 允许匿名用户创建目录
anon_mkdir_write_enable=YES

# 允许匿名用户进行其他写操作
anon_other_write_enable=YES

# -----------------------------------------------------------------------------
cat gitlink
chroot_list_enable=YES
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

cat chroot_list
digitlink
gitlink

授权

cd /data/ftp/
chmod 777 ./* -R
chown ftp.root ./* -R

启动

*两种启动方式,任选其一

# 命令启动
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

# yum安装启动
systemctl start vsftpd.service 
# 开机自启
systemctl enable vsftpd.service  

连接

ftp 192.168.1.100 50021

总结

以上是centos上边部署vsftpd 虚拟用户的方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要配置vsftpd虚拟用户登录,需要按照以下步骤进行操作: 1. 安装vsftpd服务 在Linux系统中,使用以下命令安装vsftpd服务: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2. 创建虚拟用户账号文件 使用以下命令创建虚拟用户账号文件: ``` sudo touch /etc/vsftpd/virtual_users.txt ``` 在该文件中,每行输入一个虚拟用户的账号和密码,格式为: ``` username1 password1 username2 password2 ... ``` 3. 创建虚拟用户目录 使用以下命令创建虚拟用户目录,例如: ``` sudo mkdir /home/vsftpd/user1 sudo mkdir /home/vsftpd/user2 ``` 4. 创建虚拟用户配置文件 使用以下命令创建虚拟用户配置文件: ``` sudo touch /etc/vsftpd/virtual_users.conf ``` 在该文件中,为每个虚拟用户配置对应的目录和权限,格式为: ``` user1 local_root=/home/vsftpd/user1 write_enable=YES chroot_local_user=YES user2 local_root=/home/vsftpd/user2 write_enable=YES chroot_local_user=YES ``` 其中,`local_root`指定虚拟用户的根目录,`write_enable`指定是否允许虚拟用户上传和下载文件,`chroot_local_user`指定是否将虚拟用户限制在其根目录下。 5. 配置vsftpd服务 编辑vsftpd服务的配置文件`/etc/vsftpd.conf`,做以下修改: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # 添加以下内容 user_config_dir=/etc/vsftpd/user_conf virtual_use_local_privs=YES guest_enable=YES guest_username=ftp user_sub_token=$USER local_root=/home/vsftpd/$USER ``` 其中,`user_config_dir`指定用户配置文件的目录,`virtual_use_local_privs`指定虚拟用户使用本地权限,`guest_enable`指定启用虚拟用户登录,`guest_username`指定虚拟用户用户名,`user_sub_token`指定虚拟用户根目录的变量名。 6. 创建用户配置文件目录 使用以下命令创建用户配置文件目录: ``` sudo mkdir /etc/vsftpd/user_conf ``` 7. 创建用户配置文件 在用户配置文件目录中,为每个虚拟用户创建一个配置文件,例如: ``` sudo touch /etc/vsftpd/user_conf/user1 sudo touch /etc/vsftpd/user_conf/user2 ``` 在该文件中,为每个虚拟用户指定其对应的虚拟用户配置文件,格式为: ``` include /etc/vsftpd/virtual_users.conf ``` 8. 重启vsftpd服务 使用以下命令重启vsftpd服务: ``` sudo systemctl restart vsftpd ``` 完成以上步骤后,即可使用虚拟用户登录vsftpd服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值