Linux使用篇---vsftp服务配置(禁锢用户目录移动、指定用户登录权限、设置虚拟ftp登录)

前言

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

一:vsftp特点

  • vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;

  • 任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;

  • 所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;

  • 此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

1.1:Ftp会话时采用了两种通道

控制通道:与Ftp服务器进行沟通的通道,链接Ftp发送ftp指令都是通过控制通道来完成的。

数据通道:数据通道和Ftp服务器进行文件传输或则列表的通道

1.2:实验环境

准备一台centos 7.6充当vsftp服务端(IP地址 20.0.0.41)

一台win 10充当vsftp服务局 (IP地址 20.0.0.40)

实验目的

搭建vsftp,创建虚拟用户使用FTP

2.21:挂载光盘,安装服务

[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载
/dev/mapper/centos-root xfs        54G  4.1G   50G    8% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /de
tmpfs                   tmpfs     1.9G     0  1.9G    0% /de
tmpfs                   tmpfs     1.9G   21M  1.9G    2% /ru
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sy
/dev/sda1               xfs      1014M  179M  836M   18% /bo
/dev/mapper/centos-home xfs       245G   33M  245G    1% /ho
tmpfs                   tmpfs     378M  4.0K  378M    1% /ru
tmpfs                   tmpfs     378M   64K  378M    1% /ru
/dev/sr0                iso9660   4.3G  4.3G     0  100% /m

[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm 
警告:/mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm:V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
	软件包 vsftpd-3.0.2-25.el7.x86_64 已经安装

2.22:查看服务端跟客户端是否能互通

mark

2.23:关闭防火墙跟安全防护

[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

2.24:过滤#注释查看配置文件

[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
tc:2p_wrappers=YES

2.25:客户机进行连接

mark

2.26:转到服务器

[root@localhost vsftpd]# ls /var/ftp
pub      'ftp是客户机的站点'
[root@localhost vsftpd]#  echo "this is test" > /var/ftp/test.txt

2.27:验证ftp是登录的站点

mark:

mark

mark

来到服务器

mark

mark

[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost etc]# cd /var/ftp
[root@localhost ftp]# ls
pub  test.txt
[root@localhost ftp]# chmod 777 pub/
[root@localhost ftp]# ll
总用量 4
drwxrwxrwx. 2 root root  6 41 12:55 pub
-rw-r--r--. 1 root root 13 720 12:28 test.txt

2.28:客户机进行上传文件

mark

[root@localhost ftp]# cd pub/
[root@localhost pub]# ls
test.txt
[root@localhost pub]# cat test.txt 
this is test

2.29:删除文件服务端进行验证

mark

测试一:禁锢远程用户的目录随意移动,避免系统的危险性

配置修改文件

[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf

mark[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf

测试二:设置指定用户登录权限

[root@localhost ftp]# useradd zhangsan
[root@localhost ftp]# useradd lisi
[root@localhost ftp]# echo "123123" | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ftp]# echo "123123" | passwd --stdin lisi更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost vsftpd]# echo "zhangsan" >> /etc/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
zhangsan
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# vim vsftpd.conf

mark

mark

测试三:设置虚拟用户登录

[root@localhost vsftpd]# vim vuser

mark

#将viuser文件转换为数据库文件
[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db
-T:转化    -t:类型    hash:表示一种算法     -f:指定文件 
[root@localhost vsftpd]# ll
总用量 36
-rw-------. 1 root root   125 1031 2018 ftpusers
-rw-------. 1 root root   379 726 14:56 user_list
-rw-------. 1 root root  5183 726 15:03 vsftpd.conf
-rwxr--r--. 1 root root   338 1031 2018 vsftpd_conf_migrate.sh
-rw-r--r--. 1 root root    24 726 15:08 vuser
-rw-r--r--. 1 root root 12288 726 15:09 vuser.db       #数据库文件
#让其他用户无法访问这两个文件
[root@localhost vsftpd]# chmod 600 vuser vuser.db
[root@localhost vsftpd]# ll
总用量 36
-rw-------. 1 root root   125 1031 2018 ftpusers
-rw-------. 1 root root   379 726 14:56 user_list
-rw-------. 1 root root  5183 726 15:03 vsftpd.conf
-rwxr--r--. 1 root root   338 1031 2018 vsftpd_conf_migrate.sh
-rw-------. 1 root root    24 726 15:08 vuser
-rw-------. 1 root root 12288 726 15:09 vuser.db
#创建一个vuser用户 指定目录/opt/vuser不使用shell登录
[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser
[root@localhost vsftpd]# id vuser
uid=1004(vuser) gid=1004(vuser)=1004(vuser)
#创建pam认证允许远程用户登录
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

mark

[root@localhost vsftpd]# systemctl restart vsftpd

mark

mark

客户端查看

[root@localhost vsftpd]# ls /opt/vuser
test.txt

mark

[root@localhost vsftpd]# mkdir vu_dir
[root@localhost vsftpd]# cd vu_dir/
[root@localhost vu_dir]# vim shuai

mark

[root@localhost vu_dir]# systemctl restart vsftpd

mark

服务端查看上传111文件

[root@localhost vu_dir]# cd /opt/vuser/
[root@localhost vuser]# ll
总用量 8
-rw-r--r--. 1 vuser vuser 13 726 17:35 111.txt
-rw-------. 1 vuser vuser 13 726 17:14 test.txt
#单独用户设置  上传后权限变为644

猜你喜欢

转载自blog.csdn.net/weixin_47151643/article/details/107597020