热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vsftp服务的详细使用方法

vsftpd概述vsftpd是“verysecureFTPdaemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个UNIX类操作系统上运行的服务器的名字,

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(文件在/var/ftp)

1,安装vsftpd服务

[root@localhost ~]# yum install vsftpd -y   ##安装服务
[root@localhost ~]# cd /etc/vsftpd/    ##此目录是配置文件目录
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# systemctl start vsftpd     ##开启vsftpd服务
[root@localhost vsftpd]# systemctl stop firewalld.service    ##关闭防火墙
[root@localhost vsftpd]# setenforce 0    ##关闭增强功能
[root@localhost vsftpd]# ls /var/ftp/        ##切换到ftp目录下
pub
[root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt   ##添加一个文本文件

2,用测试机cmd访问vsftpd服务(cmd连接ftp)并下载文件

C:\Users\xy007>ftp 192.168.13.140    ##访问ftp服务
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): ftp       ##匿名访问
331 Please specify the password.
密码:                                                ##密码无 回车
230 Login successful.
ftp> pwd            ##查看当前路径
257 "/"               ##ftp服务的根目录
ftp> ls -a           ##查看目录中的内容
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
.
..
pub
test.txt               ##服务器中的文件
226 Directory send OK.
ftp: 收到 25 字节,用时 0.00秒 25000.00千字节/秒。
ftp> get test.txt  ##下载文件到本地(在哪个磁盘的访问就下载到哪里,可以切换磁盘来下载e:)
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   ##在c盘中创建一个test1.txt然后上传到Linux中
200 PORT command successful. Consider using PASV.
550 Permission denied.    ##此时是权限受限的

vsftp服务的详细使用方法

3,修改vsftpd配置文件将匿名访问开启最大权限

[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]# ls
pub  test.txt
[root@localhost ftp]# ls -l
总用量 4
drwxr-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权限最大

4,用测试机cmd访问ftp并上传本地文件到Linux上

C:\Users\xy007>ftp 192.168.13.140   ##访问ftp服务
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): ftp
331 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删除文件

5,查看上传的文件

[root@localhost ftp]# cd /var/ftp/pub  ##切换到pub目录下
[root@localhost pub]# ls     ##查看上传的文件
test1.txt

二,利用本地用户登录ftp(文件在家目录)

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

1,创建系统用户

[root@localhost pub]# useradd zhangsan   ##创建用户并设置用户密码
[root@localhost pub]# passwd zhangsan
[root@localhost pub]# useradd lisi   ##创建用户并设置用户密码
[root@localhost pub]# passwd lisi

2,测试机上cmd使用用户登录ftp

C:\Users\xy007>ftp 192.168.13.140   ##登录ftp服务
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan   ##使用本地用户
331 Please specify the password.
密码:
230 Login successful.
ftp> ls /       ##查看用户/下的目录文件,直接到系统根目录下
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
/bin
/boot
/dev
/etc
/home
/lib
/lib64
/media
/mnt
/opt
/proc
/root
/run
/sbin
/srv
/sys
/tmp
/usr
/var
226 Directory send OK.
ftp: 收到 126 字节,用时 0.02秒 7.88千字节/秒。

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

[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf    ##修改配置文件

chroot_local_user=YES   ##开启限制本地访问系统目录模块
allow_writeable_chroot=YES ##添加写的权限

[root@localhost pub]# systemctl restart vsftpd   ##重启服务

4,测试机cmd访问

C:\Users\xy007>ftp 192.168.13.140   ##访问ftp
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan   ##用户zhangsan
331 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

1,设置user-list(默认拒绝),允许或者拒绝特定用户登录ftp

[root@localhost pub]# cd /etc/vsftpd/  ##切换到vsftpd配置文件目录
[root@localhost vsftpd]# vim vsftpd.conf

userlist_enable=YES ##确认user-list开启

[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# echo "zhangsan" >> user-list   ##将zhangsan用户添加到列表中
[root@localhost vsftpd]# systemctl restart vsftpd    ##重启服务

2,用测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan   ##使用zhangsan登录
530 Permission denied.
登录失败。                                        ##直接拒绝登录
ftp>

3,设置列表为仅允许

[root@localhost ftp]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf  ##配置vsftpd配置文件
userlist_enable=YES
userlist_deny=NO   ##添加列表允许

[root@localhost vsftpd]# systemctl restart vsftpd   ##重启服务

4,测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan   ##用zhangsan去登录
331 Please specify the password.
密码:
230 Login successful.        ##登录成功
ftp> by
221 Goodbye.

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): lisi       ##用lisi去登录
530 Permission denied.
登录失败。                           ##登录失败

三,建立虚拟用户账户使用ftp(文件在系统用户vuser家目录)

1,创建虚拟用户文件

[root@localhost vsftpd]# cd /etc/vsftpd/  ##切换到配置文件目录下
[root@localhost vsftpd]# vim vuser      ##创建虚拟用户文件

lisa           ##奇数行为用户名
123123    ##偶数行为密码
tom
123123

2,转换数据库文件,设置安全权限

[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

3,编辑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   ##连接的密码服务

4,开启虚拟用户,使用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   ##重启服务

5,测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(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

6,单独用户配置,指定上传文件的权限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  ##重启服务

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

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(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

谢谢阅读!


推荐阅读
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • IP双栈环境下网络应用迁移
    IPv4向IPv6迁移有多种途径,在选择具体的迁移方式时,当前环境中运行的应用是否支持IPv6是重要的考量因素之一,同时在编写新的应用时,需要考虑新编写的应用不仅可以适应当前主流的IPv4环境, ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • 利用 Python Paramiko 库在远程服务器上高效执行 Shell 脚本的方法与技巧 ... [详细]
  • ;etcftpusers的设定是限制系统上的某些用户不能使用FTP传送文件,etcftphosts的设定是限制不允许某些主机连接到你的FTP服务器,这样做是为了保证系统的安全性。e ... [详细]
  • centos ftp服务器搭建_CentOS7服务搭建搭建FTP服务器(下)
    FTP服务器搭建接上篇:CentOS7服务搭建----搭建FTP服务器(上)一、FTP相关配置文件说明相关配置文件:etcvsftpdvsftpd.co ... [详细]
  • 服务器监控系统大概多少钱,服务器监控系统 报价
    服务器监控系统报价内容精选换一换设置“云服务器名称”。名称可自定义,但需符合命名规则:只能由中文字符、英文字母、数字及“_”、“-”、“.”组成。如果同 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
author-avatar
手机用户2602922607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有