实验环境:
server主机:
1、selinux关闭
2、火墙开启,加入ftp服务
3、安装vsftpd 服务
client主机:
1、selinux关闭
2、开启火墙
3、安装lftp #ftp协议文本浏览器
一、ftp介绍:
ftp:file transfer proto
互联网中最老牌的文件传输协议
优点:对文本传输速率高,安全性高
缺点:在传送图片的时候,传输效果不是很理想
二、vsftpd安装及启用
安装lftp功能以及vsftpd服务:
开启匿名用户访问功能:
vsftpd主配置文件位置:
网页访问ftp服务器
命令访问ftp服务器(pub为默认发布目录)
三、vsftpd基本信息:
服务名称 | vsftpd.service |
---|---|
配置目录 | /etc/vsftpd |
主配置文件 | /etc/vsftpd/vsftpd.conf |
默认发布目录 | /var/ftp |
报错信息:
550 | 程序本身拒绝 |
---|---|
553 | 文件系统权限限制 |
500 | 权限过大 |
530 | 认证失败 |
四、匿名用户访问控制:
lftp 192.168.0.10 | 当访问ftp服务时没有加入用户认证为匿名访问 |
---|---|
lftp 192.168.0.10 -u westos | 本地用户访问 |
本地用户访问:
用户家目录控制:
匿名用户将访问/westos:
上传控制:(上传命令为put)
更改默认发布目录的权限为775
更改用户组为ftp:
目录建立控制:
匿名用户访问建立目录:
下载控制:
下载命令为get:
删除命令控制:
删除命令为rm -rf
匿名用户上传文件权限设定:
匿名用户上传文件用户身份设定:
上传速录控制:
五、本地用户访问:
关闭本地用户访问:
关闭本地用户可写:
本地用户家目录:
本地用户上传权限控制:
用户登录控制:
/etc/vsftpd/ftpusers ##永久黑
/etc/vsftpd/user_list ##默认黑
添加用户sk到永久黑名单:
认证失败,无法访问ftp服务器:
去除永久黑名单中的用户sk,添加到用户sk到默认黑名单:
同样认证拒绝,无法访问ftp服务器:
当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,user_list文件也不会生效,本地全体用户(除去ftpusers中的用户)都可以登入FTP
注:当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous
锁定用户到自己的家目录中:
注:/etc/vsftpd/chroot_list名单上只有sk一个用户
通过cd / 命令显示没有ok成功的显示
依然看到的是家目录下的内容
锁定用户到自己的家目录中的白名单:
只有/etc/vsftpd/chroot_list名单上的用户可以访问服务端的 / 目录下的内容
只有sk可以cd进入根下(只有显示cd ok ,cwd=/ 才是成功进入)
锁定用户到自己的家目录中的黑名单:
/etc/vsftpd/chroot_list名单上的用户不可以访问服务端的 / 目录下的内容
doudou用户可以访问到根下的文件:
六、虚拟用户访问:
建立虚拟用户过程
vim /etc/vsftpd/ftp_auth_file | 建立认证文件模板 |
---|
格式为用户名一行,密码一行:
在/etc/pam.d/建立虚拟用户认证策略文件名为sk:
编辑 /etc/vsftpd/vsftpd.conf 的用户认证策略:
获取认证策略
允许虚拟用户登录
登录用户身份为ftp
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db | 加密认证文件 -T 转换 -t type -f 指定转换文件 |
---|
即可正常访问:
虚拟用户家目录的独立设定
编辑 /etc/vsftpd/vsftpd.conf :
$USER意思是各自访问自己的家目录
在配置文件中指定的位置建立家目录:
(此处sk下应建立skpub目录)
更改家目录文件的权限及用户组设置:
用户配置独立
编辑 /etc/vsftpd/vsftpd.conf
编辑 /etc/vsftpd/vsftpd.conf:
在/etc/vsftpd/user_config目录中与用户名称相同的文件为用户配置
编辑vim /etc/vsftpd/user_config/sk2:
为用户sk2添加上传功能
只有用户sk2可以上传文件