实验环境
[server主机]服务机 192.168.43.66 selinux关闭 防火墙开启 dnf安装设定完成
[client主机]客户机 192.168.43.77 selinux关闭 dnf安装设定完成 安装lftp #ftp协议文本浏览器
一、什么是ftp
ftp,全称file transfer proto 互联网中最老牌的文件传输协议。与大多数Internet服务一样,ftp也是一个客户机/服务器系统。用户通过一个支持ftp协议的客户机程序,连接到在远程主机上的ftp服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。 比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
二、vsftpd安装及启用
我们将ip地址为:192.168.43.66的虚拟机作为FTP服务器 (1)关闭内核加强型防火墙selinux
vim /etc/sysconfig/selinux
或者
vim /etc/selinux/config
(2)安装vsftpd,lftp lftp为文件传输程序 vsftp提供ftp协议软件
lftp 是一个轻量的文件传输工具,是一款类 Unix 系统下命令行界面的 FTP 客户端软件; vsftp 是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP;
前置:配置软件仓库源指向性文件
dnf install vsftpd -y
dnf install lftp -y
(3)安装完成后启动vsftpd服务,开启防火墙,在系统防火墙中永久开启ftp访问,刷新防火墙使设定生效
systemctl enable --now vsftpd
firewall-cmd --list-all
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
(4)测试安装发布 方式一: 在firefox浏览器所在的真实主机中访问ftp 输入网址:ftp://ip
方式二: 通过lftp(ftp协议文本浏览器)访问ftp shell中执行命令:lftp ip
三、vsftpd基本信息
服务名称: vsftpd.service 配置目录: /etc/vsftpd 主配置文件: /etc/vsftpd/vsftpd.conf 默认发布目录: /var/ftp
发布目录也就是指在ftp共享的目录,也就是你发布的项目,帮你把它存在一个文件夹下。下次启动服务器时就可以在浏览器上使用你的项目了
报错信息:
报错序号 | 含义 |
---|
550 | 程序本身拒绝 | 553 | 文件系统权限设置 | 500 | 权限过大 | 530 | 认证失败 |
四、匿名用户访问控制
访问时出现下列情况:lftp不能访问成功(ls列出默认共享目录失败)或者浏览器访问ftp网址时需要账密认证
以上问题是因为在默认情况下,通过上述两种方式访问ftp都是以匿名用户的身份进行的,而在vsftpd主配置文件中,匿名用户访问默认是关闭的,因此需要修改主配置文件==/etc/vsftpd/vsftpd.conf==,源文件里没有的语句,可以自己写入,每次修改完毕后,务必重启vsftpd服务,使其生效,如若想取消设定,使用==#注释==即可。
1.登陆控制
在主配置文件中修改 anonymous_enable=YES YES开启匿名用户访问|NO关闭匿名用户访问
2.家目录控制
在主配置文件中修改or添加 anon_root=目录 即可修改匿名用户访问家目录
3.上传控制
anon_upload_enable=YES|NO 是否开启匿名用户上传(put)权限 上传命令成功执行后,上传到ftp共享目录
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
lftp 192.168.43.66
cd pub
put /etc/passwd
4.目录建立控制
anon_mkdir_write_enable=YES|NO 匿名用户是否能够建立目录
5.下载控制
anon_world_readable_only=YES|NO 匿名用户是否可以下载(get)不能读的文件 下载到了访问时,主机所处的位置
6.删除、重命名控制
anon_other_write_enable=YES|NO
7.匿名用户上传文件权限设定
anon_umask=xxx 文件上传权限=777-系统保留权限umask-111 当设定chown_username之后上传文权限将不是用此参数设定 644=777-022-111
8.匿名用户上传文件的用户身份设定
当设定chown_username之后设定的umask上传文权限将失效 chown_upload=YES chown_username=lee chown_upload_mode=0644 当chown_upload为开启状态(YES) 上传文件之后,拥有者为设定的username,权限为设定的数字
9.登录数量控制
开启多个shell连接,第三台连接失败
10.上传速率限制
五、本地用户的访问
lftp ip -u username
1.家目录控制
2.写权限控制
3.上传文件权限控制
4.用户登录控制
用户登录黑名单
编辑默认黑名单/etc/vsfptd/user_list ,当userlist_deny=YES 时,默认作为黑名单使用。 编辑永久黑名单/etc/vsftpd/user_list ,此文件不受userlist_deny开启或关闭的影响。 黑名单内的用户无法访问ftp
黑名单内的westos用户无法登陆
用户登录白名单
当userlist_deny=NO ,及用户默认黑名单处于关闭状态时,此时文件/etc/vsftpd/user_list 作为白名单来使用 只有白名单里的用户可以访问ftp网址
5.锁定用户到自己的家目录中(不能使用cd移动到其他路径)
chmod u-w /home/*
锁定用户到自己的家目录中的白名单
当chroot_local_user=YES 及用户家目录锁定控制处于开启状态 且chroot_list_enable=YES 及名单开启 写入chroot_list_file=/etc/vsftpd/chroot_list 名单文件 此时/etc/vsftpd/chroot_list 文件作为白名单使用 也就是说,除了白名单之内的用户,其余用户皆被锁定到家目录中。 白名单以内的用户可以移动到其他路径。
锁定用户到自己的家目录中的黑名单
当chroot_local_user=NO 及用户家目录锁定控制处于关闭状态 且chroot_list_enable=YES 及名单开启 写入chroot_list_file=/etc/vsftpd/chroot_list 名单文件 此时/etc/vsftpd/chroot_list 文件作为黑名单使用 也就是说,只有黑名单之内的用户被锁定到自己的家目录中。
六、虚拟用户访问
1.建立虚拟用户过程
1)建立认证文件模板 文件名任意
2)加密认证文件
3)建立认证策略文件 名称随意
注意:.db文件为自动生成的 最后的.db后缀不要自己写 正确写法:
4)编辑vsftpd配置文件并重启服务
pam_service_name=westos
guest_enable=YES
guest_username=ftp
2.虚拟用户家目录设定
1)创建虚拟用户家目录 创建各个用户不同的家目录的同时,创建几个有区分性的文件,方便实验中识别 2)将设定的用户家目录写入vsftpd配置文件,并重启服务 ¥USER为一个变量
3.用户配置独立权限
设定完成后,user1用户可以上传文件,其他用户不可以
|