SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

一、ftp简介

  FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。

  FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

  ftp既可以上传也可以下载。

  ftp工作在应用层,监听在21号端口,也是一种C/S架构。

 

二、常用的ftp软件有:

     客户端工具              服务端软件

     ftp               wu-ftpd

     lftp,lftpget           proftpd(提供web接口的一种ftp服务端程序)

     wget,curl            pureftp

     filezilla             vsftpd   (常用的)

     gftp (linux GUI图形化)            ServU(windows平台的一种强大ftp服务端程序)

     商业软件(flashfxp,cuteftp)

 

 三、ftp数据连接模式

ftp有两种连接模式:命令连接和数据连接

1.命令连接是指文件管理类命令,始终保持连接,直到用户退出

 

2.数据连接是指数据传输时创建和关闭的连接

       数据连接需要注意数据连接格式和数据连接模式

          1)数据连接格式分为文件格式和二进制格式

          2)数据连接模式分为主动模式和被动模式

                主动模式:由服务器端创建数据连接

                被动模式:由客户端创建数据连接

(一)主动模式:

 命令连接: client(1025) -->   server(21)

 客户端以一个大于1024的随机端口连接服务器端21号端口

 数据连接:server(20/tcp) -->   client(1025+1)

 服务器端20/tcp端口连接客户端命令连接使用的随机端口+1的端口

(二)被动模式:

  命令连接: client(1110) -->  server(21)

  客户端以一个非提供服务的随机端口连接服务器端21号端口,服务器端让客户端数据连接时连接到一个随机端口

  数据连接: client (1110+1) --> server (随机端口)

  客户端以命令连接时的端口+1去连接服务器端提供的随机端口

#主动模式的弊端是客户端的端口是随机的,服务器端去连接可能被防火墙拒绝,但是客户端不开启防火墙就安全性太差

#被动模式的弊端是服务器端提供的端口是随机的,服务器也不能开启防火墙,优点是客户端比较安全

 
四、用户验证方式

ftp的用户访问方式有三种: 

   虚拟用户:仅用于访问特定服务中的资源

   本地用户:可以登录系统的真实用户(有权限,有安全隐患)

   匿名用户

虚拟用户通过ftp访问的指定用户目录的资源

系统用户通过ftp访问的是用户的家目录 

匿名用户通过ftp访问的是映射用户的家目录

 

五、安装并使用vsftp

用户配置认证文件        /etc/pam.d/vsftpd

配置文件目录               /etc/vsftpd

主配置文件                   /etc/vsftpd/vsftpd.conf

主配置文件常用参数:

 

参数 作用
anonymous_enable=YES 启用匿名用户登录
anon_upload_enable=YES 允许匿名用户上传
anon_mkdir_write_enable=YES 允许匿名用户创建目录,但是不能删除
anon_other_write_enable=YES 允许匿名用户创建和删除目录
local_enable=YES 启用本地用户登录
write_enable=YES 允许本地用户有写权限
local_umask=022 通过ftp上传文件的默认遮罩码
chroot_local_user=YES 禁锢所有的ftp本地用户于其家目录中
chroot_list_enable=YES 开启禁锢文件列表
需要与chroot_list_file参数一起使用
chroot_list_file=/etc/vsftpd/chroot_list 指定禁锢列表文件路径
在此文件里面的用户将被禁锢在其家目录中
allow_writeable_chroot=YES 允许被禁锢的用户家目录有写权限
xferlog_enable=YES 是否启用传输日志,记录ftp传输过程
xferlog_std_format=YES 传输日志是否使用标准格式
xferlog_file=/var/log/xferlog 指定传输日志存储的位置
chown_uploads=YES 是否启用改变上传文件属主的功能
chown_username=whoever 指定要将上传的文件的属主改为哪个用户
此用户必须在系统中存在
pam_service_name=vsftpd 指定vsftpd使用/etc/pam.d下的
哪个pam配置文件进行用户认证
userlist_enable=YES 是否启用控制用户登录的列表文件:
默认为/etc/vsftpd/user_list文件
userlist_deny=YES 是否拒绝userlist指定的列表文件中存在的用户登录ftp
max_clients=# 最大并发连接数
max_per_ip=# 每个IP可同时发起的并发请求数
anon_max_rate 匿名用户的最大传输速率,单位是“字节/秒”
local_max_rate 本地用户的最大传输速率,单位是“字节/秒”
dirmessage_enable=YES 启用某目录下的.message描述信息
假定有一个目录为/upload,在其下创建一个文件名为.message,
在文件内写入一些描述信息,则当用户切换至/upload目录下时会自动显示.message文件中的内容
message_file 设置访问一个目录时获得的目录信息文件的文件名,默认是.message
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
ftpd_banner="Welcome to chenlf FTP service." 定制欢迎信息,登录ftp时自动显示
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄