各种FTP
• FTP 基本最常见的FTP TCP21
• FTPS 基于TLS/SSL TCP21
• SFTP 基于SSH TCP22
• HTTP 基于HTTP TCP80
• HTTPS 基于SSL TCP443
• FTP是文件传输协议(File Transport Protocol)的英文缩写
• FTP服务器根据服务对象的不同可分为匿名服务器和系统FTP服务器
• UNIX与Linux下常用的FTP软件:
– Wu-FTP linux8.0之前的版本用Wu-FTP
– Vsftpd linux8.0(包含8.0)之后的版本用vsftpd
• vsftpd是一个基于GPL发布的类UNIX系统上使用的FTP服务器软件
• vsftpd的特性:
– 安全
– 高速
– 稳定
– 支持基于IP 的虚拟FTP 服务器
– 支持虚拟用户
– 支持PAM 或xinetd/tcp_wrappers 的认证方式
– 支持两种运行方式:独立和Xinetd
– 支持每个虚拟用户具有独立的配置
– 支持带宽限制
连接模式
Port和Pasv
• vsftpd软件包名
– vsftpd-2.0.5-10.el5.i386.rpm (2)
• /etc/vsftpd/vsftpd.conf
– vsftpd服务的主配置文件,定义功能及操作方法
• /etc/vsftpd/ftpusers
– 指定哪些用户不能访问FTP服务器
• /etc/vsftpd/user_list
– 在这个文件中指定的用户默认情况下不能访问FTP服务器(默认的情况下不在配置文件中作任何配置是黑名单)
• 是否使用该文件取决于vsftpd.conf中userlist_enable的配置
• 该文件中所列用户的访问权限取决于vsftpd.conf中userlist_deny的配置
• 启动服务:
# service vsftpd start
• 停止服务:
# service vsftpd stop
• 检查进程
# ps ax |grep vsftpd
3154 ? Ss 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
• 检查端口
# netstat -nat |grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
vsftpd服务日志记录保存在/var/log/xferlog
Tue Sep 25 14:23:24 2007 1 127.0.0.1 0 /pub/install.log b _ o a ? ftp 0 * i
Tue Sep 25 14:23:56 2007 1 127.0.0.1 25092 /home/user01/install.log b _ i r user01 ftp 0 * c
current-time 本次传输发生的时间,表示为当前系统时间
transfer-time 文件传输所消耗的时间,以秒为单位
remote-host 远程客户机的IP地址
file-size 传输文件的大小。单位为字节
filename 传输文件的名字
transfer-type 传输类型。可用的值有“a”和“b”,“a”代表使用ascii方式传送,“b”为使用 binary方式传输
special-action-flag 特殊的活动标记。如果为“C”表示传输时进行了压缩操作,如果为“U”则 为在传输时进行了解压缩操作。多数情况下为“_”表示无动作
direction 文件传输的方向。“o”为下载,“i”为上传
access-mode 登录用户的类型。“a”为匿名用户,“r”为本地(系统)用户
username 登录用户的名称
service-name 本次传输调用的服务名称。显示为ftp
authentication-method 验证方法。一般为数字“0”,如果为“1”时使用了RFC931定义的验证方法
authenticated-user-id 如果未使用RFC931定义的验证方法,则这部分显示“*”。否则返回用户ID
completion-status 完成状态。“c”表示本次传输成功完成,“i”则说明这次传输没有完成, 可能被意外地中断了
• port主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
• pasv客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
数据连接的作用
• 从客户向服务器上传一个文件
• 从服务器向客户下载一个文件
• 从服务器向客户发送文件或目录列表
转载于:https://blog.51cto.com/sngyqd/394986