vsftpd虚拟用户

vsftpd虚拟用户

  • 简单介绍
  • 环境
  • vsftp安装
  • 备份配置文件
  • vsftpd.conf
  • 64位pam认证
  • 虚拟用户名和密码
  • 生成db文件
  • 虚拟用户配置目录
  • 授权
  • 启动
  • 连接
  • 总结

简单介绍

centos7.x系统上边安装vsftpd,并配置虚拟用户


环境

系统 版本
CentOS 7.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 虚拟用户的方法,有问题联系博主

你可能感兴趣的:(linux,vsftpd)