网络文件共享之vsftp

文件传输协议FTP

一、概述

  文件传输协议:File Transfer Protocol 

  架构:C/S

  服务端口:21/tcp  20/tcp

  双通道协议:命令连接和数据连接

  数据传输格式:二进制(默认)和文本

  两种模式:从服务器角度

    主动模式(PORT STYLE):服务器主动发起数据连接

      命令连接(控制):client:随机高位port ----> ftpserver:21/tcp

      数据连接:ftpserver:20/tcp ----> client:随机高位port

    被动模式(PASSIVE STYLE):客户端主动发起数据连接

      命令连接(控制):client:随机高位port ----> ftpserver:21/tcp

      数据连接:client:随机高位port ----> ftpserver:随机高位port/tcp

    【随机port通过命令连接通信协商】
    【1024以上端口为高位端口,1024以下端口或已分配或是预留备用】

    【两种模式中,每次传输文件,随机数据port都会变化】

    【linux 客户端默认使用被动模式;windows 客户端默认使用主动模式

  服务器被动模式数据端口:
    227 Entering Passive Mode (10,0,0,121,213,211)
    服务器数据端口:213*256+211
 
  FTP状态码:
    1xx:信息
    2xx:成功类状态
    3xx:补充类
    4xx:客户端错误
    5xx:服务端错误

   

  用户认证方式:
    匿名用户:ftp,anonymous,对应Linux用户ftp
    系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
    虚拟用户:特定服务的专用用户,独立的用户/密码文件
  用户和其共享目录
    匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp
    系统用户共享文件位置:用户家目录
    虚拟用户共享文件位置:为其映射的系统用户的家目录

二、VSFTP服务实现

2.1、vsftpd简单说明

  vsftpd服务由 vsftpd 包提供(centos7),不再由xinetd管理(centos6)
  用户认证配置文件:/etc/pam.d/vsftpd
 
  启动服务相关文件:
    /usr/lib/systemd/system/vsftpd.service (centos7)
    /etc/rc.d/init.d/vsftpd (centos6)
  配置文件:
    /etc/vsftpd/vsftpd.conf
    帮助:man 5 vsftpd.conf
    格式:option=value
    注意:= 前后不要有空格

2.2、vsftpd常用配置

2.2.1、命令连接端口

根据此选项修改命令连接服务端口
  listen_port=21
示例:更改命令连接端口为2121
 1 [root@vsftp-121 ~]# vim /etc/vsftpd/vsftpd.conf
 2 listen_port=2121
 3 [root@vsftp-121 ~]# systemctl restart vsftpd
 4 #/验证-默认21端口,访问失败/
 5 [root@client-108 ~]# ftp 10.0.0.121
 6 ftp: connect: Connection refused
 7 ftp> bye
 8 #/验证-指定ftp命令连接端口2121,匿名访问成功/
 9 [root@client ~]# ftp 10.0.0.121 2121
10 Connected to 10.0.0.121 (10.0.0.121).
11 220 (vsFTPd 3.0.2)
12 Name (10.0.0.121:root): ftp
13 331 Please specify the password.
14 Password:
15 230 Login successful.
16 Remote system type is UNIX.
17 Using binary mode to transfer files.
18 ftp> ls
19 227 Entering Passive Mode (10,0,0,121,164,86).
20 150 Here comes the directory listing.
21 drwxr-xr-x    2 0        0               6 Oct 30  2018 pub

2.2.2、主动模式端口

connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 (默认) 指定主动模式的端口
示例:更改服务端数据连接端口为2020
[root@vsftp-121 ~]# vim /etc/vsftpd/vsftpd.conf
connect_from_port_20=YES   #默认
ftp_data_port=2020         #新加
[root@vsftp-121 ~]# systemctl restart vsftpd
#/client访问vsftpd,passive切换为主动模式/
[root@client-108 data]# ftp 10.0.0.121
Connected to 10.0.0.121 (10.0.0.121).
220 (vsFTPd 3.0.2)
Name (10.0.0.121:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive               #切换主被动模式passive
Passive mode off.
ftp> get f1
local: f1 remote: f1
#/验证服务端数据连接端口为:2020/
[root@vsftp-121 ~]# ss -nt 
State       Recv-Q Send-Q                         Local Address:Port                   Peer Address:Port              
ESTAB       0      0                              10.0.0.121:22                        10.0.0.1:56408              
ESTAB       0      3192840                        ::ffff:10.0.0.121:2020               ::ffff:10.0.0.108:38956              
ESTAB       0      0                              ::ffff:10.0.0.121:21                 ::ffff:10.0.0.108:38564

2.2.3、被动模式端口范围

 
pasv_min_port=6000      #0为随机分配
pasv_max_port=6010     #分配端口范围太少,多用户登录会报错
示例:调整被动模式端口范围
[root@vsftp-121 ~]# vim /etc/vsftpd/vsftpd.conf
pasv_min_port=6000
pasv_max_port=6010
[root@vsftp-121 ~]# systemctl restart vsftpd
[root@client data]# ftp 10.0.0.121
Connected to 10.0.0.121 (10.0.0.121).
220 (vsFTPd 3.0.2)
Name (10.0.0.121:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get f1
local: f1 remote: f1
...
#/验证服务端数据连接端口是否在定义范围/
[root@vsftp ftp]# ss -nt
State       Recv-Q Send-Q                   Local Address:Port                       Peer Address:Port   
ESTAB       0      0                           10.0.0.121:22                             10.0.0.1:50644  
ESTAB       0      0                    ::ffff:10.0.0.121:21                    ::ffff:10.0.0.108:38566              
ESTAB       0      3583800               ::ffff:10.0.0.121:6006                  ::ffff:10.0.0.108:44371

 

posted @ 2024-08-29 08:41  起点·漫步前行  阅读(179)  评论(0)    收藏  举报