linux vsftp创建虚拟用户

FTP有三种登录方式:匿名登录、本地系统用户登录和虚拟用户登录。

虚拟用户是ftp服务器的专用用户,它的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。

vsftp 配置安装

—、关闭防火墙

> systenmctl stop firewalld
> setenforce 0

或者永久性关闭防火墙

> #vim /etc/selinux/config
> SELINUX=disable

二、安装vsftpd服务
1、使用yum安装vsftpd

>   #yum -y install vsftpd*

2、备份vstpd主配置文件

#cp /etc/vdftpd/vdftpd/vsftpd.conf{,.bak}

三、配置虚拟用户访问的vsftpd服务
1、创建虚拟用户密码文件,奇数行为用户名,偶数行为密码

#vim /etc/vsftpd/vir_user
user1
1234567a
user2s
1234567b

2、生成虚拟用户数据库

#yum -y install libdb-utils
#db_load -T -t hash -f /etc/vdftpd/vir_user /etc/vdftpd/vir_user.db
#chomd 700 /etc/vdftpd/vir_udrt.db

3.配置vsftpd pam 验证文件
修改先前备份文件

#cp /etc/pam.d/vsftpd{,.balk}

将auth机account的所有配置行均注释掉,添加一下两行

#vim /etc/pam.d/vsrtpd

1 auth required pam_userdb.so db=/etc/vsftpd/vir_user
2 account required pam_userdb.so db=/etc/vsftpd/vir_user

4.添加一个系统用户‘virftp’,所有虚拟用户都会映射到此用户后对文件系统进行读写操作

#mkdir /ftproot
#useradd -d /ftproot -s /sbin/nologin virtp
#chown -R virtp:virftp /ftproot

5.设置vsftpd主配置文件

#vim /etc/vsftpd/vsftpd.conf

#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户
guest_enable=YES
#把虚拟账户映射到系统账户virftp
guest_username=virftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
vsftp配置文件啊翻译

anonymous_enable=YES 是否允许匿名登陆

local_enable=YES 允许本地登陆

write_enable=YES 启用任何形式的ftp 写入命令

local_umask=022 FTP上本本地的文件权限,默认是077,不过vsftp安装后的配置文件里默认是022

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

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

dirmessage_enable=YES 激活目录消息,向远程用户发送消息,进入某个目录

xferlog_enable=YES 激活上传/下载 日志记录

connect_from_port_20=YES 确保RORT传输连接来自端口 20

chown_uploads=YES
chown_username=whoever
设置 匿名用户上传文件的默认用户,不推荐使用root

xferlog_file=/var/log/xferlog 日志文件路径

xferlog_std_format=YES 日志文件使用标准ftpd xferlog格式的日志文件 ,默认位置 /var/log/xferlog

idle_session_timeout=600 更改超时空闲会话的默认值

data_connection_timeout=120 超时数据连接的默认值

nopriv_user=ftpsecure 创建ftp服务器 独立的用户

async_abor_enable=YES 启用 异步 ABOR 请求

ascii_upload_enable=YES 允许ASCII模式上传文件
ascii_download_enable=YES 允许ASCII模式下载文件

ftpd_banner=Welcome to blah FTP service. 自定义登陆标题字符串

deny_email_enable=YES 指定不允许匿名登陆电子邮件
banned_email_file=/etc/vsftpd/banned_emails 默认路径

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

指定 chroot 参数
CHROOT就是Change Root,也就是改变程序执行时所参考的根目录位置。CHROOT可以增进系统的安全性,限制

使用者能做的事

ls_recurse_enable=YES 启用 ls –R 选项

listen=NO 启用 listen 指令,vsftp 以独立模式运行侦听ipv4 套接字,该指令不能同时使用 with

listen_inv6 指令

listen_ipv6=YES 监听ipv6

pam_service_name=vsftpd 虚拟用户使用PAM认证方式

userlist_enable=YES 只允许userlist 文件中的账户登陆

tcp_wrappers=YES 是否允许tcp_wrappers 管理

anon_other_write_enable=YES 允许匿名用户改名和删除文件

anon_world_readable_only=YES 匿名用户可以读文件 反之就是不能读

pasv_min_port=30000
pasv_max_port=35000 PASV模式下指定端口范围

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6.配置虚拟用户各自的配置文件,文件名称是‘虚拟用户名’

#vim /etc/vsftpd/vsftpd_viruser/user1

#允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
#允许虚拟用户上传文件
anon_upload_enable=YES
#允许虚拟用户创建目录
anon_mkdir_write_enable=YES
#允许虚拟用户执行其他操作(如改名、删除)
anon_other_write_enable=YES
#上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
#指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/admin/

7.创建虚拟用户的根目录,要保证虚拟用户映射的系统用户,对这个根目录有读写权限

#mkdir -p /ftproot/admin/
#chown -R virftp.virftp /ftproot/admin/

8.关闭可以访问的用户
#vim /etc/vsftpd/ftpusers

四、测试配置结果
1.重启vsftpd服务

#systemctl restart vsftpd
#systemctl enable vsfpd

2.关闭防火墙

#systemctl stop firewalld

3.利用FileZilla工具连接测试

主机IP:192.168.124.44 用户名:user1 密码:1234567a
连接成功!
linux vsftpd 配置安装 (虚拟用户)_第1张图片