简介

ftp有两个连接分别是命令连接和控制连接。

FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口

优点:
      1.促进文件的共享(计算机程序或数据)
  2.鼓励间接或者隐式的使用远程计算机
  3.向用户屏蔽不同主机中各种文件存储系统的细节
  4.可靠和高效的传输数据

缺点:
  1.密码和文件内容都使用明文传输,可能产生不希望发生的窃读。
  2.因为必须开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题通过使用被动模式的FTP得到了很大解决。
  3.服务器可能会被告知连接一个第三方计算机的保留端口。
  FTP虽然可以被终端用户
直接使用,但是它是设计成被FTP客户端程序所控制。
  运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:“anonymous”。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于FTP服务器的配置情况。

FTP有两种使用模式:主动和被动

主动模式:20/tcp

被动模式:端口随机

安装vsftpd

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。是一个完全免费的、开发源代码的ftp服务器软件,比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

登入FTP服务器并对其操作

用浏览器也可以登入。

在linux下登入。

配置文件设置

参考链接

明文传输不安全,需要用到SSL

参考链接

数据传输模式(自动模式):二进制、文本:

创建证书

修改openssl.conf配置文件中相对路径

dir  = /etc/pki/CA

准备CA必需的目录及文件

# mkdir certs newcerts crl# touch index.txt# echo 01 > serial

vsftpd服务器准备

创建个特定目录

mkdir /etc/vsftpd/ssl

编辑vsftpd.conf配置文件,在文件末行添加一下指令

ssl_enable=YES                                     ----启用ssl功能ssl_sslv3=YES                                      ----支持sslv3协议ssl_tlsv1=YES                                      ----支持tlsv1协议allow_anon_ssl=NO                                  ----匿名用户不启用ssl加密访问force_local_data_ssl=YES                           ----强制本地用户文件传输使用sslforce_local_logins_ssl=YES                         ----强制本地用户登陆需ssl认证rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt           -----vsftpd服务器证书文件路径rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key    ----vsftpd服务器自身密钥文件路径

其它文章参考

补充

服务器端程序

wu-ftpd:

vsftpd: Very Secure ftp Daemon

proftpd:

pureftpd

Filezilla

Serv-U

客户端程序:

CLI:

ftp

lftp

GUI:

gftpd

FlashFXP

Cuteftp

Filezilla