千家信息网

vsftpd服务详解(匿名用户访问,本地用户访问,指定用户访问控制,虚拟用户)

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,vsftpd详解vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 L
千家信息网最后更新 2025年12月01日vsftpd服务详解(匿名用户访问,本地用户访问,指定用户访问控制,虚拟用户)

vsftpd详解

vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。
特点
非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高
小巧轻快,安全易用。

ftp、sftp、vsftp、vsftpd详解

ftp 是File Transfer Protocol的缩写,文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。
sftp 是SSH File Transfer Protocol的缩写,安全文件传输协议;
vsftp 是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP从此名称可以看出来,编制者的初衷是代码的安全;
vsftpd 是very secure FTP daemon的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件;

匿名用户登录FTP

[root@localhost ~]# yum install vsftpd -y ##安装vsftp服务[root@localhost ~]# cd /etc/vsftpd/[root@localhost vsftpd]# lsftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh[root@localhost vsftpd]# systemctl start vsftpd  ##开启服务[root@localhost vsftpd]# systemctl stop firewalld.service s[root@localhost vsftpd]# setenforce 0[root@localhost vsftpd]# echo "this is text" > /var/ftp/test.txt ##写一段内容到测试文件中

客户机去测试访问

C:\Users\CHEN>ftp 192.168.136.178 ##访问ftp服务连接到 192.168.136.178。220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): ftp  ##匿名访问331 Please specify the password.密码:  ##密码没有,直接回车230 Login successful.ftp> pwd  ##查看当前的绝对路径257 "/"ftp> ls -a  ##查看目录中的内容200 PORT command successful. Consider using PASV.150 Here comes the directory listing....pubtest.txt  ##服务器中的文件226 Directory send OK.ftp: 收到 25 字节,用时 0.00秒 25000.00千字节/秒。ftp> get test.txt  ##下载文件到本地客户机,在哪个磁盘访问的就会下载到哪里,可以切换磁盘来下载200 PORT command successful. Consider using PASV.150 Opening BINARY mode data connection for test.txt (13 bytes).226 Transfer complete.ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。

客户机查看有没有收到文件

ftp> put test1.txt  ##创建一个文件上传到服务器中200 PORT command successful. Consider using PASV.550 Permission denied.  ##权限受限

回到服务器开启匿名访问最大的权限

[root@localhost ftp]# cd /etc/vsftpd/[root@localhost vsftpd]# vim vsftpd.conf##在配置文件中查找开启下列选项anonymous_enable=YES       ##开启匿名用户local_enable=YES    ##本地用户write_enable=YES    ##写入权限local_umask=022     ##本地用户反掩码anon_upload_enable=YES   ##上传权限开启anon_mkdir_write_enable=YES   ##开启创建目录并且能够写入anon_other_write_enable=YES   ##添加一个other的重命名和删除的权限[root@localhost vsftpd]# systemctl restart vsftpd  ##重启服务[root@localhost vsftpd]# cd /var/ftp/    ##切换到ftp目录下[root@localhost ftp]# lspub  test.txt[root@localhost ftp]# ls -l总用量 4drwxr-xr-x. 2 root root  6 10月 31 2018 pub-rw-r--r--. 1 root root 13 11月  5 19:14 test.txt[root@localhost ftp]# chmod 777 pub   ##将pub目录权限给最大,注意不能直接给ftp权限最大

再用客户机去访问ftp,上传本地文件到服务器

C:\Users\CHEN>ftp 192.168.136.178 ##访问ftp服务连接到 192.168.136.178。220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): ftp331 Please specify the password.密码:230 Login successful.ftp> cd pub/                             ##切换到pub目录下250 Directory successfully changed.ftp> put test1.txt                      ##上传文件200 PORT command successful. Consider using PASV.150 Ok to send data.226 Transfer complete.ftp: 发送 13 字节,用时 0.03秒 0.41千字节/秒。ftp> by     ##退出221 Goodbye.##可以使用delete删除文件

本地用户登录ftp文件默认在家目录

root@localhost ~]# useradd zhangsan[root@localhost ~]# passwd zhangsan更改用户 zhangsan 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。[root@localhost ~]# useradd lisi[root@localhost ~]# passwd lisi更改用户 lisi 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

防止本地用户访问系统目录,限制只访问用户家目录

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 101 chroot_local_user=YES  ##第101行开启本地访问系统目录102 chroot_list_enable=YES   ##102行添加写的权限[root@localhost ~]# systemctl restart vsftpd

去客户机去测试访问

C:\Users\CHEN>ftp 192.168.136.178连接到 192.168.136.178。220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): zhangsan331 Please specify the password.密码:230 Login successful.ftp> cd /    ##切换到系统根目录250 Directory successfully changed.ftp> ls     ##查看发现还是在用户的家目录中,访问不到系统的其他目录了,增强了安全性200 PORT command successful. Consider using PASV.150 Here comes the directory listing.226 Directory send OK.

设置允许,拒绝指定用户访问ftp

[root@localhost ~]# cd /etc/vsftpd/[root@localhost vsftpd]# lsftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh[root@localhost vsftpd]# vim vsftpd.confuserlist_enable=YES ##确认user-list开启[root@localhost vsftpd]# lsftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh[root@localhost vsftpd]# echo "zhangsan" >> user-list   ##将zhangsan用户添加到列表中,user-list(默认拒绝),允许或者拒绝特定用户登录[root@localhost vsftpd]# systemctl restart vsftpd    ##重启服务

用客户机测试访问ftp

C:\Users\CHEN>ftp 192.168.136.178连接到 192.168.136.178。220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): zhangsan530 Permission denied.登录失败。                                        ##拒绝登录

设置列表为仅允许

[root@localhost ftp]# cd /etc/vsftpd/[root@localhost vsftpd]# vim vsftpd.conf  ##配置vsftpd配置文件userlist_enable=YESuserlist_deny=NO   ##添加列表允许[root@localhost vsftpd]# systemctl restart vsftpd   ##重启服务

客户机去测试访问

C:\Users\CHEN>ftp 192.168.136.178连接到 192.168.136.178。220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): zhangsan   ##用zhangsan去登录331 Please specify the password.密码:230 Login successful.        ##登录成功ftp> by221 Goodbye.C:\Users\CHEN>ftp 192.168.136.178连接到 192.168.136.178。220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.13.140:(none)): lisi       ##用lisi去登录530 Permission denied.登录失败。                           ##登录失败

建立虚拟用户登录使用ftp

文件在系统用户vuser家目录

创建虚拟用户文件

[root@localhost ~]# cd /etc/vsftpd/[root@localhost vsftpd]# vim vuserchen           ##奇数行为用户名123123    ##偶数行为密码cheng123123转换成数据库文件,设置权限[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db  ##将vuser转换成数据库文件,T转换,t类型,f指定文件[root@localhost vsftpd]# chmod 600 vuser  ##设置权限[root@localhost vsftpd]# chmod 600 vuser.db 编辑pam认证模块支持虚拟用户登录root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser  

创建系统用户,指定家目录,不能登录

[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu   ##编译pam认证模块auth required pam_userdb.so db=/etc/vsftpd/vuser    ##识别转换过的数据库文件account required pam_userdb.so db=/etc/vsftpd/vuser   ##连接的密码服务##开启虚拟用户,使用pam模块认证登录[root@localhost vsftpd]# vim vsftpd.conf  ##修改配置文件##大G到末行#pam_service_name=vsftpd   ##注释##添加下面三行内容guest_enable=YES           ##开启来宾用户访问guest_username=vuser      ##使用vuser用户名pam_service_name=vsftpd.vu   ##pam模块[root@localhost vsftpd]# systemctl restart vsftpd   ##重启服务

客户机去测试

C:\Users\xy007>ftp 192.168.136.178连接到 192.168.136.178220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): tom   ##使用虚拟用户tom登录331 Please specify the password.密码:230 Login successful.ftp> put test1.txt      ##上传一个文件200 PORT command successful. Consider using PASV.150 Ok to send data.226 Transfer complete.ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。##查看文件的权限为600[root@localhost vsftpd]# ls -l /opt/vuser/总用量 4-rw-------. 1 vuser vuser 13 11月  5 22:51 test1.txt

单独用户配置,指定上传文件的权限644

[root@localhost vsftpd]# vim vsftpd.conf ##大G末行添加user_config_dir=/etc/vsftpd/vu_dir   ##单独用户配置文件夹[root@localhost vsftpd]# mkdir vu_dir  ##创建文件夹[root@localhost vsftpd]# cd vu_dir/[root@localhost vu_dir]# vim lisa     ##在配置文件夹里创建用户配置文件anon_umask=022  ##指定上传文件的权限[root@localhost vu_dir]# systemctl restart vsftpd  ##重启服务

客户机去测试使用lisa用户登录,查看上传文件权限

C:\Users\xy007>ftp 192.168.136.178连接到 192.168.136.178220 (vsFTPd 3.0.2)200 Always in UTF8 mode.用户(192.168.136.178:(none)): lisa    ##使用lisa登录331 Please specify the password.密码:230 Login successful.ftp> put 111.txt        ##上传文件200 PORT command successful. Consider using PASV.150 Ok to send data.226 Transfer complete.ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。[root@localhost vu_dir]# ls -l /opt/vuser/   ##查看上传文件的权限总用量 8-rw-r--r--. 1 vuser vuser 13 11月  5 22:58 111.txt    ##lisa上传文件权限644-rw-------. 1 vuser vuser 13 11月  5 22:51 test1.txt  ##tom上传文件权限600
用户 文件 服务 密码 权限 登录 目录 服务器 系统 字节 客户 客户机 配置 安全 测试 最大 安全性 模块 缩写 传输 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络安全管理的论文 软件开发故事地图 为什么明日之战服务器不一样 服务器的控制器 银行数据库升级能办理业务吗 逍遥问道gm数据库 26中学校的视频课软件开发 mc服务器主城重生点生成指令 单位如何进行网络安全管理 百度公司网络安全宣讲 金融科技支撑下的互联网企业 炸ice服务器的人去法庭了 我的世界服务器公会名更改 mysql数据库数据大小 网络安全和软件开发职业 数据库调用api接口实例 服务器上如何安装win7系统 通用软件开发面试 2020年网络安全图标 软件开发与软件实施的区别 字节跳动服务器硬件有哪些 网络技术控大全 科技互联网的核心竞争力 网上服务器安全狗怎么卸载 26中学校的视频课软件开发 小度播放网络安全的画的手抄报 电脑录屏软件开发 大学生电信网络安全班会总结 是否应该扩大网络安全犯罪的边界 数据库3级别的锁是怎么产生的
0