IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> FTP/Vsftpd服务的部署及优化——下(vsftpd本地用户及虚拟用户访问控制) -> 正文阅读

[系统运维]FTP/Vsftpd服务的部署及优化——下(vsftpd本地用户及虚拟用户访问控制)

目录

五、本地用户访问

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配置

  • /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 /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配置

?

  • lrt用户可以切换到根目录?

  • westos用户被锁定到家目录中?

?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配置

  • 测试、不在黑名单中的westos可以访问根目录?

  • ?测试、在黑名单中的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(注意文件名要与用户名相同)

  • 修改系统文件权限,否则会有553报错?

  • ?测试,只有westos2可以上传文件

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:18:21  更:2021-11-27 10:20:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:56:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码