一、ftp文件传输协议
文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。
FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。
1. 安装服务
通过配置好的yum 源进行安装
在客户端安装lftp 服务
在服务器端需要安装vsftpd 服务
启动服务,并查看服务状态
设置开机自启动
关闭防火墙和selinux (内核级的防火墙)
对selinux 配置文件进行编辑,以关闭服务
将SELINUX 从原来的enforcing 改为disabled
然后重启生效
重启生效后,发现vsftpd 服务可以自启动
防火墙和selinux 均已关闭
此时,客户端便可通过lftp 服务来连接服务器端
虽然连接上却不能上传文件
2. vsftpd 服务的配置参数
1)匿名用户的设定
通过编辑配置文件/etc/vsftpd/vsftpd.conf
设定anonymous_enable=NO,表示匿名用户不能连接
重启vsftpd 服务生效
无法连接服务端
匿名用户上传
设定:
write_enable=YES
anon_upload_enable=YES
重启服务生效
设定 /var/ftp/pub/ 目录的权限为775,所属组为ftp
连接服务器端
上传文件
虽然此时,能够上传文件,但却不能创建目录,删除文件和获取文件
匿名用户建立目录
对配置文件进行编辑,然后重启服务生效
anon_mkdir_write_enable=YES 表示匿名用户可在pub 下建立目录
匿名用户删除文件
anon_other_write_enable=YES 表示匿名用户可以删除pub中的文件
匿名用户下载自己上传的文件(修改配置文件后,重启服务后即可生效,之前上传的文件也能下载,与修改权限的方式有所不同)
anon_world_readable_only=NO NO,表示匿名用户可以下载
匿名用户上传文件默认权限修改,修改此权限后,便可以下载自己上传的文件(在修改权限后上传的文件才能生效)
匿名用户使用的身份修改
chown_uploads=YES #拥有者可以下载
chown_username=student #拥有者设定为student
客户端上传文件后,文件拥有者为student
匿名用户的最大上传速率
重建一个文件,让此文件所占空间为10MB
用户最大连接数
最大连接数设为1
一个客户端连接成功后,其他客户端则无法连接
匿名用户家目录修改(默认家目录为/var/ftp/pub)
anon_root=/mnt
二、本地用户连接
500报错:权限过大
530报错:认证失败
550报错:服务本身不允许
553报错:文件系统权限过小
本地用户登录格式:lftp ip -u username
1. 本地用户家目录修改
local_root=/mnt
2. 本地用户上传文件权限
此时便可上传文件
local_umask=xxx
3. 限制本地用户浏览根目录
在未限制本地用户时,本地本地用户可以浏览根目录
chroot_local_user=YES
用户权限过大,还需更改家目录权限
4. 用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
5. 用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
6. 限制本地用户登录
vim /etc/vsftpd/ftpusers ##永久黑名单
vim /etc/vsftpd/user_list ##临时黑名单
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##此参数设定,此文件变成用户白名单
三、ftp 虚拟用户的设定
vim /etc/vsftpd/westosfile ##文件名称任意
生成加密文件
db_loab -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
设定策略文件
vim /etc/pam.d/westos
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##虚拟用户身份指定
测试登录
2. 虚拟用户家目录独立设定
在/etc/vsftpd/vsftpd.conf 配置文件中编辑:
其中,$USER 为显示当前所处的用户
重启服务
登录不同的目录
3. 虚拟用户独立配置
ftp 服务默认登录后,用户为ftp
更改目录所属组为ftp
然后更改虚拟用户家目录内目录的权限
编辑/etc/vsftpd/vsftpd.conf 配置文件
user_config_dir=/etc/vsftpd/userconf
在配置文件中加入如下配置,使用户可写,则user1 可写,user2 不可写