目录
实验环境
服务机:企业7(192.168.1.29),提供ftp服务
客户机:企业8(192.168.1.19),去访问服务机所提供的ftp服务
1. ftp介绍
- File Transfer Protocol:文本传输协议
- 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等
2. vsftpd安装
1.在服务机(192.168.1.29)上安装vsftpd软件
2.关闭selinux
3.重启系统,关闭火墙
4.开启vsftpd软件
5.建立共享目录
6.用客户机的浏览器访问ftp://192.168.1.29
可以查看到共享资源
3. vsftpd基本信息
- 服务名称:vsftpd.service
- 配置目录:/etc/vsftpd
- 主配置文件:/etc/vsftpd/vsftpd.conf
- 默认发布目录: /var/ftp
- 报错信息:
- 550 #程序本身拒绝
- 553 #文件系统权限限制
- 500 #权限过大
- 530 #认证失败
4. 匿名用户访问控制
-
在客户机上安装lftp命令,可以去访问服务机所提供的ftp服务
-
lftp 192.168.1.29 访问ftp服务时,不需要用户认证,匿名访问
-
在服务端通过修改/etc/vsftpd/vsftpd.conf配置文件,对匿名用户访问进行控制,修改后需要重启服务
常用可修改条目 | 解释 |
---|---|
anonymous_enable=YES/NO | 是否可以 匿名登录 |
anon_root=【目录】 | 登录时默认家目录设定;默认在/var/ftp中 |
anon_upload_enable=YES/NO | 上传控制 |
anon_world_readable_only=NO | 匿名用户可以下载不能读的文件 |
anon_world_readable_only=YES | 匿名用户不能下载不能读的文件 |
anon_mkdir_write_enable=YES/NO | 是否可以建立目录 |
anon_other_write_enable=YES/NO | 是否可以删除或重命名文件 |
max_clients=【n】 | 登录数量控制 |
anon_max_rate=102400 | 上传速率控制 |
示例:
示例1:在服务机修改配置文件,不允许匿名登录,重启服务,用客户机测试,匿名登录失败
示例2:
在服务机上修改配置文件,允许上传文件,重启服务后,修改/var/ftp/pub目录权限,允许写入
在服务机上测试,上传文件成功
5. 本地用户的访问
- 在服务机上创建student和test用户,用来进行实验测试
- 在客户机上登录服务端的student用户,访问ftp服务,需要用户认证
- 在服务端通过修改/etc/vsftpd/vsftpd.conf配置文件,对本地用户访问进行控制,修改后需要重启服务
配置文件条目 | 解释 |
---|---|
local_enable=YES/NO | 是否可以本地用户登录 |
local_root=【目录】 | 家目录控制 |
write_enable=YES/NO | 写权限控制 |
local_umask=077 | 上传文件权限控制 |
userlist_deny=NO | 设定/etc/vsftpd/user_list为白名单,不在名单中的用户不能登录ftp |
chroot_local_user=YES/NO | 是否锁定用户到登录时的家目录中,不能访问其他目录;chmod u-w /home/* 修改权限,否则会因权限降低而无法登录 |
chroot_local_user=YES;chroot_list_enable=YES;chroot_list_file=/etc/vsftpd/chroot_list; | /etc/vsftpd/chroot_list文件中的用户可以访问家目录以外的目录,其他用户被锁定在家目录 |
chroot_local_user=NO;chroot_list_enable=YES;chroot_list_file=/etc/vsftpd/chroot_list; | /etc/vsftpd/chroot_list文件中的用户被锁定在家目录 |
- 添加本地用户黑名单:
- vim /etc/vsftpd/ftpusers #永久黑名单
- vim /etc/vsftpd/user_list # 默认黑名单(将vsftpd.conf配置文件中userlist_deny=NO注释掉)
- vim /etc/vsftpd/ftpusers #永久黑名单
6.虚拟用户访问
6.1 建立ftp认证体系
在服务端的企业7(192.168.1.29)主机上建立ftp认证体系
①:建立ftp认证文件:/etc/vsftpd/ftp_auth_file;创建3个虚拟用户
②:加密认证文件:<-T --转换 > <-t --加密类型> < -f --指定转换文件>
③:在/etc/pam.d目录下编写文件,生成pam认证策略
④:修改/etc/vsftpd/vsftpd.conf配置文件
⑤:重启vsftpd服务
测试:
1.在客户机上用新建的虚拟用户身份登录服务端提供的ftp服务,访问成功
2.在服务端查询新建的虚拟用户id,用户并不存在,说明虚拟用户身份只存在于ftp服务中
6.2 虚拟用户家目录的独立设定
1.在服务端创建目录,分别作为3个虚拟用户的家目录,目录名与用户名一致
2.为了观察实验效果,分别在目录下创建文件
3.修改/etc/vsftpd/vsftpd.conf配置文件,设定虚拟用户的家目录
4.重启vsftpd服务
测试:
1.在客户机以虚拟用户的身份访问服务端提供的ftp服务,登录后用户家目录为指定家目录
6.3 用户配置独立
1.分别在虚拟用户的家目录下新建目录pub,用以客户端上传文件
2.修改目录权限,使其可写
3.修改/etc/vsftpd/vsftp.conf配置文件,修改后重启服务
4.在客户机上登录虚拟用户,访问ftp,可以上传文件到pub目录中
以上设定对所有虚拟用户有效,如果想要虚拟用户的配置效果独立,那么就要对每个用户单独建立配置文件
①:修改/etc/vsftpd/vsftpd.conf配置文件,修改后重启服务
②:创建指定的目录,并编写虚拟用户配置文件,设定test2用户可以上传文件
③:在客户端测试,只有test2用户可以上传文件