一、简介
1、简介
File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文件传输协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种哦协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载(Download)”和“上传(Upload)”。
下载文件就是将文件从远程主机拷贝到自己的计算机上;
上传文件就是将文件从自己的计算机拷贝到远程主机上。
支持FTP协议的服务器就是FTP服务器。
2、工作模式
主动模式:
FTP客户机向服务器的FTP控制端口(默认是21)发送请求,服务器接受连接,建立一 条命令链路,当需要传送数据时候,客户端在命令链路上用PORT命令告诉服务器:“我打开了某个端口,你过来连接我。”于是服务器从20端口向客户端的改端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器主动请求,所以称为主动模式。
FTP 主动模式(命令行是主动模式)
服务器用20号端口,主动连接客户机的大于1024的随机端口。
被动模式:
FTP客户端向服务器的FTP控制端口发送连接请求,服务器接收连接,建立一条命令链路,当需要传送数据时候,服务器在命令链路上用PASV命令告诉客户端;“我打开了某端口,你过来连接我。”于是客户端向服务器的该端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器被动等待客户端请求,所以称为被动模式。
FTP被动模式客户机用大于1024的随机端口,主动连接服务器大于1024的随机端口。
主动模式下的FTP服务器,需要在服务器和客户端之间的防火墙中设置一下策越:
允许FTP客户机从大于1024的端口连接FTP服务器的21端口
允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口
允许FTP客户机从大于1024的端口回应来自FTP服务器20端口的网络连接
被动模式下的FTP服务器,需要在服务器和客户端之间的防火墙中设置一下策越:
允许FTP客户机从大于1024的端口连接FTP服务器的21端口
允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
允许FTP客户机从大于1024端口主动连接FTP服务器中大于1024的端口
允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接
3、服务端和客户端程序
1)常见的FTP服务器程序:
Windows:IIS 、Serv-U
Linux: wu-ftpd 、Proftpd 、vsftpd(Very Secure FTP Daemon,常用)
2)常见的FTP客户端程序:
CuteFTP、FlashFXP、LeapFTP、Filezilla
gftp、kuftp、FTP命令(Linux中可能需要自己安装,yum -y install ftp)
二、FTP服务器的安装与配置
1、安装
1)服务器端: vsftpd
2)客户端:
Linux系统:安装ftp命令
Windows系统:使用第三方软件连接
2、配置文件详解
/etc/vsftpd/vsftpd.conf #主配置文件
anonymous_enable=YES #允许匿名用户访问
anon_umask=022 #匿名用户所上传文件的权限掩码(无此项,默认是600)
anon_root=/var/ftp #匿名用户的FTP根目录
anon_upload_enable=YES #允许匿名用户上传(服务器权限和目录权限均需要设置)
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #开放其他写入权
anon_max_rate=0 #限制最大传输速度(字节/秒)
local_enable=YES #是否启用本地系统用户
local_umask=022 #本地用户所上传文件的权限掩码
local_root=/var/ftp #设置本地用户的FTP根目录
chroot_local_user=YES #是否将用户禁锢在主目录
local_max_rate=0 #限制最大传输速率
listen_address=192.168.4.1 #设置监听的IP地址
listen_port=21 #设置监听FTP服务的端口号
write_enable=YES #是否启用写入权限
download_enable=YES #是否允许下载文件
max_clients=0 #限制并发客户端连接数
max_per_ip=0 #限制同一IP地址的并发连接数
3、虚拟用户配置
1)建立虚拟FTP用户的帐号数据库文件
vi /etc/vsftpd/vusers.list(奇数行写用户名,偶数行写密码)
lc
123
sc
123
cd /etc/vsftpd
db_load -T -t hash -f vusers.list vusers.db
chmod 600 /etc/vsftpd/vusers.*
2)创建FTP根目录及虚拟用户映射的系统用户
useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 755 /var/ftproot
3)建立支持虚拟用户的PAM认证文件
vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
添加虚拟用户支持
4)在vsftpd.conf文件中添加支持配置
local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vusers_dir
5)为个别虚拟用户建立独立的配置文件
mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers.dir
vi lc
anon_upload_enable=YES
anon_mkdir_write_enable=YES
启动服务并测试
6)重新加载vsftpd配置
service vsftpd reload
7)使用虚拟FTP帐号访问测试
每个用户都可以通过自己独立配置文件中分配的权限来访问FTP服务器。
本文出自 “Linux运维” 博客,请务必保留此出处http://jinghsy.blog.51cto.com/7648537/1654805
原文地址:http://jinghsy.blog.51cto.com/7648537/1654805