Table of Contents
1.FTP协议
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一
FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端
其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源
在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上
由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息
但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关
如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定
2.实验环境
首先我们决定用server虚拟机作为ftp服务端,所以首先我们要检查他的网络配置
然后我们配置对应版本的yum源
内核及防火墙关闭
3.ftp服务的基本信息
/var/ftp 默认发布目录
/var/ftp/pub/ 默认发布目录的子目录
/etc/vsftpd/vsftpd.conf 服务配置文件
报错id:
500 | 文件系统权限过大 |
530 | 用户认证失败 |
550 | 服务本身功能为开放 |
553 | 本地文件系统权限过小 |
3.1 搭建ftp服务器
一台主机可以同时做客户端,也可以做服务端
第一步:安装 ftp服务
第二步:打开ftp服务
第三步:查看该服务的安装目录
第四步:查看该服务的配置文件
第五步:防火墙通过ftp服务
3.2 ftp服务测试
3.2.1匿名用户
1)匿名用户登陆限制
anonymous_enable=YES|NO
2)匿名用户上传
anon_upload_enable=YES|NO
3)匿名用户家目录修改
anon_root=/westos
4)匿名用户上传文件默认权限修改
anon_umask=xxx
5)匿名用户建立目录
anon_mkdir_write_enable=YES|NO
6)匿名用户下载
anon_world_readable_only=YES|NO 设定参数值为no表示匿名用户可以下载
7)匿名用户删除
anon_other_write_enable=YES|NO
8)匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
9)最大上传速率
anon_max_rate=102400
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1000 截取一个1G大的文件
10)最大链接数
max_clients=2最多链接两台主机
3.2.2 本地用户
1)本地用户限制登陆
local_enable=YES|NO
2)本地用户写权限
write_enable=YES|NO
3)本地用户家目录更改
local_root=/westos 将本地用户登陆家目录更改为/westos
4)本地用户上传文件权限
local_umask=xxx
5)限制本地用户浏览目录
chroot_local_user=YES
chmod u-w /home/*
6)本地用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
7)本地用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
8)限制本地用户登陆黑名单
vim /etc/vsftpd/ftpusers 只能为黑名单
9)用户临时黑名单
vim /etc/vsftpd/user_list
10)用户临时白名单
userlist_deny=NO
vim /etc/vsftpd/user_list
4.ftp虚拟用户的设定
1)给ftp服务器创建虚拟帐号身份,更加安全。
vim /etc/vsftpd/loginusers (虚拟账户名单)
2)虚拟用户帐号身份指定
guest_username=ftpuser
chmod u-w /home/ftpuser
3)虚拟账户家目录独立设定
使虚拟用户的登陆进去不再是ftp用户的默认家目录
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1…3}
验证:lftp 172.25.254.111 -u user1
ls 可以看到此时user1的家目录是他自己的家目录