目录
五、本地用户访问
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
?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.
?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.
- ?/etc/vsftpd/vsftpd.conf配置
?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 /home/*
drwx------ 4 lrt lrt 113 Nov 13 13:57 /home/lrt
drwx------. 16 westos westos 4096 Oct 24 09:05 /home/westos
[root@westos_student50 vsftpd]# chmod u-w /home/*
[root@westos_student50 vsftpd]# ls -ld /home/*
dr-x------ 4 lrt lrt 113 Nov 13 13:57 /home/lrt
dr-x------. 16 westos westos 4096 Oct 24 09:05 /home/westos
[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:~> ls
drwx------ 2 1000 1000 6 Jun 22 04:31 Desktop
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Documents
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Downloads
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Music
drwxr-xr-x 3 1000 1000 24 Jun 22 05:13 Pictures
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Public
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Templates
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Videos
lftp westos@172.25.254.50:/> cd /
lftp westos@172.25.254.50:/> ls
drwx------ 2 1000 1000 6 Jun 22 04:31 Desktop
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Documents
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Downloads
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Music
drwxr-xr-x 3 1000 1000 24 Jun 22 05:13 Pictures
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Public
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Templates
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Videos
- ?设置前,本地用户可以切换到FTP服务器系统的根目录中
- ??/etc/vsftpd/vsftpd.conf配置
?
- ?重启服务,本地用户访问ftp不成功,500报错即文件系统权限过大
- 需要将家目录的写权限去掉,否则无法访问,此时本地用户访问lftp成功后无法切换浏览根,该用户被锁定到自己的家目录中
- ?再次测试?无法切换到根目录下了,该用户被锁定到自己的家目录中
?7、锁定用户到自己的家目录中的白名单
hroot_local_user=YES
chrooct_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
编写vsftp服务的配置文件,设定chroot_local_user=YES,重启服务,编写锁定名单(/etc/vsftpd/chroot_list默认不存在),在名单中添加用户lrt,只有名单中的lrt用户访问lftp后可以切换浏览根/,不在名单中的westos用户访问lftp后被锁定到自己的家目录中
[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
107 chroot_local_user=YES
108 chroot_list_enable=YES
109 # (default follows)
110 chroot_list_file=/etc/vsftpd/chroot_list
[root@westos_student50 vsftpd]# vim /etc/vsftpd/chroot_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
lftp lrt@172.25.254.50:~> cd /
cd ok, cwd=/
lftp lrt@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 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
drwx------ 2 1000 1000 6 Jun 22 04:31 Desktop
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Documents
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Downloads
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Music
drwxr-xr-x 3 1000 1000 24 Jun 22 05:13 Pictures
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Public
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Templates
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Videos
lftp westos@172.25.254.50:/> cd /
lftp westos@172.25.254.50:/> ls
drwx------ 2 1000 1000 6 Jun 22 04:31 Desktop
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Documents
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Downloads
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Music
drwxr-xr-x 3 1000 1000 24 Jun 22 05:13 Pictures
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Public
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Templates
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Videos
- ?/etc/vsftpd/vsftpd.conf配置
- ??/etc/vsftpd/chroot_list配置
?
?8、锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
编写vsftp服务的配置文件,设定chroot_local_user=NO,重启服务,编写锁定名单(/etc/vsftpd/chroot_list默认不存在),在名单中添加用户lee,名单中的lrt用户访问lftp后被锁定到自己的家目录中不能切换浏览根/,不在名单中的westos用户访问lftp后可以切换浏览根/
[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
[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:~> ls
drwx------ 2 1000 1000 6 Jun 22 04:31 Desktop
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Documents
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Downloads
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Music
drwxr-xr-x 3 1000 1000 24 Jun 22 05:13 Pictures
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Public
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Templates
drwxr-xr-x 2 1000 1000 6 Jun 22 04:31 Videos
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
drwxr-xr-x 5 0 0 45 Nov 13 07:46 ftpuserdir
drwxr-xr-x 4 1000 1000 31 Nov 13 05:57 home
lftp westos@172.25.254.50:/> quit
[root@westos_student50 vsftpd]# lftp 172.25.254.50 -u lrt
Password:
lftp lrt@172.25.254.50:~> ls
lftp lrt@172.25.254.50:/> cd /
lftp lrt@172.25.254.50:/> ls
lftp lrt@172.25.254.50:/>
- ??/etc/vsftpd/vsftpd.conf配置
- ?测试、在黑名单中的lrt不可以访问根目录,被锁定到家目录中了?
六、虚拟用户访问
1、建立虚拟用户
[root@westos_student50 vsftpd]# vim /etc/vsftpd/ftp_auth_file ####建立认证文件模板
[root@westos_student50 vsftpd]# cat /etc/vsftpd/ftp_auth_file
westos1
123
westos2
123
westos3
123
[root@westos_student50 vsftpd]# db_load -T -t hash -f ftp_auth_file ftp_auth_file.db #####加密认证文件 -T 转换 -t type -f 指定
[root@westos_student50 vsftpd]# vim /etc/pam.d/westos
[root@westos_student50 vsftpd]# cat /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##指定认证策略文件
guest_enable=YES ##指定虚拟用户功能开启
guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
[root@westos_student50 vsftpd]# systemctl restart vsftpd
2、虚拟用户家目录的独立设定
????????1)虚拟用户访问ftp,默认共享目录为/var/ftp ,我们为每个虚拟用户建立各自的家目录
???????
?2)编写vsftp服务的配置文件,指定虚拟用户默认访问目录位其对应家目录,从shell中提取登陆的虚拟用户名,重启服务,此时虚拟用户访问ftp后看到的是其家目录中的资源
?[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
3)重启服务后测试一下?
[root@westos_student50 ftpuserdir]# systemctl restart vsftpd.service?
3、用户配置独立?
编写vsftp服务的配置文件(注释五行;添加独立语句),重启服务,建立与配置文件中对应的目录,在该目录下编写指定用户的独立上传文件(注意文件名要与用户名相同),只有指定用户可以上传?
[root@westos_student50 vsftpd]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/user_config ####在此目录中与用户名称相同的文件为用户配置文件
31 #anon_upload_enable=YES
32 #anon_other_write_enable=YES
35 #anon_mkdir_write_enable=YES
36 #anon_world_readable_only=NO
37 #anon_umask=022
[root@westos_student50 vsftpd]# mkdir /etc/vsftpd/user_config
[root@westos_student50 vsftpd]# vim /etc/vsftpd/user_config/westos2
anon_upload_enable=YES
[root@westos_student50 ftpuserdir]# systemctl restart vsftpd.service
[root@westos_student50 ftpuserdir]# chmod 775 /ftpuserdir/westos*/pub
[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
?
- ?[root@westos_student50 ftpuserdir]# vim /etc/vsftpd/user_config/westos2(注意文件名要与用户名相同)
|