Linux系统下的FTP服务

1.ftp的定义
ftp://文件传输协议,是INTERNET上仍常用的最老的网络协议之一,他为系统提供了通过网络与远程主机进行传输的简单方法,在RED HAT ENTREPRISE LINUX6中,FTP服务器包的名称为VSFTPD,他代表Very Secure File TransferProtocol Damon 服务器名称也叫做vsftpd

2.默认配置文件让 ANONYMOUS 用户只能下载位于CHROOT 目录中的内容。 /var/ftp/ 这意味着远程 FTP 客户端能以用户 anonymous 或 ftp 身份连接到服务器(无需密码),并从ftp服务器上的 /var/ftp/ 目录下载文件(其本地 ftp 用户可以读取这些文件)

3.部署ftp服务

	yum install vsftpd -y			安装vsftpd服务
	systemctl start vsftpd			开启vsftpd服务
	systemctl enable vsftpd		设置vsftpd服务开机启动

在这里插入图片描述

	getenforce							检查selinux是否开启

在这里插入图片描述

如果不是disabled , vim /etc/sysconfig/selinux
修改SELINUX=disabled   然后reboot重启以生效

在这里插入图片描述

	firewall-cmd --permanent --add-service=ftp	把ftp服务永久添加到防火墙
	firewall-cmd --reload

在这里插入图片描述
安装lftp,进行登陆,或者在浏览器输入ftp://172.25.254.103
在这里插入图片描述
在这里插入图片描述

lftp相当于一种浏览器(lftp登陆输入?获得命令详细帮助)
在这里插入图片描述

ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcpp 21 主动端口,服务器主动连接客户端
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:

	500	文件系统权限过大
	530	用户认证失败
	550	服务本身功能未开放
	553	本地文件系统权限过小

4.ftp服务用户管理

	vim /etc/vsftpd/vsftpd.conf

匿名用户(直接lftp登陆是匿名,后面接-u 用户名可实名登陆)

anonymous_enable=YES | NO	匿名用户是否可以登陆

在这里插入图片描述
测试:当前为YES,可以匿名用户登录
在这里插入图片描述
修改成NO重启服务后,再次使用匿名用户登陆
在这里插入图片描述

本地用户(本地用户登陆是默认在用户的家目录)

local_enable=YES | NO		本地用户是否可以登陆

在这里插入图片描述
测试:当前为YES,本地用户可以登陆
在这里插入图片描述
更改为NO后,重启服务,再次使用本地用户进行登陆
在这里插入图片描述

write_enable=YES | NO		ftp是否对登陆用户可写

在这里插入图片描述
测试:当前为YES,ftp服务对登陆用户可写
在这里插入图片描述
更改为NO后,重启服务,再次lftp登陆
在这里插入图片描述

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

	vim /etc/vsftpd/vsftpd.conf
	更改配置文件
	write_enable=YES				登陆用户可写
	anon_upload_enable=YES			允许上传

在这里插入图片描述
产生报错553,553是本地权限过小,这里登陆所看到的是 /var/ftp/pub 所以更改其权限为777
在这里插入图片描述
再次重启服务尝试上传
在这里插入图片描述
777的满权限相对来说过于宽泛,安全性不高,所以尽可能减少权限但不影响功能。

首先lftp登陆后,查看刚刚上传的文件属性
在这里插入图片描述
刚刚上传的文件所有人ID为14,所有组ID为50,查看ID50对应的所有组是谁。

	cat /etc/group | grep 50		查看/etc/group中50的相关信息

在这里插入图片描述
由此可见文件所有组是ftp,所以我们就可以限制其他的权限只放给文件所有者和所有组权限即可。

	chgrp ftp /var/ftp/pub
	chmod 775 /var/ftp/pub

匿名用户下载(文件用get,下载目录用mirror)
文件是否只读,NO就可以下载,YES不能下载。参数没有可自行添加

	anon_world_readable_only=NO | YES

在这里插入图片描述
当前是NO,所以可以下载
在这里插入图片描述
更改为YES后重启服务,将不能下载,再次登陆进行下载操作
在这里插入图片描述

下载多个文件用 get group
下载所有文件用 mget *

匿名用户创建目录

	anon_mkdir_write_enable=YES | NO

在这里插入图片描述
当前为YES,匿名用户可创建目录
在这里插入图片描述

匿名用户的删除和重命名
没有参数可自行添加

		anon_other_write_enable=YES

在这里插入图片描述
当前为YES,匿名用户可删除。(删除目录用rm -r)
在这里插入图片描述

匿名用户家目录修改

	anon_root=/westos			westos必须是一个真实存在的目录

在这里插入图片描述
在/westos/内创建文件file{1…5}
lftp匿名登陆后,ls可以看到file1-5说明家目录已被更改为/westos
在这里插入图片描述

匿名用户上传文件默认权限修改

		anon_umask=xxx	改为022

测试:在不添加参数的情况下匿名用户上传文件并查看权限
在这里插入图片描述
添加参数anon_umask=022,重启生效后上传文件并查看权限
在这里插入图片描述

匿名用户登陆所使用身份的修改

	chown_uploads=YES | NO	(是否能改变匿名用户登陆)
	chown_username=student(本地已存在的用户)

匿名用户登陆未修改时,上传的文件默认属于ftp
在这里插入图片描述
当添加参数生效后,匿名用户登陆身份已被修改,上传文件默认属于修改后的身份
在这里插入图片描述

最大上传效率(限速保证服务端正常工作)

		anon_max_rate=102400 单位:字节 100k	设置限速100k

测试:

		dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000
		从/dev/截取一个2G的文件放到/mnt/bigfile

分别在限速和不限速的时侯上传
不限速时:
在这里插入图片描述
上传限速时:
在这里插入图片描述

最大连接个数

		max_clients=2

添加参数之前可以没有限制的登陆连接,添加参数2后最大连接俩个,第三个就无法连接
在这里插入图片描述在这里插入图片描述
第一第二个用户可正常登陆,第三个无法连接
在这里插入图片描述

本地用户家目录修改

	local_root=/westos

本地用户默认登陆在自己的家目录,现在更改到/westos 在/westos/创建文件westosfile登陆后ls查看
在这里插入图片描述

本地用户上传文件权限

	local_umask=022				默认是022

在这里插入图片描述
修改成077后,再次用本地用户上传文件并查看权限
在这里插入图片描述

限制本地用户浏览根目录

	chroot_local_user=YES	此参数要求去掉自己对家目录的写权限
	chmod u-w /home/student

在这里插入图片描述
在修改之前,本地用户可以浏览根目录
在这里插入图片描述
修改参数并去掉本地用户家目录w写权限后
在这里插入图片描述
在这里插入图片描述

用户黑白名单(锁定用户家目录,是否可以切换根目录)
NO是黑名单,YES是白名单

		chroot_local_user=NO | YES
		chroot_list_enable=YES
		chroot_list_file=/etc/vsftpd/chroot_list

例:当前为白名单设置,只有在文件/etc/vsftpd/chroot_list内记录的用户才可以切换根目录
在这里插入图片描述
白名单内只有student用户所以student用户可以切换根目录
在这里插入图片描述
而白名单内没有的用户westos无法切换根目录
在这里插入图片描述

限制本地用户登录ftp服务

		vim /etc/vsftpd/ftpusers	永久用户黑名单	
		vim /etc/vsftpd/user_list	用户临时黑名单

例:在 /etc/vsftpd/ftpusers中添加student , 重启后使用student用户登陆ftp服务
在这里插入图片描述
在这里插入图片描述
而不在黑名单的westos用户则可以正常登陆ftpd服务
在这里插入图片描述

用户白名单设定

		userlist_enable=YES
		userlist_deny=NO
		vim /etc/vsftpd/user_list	
		参数设定,此文件变成用户白名单,只有在名单中出现的用户才可以登陆ftp

例:在名单中添加student用,然后使用student用户登陆ftp服务
在这里插入图片描述
在这里插入图片描述
再次使用不在白名单的用户westos登陆
在这里插入图片描述

ftp服务的虚拟用户设定(对登陆用户的分别管理)

		vim /etc/vsftpd/westosfile	编辑登陆用户所用的临时帐号身份.文件名任意

		user1
		123
		user2
		123
		user3
		123

编辑三个用户名称以及登陆密码
在这里插入图片描述

		db_load -T -t hash -f /etc/vsftpd/westosfil /etc/vsftpd/westosfile.db
		对编辑了临时身份帐号及密码的文件进行加密生成文件westos.db即加密成功

在这里插入图片描述

查看vsftpd.conf 认证时使用的是pam认证
在这里插入图片描述

		pam_service_name=vsftpd				使用pam认证,并且认证文件为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中认证密码

在这里插入图片描述

		vim /etc/vsftpd/vsftpd.conf

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

在这里插入图片描述

虚拟帐号身份指定
默认使用虚拟用户时,登陆后在pub目录

		guest_username=westos	修改参数后,登陆在为westos家目录

		chmod u-w /home/westos

在这里插入图片描述

虚拟帐号家目录独立设定($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

在这里插入图片描述

虚拟帐号配置独立

		chgrp ftp /ftphome -R		将虚拟用户身份都更改为ftp
		ll /ftphome/user*
		chmod 775 /ftphome/user1/user1dir
		chmod 775 /ftphome/user2/user2dir

在这里插入图片描述

		vim /etc/vsftpd/vsftpd.conf

		user_config_dir=/etc/vsftpd/userconf	
		mkdir -p /etc/vsftpd/userconf

在这里插入图片描述

		vim /etc/vsftpd/userconf/user1

在此文件中设定配置文件中的所有参数,此文件的优先级高
例如:anon_upload_enable=YES 上传权限
在这里插入图片描述
测试:不编写user2
分别使用user1和user2登陆lftp上传文档,user1可以,user2不行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值