实验题·vsftpd实验尝试ftp服务器

实验题·vsftpd实验尝试ftp服务器

安装软件
[root@localhost ~]# yum -y install vsftpd	===>安装软件

[root@localhost ~]# cd /etc/vsftpd/	===>进入该目录查看配置文件

[root@localhost vsftpd]# ls	===>查看目录下的内容

ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

[root@localhost vsftpd]# grep -v "#" vsftpd.conf 	===>过略"#"查看
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

[root@localhost vsftpd]# systemctl start vsftpd	===>开启服务

[root@localhost vsftpd]# setenforce 0	===>关闭核心防护

[root@localhost vsftpd]# systemctl stop firewalld	===>关闭防火墙
Win10 可以进行访问ftp了

image-20200719084226667

[root@localhost vsftpd]# cd /var/ftp/	===>Win访问的站点

[root@localhost ftp]# ll
总用量 0
drwxr-xr-x 2 root root 6 4月   1 12:55 pub

[root@localhost var]# vim /etc/vsftpd/vsftpd.conf	===>修改配置文件
......
anon_upload_enable=YES	===>开头的"#"去掉,上传权限
......
anon_mkdir_write_enable=YES	===>开头的"#"去掉,
anon_other_write_enable=YES	===>需要自己手动写入, 把匿名用户的权限放到最大化
......

[root@localhost var]# systemctl restart vsftpd	===>重启服务

[root@localhost var]# cd /var/ftp/	===>进入到该目录查看ftp目录的权限
drwxr-xr-x 2 root root 6 4月   1 12:55 pub

[root@localhost var]# chmod 777 ftp/	===>将ftp目录放到777权限

Linux会有保护不能让根目录权限放到777,可以改底下的子目录

image-20200719085750918

[root@localhost var]# cd /var/ftp/	===>进入ftp目录

[root@localhost ftp]# ll
总用量 0
drwxr-xr-x 2 root root 6 4月   1 12:55 pub

[root@localhost ftp]# chmod 777 pub/	===>将子目录pub权限改成777

在Win10里面就可以进行上传等操作了—注意权限的问题
image-20200719090040297

[root@localhost ftp]# useradd zhangsan	===>创建用户并设置密码

[root@localhost ftp]#passwd zhangsan

[root@localhost ftp]# useradd lisi	===>创建用户并设置密码

[root@localhost ftp]# passwd lisi
设置好之后就可以使用设置的zhangsan或者lisi用户去进行登录
普通用户可以自由的去任何目录,需要让其只能在自己的家目录进行操作
[root@localhost ftp]# vi /etc/vsftpd/vsftpd.conf 	===>修改配置文件进行设置

......

chroot_local_user=YES	===>将"#"去掉

allow_writeable_chroot=YES	===>加上这句话给权限

......

[root@localhost ftp]# systemctl restart vsftpd	===>重启服务就切换不了其他目录了
在user_list文件下用户名默认是不能进行登录的
[root@localhost vsftpd]# cat user_list 
#vsftpd userlist
#If userlist_deny=NO, only allow users in this file
#If userlist_deny=YES (default), never allow users in this file, and
#do not even prompt for a password.
#Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
#for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

[root@localhost vsftpd]# echo "zhangsan" >> user_list 	===>把"zhangsan"追加到user_list里面

[root@localhost vsftpd]# cat user_list 	===>查看user_list
#vsftpd userlist
#If userlist_deny=NO, only allow users in this file
#If userlist_deny=YES (default), never allow users in this file, and
#do not even prompt for a password.
#Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
#for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
zhangsan
[root@localhost vsftpd]# systemctl restart vsftpd	===>重启服务

image-20200719092240245

[root@localhost vsftpd]# vi vsftpd.conf	===>修改配置文件

......
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO	===>仅允许该列表中的用户登录

zhangsan在列表里面所以可以进行登录

lisi不再列表里面所以不能登录

image-20200719092556833

建立虚拟用户使用ftp
[root@localhost vsftpd]# vim /etc/vsftpd/vuser	===>创建虚拟用户列表------将该文件转换成数据库文件
tom ===>用户名
123123 ===>密码
jerry ===>用户名
123123 ===>密码

[root@localhost vsftpd]# db_load -T -t	hash -f vuser vuser.db	===>T,转换,t,配置类型,f,指定文件

[root@localhost vsftpd]# ll

总用量 36
-rw------- 1 root root   125 4月   1 12:55 ftpusers
-rw------- 1 root root   370 7月  19 09:20 user_list
-rw------- 1 root root  5168 7月  19 09:27 vsftpd.conf
-rwxr--r-- 1 root root   338 4月   1 12:55 vsftpd_conf_migrate.sh
-rw-r--r-- 1 root root    24 7月  19 09:30 vuser
-rw-r--r-- 1 root root 12288 7月  19 09:32 vuser.db

[root@localhost vsftpd]# chmod 600 vuser.db vuser	===>为了安全修改权限其他用户无法访问

[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser	===>创建一个用户为vuser指定家目录不能使用shell登录
编辑pam认证模块支持虚拟用户的登录
[root@localhost opt]# cat /etc/pam.d/vsftpd 	===>查看固定模板
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required	pam_shells.so
auth       include	password-auth
account    include	password-auth
session    required     pam_loginuid.so
session    include	password-auth

[root@localhost opt]# vi /etc/pam.d/vsftpd.vu	===>pam认证模块的文件

auth required pam_userdb.so db=/etc/vsftpd/vuser	===>是vuser.db的文件
account required pam_userdb.so db=/etc/vsftpd/vuser

[root@localhost opt]# vi /etc/vsftpd/vsftpd.conf 	===>修改配置文件

......

#pam_service_name=vsftpd	===>注释掉,不然会冲突
userlist_enable=YES
tcp_wrappers=YES

guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.vu	===>开启虚拟用户,使用pam认证登录   手动插入

[root@localhost opt]# systemctl restart vsftpd	===>重启服务

Win系统里面就可以使用虚拟用户进行登录操作了

image-20200719094910278

[root@localhost pub]# cd /opt/vuser	===>切换到该目录

[root@localhost vuser]# ll
总用量 0
-rw------- 1 vuser vuser 0 7月  19 09:49 bb.txt	===>上传的文件都是vuser用户
虚拟用户指定上传文件的权限
[root@localhost vuser]# cd /etc/vsftpd/	===>进入该目录

[root@localhost vsftpd]# vi vsftpd.conf 	===>修改配置文件

user_config_dir=/etc/vsftpd/vu_dir	===>指定文件夹路径

[root@localhost vsftpd]# mkdir vu_dir	===>创建文件夹

[root@localhost vsftpd]# cd vu_dir/	===>进入目录

[root@localhost vu_dir]# vim tom	===>创建文件

anon_umask=022	===>设置权限

[root@localhost vuser]# systemctl restart vsftpd	===>重启服务

Win10 上传操作一下

image-20200719095849789

[root@localhost vu_dir]# cd /opt/vuser/	===>进入家目录

......

-rw-r--r-- 1 vuser vuser 0 7月  19 10:00 cc.txt	===>可以看到权限变了
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值