使用vsftpd 搭建ftp服务
ftp 基础服务器基础知识
ftp有三种登录方式。匿名登录(所有用户)、本地用户、虚拟用户(guest)。
FTP工作模式
主动模式:服务端从20端口主动向客户端发起链接。 控制端口21;数据传输端口20
过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端开始监听端口N+1,并在命令链路上用PORT命令发送N+1端口到FTP服务器,于是服务器会从自己的数据端口(20)向客户端指定的数据端口(N+1)发送连接请求,建立一条数据链路来传送数据。
被动模式:服务端在指定范围内某个端口被动等待及客户端链接。 控制端口21;数据传输端口 随机
过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PASV命令发送。于是服务器会开启一个任意的非特权端口P(P>1024),并在命令链路上把端口发送给客户端,然后客户端从自己的数据端口(N+1)向服务器的数据端口(P)发送连接请求,建立一条数据链路来传送数据。
优缺点
主动FTP对服务器管理有利,但对客户端管理不利,因为会在客户端产生随机端口建立连接,可能会被防火墙阻止。
被动FTP对客户端管理有利,但对服务球管理不利,因为在服务端建立连接时为随机端口,也可能会被防火墙阻止。
设置方式
主动模式
Port_enable=YES #开启主动模式
Connect_from_port_20=YES #当主动模式开启的时候 是否启用默认的20端口监听
Ftp_date_port=%portnumber% #上一选项使用NO参数时 指定数据传输端口 被动模式
PASV_enable=YES #开启被动模式
PASV_min_port=%number% #被动模式最低端口
PASV_max_port=%number% #被动模式最高端口
传输方式
文本模式:ASCII模式,以文本序列传输数据
二进制模式:Binary模式,以二进制序列传输数据
设置虚拟用户登录ftp服务器
yum 安装 vsftpd 服务,启动。
创建本地用户指定 shell 和本地目录。方便映射虚拟用户
useradd load -s /sbin/nologin -d /var/ftp/work
chmod 755 /var/ftp/work创建虚拟用户文件,并生成db文件,加入到pam 认证模块中
vim /etc/vsftpd/v_users
#这个文件中一行账户名,一行密码
db_load -T -t hash -f v_users vusers.db
vim /etc/pam.d/vsftpd #注释上面的原文件,加入下面的配置
auth required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vusers创建虚拟用户的配置目录,管理不同的虚拟账号。
#在主配置文件中设置虚拟用户的配置目录
vim /etc/vsftpd/vsftpd.conf
ser_config_dir=/etc/vsftpd/vconf.d
allow_writeable_chroot=YES ##允许对 禁锢的ftp根目录执行写入操作,而且不拒绝用户的登录请求再到目录中去创建和账号名一样的文件。
vim /etc/vsftpd/vconf.d/userf
guest_enable=YES #允许这个虚拟账号访问
guest_username=load #此虚拟账号映射的本地账号
local_root=/data/ftp/work #可以设置登录后禁锢的目录,此项这次没有使用
anon_world_readable_only=no #下载的权限
anon_upload_enable=YES #上传的权限
anon_mkdir_write_enable=YES #创建文件夹
anon_other_write_enable=YES #删除和重命名
#tips:在自己的配置文件中不允许有空格,特别是最后一行不能为空
使用vsftpd 搭建ftp服务的更多相关文章
- vsftpd搭建ftp服务,并实现虚拟用户访问
安装vsftpd服务: yum install vsftpd -y [root@wadeson ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam. ...
- FTP相关、用vsftpd搭建ftp、xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
1.FTP相关(file transfer protocol,文件传输协议) 2.用vsftpd搭建ftp安装:yum install vsftpd -y创建一个虚拟用户:useradd vft ...
- FTP 基础 与 使用 Docker 搭建 Vsftpd 的 FTP 服务
FTP 基础 与 使用 Docker 搭建 Vsftpd 的 FTP 服务 前言 最近的工作中,需要将手机上的文件发送到公司的 FTP 的服务器.按照从前的思路,自然是,先将文件传到电脑,再由电脑上传 ...
- xshell使用xftp传输文件 使用pure-ftpd搭建ftp服务
xshell使用xftp传输文件 下载xftp5 https://www.baidu.com/link?url=8rtxgX3JRIbUFO1Samzv5aXhfwRG7Cf8i4vi573QexoH ...
- exportfs命令 NFS客户端问题 FTP介绍 使用vsftpd搭建ftp
exportfs命令 • 常用选项 • -a 全部挂载或者全部卸载 • -r 重新挂载 • -u 卸载某一个目录 • -v 显示共享目录 • 以下操作在服务端上 • vim /etc/exports ...
- RHEL 6 搭建ftp服务 xinetd,telnet
1.挂载光盘 设置vmware中光驱选项,载入rhel6光盘镜像 6 搭建ftp服务 xinetd,telnet" /> 2.安装rpm包 输入"#cd /media/&qu ...
- exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp
6月22日任务 14.4 exportfs命令14.5 NFS客户端问题15.1 FTP介绍15.2/15.3 使用vsftpd搭建ftp 14.4 exportfs命令 当我们修改nfs的配置文件e ...
- xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
6月25日任务 15.4 xshell使用xftp传输文件15.5 使用pure-ftpd搭建ftp服务扩展vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.co ...
- centos7中搭建ftp服务
博客搬家: centos7中搭建ftp服务 最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程.过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的 ...
随机推荐
- 【PHP数据结构】顺序表(数组)的相关逻辑操作
在定义好了物理结构,也就是存储结构之后,我们就需要对这个存储结构进行一系列的逻辑操作.在这里,我们就从顺序表入手,因为这个结构非常简单,就是我们最常用的数组.那么针对数组,我们通常都会有哪些操作呢? ...
- 在PHP中灵活使用foreach+list处理多维数组
先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如: $arr = [ [1, 2, [3, 4]], [5, 6, [7, 8]], ]; 我们需要的结果是元素1变成1 ...
- Shell系列(13)- read
前言 作用是往脚本中传递参数,之前文章的位置参数变量也有此功能,但是只适用于脚本的作者,为什么?第三方用户不知道这个脚本要传递哪些参数,这些参数分别是什么.本篇随笔read就可以实现上述功能,别且该命 ...
- php pdo 参数绑定
* 数据表 -- MySQL dump 10.16 Distrib 10.1.31-MariaDB, for osx10.6 (i386) -- -- Host: localhost Database ...
- php/awk 处理csv 使用 SplFileObject 操作文件
取第5列,去掉开头结尾的引号,匹配以http://, https://, ftp://开头的行 * awk awk -F"," 'str=gsub(/(^\"*)|(\& ...
- PyCharm取消波浪线
步骤:settings->Editor->Color Scheme->General->(右侧)Errors and Warnings->Weak Warning-> ...
- 安全通信协议SSH应用与分析
一.实验简介: 本次实验属于安全协议应用与分析系列 二 实验环境: Windows server 2003 server windows xp 做client 三.实验目的 通过该实验了解SSH服务器 ...
- Java8新特性——Lambda 表达式
Lambda 表达式 Lambda 表达式的实质属于函数式编程. 语法格式为:(parameters) -> expression ...
- 无法解析的外部符号之_cvLoadImage,_cvCreateMat,_cvReleaseImage之类
一个错误可能是:附加依赖项少添加了库函数: 还有一个可能是:配置设置错误了,比如该是64位,却设置成win32了.改过来就好了. 要注意opencv的使用中 在Debug.Release模式以及x64 ...
- sqlite3 c++使用以及提高速率(一万条每秒左右)
参考来源: sqlite3的C语言使用(三):https://www.leavesongs.com/C/sqlite3_3.html sqlite插入和查询效率提高方法及测试结果: http://bl ...