简介
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
创建个特定目录
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