linux之ftp服务

一,FTP服务
1.FTP服务的定义
FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法在RED HAT ENTREPRISE LINUX 6 中。 FTP 服务器包的名称为VSFTPD,它代表 Very Secure File Transfer Protocol Damon 服务器名称也叫做 vsftpd默认配置文件让 ANONYMOUS 用户只能下载位于 CHROOT 目录中的内容。 /var/ftp/ 这意味着远程 FTP 客户端能以用户anonymous 或 ftp 身份连接到服务器 ( 无需密码 ), 并从 ftp服务器上的 /var/ftp/ 目录下载文件 ( 其本地 ftp 用户可以读取这些文件 )
二,部署FTP服务
desktop虚拟机为服务端(172.25.254.177),server虚拟机为客户端(172.25.254.178)
服务端:
1.提供ftp协议的软件vsftpd
--yum install vsftpd -y


--yum install lftp y
2.开启服务端vsftpd,设置开机自启
--systemctl start vsftpd
--systemctl enable vsftpd


3.查看防火墙状态,如果是关闭状态,打开防火墙
--systemctl status firewalld                     ##防火墙状态
--systemctl start firewalld


4.防火墙设置
--firewall-cmd --permanent --add-service=ftp  ##在防火墙开启状态下,防火墙不阻止ftp服务。


--firewall-cmd --reload                       ##重新加载防火墙服务
--firewall-cmd --list-all                     ##查看


5.测试
--lftp 172.25.254.178
--ls可以看到内容说明服务端已经开启vsftpd服务。
6.rpm -qc vsftpd            ##查看ftp服务的配置文件
准备工作:
--getenforce
Enforcing 则需要修改配置文件
--vim /etc/sysconfig/selinux
修改 selinux=disable
getenforce
Disabled
设置完后reboot重启
客户端:
1.安装lftp软件:
--yum install lftp -y


2.安装完成进入客户端看是否能进
--lftp 172.25.254.177
--ls


三,ftp服务的基本使用
1.ftp服务的基本信息:
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
配置文件:/etc/vsftpd/vsftpd.conf
报错id解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限太小
若需要对vsftpd服务进行配置,则需要编辑此文件:/etc/vsftpd/vsftpd.conf
2.匿名用户登陆:
--vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES|NO    ##YES:允许匿名登陆 | NO:不允许匿名用户登陆
此时匿名用户不能登陆


3.本地用户登陆
16 local_enable=YES|NO ##YES:允许本地用户登陆 | NO:不允许本地用户登陆
此时使用本地用户登陆,就不能再登陆
4.是否对登陆的用户写
9 write_enable=YES|NO ##YES:ftp是否对登陆的用户写 | NO:不可写


改成NO之后,不能在写入文件:


5.匿名用户上传文件:
--vim /etc/vsftpd/vsftpd.conf #匿名用户上传身份默认是ftp
19 write_enable=YES
29 anon_upload_enable=YES


--chgrp ftp /var/ftp/pub/ ##将此目录的所有组改为ftp
--chmod g+w /var/ftp/pub/ ##对pub目录添加写权限
--systemctl restart vsftpd ###重启vsftpd服务


6.匿名用户家目录修改
--vim /etc/vsftpd/vsftpd.conf
13  anon_root=/test


在服务端/test目录下创建文件:


在使用匿名用户登录ftp,我们可以看到,此时匿名用户的家目录已经变为/test:


7.匿名用户上传文件权限修改
--vim /etc/vsftpd/vsftpd.conf
14  anon_umask=022


未进行修改前,我们可以看到上传的passwd文件权限为600:
将 anon_umask修改为022,则实际匿名用户上传文件的权限为755,但由于本地文件系统,最终上传文件的权限为644:
8.匿名用户建立目录
36 anon_mkdir_write_enable=YES|NO    ##YES:允许匿名用户建立目录 | NO:不允许
在未修该此参数之前,我们可以看到,匿名用户是不能建立目录的:
修改此参数:   
可以成功建立目录:
9.匿名用户使用的身份参数修改
chown_uploads=YES        
chown_username=ww        ##此用户必须是ftp服务端的正常可登陆的用户
chown_upload_mode=0644
在客户端/mnt目录下新建文件file,上传file,我们可以看到file的拥有者与所有都为ftp:
删除file,修改参数,在上传,我们可以看到file的拥有者与所有人发生了改变
我们可以查看用户ww的信息,发现刚刚上传的文件file的拥有人变为ww:
10..最大上传速率
anon_max_rate=10240000        ##限制最大上传速率大约为10M/s
dd if=/dev/zero of=/mnt/test bs=1M count=100    ##截取100M大的数据
在未限制上传速率前,上传的速率很快:
限制之后:
11.最大连接数
max_clients=1    ##限制最大的用户连接数为1个用户
链接一个用户:
此时再链接一个用户:
我们退出用户登录:
此时就可以再登录:
12.本地用户登陆限制
local_enable=YES|NO        ##YES:允许本地用户登陆 | NO:不允许本地用户登录
此时本地用户不能再登录:
13.本地用户读写限制
write_enable=YES|NO    ##YES:本地用户允许读写 | NO:本地用户不允许读写
修改前,我们不能删除文件:
修改后,可以删除:
14.本地用户家目录修改
使用本地用户登录时的家目录就是此用户的家目录,已经说过如何修改匿名用户的家目录,也可以修改本地用户的登录家目录:
local_root=/mnt       ##/mnt表示索要设定的家目录
修改本地用户家目录为:/mnt
在/mnt目录下新建几个文件:
此时使用本地用户ww登录,我们可以看到此时的家目录就是/mnt:
15.本地用户上传文件权限
local_umask=022        ##修改本地用户上传的文件的umask值
修改umask值为022,则本地上传的文件的权限为644:
16.限制本地用户登陆
1.用户黑名单:
--vim /etc/vsftpd/ftpusers    ##用户永久黑名单
--vim /etc/vsftpd/user_list    ##用户临时黑名单
永久黑名单指:在此名单中的用户无论如何都不能登录
临时黑名单指:当系统限制所有用户登陆时,此名单变为白名单,仅有名单中的用户可以登陆
我们将用户ww添加进永久黑名单:
此时,ww不能登录:
2.用户白名单的设定
--vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
限制所有用户登录后,此时/etc/vsftpd/user_list此名单成为白名单,仅有此名单中的用户可以登录:
将root在永久黑名单中删除,并且添加到临时黑名单,此时root可以正常登录:

17.匿名用户下载:
--anon_world_readable_only=YES|NO
       =YES:文件other位具有读权限时,才允许下载,仅仅只是所有人为ftp且有读权限是无法下载的,必须other有r,才可以下载
        =NO:只要ftp用户对此文件具有读权限即可下载
实验:
首先,可以看到,在pub/目录下有test文件,此文件权限为640,在other无r权限:

配置文件不做任何更改,下载此文件,会出现550错误:

添加参数如下:
--30 anon_world_readable_only=NO

此时可以下载
18.虚拟用户的配置:
虚拟用户是不存在于本机上的用户,由于在实际应用中,服务器上不可能直接注册上亿用户,因此作为用户,在服务器中是以虚拟用户进行存储的
1).虚拟用户的建立:
#在/etc/vsftpd/此目录下新建配置文件userlist


#添加虚拟用户账号与密码,格式如下:


#将明文的用户数据文件加密:
db_load -T -t hash -f loginusers loginusers.db
        ##-T:transfer转换
        ##-t:hash加密
        ##-f:
        ##loginusers:源文件
        ##loginusers.db:加密后的文件,.db后缀
可以看到会生成后缀为.db的文件:
#进行用户认证管理:
进行虚拟用户认证管理,在/etc/pam.d/目录下新建虚拟用户的认证管理文件:
vim /etc/pam.d/user
1 account required pam_userdb.so db=/etc/vsftpd/userlist
  帐号 必须验证成功 使用此插件 验证此文件
2 auth required pam_userdb.so db=/etc/vsftpd/userlist
  密码 必须验证成功 使用此插件 验证此文件

#修改配置文件:
--vim /etc/vsftpd/vsftpd.conf


--pam_service_name=westos    ##westos就是刚刚新建的文件
--guest_enable=YES        ##虚拟用户允许登陆


以上配置完成后,再使用虚拟用户westos1,westos2,westos3进行ftp登陆,我们可以看到此时虚拟用户进入匿名用户登陆时的家目录:/var/ftp:


2).虚拟用户家目录更改
1.给每个虚拟用户创建一个家目录,并给777权


2.配置vsftpd文件,并重启vsftpd

在这里插入图片描述
3.测试端就可以访问其家目录
3)给虚拟用户设置权限
只想让用户westos1有上传文件的权限而其他用户没有
1.创建一个user_conf目录,再创建一个westos1的文件

在这里插入图片描述
2.在westos1文件中写上传文件功能

在这里插入图片描述
3.配置vsftpd文件,将匿名用户上传功能屏蔽掉,然后加上指向到所创建的目录

在这里插入图片描述
4.测试端就可以上传了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值