一、什么是FTP协议?
ftp:// ##文件传输协议
ftp(文件传输协议)是Internet上常用的最老的网络协议之一,ftp系统提供了通过网络与远程服务器进行传输的简单方法。ftp服务器包的名称为vsftpd,它代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd。
默认配置文件让anonymous用户(匿名用户)只能下载位于chroot目录中的内容。
/var/ftp/这意味着远程ftp客户端能以anonymous用户或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)
二、实验环境
- 查看虚拟机网络
- 更改主机名(此做法的目的是方便实验)
- 挂载镜像
- 搭建yum源,并且通过查看yum仓库看是否搭建成功
- 执行getenforce命令
注意: 每次编辑完文件退出保存后需要重启系统
三、ftp服务的基本信息
软件安装包 | vsftpd |
---|---|
默认发布目录 | /var/ftp |
默认发布目录的子目录 | /var/ftp |
协议接口 | 21/tcp |
服务配置文件 | /etc/vsftpd/vsftpd.conf |
四、搭建ftpd服务并进行测试
- 搜索ftp服务的安装包
- 安装vsftpd服务与lftp客户端
- 开启服务并查看状态
- rpm -ql vsftpd查看盖服务的安装目录
- rpm -qc vsftpd查看服务的配置文件
- 在火墙中添加ftp服务
- 检测ftp服务器是否搭建成功
五、vsftpd服务下匿名用户和本地用户的相关配置
必须熟记的重要报错:
530 | 用户认证失败 |
---|---|
550 | 服务本身功能未开放 |
553 | 本地文件系统权限过小 |
500 | 文件系统权限过大 |
温馨提示:所有的操作都是在配置文件/etc/vsftpd/vsftpd.conf中设定,并且设定后需要重启vsftpd服务
匿名用户登陆限制:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO
[root@ftp ~] # systemctl restart vsftpd
当配置文件anonymous_enable=YES时,如下所示:
当配置文件anonymous_enable=NO时,如下所示:
匿名用户上传:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
[root@ftp ~] # systemctl restart vsftpd
[root@ftp ~] # chgrp ftp /var/ftp/pub
[root@ftp ~] # chmod 775 /var/ftp/pub
由上图发现链接失败,进入配置文件,如下所示:
更改配置文件:
修改用户组以及用户权限如下:
上传检测,如图所示:
匿名用户家目录修改:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anon_root=/directory
[root@ftp ~] # systemctl restart vsftpd
更改前如下图所示:
更改配置文件并且新建目录,在目录下新建文件,操作如下:
通过上面的ls查看,出现了新建立的文件,所以用户家目录更改成功
匿名用户上传文件默认修改权限:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anon_umask=xxx
[root@ftp ~] # systemctl restart vsftpd
匿名用户建立目录:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES|NO
[root@ftp ~] # systemctl restart vsftpd
匿名用户下载:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=YES|NO
[root@ftp ~] # systemctl restart vsftpd
匿名用户删除:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES|NO
[root@ftp ~] # systemctl restart vsftpd
最大上传速率:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400 ###最大上传速率为100k,字节为单位
[root@ftp ~] # systemctl restart vsftpd
在系统中截取一段数据如下图所示:
不限制上传速度,如图所示:
进入配置文件进行配置如下:
限制上传速度,如图所示:
匿名用户使用的用户身份修改:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
[root@ftp ~] # systemctl restart vsftpd
进入配置文件加入如下图所示参数:
最大链接数:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
max_clients=2
[root@ftp ~] # systemctl restart vsftpd
本地用户登陆限制:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
local_enable=YES|NO
[root@ftp ~] # systemctl restart vsftpd
本地用户写权限限制:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
write_enable=YES|NO #ftp是否对登陆用户可写
[root@ftp ~] # systemctl restart vsftpd
本地用户家目录修改:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
local_root=/directory
[root@ftp ~] # systemctl restart vsftpd
限制本地用户浏览/目录:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
chmod u-w /home/*
[root@ftp ~] # systemctl restart vsftpd
本地用户黑名单建立:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
[root@ftp ~] # systemctl restart vsftpd
本地用户其白名单建立:
[root@ftp ~] # vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
[root@ftp ~] # systemctl restart vsftpd
六、ftp虚拟用户的设定
<1> 编辑虚拟帐号和密码
注意:帐号和密码间必须换行,且帐号和密码前不能有空格,虚拟帐号必须不存在。
<2> 将文本文件加密载入数据库
注释: -T表示转换类型,-t hash 表示哈希加密,-f表示文件转换类型
<3> 创建pam认证文件
<4> 更改vsftpd配置文件
<5> 结果,如下图所示:
<6> 虚拟帐号家目录独立设定,编辑配置文件
<7> 建立虚拟用户的家目录以及子目录,并展示结果:
<8> 虚拟帐号配置独立,首先改变虚拟用户家目录以及子目录权限
<9> 建立配置目录与配置文件
<10> 结果如下: