FTP服务器配置

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目录下,创建文本格式的用户名和密码。
FTP服务器配置
使用db_load工具转换成数据文件。
FTP服务器配置

建立系统账号

建立ftp访问的根目录虚拟用户对用的系统账号,该账号无需密码和登陆的shell。该用户的宿主目录做为虚拟用户登陆ftp的跟目录
FTP服务器配置

建立PAM认证文件

PAM配置文件用于为程序提供用户认证控制,vsftp服务使用的默认PAM模块文件是/etc/pam.d/vsftpd,可以参考该文件的格式,建立一个新的pam文件,如下所示
FTP服务器配置

修改vsftp的主配置文件vsftpd.conf,添加对虚拟用户的支持。

FTP服务器配置
guest_usernaem 虚拟账号映射的本地账号
pam_service_name 修改使用的pam文件
guest_enable 启用用户映射功能

虚拟用户的权限配置文件

切换到/etc/vsftpd下创建vsftpd_user_conf目录,如图所示
FTP服务器配置创建完成后,进入其目录
创建虚拟用户文件,并赋予其权限内容如下,与之前的文本格式的用户名密码对应
FTP服务器配置
可以通过 man vsftpd.conf 后搜索 /anon查看其帮助信息,如 : anon_other_write_enable=yes 给于所有权

FTP服务器配置

重启服务

配置完成后重启vsftp服务
service vsftpd restart
并清除防火墙配置
iptables -F
setenforce 0

测试

在另一台pc上 通过输入ftp 服务器ip 登录即可
FTP服务器配置
可以看到登陆成功的提示,我们就登陆到ftp服务器上了。