FTP简介
FTP协议
FTP(File Transfer Protocol文件传输协议)定义了远程计算机和本地计算机之间的文件传输的一种标准,FTP运行在OSI七层模型的应用层,并使用TCP/IP协议进行数据的传输。
FTP数据传输模式
主动模式
当ftp的控制连接建立,且客户提出目录列表传输文件时,客户端发送PORT命令与服务器进行协商,FTP服务器使用一个标准的20作为服务器端的数据连接端口与客户机建立连接。
被动模式
当ftp的控制连接建立,且客户提出目录列表,传输文件时,客户端发送PASV命令使服务器处于被动传输的模式下,FTP服务器等待客户与其联系,FTP服务器在非20端口的其它数据传输端口上监听客户请求
单端口传输模式
如果客户程序既不向服务器发出PSAV命令,也不发送PORT命令,当FTP的控制连接建立,且客户提出目录列表,传输文件时,ftp服务器就会使用FTP协议的数据传输端口20和客户端的控制连接端口建立一个数据传输连接。
FTP典型的消息
消息号 | 含义 |
---|---|
125 | 数据连接打开,传输开始 |
200 | 命令执行成功 |
266 | 数据传输完毕 |
331 | 用户名正确,需要输入密码 |
425 | 不能打开数据连接 |
426 | 数据连接被关闭,传输被中断 |
452 | 错误写入文件 |
500 | 语法错误,不可识别的命令 |
linux下的FTP服务器
- wu-ftp
- proftp
- vsftpd
FTP虚拟用户的配置
vsftpd安装
Red Hat 自带了vsftp,若安装过可跳此步骤
rpm -ivh vsftpd.2.0.5-10.e15.i386.rpm
启动vsftpd服务
service vsftpd start
建立虚拟用户的数据库
首先切换到/etc/vsftpd目录下,创建文本格式的用户名和密码。
使用db_load工具转换成数据文件。
建立系统账号
建立ftp访问的根目录虚拟用户对用的系统账号,该账号无需密码和登陆的shell。该用户的宿主目录做为虚拟用户登陆ftp的跟目录
建立PAM认证文件
PAM配置文件用于为程序提供用户认证控制,vsftp服务使用的默认PAM模块文件是/etc/pam.d/vsftpd,可以参考该文件的格式,建立一个新的pam文件,如下所示
修改vsftp的主配置文件vsftpd.conf,添加对虚拟用户的支持。
guest_usernaem 虚拟账号映射的本地账号
pam_service_name 修改使用的pam文件
guest_enable 启用用户映射功能
虚拟用户的权限配置文件
切换到/etc/vsftpd下创建vsftpd_user_conf目录,如图所示
创建完成后,进入其目录
创建虚拟用户文件,并赋予其权限内容如下,与之前的文本格式的用户名密码对应
可以通过 man vsftpd.conf 后搜索 /anon查看其帮助信息,如 : anon_other_write_enable=yes 给于所有权
重启服务
配置完成后重启vsftp服务
service vsftpd restart
并清除防火墙配置
iptables -F
setenforce 0
测试
在另一台pc上 通过输入ftp 服务器ip 登录即可
可以看到登陆成功的提示,我们就登陆到ftp服务器上了。