ftp服务

ftp服务
/var/ftp/ ftp的默认目录
1.ftp的定义
ftp://文件传输协议
FTP(文本传输协议)是INTERNET上仍常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法。
2.ftp协议提供的软件
在hel7中:
vsftpd
服务端安装vsftpd服务和lftp服务,客户端安装lftp服务
vsftp用于服务端,lftp用于客户端

3.部署ftp服务
实验前的步骤:

	nm-connection-editor  改称同一个网端的ip
	cd /etc/yum.repos.d
	vim rhel_dvd.repo
	获取老师7.0版本的yum源(因为虚拟机是7.0版本的)
	yum clean all
	yum repolist

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实验:
安装vsftpd

	yum install vsftpd -y
	systemctl start vsftpd   开机启动服务
	systemctl enable vsftpd
	getenforce -->  Disabled 内核防火墙状态

注意:如果不是这个状态,vim /etc/sysconfig/selinux 更改状态–>reboot重启才可以生效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

	firewall-cmd --permanent --add-service=ftp	    把ftp服务永久添加到防火墙
	firewall-cmd --reload    更改防火墙加载
	也可以图形模式设定,本次实验使用的是图形模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@ftp~server ftp]# lftp 172.25.254.111 在客户端查看是否连接成功
lftp 172.25.254.111:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

lftp相当于一种浏览器(lftp登陆输入?获得命令详细帮助)
ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcpp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:

	500	文件系统权限过大
	530	用户认证失败,如果密码正确,就是不允许该用户登陆
	550	服务本身功能未开放,密码正确,ls也可以查看,不可以执行某些服务,例如是否可写
	553	本地文件系统权限过小

vim /etc/vsftpd/vsftpd.conf
在这里插入图片描述
(1)匿名用户(直接lftp登陆是匿名,后面接-u 用户名可实名登陆)
anonymous_enable=YES | NO 匿名用户是否可以登陆
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)本地用户(本地用户登陆是默认在用户的家目录)
local_enable=YES | NO 本地用户是否可以登陆
write_enable=YES | NO ftp是否对登陆用户可写
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)匿名用户上传(用命令put,匿名用户上传是默认以ftp身份)

vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub  匿名用户上传以ftp身份,并且权限为775
chmod 775 /var/ftp/pub

ll 是查看文件,ll-d 是查看目录
在这里插入图片描述
在这里插入图片描述
默认是以ftp组的身份
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(4)匿名用户下载(文件用get,下载目录用mirror)
anon_world_readable_only=NO | YES
文件是否只读,NO就可以下载,YES不能下载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载目录用mirror
下载多个文件 get group passwd
下载所有文件 mget *
在这里插入图片描述
在这里插入图片描述

(5)匿名用户创建目录
anon_mkdir_write_enable=YES | NO
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(6)匿名用户的删除目录
anon_other_write_enable=YES
在这里插入图片描述
在这里插入图片描述

(7)匿名用户家目录修改(默认再/var/ftp/pub)
anon_root=/directory
不能下载文件,则更改/directory权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(8)匿名用户上传文件默认权限修改
anon_umask=xxx 改为022 上传文件权限为644
(匿名用户 非默认目录,没有写权限,上传文件权限总是600)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(9)匿名用户登陆所使用身份的修改
chmown_uploads=YES | NO (是否能改变匿名用户登陆)
chown_username=student(本地已存在的用户) 更改了所有人
上传文件默认uid为student的uid
(ftp:14–>student:1000)
在这里插入图片描述
因为匿名用户上传本来是ftp的身份,现在修改匿名用户上传的身份
在这里插入图片描述

(10)最大上传效率(限速保证服务端正常工作)
anon_max_rate=102400 单位:字节 100k 设置限速100k
测试:
dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000
从/dev/截取一个2G的文件放到/mnt/bigfile
分别在限速和不限速的时侯上传

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(11)最大连接个数
max_clients=2
在这里插入图片描述
在这里插入图片描述

(12)本地用户家目录修改
local_root=/westos
更改为/westos/之后,下载文件权限太小,u+w之后还是权限太小
ll -d /westos/
drwxr-xr-x 2 root ftp 66 Jul 29 22:08 /westos/ 还会553
但是777权限太大,student用户登陆的时候,因为所有组和所有人分别是root和ftp,因此student登陆只能只用其他人的权限,改成777可写,这时候可以下载,但是对于所有的用户都可以随便上传下载,太不安全了,因此把所有组和所有人都改称student,权限改称775,这样就可以下载了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
rm passwd–>exit

(13)本地用户上传文件权限
local_umask=xxx
在这里插入图片描述
在这里插入图片描述

(14)限制本地用户浏览根目录
chroot_local_user=YES 此参数要求去掉自己对家目录的写权限
chmod u-w /home/student
注意:要先把之前设定的本地用户家目录修改注释掉,再自己的家目录里面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(15)用户黑白名单(锁定用户家目录,是否可以切换根目录)
NO是黑名单,YES是白名单
chroot_local_user=NO | YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

vim /etc/vsftpd/chroot_list 添加用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(16)限制本地用户登录ftp服务
vim /etc/vsftpd/ftpusers 永久用户黑名单
vim /etc/vsftpd/user_list 用户临时黑名单
注意:默认userlist_enable=YES 让list生效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把student删除
在这里插入图片描述
用户临时黑名单:
vim user_list
在这里插入图片描述
在这里插入图片描述

(16)用户白名单设定
userlist_enable=YES 让list生效
userlist_deny=NO
vim /etc/vsftpd/user_list 参数设定,此文件变成用户白名单,只有在名单中出现的用户才可以登陆ftp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1)ftp服务的虚拟用户设定(对登陆用户的分别管理)
vim /etc/vsftpd/westosfile 编辑登陆用户所用的临时帐号身份.文件名任意
在这里插入图片描述
ftpuser1 虚拟用户名称
123 虚拟用户密码
ftpuser2
123
ftpuser3
123
编辑三个用户名称以及登陆密码
在这里插入图片描述
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
对编辑了临时身份帐号及密码的文件进行加密 本来是明文
在这里插入图片描述

查看vsftpd.conf 认证时使用的是pam认证
pam_service_name=vsftpd

vim /etc/pam.d/westos 文件名任意

account required pam_userdb.so db=/etc/vsftpd/westosfile	从westosfile.db中认证帐号
auth required pam_userdb.so db=/etc/vsftpd/westosfile		从westosfile.db中认证密码

ftp配置文件的默认认证方式为pam方式,在此文件下查看该认证方式的规则
在这里插入图片描述
自己编写一个认证文件
在这里插入图片描述
认证规则
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf

pam_service_name=westos		把pam认证的文件改为westos,指定pam认证的文件
guest_enable=YES		      允许游客登陆
userlist_deny=YES

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)虚拟帐号身份指定
默认使用虚拟用户时,登陆后在pub目录
guest_username=westos 修改参数后,登陆在为westos家目录
如果是500–>chmod u-w /home/westos
在这里插入图片描述
在这里插入图片描述

(3)虚拟帐号家目录独立设定($USER当前用户)

env 查看当前系统的环境变量
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf

local_root=ftphome/$USER	      建立家目录区分虚拟帐号
指定每个虚拟用户登录所在目录为单独的属于自己的目录
user_sub_token=$USER		让配置适用当前shell语法

在这里插入图片描述
mkdir /ftphome/user1/user1dir -p 建立虚拟用户家目录
mkdir /ftphome/user2/user2dir -p
在这里插入图片描述

(4)虚拟帐号配置独立
chgrp ftp /ftphome -R 将虚拟用户身份都更改为ftp
ll /ftphome/user*
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
在这里插入图片描述
vim /etx/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/userconf	

在这里插入图片描述

vim /etc/vsftpd/userconf/user1
在此文件中设定配置文件中的所有参数,此文件的优先级高
例如:anon——upload_enable=YES 上传权限
在这里插入图片描述
测试:不编写user2
分别使用user1和user2登陆lftp上传文档,user1可以,user2不行
在这里插入图片描述
虚拟用户登录后再pub目录
在这里插入图片描述
在这里插入图片描述
考虑之前的匿名用户的那些操作没有注释掉
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值