目录
五、本地用户访问
1、本地用户登陆控制:local_enable=NO|YES
2、更改默认访问目录:local_root=/westosdir
3、写权限控制:write_enable=NO|YES
4、上传文件权限控制:local_umask=xxx
5、用户登录控制
1)编辑永久用户登录黑名单
2)编辑用户白名单
6、锁定用户到自己的家目录中:chroot_local_user=YES
7、锁定用户到自己的家目录中的白名单 hroot_local_user=YESchrooct_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list
8、锁定用户到自己的家目录中的黑名单
六、虚拟用户访问
1、建立虚拟用户
2、虚拟用户家目录的独立设定
3、用户配置独立
五、本地用户访问
1、本地用户登陆控制:local_enable=NO|YES
- 测试:本地用户不可以访问
- 测试:本地用户不可以访问
- 修改配置文件
- 再次测试,可以访问了
2、更改默认访问目录:local_root=/westosdir
[root@westos_student50 ftp]# vim /etc/vsftpd/vsftpd.conf
17 local_enable=YES
18 local_root=/westosdir ####提前创建好此目录
[root@westos_student50 vsftpd]# systemctl restart vsftpd.service
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u lrt
Password:
lftp lrt@172.25.254.50:~> ls
-rw-r--r-- 1 0 0 0 Nov 23 13:54 westosfile1
-rw-r--r-- 1 0 0 0 Nov 23 13:54 westosfile2
-rw-r--r-- 1 0 0 0 Nov 23 13:54 westosfile3
-rw-r--r-- 1 0 0 0 Nov 23 13:54 westosfile4
-rw-r--r-- 1 0 0 0 Nov 23 13:54 westosfile5
lftp lrt@172.25.254.50:~>
- 使用用户lrt登录测试(需要提前添加用户lrt,并设置密码)
3、写权限控制:write_enable=NO|YES
- 命令
[root@westos_student50 vsftpd]# chmod 777 /westosdir/ ####不修改的话会有553报错
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
[root@westos_student50 vsftpd]# systemctl restart vsftpd.service
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> put /etc/passwd
2792 bytes transferred
- 测试
4、上传文件权限控制:local_umask=xxx
本地用户访问ftp,在该本地用户中put上传文件/etc/passwd,服务默认上传文件的权限为644,编写vsftp服务的配置文件,设定local_umask=077,重启服务,访问ftp并在pub/中重新上传/etc/passwd(先删除之前上传的文件),可以看到文件此时passwd文件权限为600(777-077-111),权限设定生效
- 所有命令
[root@westos_student50 ~]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> ls
lftp westos@172.25.254.50:~> put /etc/passwd
2792 bytes transferred
lftp westos@172.25.254.50:~> ls
-rw-r--r-- 1 1000 1000 2792 Nov 26 11:13 passwd
lftp westos@172.25.254.50:~> quit
[root@westos_student50 ~]# vim /etc/vsftpd/vsftpd.conf
25 local_umask=077 ###25为行号
[root@westos_student50 ~]# cd /westosdir
[root@westos_student50 westosdir]# rm -fr * ####删除刚刚上传的passwd文件
[root@westos_student50 ~]# systemctl restart vsftpd.service
[root@westos_student50 /]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> put /etc/passwd
2792 bytes transferred
lftp westos@172.25.254.50:~> ls
-rw------- 1 1000 1000 2792 Nov 26 11:17 passwd
- 修改权限前
本地用户访问ftp,在该本地用户中put上传文件/etc/passwd,服务默认上传文件的权限为644,编写vsftp服务的配置文件,设定local_umask=077,重启服务,访问ftp并在pub/中重新上传/etc/passwd(先删除之前上传的文件),可以看到文件此时passwd文件权限为600(777-077-111),权限设定生效
- 修改权限
- 修改权限后
5、用户登录控制
/etc/vsftpd/ftpusers: 永久用户登录黑名单,在该名单中的用户无法访问ftp
/etc/vsftpd/user_list: 用户列表,默认为用户登录黑名单,在该名单中的用户无法访问ftp;可以在配置文件中设定userlist_deny=NO,此时该用户列表为用户登录白名单,不在名单中的用户不能访问ftp
1)编辑永久用户登录黑名单
在其中添加lee用户后,本地用户lee无法访问ftp,530报错即用户无法通过认证
- 命令
[root@westos_student50 /]# cd /etc/vsftpd/
[root@westos_student50 vsftpd]# ls
ftp_auth_file ftpusers user_config vsftpd.conf
ftp_auth_file.db man5 user_list vsftpd_conf_migrate.sh
[root@westos_student50 vsftpd]# vim ftpusers
lrt
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u lrt
Password:
lftp lrt@172.25.254.50:~> ls
ls: Login failed: 530 Login incorrect.
/etc/vsftpd/ftpusers: 永久用户登录黑名单,在该名单中的用户无法访问ftp
/etc/vsftpd/user_list: 用户列表,默认为用户登录黑名单,在该名单中的用户无法访问ftp;可以在配置文件中设定userlist_deny=NO,此时该用户列表为用户登录白名单,不在名单中的用户不能访问ftp
在其中添加lee用户后,本地用户lee无法访问ftp,530报错即用户无法通过认证
- 命令
[root@westos_student50 /]# cd /etc/vsftpd/ [root@westos_student50 vsftpd]# ls ftp_auth_file ftpusers user_config vsftpd.conf ftp_auth_file.db man5 user_list vsftpd_conf_migrate.sh [root@westos_student50 vsftpd]# vim ftpusers lrt [root@westos_student50 vsftpd]# lftp 172.25.254.50 -u lrt Password: lftp lrt@172.25.254.50:~> ls ls: Login failed: 530 Login incorrect.
2)编辑用户白名单
编写vsftp服务的配置文件,设定userlist_deny=NO,重启服务,此时用户列表为用户登录白名单,在其中添加lrt用户后,只有本地用户lrt可以访问ftp,不在名单中的用户不能访问ftp(包括匿名用户)
#######实验前先把之前的配置还原
[root@westos_student50 vsftpd]# vim vsftpd.conf
137 userlist_deny=NO ####137为行号
[root@westos_student50 vsftpd]# systemctl restart vsftpd.service
[root@westos_student50 vsftpd]# vim user_list
lrt
[root@westos_student50 vsftpd]# systemctl restart vsftpd.service
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u lrt
Password:
lftp lrt@172.25.254.50:~> ls
-rw------- 1 1000 1000 2792 Nov 26 11:17 passwd
lftp lrt@172.25.254.50:~> quit
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> ls
ls: Login failed: 530 Permission denied.
编写vsftp服务的配置文件,设定userlist_deny=NO,重启服务,此时用户列表为用户登录白名单,在其中添加lrt用户后,只有本地用户lrt可以访问ftp,不在名单中的用户不能访问ftp(包括匿名用户)
- /etc/vsftpd/vsftpd.conf配置
- /etc/vsftpd/user_list配置
6、锁定用户到自己的家目录中:chroot_local_user=YES
本地用户访问ftp,访问成功后该用户可以切换到FTP服务器系统的根目录中,这显然是不安全的,应该将该用户锁定到自己的家目录中
注:实验前先把之前实验的配置还原,不然很容易出现错误!
实验前先把之前实验的配置还原,不然很容易出现错误!!
实验前先把之前实验的配置还原,不然很容易出现错误!!!
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> ls
-rw------- 1 1000 1000 2792 Nov 26 11:17 passwd
lftp westos@172.25.254.50:~> cd /
cd ok, cwd=/
lftp westos@172.25.254.50:/> ls
lrwxrwxrwx 1 0 0 7 Aug 12 2018 bin -> usr/bin
dr-xr-xr-x 6 0 0 4096 Jun 22 03:35 boot
drwxr-xr-x 19 0 0 3260 Nov 26 10:57 dev
drwxr-xr-x 141 0 0 8192 Nov 23 12:48 etc
lftp westos@172.25.254.50:/> quit
[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
107 chroot_local_user=YES ###107为行号
[root@westos_student50 vsftpd]# systemctl restart vsftpd.service
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u westos
Password:
lftp westos@172.25.254.50:~> cd /
cd: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
[root@westos_student50 vsftpd]# ls -ld /homepub
[root@westos_student50 ftpuserdir]# ls -ld /ftpuserdir/westos*/pub
drwxrwxr-x 2 root ftp 20 Nov 26 21:30 /ftpuserdir/westos1/pub
drwxrwxr-x 2 root ftp 20 Nov 26 21:31 /ftpuserdir/westos2/pub
drwxrwxr-x 2 root ftp 6 Nov 26 21:20 /ftpuserdir/westos3/pub
[root@westos_student50 ~]# lftp 172.25.254.50 -u westos1
Password:
lftp westos1@172.25.254.50:~> cd /pub
cd ok, cwd=/pub
lftp westos1@172.25.254.50:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp westos1@172.25.254.50:/pub> quit
[root@westos_student50 ~]# lftp 172.25.254.50 -u westos2
Password:
lftp westos2@172.25.254.50:~> cd /pub
cd ok, cwd=/pub
lftp westos2@172.25.254.50:/pub> put /etc/passwd
2792 bytes transferred
lftp westos2@172.25.254.50:/pub> quit
[root@westos_student50 ~]# lftp 172.25.254.50 -u westos3
Password:
lftp westos3@172.25.254.50:~> cd /pub
cd ok, cwd=/pub
lftp westos3@172.25.254.50:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp westos3@172.25.254.50:/pub> quit
本地用户访问ftp,访问成功后该用户可以切换到FTP服务器系统的根目录中,这显然是不安全的,应该将该用户锁定到自己的家目录中
注:实验前先把之前实验的配置还原,不然很容易出现错误!
实验前先把之前实验的配置还原,不然很容易出现错误!!
实验前先把之前实验的配置还原,不然很容易出现错误!!!
- 这五条要注释掉
- [root@westos_student50 ftpuserdir]# vim /etc/vsftpd/user_config/westos2(注意文件名要与用户名相同)
- 修改系统文件权限,否则会有553报错
- 测试,只有westos2可以上传文件



