关闭防火墙
setenforce 0#暂时性关闭
永久性关闭
cd /etc/selinux/
vim config/
修改什么没听清,摸鱼了
防火墙允许ftp通过(你要是把防火墙关的话就不用弄)
systemctl status firewall#
firewall-cmd --permanent --add -service = ftp
firewall-cmd --reload#重载你的防火墙
挂载
mount /dev/cdrom /mnt/cdrom
下载ftp服务
yum -y install vsftpd
我这里下载成功
我们下载一个比较使用的工具tree
yum -y install tree
我们查看一下vsftpd的架构
tree /etc/vsftpd
1.这里我们先用普通用登录
进入配置文件
cd /etc/vsftpd(先备份)
cp vsftpd.conf vsftp. conf.bak
这里我删一下注释,一定一定要备份再删注释
grep -v "#" vsftpd.conf.bak >vsftpd.conf
现在查看一下
vim vsftpd.conf
这里我添加了10——14行
local_enable=YES #允许本地用户访问
write_enable=YES #允许本地用户写入(这里虽然赋予了权限,但一会也要给用户再赋一个权限,继续往下看吧)
local_root=/var/www/web1 #当用户ftp主机时,默认访问/var/www/web1这个位置
chroot_local_user=YES #是否将用户权限禁锢在ftp目录
chroot_list_enable=YES #
chroot_list_file=/etc/vsftpd/chroot_list #将系统用户限制在自己的家目录下,而chroot_list里存的就是这些系统用户的名单。
(建议直接看图)至于是限制还是允许chroot_list中的用户访问,要看chroot_local_user是yes还是no;如果是yes,那chroot_list列表中的用户就是可以来访问的该主机的;反之。
也可以这样理解
chroot_local_user总是一个 全局性 的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。
最后左下和右下可以理解为:所有用户都被限制在其主目录下,和所有用户都被限制在其主目录下(chroot_list_enable就是这个表不起作用了)
设置完成后:wq,重启vsftpd配置
systemctl restart vsftpd
报错的话,看是否拼写错误
现在我们去/var/www这个路径下创建一个web1的文件(和这条相对应local_root=/var/www/web1)
mkdir /etc/www/web1
我们去给web1一些权限
cd /etc/www
chmod 757 web1
设置成功后我们在本机上创建用户
useradd cs(名字叫cs)
passwd cs(给cs设置密码)
然后输入两遍密码
创建成功后给你创建的用户一个白名单
cd /etc/vsftpd
vim chroot_list
写上用户的名字就行了
最后进行测试
这里我先在我的win10上进行测试
先用win10ping一下虚拟机(别反过来ping,有防火墙)
打开命令提示符
能通,这是ftp成功的前提
ip是你下载ftp服务主机的ip
在此电脑上输入ftp://IP地址进行访问
输入账户和密码并登录
登录成功,这里我新建一个文件进行权限测试
创建成功
现在我在我的kali上进行测试
这里也登陆成功
但是这里发现没有对用户限制成功,我也没思路,先放着
2.用匿名登录
进入到配置文件进行修改
cd /etc/vsftp
vimvsftpd.conf
这里我修改了1,3,4,5,8这几行
anonymous_enable=YES #允许匿名登录
anon_root=/var/ftp/pub #默认登录的文件位置
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许用户创建文件
local_enable=NO #关闭本地用户登录功能,以防和匿名登录冲突
重启配置文件
systemctl restart vsftpd
关闭防火墙,上面关过了,最上面
给 anon_root=/var/ftp/pub中的pum文件赋予权限757
cd /var/ftp
chmod 757 pub
重启配置文件
systemctl restart vsftpd
进行测试
先用win10ping一下虚拟机
能通,这是ftp成功的前提
ip是你下载ftp服务主机的ip
在此电脑上输入ftp://IP地址进行访问
这里我直接登录成功 ,然后我进入pub里建了个文件,又进行删除,结果报错,因为我没在配置文件里加上anon_other_enable=YES
#anon_other_enable=YES #表示允许匿名用户删除文件(这个一般不赋予用户,权限太高了)
新建文件
然后再用kali登录
我kaili设置成了静态,
所以我这里先改了一下网络,改成dhcp
下面的子网ip你不用动就行
进网络的配置文件
cd /etc/network
vim interfaces
重启服务
systemctl restart networking.service
进入正题,开始ftp
命令:ftp
open 你的ftp服务器ip
名字为anonymous
登陆成功
3.虚拟用户登录
在根下建立一个目录用来存放虚拟用户
我们在vuser.txt里建立两个虚拟用户
内容参考格式如下
先是用户名,然后是密码
因为系统无法直接调用vsuer.txt文件,所以把此文件转换为数据库文件
[root@localhost vftp]# db_load -T -t hash -f /vftp/vuser.txt /vftp/vuser.db
为了让系统启用数据库文件,配置pam文件(在/etc/pam.d/)
修改如下(建议先备份,再修改)
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth required pam_userdb.so db=/vftp/vuser
account required pam_userdb.so db=/vftp/vuser
创建一个系统用户来为虚拟用户提供物理支持
现在修改ftp的配置文件
修改内容如下
这里出错了,明天在写
报错总结:
报错550
情况1:没有赋予用户权限
首先要弄清你默认访问的文件位置,anon_root=/var/ftp/pub这是我匿名访问时默认的位置,我们需要给pub设置757权限,chmod 757 /var/ftp/pub
情况2:关防火墙(最最上面第一个就是)
情况3:没重启配置文件
systemctl restart vsftpd
报错500
明天在写