Linux网络服务—— vsftpd理论搭配实操

文章目录

  • 一、vsftpd的配置文件
  • 二、vsftpd服务器的模式
    • 2.1、匿名开放模式
    • 2.2、本地用户模式
    • 2.3、虚拟用户模式
  • 三、vsftpd的文件传输
    • 3.1、ftp文件下载—get
    • 3.2、ftp文件上传—put

一、vsftpd的配置文件

● 一般情况下 ftp 默认的主配置文件在 /etc/vsftpd/vsftpd.conf 中
● 配置文件中默认有几个功能是开启的,绝大多行都是注释符#注释了的

参数 作用
anongmous_enable 表示是否同意匿名用户访问,YES表示允许
local_enable 表示是否允许本地用户登录
write_enable 表示是否允许本地用户拥有写入操作
local_umask=0022 表示除本地用户外,其他用户不能进行写入操作
dirmessage_enable 表示目录消息
xferlog_enable 表示日志信息
connect_from_port_20 表示连接端口

二、vsftpd服务器的模式

2.1、匿名开放模式

通常默认安装的vsftpd就是匿名模式,当我们启动服务后,需要放行相应服务端口,要注意的是,你要是修改了匿名用户目录,目录权限不可以是777,最好是755,登录的主目录匿名用户是无法上传的,在主目录创建目录,修改其权限可写即可上传至该目录

● 正常情况下 centos7 安装好vsftpd 后正常开启,关闭防火墙就可以正常使用ftp功能了,并且默认为匿名用户登陆。
● 在centos7中操作:

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

● 在win10中操作
Linux网络服务—— vsftpd理论搭配实操_第1张图片
Linux网络服务—— vsftpd理论搭配实操_第2张图片

2.2、本地用户模式

本地用户模式可以和匿名模式一起使用,通常环境可以创建一位具有写权限的用户来上传文件,而匿名用户方便大家下载相关资料。
编辑/etc/vsftpd/vsftpd.conf

local_enable=YES
write_enable=YES
local_umask=022

Linux网络服务—— vsftpd理论搭配实操_第3张图片
将以上三项写入配置文件,然后重启vsftpd服务,默认情况本地用户登录是在自己的家目录,root用户被禁止登录,若有需求可以修改user_list和ftpusers文件将登录权限放开。

2.3、虚拟用户模式

● 虚拟用户模式是三个模式中最安全的一种验证方式,配置过程也会稍微复杂一些
● 使用虚拟用户登录vsftpd服务,不需要使用系统内存在的用户登陆,可以增加ftp的安全性能
1、在/etc/vsftpd路径下创建用户数据库文件。这一步是为了存放虚拟用户的用户名和密码

cd /etc/vsftpd
vim vuser.list

2、将用户名和密码输入到vuser.list中去,其中奇数行为用户名,偶数行为密码。
创建文件后需要对用户文件进行加密,并修改权限,然后将明文文件删除,之后创建一个用来虚拟用户登录后映射本地用户的用户。
在这里插入图片描述

db_load -T -t hash -f vuser.list vuser.db  #将vuser转换成数据库文件
chmod 600 vuser.db   #修改vuser的权限为600
rm -f vuser.list
useradd -d /test -s /sbin/nologin  #创建vuser用户shell无法登陆

3、开启pam认证功能。在 /etc/pam.d 中创建vsftpd.vu文件用于开启pam。

vim /etc/pam.d/vsftpd.vu
auth required   pam_userdb.so db=/etc/vsftpd/vuser
account required        pam_userdb.so db=/etc/vsftpd/vuser

4、修改vsftpd.conf主配置文件。

参数 作用
anonymous_enable=NO 禁止匿名开放模式
loucal_enable=YES 允许本地用户模式
guest_enable=YES 开启虚拟用户模式
guest_username=test 指定虚拟用户账号
pam-service_name=vsftpd.vu 指定PAM文件
allow_writeable_chroot=YES 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
guest_enable=YES
guest_username=test
allow_writeable_chroot=YES

4、创建虚拟用户权限文件
如需要为每个虚拟用户匹配不同的权限,则需要为每个虚拟用户创建权限文件

mkdir user_dir #创建放置权限的文件夹
cd user_dir
touch lemon

在以虚拟用户名创建的文件中,写入如下参数

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

然后在vsftpd.conf配置文件中追加虚拟用户权限文件夹的路径

user_config_dir=/etc/vsftpd/user_dir

之后重启vsftpd服务

三、vsftpd的文件传输

3.1、ftp文件下载—get

Linux网络服务—— vsftpd理论搭配实操_第4张图片
● 首先在站点中放一些文件进去,/var/ftp为vsftpd服务的站点路径。
Linux网络服务—— vsftpd理论搭配实操_第5张图片
● 用一台win10作为客户机去接收ftp文件
● win10里的操作:
Linux网络服务—— vsftpd理论搭配实操_第6张图片
Linux网络服务—— vsftpd理论搭配实操_第7张图片
Linux网络服务—— vsftpd理论搭配实操_第8张图片

3.2、ftp文件上传—put

● 上传文件在已有用户模式下,创建一位具有写权限的用户来上传
● 下载文件在匿名用户模式时,方便大家下载相关资料。
● 在win10目录里新建一个文档test
Linux网络服务—— vsftpd理论搭配实操_第9张图片
● win10操作:
● 在centos 7中新建用户zhangsan
Linux网络服务—— vsftpd理论搭配实操_第10张图片
Linux网络服务—— vsftpd理论搭配实操_第11张图片
● 在centos7中查看用户zhangsan的家目录,有test文件即上传成功。
Linux网络服务—— vsftpd理论搭配实操_第12张图片

你可能感兴趣的:(Linux网络)