|NO.Z.00022|——————————|^^ 部署 ^^|——|Linux&VSFTP服务.V04|——|VSFTP部署|本地验证|
一、本地用户验证实验:
### --- 本地用户验证实验:
### --- 本地用户权限控制
local_enable=YES // 是否启用本地系统用户
local_umask=022 // 本地用户所上传文件的权限掩码
local_root=/var/ftp // 设置本地用户的FTP根目录
chroot_local_user=YES // 是否将用户禁锢在主目录
local_max_rate=0 // 限制最大传输速率
ftpd_banner=Welcome to blah FTP service // 用户登录时显示的欢迎信息
userlist_enable=YES & userlist_deny=YES // 禁止/etc/vsftpd/user_list 文件中出现的用户名登录FTP
userlist_enable=YES & userlist_deny=NO // 仅允许/etc/vsftpd/user_list文件中出现的用户登录FTP
~~~ 配置文件:ftpusers // 禁止/etc/vsftpd/ftpusers文件中出现的用户名登录FTP权限比user_list更高,即时生效
### --- 实验需求与流程:
### --- 服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
[root@server21 ~]# useradd -s /sbin/nologin zhangsan
[root@server21 ~]# passwd zhangsan
[root@server21 ~]# useradd -s /sbin/nologin lisi
[root@server21 ~]# passwd lisi
### --- 将所有用户禁锢在自己的家目录下
~~~ 注:默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名
~~~ 开启用户家目录限制,限制所有用户不能随便切换目录
[root@server22 ~]# ftp 20.20.20.21 // 以张三用户登入,可以随机切换目录
Name (20.20.20.21:root): zhangsan
Password:
ftp> cd /
ftp> ls // 显示根下的所有文件,没有禁锢在张三的家目录下
~~~ 禁止本地用户不可以随机切换目录
[root@server21 ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES // 限制所有用户禁锢在自己的家目录
[root@server21 ~]# service vsftpd restart
[root@server22 ~]# ftp 20.20.20.21
Connected to 20.20.20.21 (20.20.20.21).
Name (20.20.20.21:root): zhangsan
Password:
ftp> cd /
ftp> ls // 切换到/下,ls查看显示的是张三家目录下的文件,说明禁锢在本地用户的家目录下,可以往家目录下一级目录是可以的,往上翻是不可以的。
### --- 将部分用户禁锢在自己的家目录下
chroot_list_enable=YES
~~~ 开启白名单功能,允许白名单中的用户随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
~~~ 白名单文件所在位置(需自己创建)
~~~ 添加张三为白名单用户,使其不被禁锢在自己的家目录下
[root@server21 ~]# vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
[root@server21 ~]# vim /etc/vsftpd/chroot_list
[root@server21 ~]# service vsftpd restart
[root@server22 ~]# ftp 20.20.20.21
Name (20.20.20.21:root): zhangsan
Password:
ftp> cd /
ftp> ls // 添加白名单,张三不会被禁锢在自己的家目录下。可以查看到根下的所有文件
### --- 配置文件:/etc/vsftpd/ftpusers // 权限优先级高的黑名单,主要是防止某些用户不能登录ftp,一般会禁止root来登录。root的权限会很高,防止某些人通过root登录ftp而获取一些资源,所以限制
~~~ 所有写入此文件内的用户名都不允许登录ftp,立刻生效。
[root@server21 ~]# vim /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp // 不允许去login
root
lisi // 禁止李四用户登录
[root@server22 ~]#
[root@server22 ~]# ftp 20.20.20.21
Password:
Login failed. // lisi登录失败
[root@server22 ~]# ftp 20.20.20.21
Name (20.20.20.21:root): zhangsan
Password:
Using binary mode to transfer files. // zhangsan登录成功
### --- 修改被动模式数据传输使用端口
[root@server21 ~]# vim /etc/vsftpd/vsftpd.conf // 在最后添加如下内容
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
[root@server21 ~]# service vsftpd restart
[root@server21 upload]# dd if=/dev/zero of=./atyanqi.txt bs=1M count=1000 // 创建一个1GB的atyanqi.txt文件
[root@server21 ~]# netstat -antp // 此时会有21端口
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1974/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1404/sshd
[root@server22 ~]# ftp 20.20.20.21
Name (20.20.20.21:root): ftp
Password:
ftp> cd upload
ftp> get atyanqi.txt // 下载一个文件
[root@server21 ~]# netstat -antp // 下载的时候查看端口,服务器端和客户端的端口都发生了变化,出现了40000和50000之间的随机端口
tcp 0 52 20.20.20.21:22 20.20.20.240:56283 ESTABLISHED 1585/sshd
tcp 0 0 20.20.20.21:22 20.20.20.240:49438 ESTABLISHED 1523/sshd
tcp 0 0 20.20.20.21:21 20.20.20.22:46190 ESTABLISHED 1978/vsftpd
tcp 0 0 20.20.20.21:48583 20.20.20.22:50654 TIME_WAIT -
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv007-network
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通