FTP服务搭建

FTP服务搭建

前言
  1. FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们按照FTP协议提供服务;

  2. FTP作用:Internet上用来传送文件的协议,常见于FTP服务器程序;

  3. Linux:FTP、LFTP

    Window:FileZilla

服务端口

tcp:20/21 (20端口用于传输数据;21端口用于建立连接)

工作模式
主动模式

客户端用一个大于1024的端口(假设为1025)请求服务器的21号端口进行连接,连接成功后客户端会预先开启一个大于1024(假设为1026)端口等待服务器来发送数据。当服务器得知客户端开启了一个大于1024的端口等待传输数据时,那么服务器就会用自身的20号端口来连接客户端第二次开放的端口(1026)建立数据传输通道,这称为主动模式。
在这里插入图片描述

被动模式

客户端用一个大于1024的端口(假设为1025)请求服务器的21号端口进行连接,连接成功后服务器会预先开启一个大于1024(假设为1026)端口等待客户端来发送数据,这称为被动模式。
在这里插入图片描述

区分被动模式还是主动模式,主要是看服务器是被动还是主动。

一般情况下默认是被动模式。

连接服务器的用户分类
  • 本地用户:服务器上原本就存在的用户
  • 匿名用户:匿名用户实际上有一个与之对应的系统用户,匿名用户映射为ftp(即ftp这个用户默认是匿名用户所对应的用户,如果匿名用户在服务器上新建文件,则默认该文件的所有者为ftp)
  • 虚拟用户
具体操作
  • 操作环境:linux

    server:192.168.23.128

    client:192.168.23.129

  • 服务器端:

    1. 查看软件包是否安装

      [root@server ~]# rpm -qa | grep vsftpd
      [root@server ~]# yum install -y vsftpd
      
      # 查看软件安装产生的主要文件
      [root@server ~]# rpm -ql vsftpd
      /etc/vsftpd                #配置文件的目录
      /etc/vsftpd/ftpusers       #访问控制
      /etc/vsftpd/user_list      #访问控制
      /etc/vsftpd/vsftpd.conf    #配置文件
      /var/ftp                   #匿名用户的家目录
      /var/ftp/pub               #默认上传下载的目录
      
    2. 启动服务

      [root@server ~]# systemctl start vsftpd
      [root@server ~]# systemctl status vsftpd  
      [root@server ~]# netstat -tulnp | grep ftp
      tcp6   0   0 :::21     :::*    LISTEN    1450/vsftpd 
      
    3. 提供可被下载的文件

      [root@server ~]# touch /var/ftp/pub/test.txt
      [root@server ~]# ll /var/ftp/pub            
      总用量 0
      -rw-r--r-- 1 root root 0 3月   9 20:42 test.txt
      [root@server ~]# echo "这是个测试" >> /var/ftp/pub/test.txt
      #注意:ftp根目录权限不可以超过755
      
  • 客户端

    1. 安装软件包并测试

      [root@client ~]# yum install -y lftp
      [root@client ~]# lftp 192.168.23.128
      lftp 192.168.23.128:~> cd pub            
      cd 成功, 当前目录=/pub
      lftp 192.168.23.128:/pub> ls
      -rw-r--r--    1 0        0               0 Mar 09 12:42 test.txt
      lftp 192.168.23.128:/pub> cat test.txt
      这是个测试
      16 bytes transferred
      lftp 192.168.23.128:/pub> 
      
    2. 常规操作测试

      #客户端下载文件到本地的当前工作目录
      lftp 192.168.23.128:/pub> get test.txt
      16 bytes transferred
      [root@client ~]# ls
      anaconda-ks.cfg  test.txt
      
      #客户端下载文件到本地的指定的工作目录
      lftp 192.168.23.128:/pub> get test.txt -o /opt
      601 bytes transferred
      
      #客户端上载文件到服务器的pub目录-->/var/ftp/pub
      lftp 192.168.23.128:/pub> put /root/a.txt 
      5 bytes transferred
      
      #客户端上载文件到服务器的指定目录-->/var/ftp/pub/soft/
      lftp 192.168.23.128:/pub> put /root/a.txt -o /pub/soft/
      5 bytes transferred
      
      #客户端在服务器上创建目录
      lftp 192.168.23.128:/pub> mkdir soft
      mkdir 成功, 建立 `soft'
      
      #客户端在服务器上删除文件目录
      lftp 192.168.23.128:/pub> rm -rf soft
      rm ok, 2 files removed 
      
      #客户端下载目录到本地的当前工作目录
      lftp 192.168.23.128:/pub> mirror test
      语法:mirror  rdir 
      
      #客户端上传目录到服务器的pub目录
      lftp 192.168.23.128:/pub> mirror -R /tmp
      语法:mirror -R ldir
      
一些讲解
  • 配置文件

[root@server ~]# vim /etc/vsftpd/vsftpd.conf

----------------匿名用户----------------------------------
anonymous_enable=YES 允许匿名用户访问ftp

anon_upload_enable=YES 允许匿名用户上传文件

anon_mkdir_write_enable=YES 允许匿名用户创建文件

anon_other_write_enable=YES 允许匿名用户删除文件

当匿名用户上传文件的时候可以改变其上传文件的所有者

chown_uploads=YES

chown_username=whoever

anon_umask=077 匿名用户上传文件的umask,设置为077 创建文件的默认权限是600,创建目录的的默认权限是700

-----------------本地用户----------------------------------
local_enable=YES 允许本地用户访问ftp

write_enable=YES 允许本地用户上传文件

local_umask=022 本地用户上传文件的umask

-----------------访问控制--------------------------------------
1.支持pam认证
pam_service_name=vsftpd pam认证的名字

黑名单 在清单的用户不允许访问ftp服务

[root@server ~]# vim /etc/vsftpd/ftpusers

user1

2.所有在/etc/vsftpd/user_list文件内的用户是否允许访问ftp服务

白名单 在清单内的用户可以访问
userlist_enable=YES 启用文件控制
userlist_deny=NO 文件内的用户能访问ftp

黑名单 在清单内的用户不可以访问
[root@server ~]# vim /etc/vsftpd/ftpusers

user1

2.所有在/etc/vsftpd/user_list文件内的用户是否允许访问ftp服务

白名单 在清单内的用户可以访问
userlist_enable=YES 启用文件控制
userlist_deny=NO 文件内的用户能访问ftp

黑名单 在清单内的用户不可以访问
userlist_enable=YES

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值