博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FTP服务(1)
阅读量:4974 次
发布时间:2019-06-12

本文共 3575 字,大约阅读时间需要 11 分钟。

文件传输协议(FTP)

文件传输协议(英文:File Transfer Protocol,缩写:FTP)早期的三个应用级协议之一,是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,即基于C/S结构。它属于网络传输协议的应用层。

 

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

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

两种模式:服务器角度

  主动(PORT style):服务器主动连接

  • 命令(控制):客户端:随机port → 服务器:tcp21
  • 数据:客户端:随机port ← 服务器:tcp20

  被动(PASV style):客户端主动连接

  • 命令(控制):客户端:随机port → 服务器:tcp21
  • 数据:客户端:随机port ← 服务器:随机port

服务器被动模式数据端口示例:

  227 Entering Passive Mode (192,168,175,138,224,59)

  服务器数据端口为:224*256+59

FTP软件介绍

FTP服务器:

vsftpd:Very Secure FTP Daemon,

CentOS默认FTP服务器,高速,稳定,下载速度是WU-FTP的两倍

ftp.redhat.com数据:单机最多可支持15000个并发

其他ftp服务器

Wu-ftpd,Proftpd,Pureftpd,ServU,IIS

FTP服务

状态码:

1XX:信息      125:数据连接打开

2XX:成功类状态   200:命令OK 230:登录成功

3XX:补充类     331:用户名OK

4XX:客户端错误   425:不能打开数据连接

5XX:服务器错误   530:不能登录

用户认证:

匿名用户:ftp,anonymous,对应Linux用户ftp

系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow

虚拟用户:特定服务的专用用户,独立的用户/密码文件

nsswitch:network service switch名称解析框架

pam:pluggable authentication module 用户认证

/lib64/security /etc/pam.d/ /etc/pam.conf

vsftpd服务

由vsftpd包提供,不再由xinetd管理

用户认证配置文件:

/etc/pam.d/vsftpd

服务脚本: 

/usr/lib/systemd/system/vsftpd.service/etc/rc.d/init.d/vsftpd

配置文件:

/etc/vsftpd/vsftpd.confman 5 vsftpd.conf格式:option=value注意:= 前后不要有空格

匿名用户(映射为系统用户ftp )共享文件位置:

/var/ftp

系统用户共享文件位置:用户家目录

虚拟用户共享文件位置:为其映射的系统用户的家目录

vsftpd服务配置

命令端口

listen_port=21

主动模式端口

connect_from_port_20=YES  主动模式端口为20ftp_data_port=20       指定主动模式的端口

被动模式端口范围

pasv_min_port=6000   0为随机分配pasv_max_port=6010

linux     客户端默认使用被动模式

windows    客户端默认使用主动模式

使用当地时间

use_localtime=YES 使用当地时间(默认为NO,使用GMT)

匿名用户

anonymous_enable=YES        支持匿名用户no_anon_password=YES       (默认NO) 匿名用户略过口令检查anon_world_readable_only     (默认YES)只能下载全部读的文件anon_upload_enable=YES       匿名上传,注意:文件系统权限anon_mkdir_write_enable=YESanon_umask=077           指定匿名上传文件的umaskanon_other_write_enable=YES   可删除和修改上传的文件

指定上传文件的默认的所有者和权限

chown_uploads=YES(默认NO)chown_username=wangchown_upload_mode=0644

Linux系统用户

guest_enable=YES      所有系统用户都映射成guest用户guest_username=ftp    配合上面选项才生效,指定guest用户local_enable=YES     是否允许linux用户登录write_enable-YES     允许linux用户上传文件local_umask=022      指定系统用户上传文件的默认权限local_root=/ftproot   非匿名用户登录所在目录

 

 

禁锢所有系统用户在家目录中  chroot_local_user=YES(默认NO,不禁锢)禁锢系统用户禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反  chroot_list_enable=YES  chroot_list_file=/etc/vsftpd/chroot_list  当chroot_local_user=YES时,则chroot_list中用户不禁锢  当chroot_local_user=NO时,则chroot_list中用户禁锢

wu-ftp日志:默认启用

xferlog_enable=YES            (默认)启用记录上传下载日志xferlog_std_format=YES         (默认)使用wu-ftp日志格式xferlog_file=/var/log/xferlog     (默认)可自动生成vsftpd日志:默认不启用dual_log_enable=YES           使用vsftpd日志格式,默认不启用vsftpd_log_file=/var/log/vsftpd.log (默认)可自动生成

登录提示信息

ftpd_banner=“welcome to mage ftp server"banner_file=/etc/vsftpd/ftpbanner.txt 优先上面项生效

目录访问提示信息

dirmessage_enable=YES  (默认)message_file=.message  (默认)信息存放在指定目录下.message

使用pam(Pluggable Authentication Modules)完成用户认证

pam_service_name=vsftpd    pam配置文件:/etc/pam.d/vsftpd    /etc/vsftpd/ftpusers 默认文件中用户拒绝登录

是否启用控制用户登录的列表文件

userlist_enable=YES 默认有此设置userlist_deny=YES(默认值)黑名单,不提示口令,NO为白名单userlist_file=/etc/vsftpd/users_list 此为默认值

连接限制

max_clients=0 最大并发连接数max_per_ip=0 每个IP同时发起的最大连接数

vsftpd服务指定用户身份运行

nopriv_user=nobody

传输速率:字节/秒

anon_max_rate=0 匿名用户的最大传输速率local_max_rate=0 本地用户的最大传输速率

连接时间:秒为单位

connect_timeout=60 主动模式数据连接超时时长accept_timeout=60 被动模式数据连接超时时长data_connection_timeout=300 数据连接无数据输超时时长idle_session_timeout=60 无命令操作超时时长

优先以文本方式传输

ascii_upload_enable=YESascii_download_enable=YES

配置FTP服务以非独立服务方运行:listen=NO,默认为独立方式

cat /etc/xinetd.d/vsftpdservice ftp{flags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/vsftpdlog_on_failure += USERIDdisable = no}

转载于:https://www.cnblogs.com/Gmiaomiao/p/9226236.html

你可能感兴趣的文章
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>
(转)Android 仿订单出票效果 (附DEMO)
查看>>
数据库多张表导出到excel
查看>>
微信小程序去除button默认样式
查看>>
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
sass学习笔记-安装
查看>>
Flask (二) cookie 与 session 模型
查看>>
修改添加网址的教程文件名
查看>>
[BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
查看>>
裁剪图片
查看>>
数据结构实习 problem L 由二叉树的中序层序重建二叉树
查看>>
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>