控制连接 21端口  用于发送ftp命令

数据连接 20端口  用于上传下载数据

数据连接的建立类型:

  1主动模式: 服务器主动发起的数据连接

首先由客户端的21 端口建立ftp控制连接 当需要传输数据时 客户端以port命令告知服务器 我打开了某端口 你过来链接我 预算服务器从20端口向该客户端该端口发送请求并建立数据连接

  2被动连接模式:服务器等待数据连接

如果客户端所在的网络的防火墙禁止主动模式连接 通常会使用被动模式

首先由客户端的额21端口建立ftp控制连接 当需要传输数据时 服务器以pasv命令告知客户端 我打开了某端口 你过来连接我 于是客户端向服务端的该端口(非20) 发送请求并建立数据连接

传输模式

  在传输文件时 根据是否进行字符转换 分为文本和二进制模式

  1文本模式 又称ASCLL 美国信息交换标准码模式 这种模式一般只适用于传输纯文本的文件

  2二进制模式 又称Binary模式 这种模式不会转换文件中的字符序列 更适合传输程序 图片等非文本字符的文件

  使用二进制模式比文本模式更有效率所以大多数的ftp客户端工具 可以根据文件类型自动选择我文件传输模式

  ftp用户类型

  1匿名用户:用户名为ftp 提供任意的密码(包括空密码)都可以通过服务器的验证 一般用于公共文件的下载

  2本地用户:直接是哟个本地的系统账号进行验证登陆

  3虚拟用户:通过一份独立的用户数据库文件进行登陆验证 将ftp账户与linux账户的关联性降至最低 为系统提供更高的安全性

FTP服务器的软件的种类:

  windows系统 FileZilla Server Ser-u

  linux系统 vsftpd  

Ftp linux客户端软件:ftp

搭建匿名ftp服务端

首先挂载光盘 然后 yum -y install vsftpd

然后准备一个共享目录 这个共享目录就相当于网站指定的根目录一样用户连接以后直接就会访问它

yum 安装的ftp直接就有ci共享目录 cd  /var/ftp 里边有一个子目录叫pub 这就是共享目录 但是我们需要查看一下此目录的属主权限

ftp程序用户默认就有 所以我们要将此目录的属主改为ftp   chown ftp pub/

接下来我们进入他的配置文件 开放匿名用户 并启动vsftpd服务

cd /etc/vsftpd

安全起见 先将其备份一份   cp vsftpd.conf{,.bak}

然后 vim vsftpd.conf

anonymous_enable=YES #这个是匿名用户 默认他就是开的

local_enable=YES #本地用户默认也是开的

write_enable=YES #这时看这些用户有没有写权限 默认也是有的

local_umask=022 # 用户在共享目录放目录的时候默认是755

anon_upload_enable=YES #开匿名用户的上传权限

anon_umask=022 # 手动添加匿名用户的权限掩码

anon_mkdir_write_enable=YES #开启匿名用户新建目录的权限

anon_other_write_enable=YES #手动添加匿名用户的其他写入权限

然后我们就可以启动服务了

然后我们检查是否真正开启 netstat -antup | grep vsftpd

客户端配置 :

挂载光盘 然后安装ftp

yum -y install ftp # 这就是他的连接工具

然后就可以进行连接了

连接命令就i是ftp     ftp+服务端的IP地址

匿名用户的nam是ftp 然后回车 密码为空 直接回车就行

然后就登陆了

当然这个我事先在共享目录pub里创建了一个laing目录

然后 我们可以输入help 查看ftp的命令帮助

这就下载下来了

接下来我们可以上传东西 但是只能上传当前目录的文件

但是一定要关闭防火墙及selinux 还有只能上传登陆ftp时的所在目录下的文件 不能递归

至此 匿名用户搭建完毕  (企业用的最多)

接下来我们看虚拟账号ftp搭建

虚拟账号就是ftp自己承认的虚拟账号

ftp自身本来就是程序用户ftp 当用户连接ftp时 他用虚拟账号做验证 ftp 监听进程验证成功以后它会做一个映射 将登陆过来的用户权限映射本地登陆的账号 这样的话 用户就不需要知道ftp的真是账号 当验证成功以后将它映射成了ftp的程序用户来进行操作 比较安全

接下进行部署:

首先我们还是将配置文件进行备份
然后我们先创建一个虚拟账号文件
创建虚拟账号需要db_load 先which一下看有没有
然后我们在ftp服务端ftp配置文件目录下创建一个
vim vusers.list 虚拟账号文件
在文件里写
比如
zhangsan
123
lisi
456
然后用db_load -T -t hash -f vusers.list vusers.db将此文件转换成数据文件并进行加密加密后的文件名叫做vusers.db
然后将vusers.db权限修改为600
chmod 600 vusers.db
然后创建一个虚拟账户 映射账户
useradd -d /var/ftproot/ -s /sbin/nologin virtual
创建一个账户-d指定他的家目录为 /var/ftproot -s不能登陆
创建家目录所在目录 然后符权限755
然后再/etc下创建pam认证文件 vim /etc/pam.d/vsftpd.vu
auth    required        pam_userdb.so db=/etc/vsftpd/vusers
account    required        pam_userdb.so db=/etc/vsftpd/vusers
将这两句话复制进文件
然后保存
然后修改配置文件
anonymous_enable=NO 还是将其关掉
然后再文件的结尾处将117行pam_service_name=vsftpd改为pam_service_name=vsftpd.vu
然后在他的下边在加两行
guest_enable=YES
guest_username=virtual

然后重启服务
往家目录里创建几个文件/var/ftproot下创建几个文件
然后到客户端测试输入文件里的那几个虚拟用户 比如zhangsan 及密码123
进去了就可一了 虚拟账号共享的是同一个目录
如果想要实现不同的账户单独目录
我们cd到ftp的配置文件的目录下
mkdir vusers.dir然后进入到目录下
创建几个文件
就是各个用户的配置文件 touch zhangsan lisi
然后手动修改配置文件
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1
local_root=/var/zhangsan                                             然后创建/var/zhangsan目录 将此目录属主修改为chown virtual /var/zhangsan                     
然后进入到ftp的配置文件vsftpd。conf
在111行加入anon_umask=022
然后再最后一行加入user_config_dir=/etc/vsftpd/vusers.dir
然后重启
然后到客户端测试 输入zhangsan以及密码  成功

接下来是本地用户搭建ftp  so easy

我们先将vsftpd.conf配置文件做一个备份
然后将配置文件里的匿名用户权限关掉
anonymous_enable=NO
然后将96行打开 把前边的#去掉 chroot_local_user=YES 开启本地用户的家目录锁定

然后创建一个普通用户 然后输入 普通用户名及密码登陆ftp 每个上传的文件都是在自己的家目录下的
在ftp的配置文件里有两个配置文件可以拉黑用户 ftpuser user_list

至此 结束

FTP服务器原理及配置的更多相关文章

  1. FTP服务器原理

    21.1 FTP服务器原理   使用明码传输方式,且有相当多的安全危机历史.因此一般使用功能较少的vsftpd这个软件.   21.1.1 FTP功能简介   有以下功能 文档传输与管理 不同等级的用 ...

  2. FTP服务器原理(转)

    本文转自https://www.cnblogs.com/Aiapple/p/5955736.html 感谢作者   21.1 FTP服务器原理   使用明码传输方式,且有相当多的安全危机历史.因此一般 ...

  3. 在windwo server2008服务器上配置ftp服务器、及配置phpstrom工具、实现项目同步。

    在windwo server2008服务器上配置ftp服务器.及配置phpstrom工具.实现项目同步. 在windwo server2008服务器上配置ftp服务器 参考该篇文章:http://bl ...

  4. 免费ftp服务器FileZilla Server配置

    FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文,配置难度可想而知,小编从网上找到一篇非常详细的教程进行整理了一番,确保读到这 ...

  5. Linux上的ftp服务器vsftpd之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传

    一.问题背景 没事谁折腾这鬼玩意哦...还不是因为bug. 我们的应用,用户头像是存在ftp上的.之前的ftp服务器是一台windows,我们后台服务器程序收到用户上传头像的请求时,会用一个ROOT/ ...

  6. Ubuntu14.04下FTP服务器的搭建配置 标签: ubuntuftp服务器虚拟机 2017-06-13 15:24 161人阅读 评

    首先说明一下,我是在虚拟机中装的Ubuntu14.04,物理机是Win10,最初只是为了在两个系统间传输文件才在Ubuntu中安装了ftp服务器,从Windows端登陆其即可.最初也是按照网上的各种教 ...

  7. FTP服务器FileZilla Server配置及使用方法

    FileZilla Server下载安装完成后,安装过程不写说明了,网上一抓一大把,直接从配置开始记录. 1.创建服务器 ²  Password:栏位中输入本服务器Filezilla服务的密码, ²  ...

  8. 架设自己的FTP服务器 Serv-U详细配置图文教程

    转自:http://www.jb51.net/article/31635.htm 所有不是很要求安全的情况下是可以用serv_U的,当然我们也可以通过一些设置,保证serv_u安全运行.这里就分享下s ...

  9. ftp服务器的简单配置使用

    yum install -y vsftpd systemctl start vsftpd   cd /var/ftp/pub/   mkdir 111   touch weifeng.txt     ...

随机推荐

  1. 立神gvim

    set cursorlineset history=1700set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  set nufiletype ...

  2. E. Compress Words

    E. Compress Words KMP #include<bits/stdc++.h> using namespace std; ]; int len; void getNext(ch ...

  3. 高通Camera bring up软件流程【转】

    本文转载自:http://blog.csdn.net/liwei16611/article/details/51279658 高通camera bring up分为两种类型:YUV和bayerbrin ...

  4. qbzt day7上午

    由于优盘咕咕咕了,所以这篇就咕咕咕了 以后还会补上的 qwq

  5. Emmet - 自动补全 JSX

    VSCode 中设置"emmet.syntaxProfiles": {"javascript": "jsx"} reactjs - JSX ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第8节 Math类_18_数学工具类Math

    常用几个数学的方法 abs绝对值 ceil向上取整,它并不是四舍五入 floor向下取整 round四舍五入 PI 按住Ctrl+鼠标左键 进入Math这个类的源码里面 Ctrl+F12 然后输入PI ...

  7. dataframe中的数据类型及转化

    1 float与str的互化 import pandas as pd import numpy as np df = pd.DataFrame({'a':[1.22, 4.33], 'b':[3.44 ...

  8. 06 使用bbed修复delete的数据--01

    06 使用bbed修复delete的数据--01 根据rowid查看数据文件和block号 SYS@ orcl ; ROWID ID NAME FILE# BLOCK# --------------- ...

  9. oracle 11g 数据库恢复技术 ---02 控制文件

    oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...

  10. linux 简单安装mongodb

    Linux 安装mongodb 1.下载mongodb linux wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon- ...