RHEL7-vsftpd本地用户(一)

Vsftpd本地用户使用

先附上vsftpd.conf部分常见参数表

RHEL7-vsftpd本地用户(一)_第1张图片

说明:默认下本地用户可登录ftp服务器,且登录后的目录为本地用户的家目录,所以

本试验目的:禁止匿名用户登陆,本地用户可以登陆,可以上传、下载文件、可以创建目录,可以删除文件,锁定本地用户登陆目录为/var/ftp目录

第一步:挂载镜像、编辑yum仓库、安装vsftpd及lftp程序,开启vsftpd服务并将其加入开机启动项、复制主配置文件

第二步:编辑主配置文件并重启vsftpd服务

备份:

RHEL7-vsftpd本地用户(一)_第2张图片

修改:(第15行在第一次实验时未加入,实验结束时发现可以cd出去才加入的)

RHEL7-vsftpd本地用户(一)_第3张图片

重启vsftpd

RHEL7-vsftpd本地用户(一)_第4张图片

第三步:ftp目录默认为/var/ftp/pub目录,默认pub目录没有w权限,即ftp程序无法在目录里上传文件,创建目录,只能下载文件。

不过这里采用修改目录所有者来实现,将目录所有者及所属组修改为ftp(这一步有严重bug,在第六步更正说明

RHEL7-vsftpd本地用户(一)_第5张图片

第四步:在工作目录创建1.txt,2.txt,3.txt用于上传,在/var/ftp/pub目录创建ftp.txt用于下载

RHEL7-vsftpd本地用户(一)_第6张图片

第五步:连接ftp后发现还是不能上传文件,发现selinux出了问题,使用setenforce 0临时关闭selinux后发现可以上传文件,所以我们这一步在开启selinux的情况下修改selinux参数达到上传文件的目的。

未关闭selinux时匿名用户和本地用户都不能登录:

RHEL7-vsftpd本地用户(一)_第7张图片

临时关闭selinux后匿名用户还是不能登录,但本地用户已经可以登录,但是不能上传文件:

RHEL7-vsftpd本地用户(一)_第8张图片

RHEL7-vsftpd本地用户(一)_第9张图片

RHEL7-vsftpd本地用户(一)_第10张图片

所以,这一步在不关闭selinux的情况下,需要修改selinux域策略

可以先使用getsebool -a | grep ftp查询与ftp有关的selinux域策略

RHEL7-vsftpd本地用户(一)_第11张图片

然后开启ftpd_full_access,永久开启

RHEL7-vsftpd本地用户(一)_第12张图片

第六步:修改完selinux域策略后再次测试

发现匿名用户不可登陆

RHEL7-vsftpd本地用户(一)_第13张图片

使用本地账户登陆

    登陆之后,发现还是不能创建文件夹,不能上传文件,经过多次排查,发现把pub目录设置为777即可。问题的所在是当用户以匿名用户访问时,实际是ftp这个用户在访问,所以可以把pub目录所有者改为ftp。但本地用户来访问时,若为root用户,则可以上传、删除文件,因为root权利大,但是非root用户就嗝屁了,因为非root用户不具有root权限以及不属于ftp用户组。

所以,综上所述,非root本地用户默认只能下载文件,但是要想删除文件、上传文件等需要设置pub目录权限为777,或者修改pub目录所有者及所属组为ftp后把非root用户也加入ftp组RHEL7-vsftpd本地用户(一)_第14张图片    

下图为pub目录权限为777的连接使用图,我发现,此时的本地用户竟然可以cd /  切换到根目录,这是不愿意看到的,查配置文件得到chroot_local_user=YES,将这条写入到/etc/vsftpd/vsftpd.conf中并重启vsftpd服务即可实现锁定ftp目录。RHEL7-vsftpd本地用户(一)_第15张图片

总结:本地用户登陆ftp要想上传文件必须修改pub权限为777,修改pub所有者为ftp对本地用户不起作用,因为ftp是供匿名用户使用的。

默认本地用户登陆ftp显示的是自己家目录,设置local_root=/var/ftp后本地用户登陆后显示为ftp目录,但是默认本地用户可以访问ftp以外的目录,设置chroot_local_user=YES后本地用户只能访问ftp目录,跳不出去,如下图。RHEL7-vsftpd本地用户(一)_第16张图片

你可能感兴趣的:(RHEL7)