使用VSFTPD传输文件

一、文件传输协议

FTP(File Transfer Protocol)是一种在互联网进行文件传输的协议,基于B/S模式,默认使用20、21端口,其中20端口(数据端口)用于数据传输,21端口(命令端口)用于

接收客户端发出的相关FTP命令与参数。

FTP协议的两种工作模式:

主动模式:FTP服务器主动向客户端发起链接请求。

被动模式:FTP服务器等待客户端发起链接请求(默认模式)。

vsftpd(very secure ftp daemon)是一款运行在Linux上的FTP服务程序。

二、vsftpd服务程序

vsftp允许用户以三种模式登陆到FTP服务器上。

1.匿名开放模式:任何人可以无需密码验证直接登陆到FTP服务器上。

2.本地用户模式:通过Linux系统本地的账户密码进行认证登陆。

3.虚拟用户模式:需要为FTP服务单独建立用户数据库文件,这些账户仅提供FTP服务程序认证。(最安全的模式)

ftp是Linux系统中以命令行方式管理FTP服务的客户端工具。

一)匿名开放模式

vsftpd默认开启了匿名开放模式。

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

在 vsftpd 服务程序的匿名开放认证模式下,其账户统一为 anonymous,密码为空。

而且在连接到 FTP 服务器后,默认访问的是/var/ftp 目录。接下来具体操作,注意root权限以及SELinux。

三)本地用户模式

开启方式:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=

重启:

[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd

更改user_list:

[root@linuxprobe ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root #删除它

登陆:

ftp 140.143.88.174

三)虚拟用户模式

步骤:

1)创建用于进行 FTP 认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。例如,

[root@linuxprobe ~]# cd /etc/vsftpd/
[root@linuxprobe vsftpd]# vim vuser.list
zhangsan
redhat
lisi
redhat

用 db_load 命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件,并且降低
数据库文件的权限(避免其他人看到数据库文件的内容),然后再把原始的明文信息文件
删除。

[root@linuxprobe vsftpd]# db_load -T -t hash -f vuser.list vuser.db
[root@linuxprobe vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version , native byte-order)
[root@linuxprobe vsftpd]# chmod vuser.db
[root@linuxprobe vsftpd]# rm -f vuser.list

2)创建 vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。
FTP 服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置。

由于 Linux 系统中的每一个文件都有所有者、所属组属性,例如使用虚拟账户“张三”
新建了一个文件,但是系统中找不到账户“张三”,就会导致这个文件的权限出现错误。为此,
需要再创建一个可以映射到虚拟用户的系统本地用户。简单来说,就是让虚拟用户默认登录
到与之有映射关系的这个系统本地用户的家目录中,虚拟用户创建的文件的属性也都归属于
这个系统本地用户,从而避免 Linux 系统无法处理虚拟用户所创建文件的属性权限。
为了方便管理 FTP 服务器上的数据,可以把这个系统本地用户的家目录设置为/var 目录
(该目录用来存放经常发生改变的数据)。并且为了安全起见,我们将这个系统本地用户设置
为不允许登录 FTP 服务器,这不会影响虚拟用户登录,而且还可以避免黑客通过这个系统本
地用户进行登录。

[root@linuxprobe ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@linuxprobe ~]# ls -ld /var/ftproot/
drwx------. virtual virtual Jul : /var/ftproot/
[root@linuxprobe ~]# chmod -Rf /var/ftproot/

3)建立用于支持虚拟用户的PAM文件

PAM 是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改 。
新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu,其中 PAM 文件内的“db=”参数为
使用 db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

[root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

4)在 vsftpd 服务程序的主配置文件中通过 pam_service_name 参数将 PAM 认证文件的名称修改为 vsftpd.vu

 anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES

5)为虚拟用户设置不同的权限。

[root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/
[root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/
[root@linuxprobe vusers_dir]# touch lisi
[root@linuxprobe vusers_dir]# vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
user_config_dir=/etc/vsftpd/vusers_dir

6)设置 SELinux 域允许策略

使用VSFTPD传输文件的更多相关文章

  1. 第11章 使用Vsftpd服务传输文件

    章节简述: 本章节先通过介绍文件传输协议来帮助读者理解FTP协议的用处,安装vsftpd服务程序并逐条分析服务文件的配置参数. 完整演示vsftpd服务匿名访问模式.本地用户模式及虚拟用户模式的配置方 ...

  2. FTP相关、用vsftpd搭建ftp、xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务

    1.FTP相关(file transfer protocol,文件传输协议)   2.用vsftpd搭建ftp安装:yum install vsftpd -y创建一个虚拟用户:useradd  vft ...

  3. Vsftpd服务传输文件(转)

    本章节先通过介绍文件传输协议来帮助读者理解FTP协议的用处,安装vsftpd服务程序并逐条分析服务文件的配置参数. 完整演示vsftpd服务匿名访问模式.本地用户模式及虚拟用户模式的配置方法,介绍PA ...

  4. Linux基础学习-使用vsftpd服务传输文件

    使用vsftpd服务传输文件 1 安装vsftpd [root@qdlinux ~]# yum install vsftpd Loaded plugins: product-id, search-di ...

  5. 《Linux就该这么学》培训笔记_ch11_使用Vsftpd服务传输文件

    <Linux就该这么学>培训笔记_ch11_使用Vsftpd服务传输文件 文章最后会post上书本的笔记照片. 文章主要内容: 文件传输协议 Vsftpd服务程序 匿名访问模式 本地用户模 ...

  6. FTP服务:使用 vsftpd 服务传输文件

    1.文件传输协议 今天的互联网是由几千万台个人计算机.工作站.服务器.小型机.大型 机.巨型机等具有不同型号.不同架构的物理设备共同组成的,而且即便是个人计算机,也 可能会装有 Windows.Lin ...

  7. Ubuntu 16.04 安装ftp服务器传输文件

    最近在搞深度学习,老师比较宝贝他的服务器,要求我以后负责管理服务器.往后所有要使用服务器的人都必须向我申请账号,然后只允许客户端访问,使用文件传输软件传输文件.像我这样一个linux菜逼,这种要求不是 ...

  8. VSFTPD全攻略(/etc/vsftpd/vsftpd.conf文件详解)

    /etc/vsftpd/vsftpd.conf文件详解,分好类,方便大家查找与学习 #################匿名权限控制############### anonymous_enable=YE ...

  9. xshell使用xftp传输文件 使用pure-ftpd搭建ftp服务

    xshell使用xftp传输文件 下载xftp5 https://www.baidu.com/link?url=8rtxgX3JRIbUFO1Samzv5aXhfwRG7Cf8i4vi573QexoH ...

随机推荐

  1. bzoj 3566

    非常好也是比较难的题 首先,不难看出这是一道树形的概率dp 那么我们就要考虑转移 我们发现,一个点能充上电的概率是这个点本身通电的概率+这个点的子节点给他传过来电的概率+这个点的父节点给他传过来电的概 ...

  2. CF979E

    非常好的dp,非常考dp的能力 很显然是个计数问题,那么很显然要么是排列组合,要么是递推,这道题很显然递推的面更大一些. 那么我们来设计一下状态: 设状态f[i][j][k][p]表示目前到了第i个点 ...

  3. SpringMVC 框架完成图片上传到项目路径操作

    /** * 保存添加 * * @return */ @RequestMapping(value = "taizhang/add.action", method = { Reques ...

  4. Visual Studio 2017 error: Unable to start program, An operation is not legal in the current state

    For me, the solution (workaround) is to turn off JavaScript debugging on Chrome, which I believe is ...

  5. IDM的Google商店插件

    官方扩展链接:https://chrome.google.com/webstore/detail/idm-integration-module/ngpampappnmepgilojfohadhhmbh ...

  6. 【第一部分】09Leetcode刷题

    一.位1的个数 题目:191. Number of 1 Bits C++ Soution 1: class Solution { public: int hammingWeight(uint32_t ...

  7. Zabbix监控——Zabbix自定义用户参数制作监控项

    https://blog.51cto.com/183530300/2087774 https://www.cnblogs.com/richardzgt/articles/7889404.html

  8. CSS3 伸缩布局盒模型

    CSS3引入的布局模式Flexbox布局,主要思想是让容器有能力让其子项目能够改变其宽度,高度,以最佳方式填充可用空间.Flex容器使用Flex项目可以自动放大与收缩,用来填补可用的空闲空间.更重要的 ...

  9. JavaScript 匿名函数

    转载自:https://www.cnblogs.com/ClareZjy/p/6365891.html   零:介绍 匿名函数的基本形式为(function(){...})(); 前面的括号包含函数体 ...

  10. [转] js中的事件委托或是事件代理详解

    起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...