各种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的连接用来传送数据。

 

数据连接的作用

•         从客户向服务器上传一个文件

•         从服务器向客户下载一个文件

•         从服务器向客户发送文件或目录列表