linux基础篇(十七):基于Redhat7系统的ftp服务

本文详细介绍FTP(文件传输协议)的基本概念、工作模式及如何在Linux环境下搭建和配置vsftpd服务,包括匿名和授权用户的使用,以及高级设置如速率限制、权限控制和虚拟用户管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ftp简介

FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。
  FTP采用客户/服务器模式,客户机与服务器之间利用TCP建立连接,客户可以从服务器上下载文件,也可以把本地文件上传至服务器。
  FTP服务器有匿名的和授权的两种。匿名的FTP服务器向公众开放,用户可以用“ftp”或“anonymous”为帐号,用电子邮箱地址为密码登录服务器;授权的FTP服务器必须用授权的账户名和密码才能登录服务器。通常匿名的用户权限较低,只能下载文件,不能上传文件。
  客户机访问FTP服务器通常有两种方法:用FTP命令访问和用FTP客户端软件访问。
FTP模式:ftp主动模式(port):21(验证,握手),20(数据传输)
ftp被动模式(pasv):21(验证,握手),1024-65535(数据传输),一般的FTP服务器都采用此模式作为默认模式

ftp相关设置与操作

操作环境

主机一(客户端):server1—172.25.66.11
主机二(服务端):server2—172.25.66.12
两台主机必须在同一个网段,做实验时必须关闭selinux(两台主机都做)
vim /etc/sysconfig/selinux 改为 disable
在这里插入图片描述
之前本来就是disabled的哈u可以忽略这一步,要是之前是enforcing改为disabled之后必须要重启主机才能生效

具体操作

下载相关服务

一、在服务端server2中:
下载vsftpd服务
vsftpd:vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
1、yum install vsftpd
在这里插入图片描述
2、systemctl start vsftpd
systemctl enable vsftpd
3、firewalld-cmd --permanent --add-service=ftp ##使ftp服务通过防火墙
4、firewalld-cmd --reload ##重载火墙服务
在这里插入图片描述
二、在客户端server1中
1、yum install lftp
在这里插入图片描述
2、lftp 另一台主机ip
ls
在这里插入图片描述

配置

一、配置服务端server2中的vsftpd服务
相关操作:
1、配置文件/etc/vsftpd/vsftpd.conf
2、lftp ip ###匿名用户登录
3、lftp ip -u 用户 ####本地用户登陆

编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO #匿名用户是否可以登陆
在这里插入图片描述
此时退出保存重启vsftpd后,匿名用户将不可以登陆
在这里插入图片描述
重新设置为YES既可登陆
本地用户
local_enable=YES|NO #本地用户是否可以登陆
在这里插入图片描述
在这里插入图片描述

ftp常见报错:
        1、500:文件系统权限过大,此时应将所对应文件系统权限改小
        2、553:文件系统权限过小
        3、530:用户认证失败,即登录ftp时密码输入错误
        4、550:系统不允许登录,即设置了权限!!

write_enable=YES|NO #ftp对登陆用户是否可写
在这里插入图片描述
此时本地用户将在登陆后无法写入
在这里插入图片描述
##匿名用户家目录修改
mkdir /ftpdir/dir(这两个目录名自定义)
anon_root=/ftpdir
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
匿名用户删除
anon_other_write_enable=YES
在这里插入图片描述
验证:
在这里插入图片描述
如果不能put(上传)文件,可以将 anon_upload_enable=YES设置为YES

###最大上传速率###
anon_max_rate=102400
在这里插入图片描述
我们可以截取一个100M大小的文件来用于测试
在这里插入图片描述
可以看到,速度维持在100K左右

###本地用户上传文件权限设置###
本地用户
local_umask=022
在这里插入图片描述
匿名用户
anon_umask=077
######限制本地用户浏览/目录######
没有限制之前:
在这里插入图片描述
本地用户是可以浏览/目录的
接下来我们做一个限制,限制本地用户访问根目录
vim /etc/vsftpd/vsftpd.conf
chroot_list_file=etc/vsftpd/chroot_list 需要编辑这个文件 (黑/白名单)
chroot_local_user=YES
chmod u-w /home/*
在这里插入图片描述
在这里插入图片描述
可以看到,本地用户已经无法浏览/目录

设置黑名单

chroot_local_user=NO
vim /etc/vsftpd/chroot_list
在里面写入需要添加到黑名单的用户名

设置白名单

chroot_local_user=YES
vim /etc/vsftpd/chroot_list
在里面写入需要添加到白名单的用户
systemctl restart vsftpd

限制本地用户登陆

黑名单
cd /etc/vsftpd/
ftpusers ###永久黑名单,优先级高
user_list ###临时黑名单,在一定情况下可转变成白名单
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO #####将 user_list 转变为白名单
如果同一个用户同时在ftpusers 与 为白名单的user_list中,则这个用户不能登陆,因为ftpusers优先级高

lftp虚拟用户

建立lftp虚拟用户

1:编辑一个文件vim /etc/vsftpd/guest
写入三个用户及其密码(自定义)
用户名:ftpuser1
密码:123
ftpuser2
123
ftpuser3
123
在这里插入图片描述
哈希加密
db_load -T -t hash -f /etc/vsftpd/guest /etc/vsftpd/guest.db
在这里插入图片描述
2:vim /etc/pam.d/gd(自定义一个文件)
account required pam_userdb.so db=/etc/vsftpd/guest
auth required pam_userdb.so db=/etc/vsftpd/guest
在这里插入图片描述
3:编辑vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=gd
guest_username=ftp
guest_enable=YES
在这里插入图片描述
重启服务后测试用虚拟用户登陆vsftpd
在这里插入图片描述

虚拟用户家目录独立设定

1:vim /etc/vsftpd/vsftpd.conf
lcal_root=/ftpguo/ $ USER
user_sub_token= $USER $USER变量只能用在shell里面,不能用在配置
文件里面,需要用这个设置将 $USER引入配置文件
在这里插入图片描述
2:mkdir /ftpguo
chgrp ftp /ftpguo
chmod g+s /ftpguo
mkdir /ftpguo/ftpuser{1…3}
在这里插入图片描述
touch /ftpguo/ftpuser1/file1
touch /ftpguo/ftpuser2/file2
touch /ftpguo/ftpuser3/file3
在这里插入图片描述
3:测试:
lftp 172.25.66.12 -u ftpuser1
在这里插入图片描述
可以看到,我们看到的内容时ftpuser1目录下的内容,所以现在虚拟用户ftpuser1的家目录为ftpuser1

指定虚拟用户上传文件

1:vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
在这里插入图片描述
2:mkdir /etc/vsftpd/userconf
在这里插入图片描述
3:注释配置文件中属于匿名文件的
在这里插入图片描述
cd /ftpguo
mkdir ftpuser{1…3}/pub
在这里插入图片描述
vim /etc/vsftpd/userconf/ftpuser1
在这里插入图片描述
4:chgrp ftp /ftpguo/ftpuser{1…3}/pub
chmod 775 /ftpguo/ftpuser{1…3}/pub
在这里插入图片描述
lftp 172.25.66.12 -u ftpuser1
在这里插入图片描述
lftp 172.25.66.12 -u ftpuser2
在这里插入图片描述
由上面的测试可以看出,只有指定的虚拟用户才能写入,没有指定的将会出现550错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值