FTP使用详解

FTP(file transfer protocol)文件传输协议: 是TCP/IP协议组中的协议之一,由FTP服务器和FTP客户端组成。FTP服务器用来存储文件,用户使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
ftp:// 文件传输协议
ftp协议提供的软件
在rhel7中 :vsftpd
部署ftp服务

1.关闭selinux,reboot重启后生效

2.安装vsftp

yum install vsftpd -y

在这里插入图片描述

在这里插入图片描述

systemctl start vsftpd
systemctl enable vsftpd

!!!!下载后一定记得打开服务
在这里插入图片描述
查看防火墙策略
在这里插入图片描述

firewall-cmd -permanent --add-service=ftp

防火墙策略中添加ftp服务,(不用关闭防火墙也可以使用该ftp服务)
在这里插入图片描述
服务端创建本地用户student,monster
以本地用户身份登陆,如student(student为ftp服务端的本地用户)

lftp 172.25.254.140 -u student

以本地用户student登录,默认发布目录为/home/student/
在这里插入图片描述
看到的文件都在**/home/student/**下;
在这里插入图片描述

客户端:

安装lftp
yum install lftp -y(lftp文本形式浏览器)
lftp ip 进去后ls可以显示(不用等待)才表示登陆成功,ftp安装成功
如果需要等待,可能是服务没开。

lftp 172.25.254.140

在这里插入图片描述

ftp的基本信息:

软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21 20
服务配置文件:/etc/vsftpd/vsftpd.conf

报错id解析:

550服务本身的功能未开启
530用户认证失败
500服务本身认为所操作的文件权力过大
553所登陆服务器文件操作权限过小

针对于匿名用户

一. 登录
编辑配置文件
在这里插入图片描述
anonymous_enable=YES| no 匿名用户是否可登陆
local_enable=yes|no 本地用户是否可登陆

在这里插入图片描述
匿名用户无法登陆
在这里插入图片描述
本地用户student无法登录
在这里插入图片描述
配置文件改为:
anonymous_enable=YES 匿名用户可登陆
local_enable=yes 本地用户可登陆
重启服务

在这里插入图片描述
匿名用户、本地用户可以登陆
在这里插入图片描述

二.上传文件

上传文件要在本地用户可以写入的情况为前提;
ftp为ftp服务创建的本地用户,而匿名用户默认以ftp身份上传文件;
在这里插入图片描述
配置文件 anon_upload_enable=YES,匿名用户可以上传

(1)write_enable=YES|NO ftp是否对登陆用户可写
修改发布目录的所属组为ftp,权限为755,匿名用户就可以在/var/ftp/pub下上传文件:put /etc/passwd
(2)或者 setfacl -m u:ftp:rwx /var/ftp/
在这里插入图片描述

550服务本身的功能未开启
匿名用户不可以上传
在这里插入图片描述

只有本地用户student可以上传
在这里插入图片描述
修改服务端配置文件,
设置为匿名用户可以上传:
在这里插入图片描述

修改配置文件后重启vsftpd服务;
553所登陆服务器文件操作权限过小:
在这里插入图片描述

修改权限
在这里插入图片描述
500 服务本身认为所操作的文件权力过大:
在这里插入图片描述
修改发布目录的所属组为ftp,权限为755,匿名用户就可以在/var/ftp/pub下上传文件:put /etc/passwd
在这里插入图片描述
或者 setfacl -m u:ftp:rwx /var/ftp/在这里插入图片描述
匿名用户也可以上传了。
在这里插入图片描述
下载文件
配置文件设置可读才可下载
anon_world_readable_only=NO 参数修改为NO后可以下载
在pub下 get 某个文件

删除文件
anon_other_write_enable=YES|NO
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
匿名用户使用的用户身份,以及上传权限的修改
chown_uploads=YES
改变上传用户名
chown_username=student(必须是系统中存在的用户)
改变上传文件权限
chown_upload_mode=0644(记得加0这个特殊位),默认为0600
在这里插入图片描述
上传的passwd,所有者身份为1001(student),权限为600;
在这里插入图片描述

匿名用户使用的用户身份,以及上传权限的修改
chown_uploads=YES
改变上传用户名
chown_username=student(必须是系统中存在的用户)
改变上传文件权限
chown_upload_mode=0644(记得加0这个特殊位),默认为0600

在这里插入图片描述

在这里插入图片描述
修改
匿名用户上传文件权限
anon_umask=022(控制用户权限777-111-022=644)上传文件后,查看,文件权限为644;
但是创建文件test,test的权限为755
匿名用户上传限速
anon_max_rate=102400 (100k)默认单位是比特
在这里插入图片描述
dd(截取) if=/dev/zero(源文件) of=/mnt/file(输出到) bs=1M(每块1M) count=1000(1000块)
在这里插入图片描述
匿名用户最大连接数 max_clients=2 超过两个lftp ip 连接不上
在这里插入图片描述

在这里插入图片描述
本地用户
local_enable=YES|NO 本地用户是否可登陆
write_enable=YES|NO ftp是否对登陆用户可写

6.本地用户上传文件权限
local_umask=077 看到上传的文件权限为600

7.限制本地用户浏览目录
所有用户被锁定到自己的家目录中:
chroot_local_user=YES
chmod u-w /home/* (必须修改文件的权限,有冲突)
(1)用户黑名单建立
chroot_local_user=NO所有用户被锁定到自己的家目录中
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
student

(2)用户白名单建立
chroot_local_user=YES所有用户可以到自己的家目录中
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户浏览 / 根目录
chroot_local_user=YES
chmod u-w /home/* (必须修改文件的权限,有冲突)
在这里插入图片描述
chmod u-w /home/* (必须修改文件的权限,有冲突)
在这里插入图片描述

(1)用户黑名单建立
chroot_local_user=NO所有用户被锁定到自己的家目录中
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
在这里插入图片描述
student写入/etc/vsftpd/chroot_list
在这里插入图片描述
student用户被所在家目录中:
在这里插入图片描述
(2)用户白名单建立
chroot_local_user=YES所有用户可以到自己的家目录中
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

限制本地用户登陆
vim /etc/vsftpd/ftpusers(用户永久黑名单) 测试:将westos写入
vim /etc/vsftpd/user_list(临时黑名单,根据参数改变而改变) 测试:将student写入
student不可以登陆
westos不可以

用户登陆白名单设定(将/etc/vsftpd/user_list变为白名单)
userlist_deny=NO (不拒绝)参数设定后,/etc/vsftpd/user_list变为白名单, 名单中出现的用户可以登陆ftp
student可以登陆
westos不可以

在这里插入图片描述
将westos写入/etc/vsftpd/ftpusers(用户永久黑名单)
在这里插入图片描述
将student写入/etc/vsftpd/user_list(临时黑名单,根据参数改变而改变)
在这里插入图片描述
wesstos,student均无法登录
在这里插入图片描述
userlist_deny=NO (不拒绝)参数设定后,/etc/vsftpd/user_list 变为白名单, 名单中出现的用户可以登陆ftp
在这里插入图片描述
student可以登陆
westos不可以
在这里插入图片描述

ftp虚拟用户的设定

在这里插入图片描述
首先把上次实验userlist_deny=NO去掉,否则/etc/vsftpd/user_list以外用户都无法登录

创建虚拟帐号身份

vim /etc/vsftpd/userlogin_file 文件名任意设定

在这里插入图片描述

user01 //用户名
123 //密码
user02
123 //密码  !!!不可以有空格,空格也是字符,应该直接换行

在这里插入图片描述

db_load -T -t hash -f /etc/vsftpd/userlogin_file /etc/vsftpd/userlogin_file.db

-T 转化 -t具体转换方式 哈希加密 -f 指定文件

在这里插入图片描述

在这里插入图片描述
file /etc/vsftpd/userlogin_file.db 查看加密后生成的文件
在这里插入图片描述
vim /etc/pam.d/vsftpd(看一下系统怎么写的–格式)

vim /etc/pam.d/ftpauth(任意创建,在pam.d下)

account  required pam_userdb.so db=/etc/vsftpd/userlogin_file
auth     required pam_userdb.so db=/etc/vsftpd/userlogin_file

在这里插入图片描述
(pam_userdb.so这个插件所在路径/usr/lib64/security/pam_userdb.so,可以使用find / -name pam_userdb.so 在根下查找这个插件)
required 通过认证才可以继续下一步认证

pam:password access manager

在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf

guest_enable=YES
开启虚拟用户登陆功能(否则500无法登陆)
在这里插入图片描述

修改pam_service_name=vsftpd(只能存在一个)为:

pam_service_name=ftpauth(刚刚在/etc/pam.d/下创建的文件)

修改后重启服务,虚拟用户user01可以登录:
在这里插入图片描述

虚拟用户家目录独立设定:

不同虚拟用户创建不同家目录
mkdir /var/ftpdir/user01/user01pub -p
mkdir /var/ftpdir/user02/user02pub -p

vim /etc/vsftpd/vsftpd.conf
local_root=/var/ftpdir/$USER ##本地用户家目录
user_sub_token=$USER ##安全认证,说明$USER变量的值为shell输入的内容

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

虚拟用户功能独立设定

mkdir /etc/vsftpd/westos 


vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/westos

vim /etc/vsftpd/westos/user01
在此文件中设定配置文件中的所有参数,此文件的优先级高

在这里插入图片描述
在这里插入图片描述
/etc/vsftpd/westos/user01 中设置匿名用户可以上传:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值