FTP服务的作用与系统组成
FTP连接方式
控制连接:标准端口为21,用于发送FTP命令信息
数据连接:标准端口为20,用于上传、下载数据
数据连接的建立类型:
主动模式:服务端从20端口主动向客户端发起连接
被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接
FTP传输模式
文本模式:ASCII模式,以文本序列传输数据
二进制模式:Binary模式,以二进制序列传输数据
FTP用户的类型常见的FTP服务器程序
IIS、Serv-U
wu-ftpd、Proftpd
vsftpd(Very Secure FTP Daemon)
匿名用户:anonymous或ftp
本地用户:
帐号名称、密码等信息保存在passwd、shadow文件中
虚拟用户:
使用独立的帐号/密码数据文件
常见的FTP客户端程序
ftp命令
CuteFTP、FlashFXP、LeapFTP、Filezilla
gftp、kuftp
vsftpd
vsftpd 全名是“very secure FTP daemon”。
优点:安全、体积小、可定制强、效率高
- 安装vsFTPd软件
sudo apt-get install vsftpd
实验项目
1、安装vsftpd软件,在服务器上进行FTP服务器的架设,并测试
2、使用虚拟用户,现在有以下场景:
(1)为用户jcsmith和culva添加FTP虚拟账户
(2)为他们的设置密码分别为jc123和cu123
(3)将jcsmith的FTP主目录设置为/home/ftp/jcsmith,赋予他只读权限
(4)将culva的FTP主目录设置为/home/ftp/culva,赋予他上传文件和建立目录的权限
(1)安装vsftpd服务
sudo apt-get install vsftpd
(2)查看系统是否存在nobody用户,若不存在则创建
查看命令:sudo gedit /etc/passwd
打开后查看是否存在nobody
若不存在,则创建,创建命令如下:
sudo useradd nobody
(3)创建/usr/share/empty目录
sudo mkdir /usr/share/empty
(4)给ftp用户添加主目录
sudo mkdir /home/ftp
sudo usermod -d /home/ftp ftp
(5) 在打开的ftp配置文件(/etc/vsftpd.conf)中,分别添加或修改以下信息
guest_username=ftp #保证用户登录后都是ftp这个账号
anonymous_enable=NO #不允许匿名用户登录
local_enable=YES #允许本地用户登录
chroot_local_user=YES #将用户限制在其主目录中
pam_service_name=my_vsftpd #指定PAM验证文件
guest_enable=YES #激活访客身份
(6) 设置FTP虚拟用户的目录和权限
将jcsmith的FTP主目录设置为/home/ftp/jcsmith,并赋予只读权限
将culva的FTP主目录设置为/homt/ftp/culva,赋予上传文件与创建文件夹权限
例如如下:
sudo mkdir /home/ftp/culva ##为culva用户建立FTP主目录
sudo chown ftp /home/ftp/culva/ ##设置目录的属主
sudo mkdir /home/ftp/jcsmith ##为jcsmith用户建立FTP主目录
sudo chown ftp /home/ftp/jcsmith/ ##设置目录的属主
(7) 为两个不同用户配置不同的目录和权限,为此,创建配置目录/etc/vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
(8) 打开的ftp配置文件(/etc/vsftpd.conf),将配置文件目录选项指定刚才创建的目录/etc/vsftpd_user_conf
打开ftp的/etc/vsftpd.conf配置文件命令如下
sudo gedit /etc/vsftpd.conf
##存放用户配置文件的目录
user_config_dir=/etc/vsftpd_user_conf
allow_writeable_chroot=YES
(9) 在/etc/vsftpd_user_conf目录下建立jcsmith和culva文件,分别存在jcsmith和culva有关配置
a. 有关jcsmith用户的配置文件的操作
sudo gedit /etc/vsftpd_user_conf/jcsmith
打开jcsmith文件后添加如下信息:
local_root=/home/ftp/jcsmith
b. 有关culva用户的配置文件的操作
sudo gedit /etc/vsftpd_user_conf/culva
打开culva文件后添加如下信息:
local_root=/home/ftp/culva
write_enable=YES ##打开写权限
anon_upload_enable=YES ##打开上传文件权限
anon_mkdir_write_enable=YES ##打开建立目录的权限
c. 保存关闭两文件
(10) 重启vsftpd服务器
sudo /etc/init.d/vsftpd restart