ftp服务器_ftp服务器软件 - CSDN
ftp服务器 订阅
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。 [1] 展开全文
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。 [1]
信息
服务协议
FTP协议提供服务
定    义
支持FTP协议的服务器
中文名
FTP服务器
外文名
File Transfer Protocol Server
FTP服务器简介
FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。 [2]  FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器。同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。特点如下: [3]  (一)FTP使用两个平行连接:控制连接和数据连接。控制连接在两主机间传送控制命令,如用户身份、口令、改变目录命令等。数据连接只用于传送数据。 [3]  (二)在一个会话期间,FTP服务器必须维持用户状态,也就是说,和某一个用户的控制连接不能断开。另外,当用户在目录树中活动时,服务器必须追踪用户的当前目录,这样,FTP就限制了并发用户数量。 [3]  (三)FTP支持文件沿任意方向传输。当用户与一远程计算机建立连接后,用户可以获得一个远程文件也可以将一本地文件传输至远程机器。 [3] 
收起全文
  • FTP服务器

    2018-05-07 16:05:29
    1,自己的电脑通过FTP客户端和互联网能连接到世界各地的FTP服务器,实现文件共享及资源共享。2,别人也可以通过互联网访问你电脑上面搭建的FTP服务器,使你的信息资料能够传播到世界各地。3,不同类型、不同系统、...
    一,FTP 可以做什么?

    1,自己的电脑通过FTP客户端和互联网能连接到世界各地的FTP服务器,实现文件共享及资源共享。
    2,别人也可以通过互联网访问你电脑上面搭建的FTP服务器,使你的信息资料能够传播到世界各地。
    3,不同类型、不同系统、不同格式的电脑之间能够互换文件

    二,FTP用户
    不同等级的使用者身份,三种主要的身份
    real user
    guest
    anonymous  (匿名用户)
    限制或解除用户活动目录
    chroot(change root)

    FTP用户的类型
    匿名用户:anonymous或ftp
    本地用户:
    帐号名称、密码等信息保存在passwd、shadow文件中

    三,FTP连接方式
    控制连接:标准端口为21,用于发送FTP命令信息
    数据连接:标准端口为20,用于上传、下载数据

    数据连接的建立类型:
    主动模式:服务端从20端口主动向客户端发起连接
    被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接

    四,vsftpd软件包
    vsftpd最初发展的理念就是在建构一个以安全为重的FTP 服务器.
    (安装在服务器端)
    主程序:/usr/sbin/vsftpd
    服务名:vsftpd
    主配置文件:/etc/vsftpd.conf
    用户控制列表文件 :
    /etc/vsftpd/ftpusers   禁止登录的FTP用户列表
    /etc/vsftpd/user_list    仅提供一份FTP用户列表,是否禁止登录取决于主配置 文件中的设置


    五,分析主配置文件vsftpd.conf

    常用的全局配置项

    listen=YES:是否以独立运行的方式监听服务
    listen_address=192.168.4.1:设置监听的IP地址
    listen_port=21:设置监听FTP服务的端口号
    write_enable=YES:是否启用写入权限
    download_enable=YES:是否允许下载文件
    userlist_enable=YES:是否启用user_list列表文件
    userlist_deny=YES:是否禁用user_list中的用户
    max_clients=0:限制并发客户端连接数
    max_per_ip=0:限制同一IP地址的并发连接数

    常用的匿名FTP配置项

    anonymous_enable=YES:启用匿名访问
    anon_umask=022:匿名用户所上传文件的权限掩码
    anon_root=/var/ftp:匿名用户的FTP根目录
    anon_upload_enable=YES:允许上传文件
    anon_mkdir_write_enable=YES:允许创建目录
    anon_other_write_enable=YES:开放其他写入权    (若想删除上传的文件需要添加这个)
    anon_max_rate=0:限制最大传输速率,单位为字节

    常用的本地用户FTP配置项

    local_enable=YES:是否启用本地系统用户
    local_umask=022:本地用户所上传文件的权限掩码
    local_root=/var/ftp:设置本地用户的FTP根目录
    chroot_local_user=YES:是否将用户禁锢在主目录
    local_max_rate=0:限制最大传输速率(字节/秒)


    六,配置一台FTP服务器并在Linux和window上验证  (关闭防火墙)

    服务器配置

    1,在服务器上安装vsftpd.conf。
           yum install -y vsftpd.conf

    2,调整上传目录的属主或者权限
           确保匿名用户ftp有权写入文件    chown  ftp /var/ftp/pub

    3,修改vsftpd.conf主配置文件(按需要配置,本次按照一般配置)




    dirmessage_enable=YES    登陆的时候显示信息
    xferlog_enble=YES   记录日志文件
    xferlog_file=/var/log/xferlog   日志文件位置
    xferlog_std_format=YES  用标准的格式去记录日志




    这三行不建议修改。
    chroot_local_user=YES    将系统本地用户锁在家目录下,如果将#去掉,那么就可以切换到了根目录下。这里将家目录映射为根目录

    最后两行是允许部分人切换根目录,配置文件在/etc/vsftpd/dhroot_list中,添加进去的用户,不可以切换根目录

    4,在/var/ftp下创建一个新的目录test,并且赋给它777的权限。
    (此处就是将匿名登陆时候的上传目录换成了test,因为在ftp登陆进去的时候,不能在pub下上传文件。)


    5,重启vsftpd服务。
         service vsftpd  restart

    客户端配置

    1,安装ftp。
          yum install -y ftp

    2,ftp   服务器ip地址(密码为空)


    3,ftp的部分操作。(上传一个文件)


    在服务器端查看



    4,在window端查看




    至此ftp服务器的简单搭建已经完成。

    七,补充部分知识点

    dirmessage_enable=YES  要想在进入test的时候显示信息。就要在test目录下新建文件.message
    然后vim .message输入你想要输入的内容即可





    展开全文
  • 如何搭建一个自己的FTP服务器

    万次阅读 2018-06-30 19:57:19
    1.在win7上先开启ftp服务:这里Internet信息服务底下的三个包括子项全部需要勾选。点击确定后,可能会要等一会儿,完成后就可以使用FTP服务了。 2.打开 计算机--》管理--》 在这里我们可以看见刚刚添加的服务 ...

    1.win7上先开启ftp服务:这里Internet信息服务底下的三个包括子项全部需要勾选。点击确定后,可能会要等一会儿,完成后就可以使用FTP服务了。

     


     

    2.打开   计算机--》管理--   在这里我们可以看见刚刚添加的服务    IIS


     

    3.创建一个ftp站点


     

    4.点击添加FTP站点后,就是要继续的添加必要的站点信息,这里是:站点名称以及登录ftp后的站点指定目录(文件夹),点击下一步。


     

    5.站点的地址就写自己的IP就好,端口21,是ftp控制信号的默认端口,(端口随意,尽量不要用已经被占用了的端口号)。SSL证书选无,有证书配置起来就很麻烦了。IP尽量配一个,用它推荐的那个吧,我的是192.168.1.4,不能自己随便设一个,这样会无法访问。


     

    6.身份验证和授权勾选“基本“和”匿名“,匿名即采用用户名anonymous。允许所有用户访问。到这步一个ftp服务器就搭好了。


     

    7.测试访问ftp服务器,在“计算机”里输入“ftp://192.168.1.4”由于有勾选匿名,访问的时候无需输入用户名密码,当然也可以在浏览器里面访问。然后可以测试读写。


    8.要让别的机子访问ftp服务器,需要关闭防火墙,或者针对ftp相关端口设置允许通过的规则(默认为20,21)。

    window共享与ftp区别

     

    FTP相比共享更加高端,但局域网共享具有实施更改的好处,不需要上传和下载。

    共享是对内网的一个用户间资源的共享,功能很单一,没什么安全在里面。

    FTP是实现上传和下载功能的,是实现的一种服务。包括对用户系统的管理,安全性,管理性,功能上都有很大的不同。

    所用协议不一样,本地共享用UNC路径(通用命名协议)访问,FTP则是用FTP协议,大广域网上更为广泛的使用。

    最终的目的是相同的,但工作模式不一样,ftp支持多用户,断点传送。而共享的话,如果不是服务器,则只有10人同时可用,并不支持断点传送。

     

    展开全文
  • FTP服务器搭建和配置

    千次阅读 2018-10-25 23:10:07
    FTP服务简介 FTP概述: ​ FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。...匿名的FTP服务器向公众开放,用户可以用“ftp”或“anonymous”为帐号,用电子邮箱地址...

    FTP服务简介

    FTP概述:

    ​ FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。

    FTP采用客户/服务器模式,客户机与服务器之间利用TCP建立连接,客户可以从服务器上下载文件,也可以把本地文件上传至服务器。

    FTP服务器有匿名的和授权的两种。匿名的FTP服务器向公众开放,用户可以用“ftp”或“anonymous”为帐号,用电子邮箱地址为密码登录服务器;授权的FTP服务器必须用授权的账户名和密码才能登录服务器。通常匿名的用户权限较低,只能下载文件,不能上传文件。

    FTP工作原理:

    FTP是一个CS架构的软件,一边是客户端,一边是服务端。客户端有一个用户界面,可以是LeapFTP这样的图形界面,也可以是命令行形式的文本文件方式来使用。一旦用户有一个操作,就会通过用户协议解释器转换成对应的FTP命令,通过控制连接发送给服务器端,控制连接的端口号是21,首先是客户端去连接服务器端的21端口,建立了控制连接,控制连接主要是用于FTP命令以及FTP命令的响应。一旦服务器端收到一个命令以后就要进行相应的工作,比如收到了用户名和密码,就要进行相应的验证。验证成功之后就给客户端响应,验证失败的话就给一个失败的响应。FTP传送命令的时候,主要是为了文件传输,也就是会涉及到文件传输的命令,这些命令也是通过控制连接来发送的,一旦服务器端解析到一个文件传输的命令之后,就要和客户端建立一个新的连接通道,这个通道称为数据连接通道,用于传输文件。这个连接的建立,可以由客户端主动发起,也可以由服务器端发起。这就对应到了两种不同的工作模式。如果是客户端上传文件的话,就会读取本地文件系统中的文件,传输给服务器端,服务端就将它写到服务器端对应的文件系统。如果是下载的话,服务器端读取文件系统中的数据,写入到数据连接,通过数据连接发送给客户端,客户端就读取数据连接中的数据,写入到本地的文件系统。这就是FTP工作的基本原理。

    数据连接并不是永久性存在的,一旦传输完毕就会将这个连接关闭掉,但是控制连接不会关闭,除非将客户端关闭了,控制连接才会随之关闭。控制连接是随客户端一起存在的,而数据连接是短暂存在的,只要文件传输或者列表传输完成,数据连接就关闭了。

    FTP的两种工作模式:

    主要是针对数据连接而言的,控制连接的建立总是由客户端向服务器端发起。而数据连接通道的建立则不同,既可以是服务器端向客户端发起连接建立数据连接通道,这种模式称为主动模式。也可以是客户端向服务器端发起连接建立数据连接通道,这种模式称为被动模式。

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

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

    VSFTP简介:

    vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。

    特点:

    1. vsftp一般以普通用户运行,降低了进程的权限,提高了安全性
    2. 任何需要执行较高权限的指令都需要上层程序的许可
    3. ftp的命令都被整合到了vsftp中,不需要系统额外提供命令
    4. 用于chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录
    5. vsftpd 是一个基于GPL发布的FTP服务器软件。其中的vs是“ Very Secure”的缩写,由此名称缩写可以看出,本服务器的初衷就是服务的安全性。
    6. vsftpd是RedHat Linux默认使用的ftp服务端软件。
    7. vsftpd不再依赖于xinetd服务
    8. vsftpd可同时允许匿名( anonymous )与本地用户(local)访问,还可以支持虚拟用户。

    VSFTP的传输模式:

    1. 文本模式:ASCII模式,以文本序列传输数据。
    2. 二进制模式:Binary模式,以二进制序列传输数据。

    FTP用户类型:

    1. 匿名用户:anonymous或ftp
    2. 本地用户:账号名称、密码等信息保存早passwd/shadow文件中。
    3. 虚拟用户:使用独立的账号和密码数据文件。

    Linux下FTP服务器的搭建

    vsftp主要配置文件的介绍:

    配置文件作用 配置文件路径
    vsftpd的可执行文件(主程序) /usr/sbin/vsftpd
    vsftpd启动脚本 /etc/rc.d/init.d/vsftpd
    vsftpd主配置文件 /etc/vsftpd/vsftpd.conf
    vsftpd的PAM认证文件 /etc/pam.d/vsftpd
    禁止使用vsftpd的用户列表文件 /etc/vsftpd/ftpusers
    禁止或允许使用vsftpd的用户列表文件 /etc/vsftpd/user_list
    匿名用户主目录 /var/ftp

    vsftp的安装步骤:

    第一步:安装vsftp服务

    [root@localhost ~]# yum -y install vsftpd
    [root@localhost ~]# systemctl restart vsftpd
    [root@localhost ~]# systemctl enable vsftpd
    [root@localhost ~]# firewall-cmd --permanent --add-service=ftp
    [root@localhost ~]# firewall-cmd --reload
    

    第二步:配置文件

    (1)常用的全局配置

    • listen_address=192.168.245.128 设置监听的IP地址
    • listen=YES 是否以独立运行的方式监听服务
    • listen_port=21 设置监听FTP服务的端口号
    • write_enable=YES 是否启用写入权限
    • download_enable=YES 是否允许下载文件
    • max_clients=0 限制并发客户端连接数
    • max_per_ip=0 限制同一IP地址的并发连接数
    • pasv_enable=yes 设置最小的被动端口号
    • pasv_min_port=9981 设置最小的被动端口号
    • pasv_max_port=9981 设置最大的被动端口号
    • dirmessage_enable=yes 是否显示目录说明文件
    • xferlog_enable=yes 是否记录ftp传输过程
    • xferlog_file=/var/log/vsftpd.log 日志的路径和名字
    • xferlog_std_format=yes 是否使用标准的ftp xferlog
    • chown_username=username 是否改变上传文件的属主,如果是则需要输入一个系统用户名
    • idle_session_timeout=600 设置默认不活跃session时间
    • date_connection_timeout=120 设置数据传输超时时间

    (2)本地用户访问限制:

    • userlist_enable=YES 是否启用user_list列表文件
    • userlist_deny=YES 是否禁用user_list中的用户

    (3)本地用户权限控制:

    • local_enable=YES 是否启用本地系统用户
    • local_umask=022 本地用户所上传文件的权限掩码
    • local_root=/var/ftp 设置本地用户的FTP根目录
    • chroot_local_user=YES 是否将用户禁锢在主目录
    • local_max_rate=0 限制最大传输速率(字节/秒)
    • chroot_list_enable=YES 配合下面的文件使用
    • chroot_list_file=/etc/vsftpd/chroot_list 配合使用,列表中的用户将被禁锢在目录中

    (4)匿名权限控制:

    • anonymous_enable=YES 启用匿名访问
    • anon_umask=022 匿名用户所上传文件的权限掩码
    • anon_root=/var/ftp 匿名用户的FTP根目录
    • anon_word_readable_only=YES 允许匿名下载
    • anon_upload_enable=YES 允许上传文件anon_mkdir_write_enable=YES:允许创建目录
    • anon_other_write_enable=YES 开放其他写入权
    • anon_max_rate=0 限制最大传输速率(字节/秒)

    第三步:安装要求更改配置后,重启服务即可。

    FTP常用命令介绍:

    • ftp IP地址 /域名 :登录到指定FTP服务器。
    • dir :显示目录和文件列表
    • ls:显示简易的文件列表
    • cd :进入指定的目录。
    • type : 查看当前的传输方式
    • ascii : 设定传输方式为ASCII码方式。
    • binary : 设定传承方式为二进制方式。
    • get : 下载指定文件。
    • mget : 下载多个文件。支持通配符
    • put:上传指定文件。
    • close、quit、bye:结束ftp会话。
    • pwd:查看当前工作目录。
    • rename oldname newname : 重命名文件。
    • delete filename:删除文件。

    配置示例1:配置匿名访问

    在vsftpd服务程序中,匿名开放模式是最不安全的一种认证模式。任何人都可以无需密码验证而直接登录到FTP服务器。这种模式一般用来访问不重要的公开文件(在生产环境中尽量不要存放重要文件)。

    vsftpd服务程序默认开启了匿名开放模式,需要做的就是开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限。

    在这里插入图片描述

    图:匿名用户配置

    注意:在开启匿名用户登录后,必须要修改ftp根目录的所属身份。因为默认是root用户,只用root用户具有写入权限。

    chown -Rf ftp /var/ftp/pub 执行该命令后,即可上传文件,创建目录等。

    在做本实验时,selinux都是默认关闭的。如果还有问题,关闭selinux或者更改selinux的权限即可。 setsebool -P ftpd_full_access=on

    配置示例2:本地用户模式

    相较于匿名开放模式,本地用户模式要更安全,而且配置起来也很简单。如果大家之前用的是匿名开放模式,现在就可以将它关了,然后开启本地用户模式。

    参数 作用
    anonymous_enable=NO 禁止匿名访问模式
    local_enable=YES 允许本地用户模式
    write_enable=YES 设置可写权限
    local_umask=022 本地用户模式创建文件的umask值
    userlist_deny=YES 启用“禁止用户名单”,名单文件为ftpusers和user_list
    userlist_enable=YES 开启用户作用名单文件功能
    #按如下操作修改配置文件即可,修改后重启服务。
    
    #在客户端测试
    [root@localhost ~]# ftp 192.168.245.128
    Connected to 192.168.245.128 (192.168.245.128).
    220 (vsFTPd 3.0.2)
    Name (192.168.245.128:root): cao
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    227 Entering Passive Mode (192,168,245,128,67,44).
    150 Here comes the directory listing.
    drwxr-xr-x    2 1000     1000            6 Oct 25 12:35 dir
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 下载
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 公共
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 图片
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 文档
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 桌面
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 模板
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 视频
    drwxr-xr-x    2 1000     1000            6 Oct 01 11:14 音乐
    226 Directory send OK.
    ftp> pwd
    257 "/home/cao"
    ftp> 
    

    注意:

    在登录时,默认不能使用root用户,因为在vsftp中,默认有两个文件中的用户禁止登录。如果想使用root用户登录,删除两文件中的root即可。

    采用本地账户登录后,默认访问的目录是该用户的家目录。而且该目录的默认所有者,所属组都是该用户自己,所以不存在权限问题。当有权限问题时,检查selinux设置即可。

    [root@localhost ~]# 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
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    news
    uucp
    operator
    games
    nobody
    [root@localhost ~]# cat /etc/vsftpd/ftpusers 
    # Users that are not allowed to login via ftp
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    news
    uucp
    operator
    games
    nobody
    [root@localhost ~]# 
    

    在window电脑上访问ftp服务器时,都会弹出要求输入账户和密码的输入框。通过认证即可访问ftp的资源。

    配置示例3:虚拟用户模式

    虚拟模式是三种模式中,最安全的模式。

    **第一步:**创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。例如,我们分别创建出zhangsan和lisi两个用户,密码均为redhat。

    [root@localhost vsftpd]# vim vuser.list
    zhangsan
    redhat123
    lisi
    redhat123
    [root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser.list vuser.db
    [root@localhost ~]# file /etc/vsftpd/vuser.db
    vuser.db: Berkeley DB (Hash, version 9, native byte-order)
    [root@localhost ~]# chmod 600 /etc/vsftpd/vuser.db
    [root@localhost ~]# rm -f /etc/vsftpd/vuser.list
    

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

    由于Linux系统中的每一个文件都有所有者、所属组属性,例如使用虚拟账户“张三”新建了一个文件,但是系统中找不到账户“张三”,就会导致这个文件的权限出现错误。为此,需要再创建一个可以映射到虚拟用户的系统本地用户。简单来说,就是让虚拟用户默认登录到与之有映射关系的这个系统本地用户的家目录中,虚拟用户创建的文件的属性也都归属于这个系统本地用户,从而避免Linux系统无法处理虚拟用户所创建文件的属性权限。

    为了方便管理FTP服务器上的数据,可以把这个系统本地用户的家目录设置为/var目录(该目录用来存放经常发生改变的数据)。并且为了安全起见,我们将这个系统本地用户设置为不允许登录FTP服务器,这不会影响虚拟用户登录,而且还可以避免黑客通过这个系统本地用户进行登录。

    [root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
    [root@localhost ~]# ls -ld /var/ftproot/
    drwx------ 3 virtual virtual 78 1025 20:52 /var/ftproot/
    [root@localhost ~]# chmod -Rf 755 /var/ftp
    ftp/     ftproot/ 
    [root@localhost ~]# chmod -Rf 755 /var/ftproot/
    

    第三步:建立用于支持虚拟用户的PAM文件。

    PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。

    通俗来讲,PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。PAM采取了分层设计(应用程序层、应用接口层、鉴别模块层)的思想,其结构如图下图所示:

    在这里插入图片描述

    图:PAM的分层设计结构

    新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

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

    **第四步:****在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu,**PAM作为应用程序层与鉴别模块层的连接纽带,可以让应用程序根据需求灵活地在自身插入所需的鉴别功能模块。当应用程序需要PAM认证时,则需要在应用程序中定义负责认证的PAM配置文件,实现所需的认证功能。

    例如,在vsftpd服务程序的主配置文件中默认就带有参数pam_service_name=vsftpd,表示登录FTP服务器时是根据/etc/pam.d/vsftpd文件进行安全认证的。现在我们要做的就是把vsftpd主配置文件中原有的PAM认证文件vsftpd修改为新建的vsftpd.vu文件即可。

    利用PAM文件进行认证时使用的参数以及作用:

    参数 作用
    anonymous_enable=NO 禁止匿名开放模式
    local_enable=YES 允许本地用户模式
    guest_enable=YES 开启虚拟用户模式
    guest_username=virtual 指定虚拟用户账户
    pam_service_name=vsftpd.vu 指定PAM文件
    allow_writeable_chroot=YES 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求

    第五步:为虚拟用户设置不同的权限。

    虽然账户zhangsan和lisi都是用于vsftpd服务程序认证的虚拟账户,但是我们依然想对这两人进行区别对待。比如,允许张三上传、创建、修改、查看、删除文件,只允许李四查看文件。这可以通过vsftpd服务程序来实现。只需新建一个目录,在里面分别创建两个以zhangsan和lisi命名的文件,其中在名为zhangsan的文件中写入允许的相关权限(使用匿名用户的参数):

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

    然后再次修改vsftpd主配置文件,通过添加user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径。

    添加:user_config_dir=/etc/vsftpd/vusers_dir

    在windows上测试:

    输入指定ftp服务器后,会要求输入账号密码,这儿输如的张三,密码redhat123.可成功连接。

    在这里插入图片描述

    zhangsan用户具有读写权限,所以可以新建文件等。但是lisi没有权限。

    在这里插入图片描述


    展开全文
  • FTP服务器的原理

    千次阅读 2018-08-06 16:49:19
    在我们平时上网的过程中,一般都是使用FTP的客户端对商家提供的服务器进行访问(上传、下载文件),例如我们微软的SkyDrive网盘,115网盘等。 FTP介绍 FTP文件传输协议(File Transfer Protocol),用于Internet...

    在我们平时上网的过程中,一般都是使用FTP的客户端对商家提供的服务器进行访问(上传、下载文件),例如我们微软的SkyDrive网盘,115网盘等。

    FTP介绍

    FTP文件传输协议(File Transfer Protocol),用于Internet上的控制文件的双向传输,是一个应用程序。工作在TCP/IP协议族的应用层,其传输层协议是TCP协议,目的在于提高文件传输的共享性和可靠性,是基于客户/服务器模式工作的。

    FTP协议

    相比其他协议,如HTTP协议,FTP协议要复杂一些。与一般的C/S模型只会建立一个socket连接,这个连接同时处理服务器和客户端的连接命令和数据传输。而FTP会建立两个连接,将命令与数据分开传输,正是因为这样,提高了传输效率

    FTP使用两个端口,分别为控制端口(命令端口)和数据端口。控制端口号一般为21,数据端口一般为20。控制socket用来传输命令,数据socket用来传输数据。每一个FTP命令发送后,FTP服务器就会返回一个字符串,其中包含一个响应码和一些说明信息,其中响应码主要用于判断命令是否被成功执行了。

    那么,基于FTP协议的客户端和服务器端是如何进行“沟通”的?我们来一探究竟吧。

    将FTP客户端和服务器端之间的“沟通”分为4个阶段:

    1.启动FTP

    客户通过FTP客户端软件,发起FTP交互式命令,告诉服务器,服务器上的FTP服务会接收到这个命令,并解析发来命令,然后发出回复信息,客户端对服务器说:“我想和你聊会天,可以吗?”

    2.建立控制连接

    客户端TCP层会根据服务器的IP地址,向服务器提供FTP服务的21端口发出主动建立连接的请求,服务器接收到请求后,经过三次握手,客户端与服务器端就建立了一个TCP连接,就好比是我们在A地和B地之间传输货物,首先应该建立一条运送货物的通道。这个TCP连接称为控制连接,用户发出的FTP命令和服务器的回应都是依靠该连接来传送的,在用户退出前一直存在。

    3.建立数据连接,并进行文件传输

    到目前为止,客户端和服务器端已经建立了聊天的通道,聊天过程中,对方觉得很投机,想互赠礼物(将客户端和服务器端进行文件的传输比喻为互赠礼物)怎么办,这个时候我们就需要一条通道来进行礼物的传输(将数据连接比喻为数据连接),那么是如何赠送礼物的?
    (1)客户端通过控制连接发送一个上传文件的命令,会自己分配一个临时的TCP端口号。
    (2)客户端通过控制连接向服务器发送一个命令告诉服务器自己的IP地址和临时端口号,然后发送一条上传文件的命令。(就好客户端要赠送礼物给服务器时,不只发送一个送礼物的命令,在这之前还要发送一条自我介绍的命令,即IP地址和端口号,来告诉服务器和他聊天的是哪一个客户)
    (3)服务器接收到客户端的IP地址和临时端口号后,以这个IP地址和端口号为目标,使用服务器上的20端口(数据端口),向客户端发出主动建立连接的请求。
    (4)客户端收到请求后,通过三次握手后就与服务器之间建立了另外一条TCP连接数据连接(好比礼物传输的通道)。
    (5)客户端在自己的文件系统中选择要上传(赠送礼物)的文件。
    (6)客户端将文件写入到文件传输的进程中(即网络流中)。
    (7)文件传输完成后,由服务器主动关闭该数据的连接。

    4.关闭FTP

    当用户退出FTP时,客户端发送退出命令,之后控制连接被关闭,FTP服务结束。

    总结:

    (1)客户端和服务器端进交互的过程中,采用的是TCP协议。
    (2)建立两条TCP连接。控制连接,主要做的事情是传输命令和响应信息;数据连接,必须是先有控制连接才有数据连接,因为要进行问价传输首先必须知道客户的IP地址和端口号,这个过程通过控制连接发送的命令来告知服务器,客户单的IP地址和端口号,之后再在两者之间建立数据连接来传输文件。
    (3)在服务器端,控制连接(21)和数据连接(20)使用了不同的端口号。

    文件传输方式

    1.ASCLL传输方式

    假设用户正在拷贝的文件包含的简单ASCLL文本,如果我们使用的是windows系统,而运行FTP服务器的远程机上是Linux系统,那么使用ASCLL传输模式会将\r\n转为\n。当文件传输时FTP会自动调整文件的内容以便于把文件解析为另外那台计算机存储文本文件的格式。

    2.二进制传输方式

    二进制传输时,在拷贝任何非文本文件时,FTP会逐字拷贝,不会对这些文件进行处理。

    两种传输方式的区别

    相比之下,二进制传输方式会更好一些,我们经常进行传输的文件格式不单单是文本文件,可能是程序、数据库、压缩文件。ASCLL传输方式会改变我们的文件,即使不需要也会进行转译,会导致传输稍微变慢,也会损坏数据。

    文件传输模式(即赠送礼物方式)

    控制连接用于传输控制命令,随客户端一同存在的,而数据连接只是短暂存在的,每次要发生数据时才建立数据连接,数据传输完就断开数据连接。FTP的控制连接总是由客户端向服务器发起的,而数据连接的建立有两种途径,一种是客户端连接到服务器端,另一种是服务器连接到客户端,分别对应两种工作模式:被动模式和主动模式。主动和被动是对于FTP服务器而言的。

    Port模式(主动模式)

    这里写图片描述
    首先建立控制连接通道,客户端向FTP服务器的21端口发起连接,经过3次握手建立控制连接通道。控制连接建立后,双方就可以进行交换信息,在需要传输数据时,主动模式下,客户端通过控制连接通道发送一个PORT命令并告知服务器数据连接通道的端口B,然后服务器向客户端的B端口发出连接请求,数据连接通道建立,就可以进行数据的传输,传输完毕后数据连接就会关闭。

    Passive模式(被动模式)

    这里写图片描述
    首先客户端向服务器端21端口发起连接,经过三次握手建立控制连接通道。
    被动模式需要进行数据传输时,客户端向服务器发送一个PASV表示进行被动传输,数据通道的建立是由客户端向服务器发起的,此时客户端需要知道连接到服务器的是哪一个端口,服务器向客户端发送被动模式的端口X,之后客户端向服务器的X端口发起连接建立,建立数据通道。

    FTP命令

    1.访问命令:

    访问命令 解释
    USER <username> 用于指定登录的用户名,以便服务器进行身份验证。USER命令通常是控制连接建立后发出的第一个命令。
    PASS <password> 用于指定用户密码,该命令用于登录用户命令之后。
    REIN 重新初始化用户信息,该命令会终止当前 USER的传输,也会终止正在传输的数据,然后重置所有参数,并打开控制连接,以便客户端再次发出USER命令。
    QUIT 关闭与服务器之间的连接。

    2.模式设置命令

    模式设置命令 解释
    PASV 告诉服务器,让FTP服务器在指定的数据端口进行监听,被动接受客户端的请求。是默认模式。
    PORT <address> 告诉FTP服务器,客户端监听的端口号是address,FTP服务器采用主动模式连接客户端。
    TYPE <data type> 指定要传输的数据类型,有ASCLL和二进制。
    MODE <mode> 指定传输模式,S(流),B(块),C(压缩)。

    3.文件管理命令

    文件管理命令 解释
    CWD <directory> 用户可以在不同的目录或数据集下工作而不改变登录信息,directory一般是用户名与系统相关的文件集合。
    PWD 返回当前工作目录。
    MKD <directory>> 在指定目录下创建新目录,directory表示指定目录的字符串。
    CDUP 回到上层目录。
    RMD <directory> 删除指定目录。
    LIST <name> 返回指定路径下的子目录及文件列表,name为路径,若省略,返回当前路径下的文件列表。
    NLIST <directory> 返回指定路径下的目录列表,省略路径时,返回当前目录。
    RNFR <old path> 重新命名文件,该命令的下一条命令用RNTO指定新的文件名。
    RNTO <new path> 和RNFR命令共同完成对文件的重命名。
    DELE <filename> 删除指定路径下的文件。

    4.文件传输命令

    文件传输命令 解释
    RETR <filename> 下载指定路径的文件。
    STOR <filename> 上传一个指定的文件,并将其存储在指定的位置,如果文件已经存在,原文件被覆盖,如果文件不存在,则创建新文件。

    5.其他命令

    SYST:返回服务器使用的操作系统。

    FTP响应码

    客户端发送FTP命令后,服务器会返回FTP的响应码,FTP响应码由ASCLL编码的3为数字开头,后接一行文本提示信息,数字和提示信息中有一个空格,每个响应码以回车换行结束。

    第一位数字代表的含义:

    响应码 含义
    1XX 信息已经被服务器正确接收,但尚未处理。
    2XX 信息已经被服务器正确处理完毕。
    3XX 信息已经被服务器正在接收,并正在处理。
    4XX 信息处理错误,暂时的。
    5XX 信息处理错误,永久的。

    第二位数字代表的含义:

    响应码 含义
    X0X 语法错误。
    X1X 系统状态和信息。
    X2X 与FTP服务器连接状态。
    X3X 用户认证有关信息。
    X4X 未定义。
    X5X 与文件系统有关的信息。

    常用的响应码:

    响应码 含义 响应码 含义
    110 重新启动标记应答 332 登录时需要账户信息
    120 服务在指定时间内准备好 350 请求的文件操作需要进一步的口令
    125 数据连接打开,开始传输 421 服务关闭
    150 文件状态良好,将要打开数据连接 425 不能打开数据连接
    200 命令成功 426 关闭连接,终止传输
    202 命令没有执行 450 文件不可用
    211 系统状态回复 451 中止请求操作,有本地错误
    212 目录状态回复 452 磁盘空间不足
    213 文件状态回复 500 无效命令
    214 帮助信息回复 501 语法错误
    215 系统类型回复 502 命令未执行
    220 服务就绪 503 命令顺序错误
    221 服务关闭控制连接,可以退出登录 504 无效命令参数
    225 数据连接打开,无传输正在进行 530 未登录
    226 关闭数据连接,请求的文件操作成功 532 存储文件需要账户信息
    227 进入被动模式 550 未执行请求操作
    230 用户已经登录 551 请求操作终止,页类型未知
    250 请求的文件操作完成 请求文件操作终止,超过存储分配
    257 创建路径名 553 为执行请求的操作,文件名不合法
    331 用户名正确,需要口令
    展开全文
  • windows10本地搭建FTP服务器

    万次阅读 2018-11-09 11:43:28
    FTP(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。TCP/IP协议中,FTP标准命令TCP'duan'kou'h为21,Port方式数据端口为20。FTP的任务是从...
  • 部署FTP服务器

    千次阅读 2019-05-10 01:03:17
    FTP服务器 什么是FTP服务器FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是...
  • 搭建FTP服务器

    千次阅读 2018-07-24 12:19:09
    现在我们就来搭建一个FTP服务器,可以在各个系统间传递文件。 首先来说一下,FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File ...
  • FTP服务器:如何创建FTP服务器(一)

    万次阅读 多人点赞 2019-02-26 11:57:02
    在开始屏幕下打开“搜索”-进入控制面板 ... ... 在打开的“Windows功能”中找到Internet信息服务 ,并选中“FTP服务”、““FTP拓展性“和”IIS管理控制台”,点击确定 ...配置完成后,在开始屏幕的搜索中输入“IIS”,...
  • FTP服务器搭建详细步骤

    万次阅读 多人点赞 2019-01-18 16:32:42
    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地...
  • 怎样配置FTP服务器

    万次阅读 2020-08-26 09:57:38
    配置FTP服务器 FTP为文件传输协议,用于Internet上的控制文件的双向传输。要通过FTP来实现本地计算机与云服务器的文件传输,首先要在服务器上进行FTP的配置。 下面以Windows server 2008为例配置服务器的FTP: 一...
  • win7下如何建立ftp服务器

    千次阅读 2018-04-02 18:33:58
    前段时间正在做一个项目,需要上传东西到ftp服务器,纠结于如何建立ftp服务器。经过一番摸索。终于成功建立ftp服务器。现将我的经验跟大家分享一下。不足之处还望多多指点!工具/原料win7系统步骤/方法首先在本地...
  • Ubuntu16.04 ftp服务器安装+配置

    万次阅读 2019-01-07 09:34:49
    如果之前配置过ftp服务器的还是之后配置的服务器,无法启动服务,那么基本是配置出现了错误,那么可先完全卸载后再进行安装。如果无法定位多半是镜像源的问题,请更换阿里源。 sudo apt-get update...
  • 概述  FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。FTP作为网络共享文件的传输协议,在网络应用软件...本文就主要针对这两个操作来进行说明(当然,也包括FTP服务器的连接...
  • 在WIN10上搭建Ftp服务器

    千次阅读 2019-11-27 10:16:31
    在windows10上面搭建你的FTP服务器 正在学服务器这门课程,刚好学到搭建Ftp服务器。所以就在自己电脑上也搭建了一个Ftp服务器。我的电脑是win10的,所以本教程也是在win10上面搭建Ftp服务器。希望能帮到有需要的...
  • FTP服务器无法访问原因

    万次阅读 2015-07-19 20:42:14
    1、首先确保ftp的服务器设置没有问题,也就是服务器绑定的IP地址和监听的端口号。可以先在本地访问测试一下,打开浏览器输入ftp://192.168.191.1:21看看能不...添加ftp服务器程序所在的位置。 第二步是添加入栈规则:
  • win7FTP服务器配置以及访问

    万次阅读 2016-07-30 22:21:25
    也可以参考百度的教程win7下FTP服务器安装 一、FTP服务器功能打开 1、打开【控制面板】→【程序】→【打开或关闭Windows功能】→出现以下界面: 2、一定要将树形目录【Internet信息腐乳】展开,然后将【FTP服务...
  • FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地...
  • 利用cmd连接ftp服务器上传下载文件

    万次阅读 2016-11-01 09:54:05
    3.此时要求输入账号密码的,如下截图:(ftp服务器是我在本地搭建的,偷懒下,哈哈,不过这里要注意下,ftp服务器要以管理员身份运行,不然没有上传权限的) 4.这时可以输入dir命令查看,当前目录 5.还可以用cd命令来进入...
  • windows server2008 R2搭建ftp服务器

    万次阅读 多人点赞 2018-08-30 15:56:34
    我们在工作中经常使用到ftp服务器。包括我们的server-u服务器,但是我们的server-u是收费软件,如果公司对软件版权问题比较注重的话,不建议使用server-u,特别是如果公司有安装了server2008的话,我们就可以使用...
  • JAVA 搭建FTP服务器

    千次阅读 2018-09-13 17:39:13
    FTP服务器就是一种支持FTP协议并用来作文件的中转服务器,WEB服务器也可同事作为FTP服务器。 目前在做C/S的系统,自然就涉及到了远程更新的方面,这也是C/S在系统维护方面的劣势。 然后我就想到了用FTP服务器来做...
1 2 3 4 5 ... 20
收藏数 309,629
精华内容 123,851
关键字:

ftp服务器