CentOS 7 快速搭建 vsftpd 服务

文章目录

    • 简介
    • 一、快速搭建一个 FTP 服务器
      • 1、安装启动
      • 2、登录
    • 二、配置 vsftpd 虚拟用户
      • 1、为什么要使用虚拟用户?
      • 2、配置虚拟用户信息
      • 3、修改主配置文件
      • 4、配置虚拟用户权限
      • 5、验证

简介

文件传输协议(英语:File Transfer Protocol,缩写:FTP)是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。 ---- 维基百科

  • 系统环境:CentOS 7.4

在日常学习和工作中,我们常常需要和别人分享文件或者因为一些其他的需求,需要使用到 FTP ,这里就讲一下怎么快速在 CentOS 7 环境下搭建一个 FTP 服务。

一、快速搭建一个 FTP 服务器

VSFTP:vsftpd 是一个基于 GPL 发布的类 Unix 系统上使用的 FTP 软件,它是一个安全、高速、稳定的 FTP 服务器,并且上手使用也非常容易。

1、安装启动

[root@benarchen ~]# yum install vsftpd ftp -y
[root@benarchen ~]# systemctl start vsftpd

启动后 ftp 的默认根目录是 /var/ftp/pub

2、登录

[root@benarchen /]# ftp localhost     
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftp					#ftp表示匿名登录,无需密码
331 Please specify the password.
Password:									#直接回车即可
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp>

这里登录除了可以使用匿名登录还可以使用本地用户,也就是服务器上有的普通用户(root 除外),密码就是它们登录服务器的密码

这样就完成了一个最基本的 ftp 服务器搭建。

二、配置 vsftpd 虚拟用户

1、为什么要使用虚拟用户?

如果仅仅是个人或者和朋友一起使用,一般使用上面的方式其实就可以了,但是在日常工作中的场景往往是,我们需要给客户提供一个 ftp 账号让他们来获取我们 ftp 服务器中的文件,但是我们又不能让他直接登录服务器下载文件,这个时候就需要用到 vsftpd 虚拟用户了

2、配置虚拟用户信息

虽然是使用虚拟用户,但是还是需要一个本地用户做 " 载体 ",所以需要创建一个本地用户用来映射虚拟用户

[root@benarchen ~]# useradd vuser -d /data/ftp -s /sbin/nologin	#创建 vuser 用户并且禁止终端登录服务器
[root@benarchen ~]# vim /etc/vsftpd/vuser.temp	#创建一个用户文件,格式为 用户名 换行 密码
u1
123456
[root@benarchen ~]# db_load -T -t hash -f /etc/vsftpd/vuser.temp /etc/vsftpd/vuser.db	#用户信息文件转化为 db 文件才能被 vsftpd 服务识别
[root@benarchen ~]# chmod 600 /etc/vsftpd/vuser.db	#修改文件只能被  root 用户查看

还需要创建一个新的 pam 认证文件

[root@benarchen vsftpd]# vim /etc/pam.d/vsftpd.vuser	#创建用户解析文件
auth   sufficient    /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser
account sufficient   /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser  

3、修改主配置文件

[root@benarchen /]# cat /etc/vsftpd/vsftpd.conf  |grep -v ^#      #过滤掉注释的配置
#是否允许匿名登录
anonymous_enable=YES			
#启动home目录,允许本地用户访问
local_enable=YES
#允许写的权限(默认),允许本地用户写入,此项设置yes后,设置匿名的读写/上传权限才有效
write_enable=YES
local_umask=022
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
xferlog_enable=YES
#主动模式端口
connect_from_port_20=YES
xferlog_std_format=YES
##设置为YES时vsftpd以独立运行方式启动,
#设置为NO时以xinetd方式启动(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗)
listen=NO
listen_ipv6=YES
#启动并指定开放的白名单用户列表,#配置yes+加userlist_deny=NO后,则只有user_list文件中的用户,才能访问FTP服务器。#若启用此选项,userlist_deny选项才有效。
userlist_enable=YES
tcp_wrappers=YES
#**********主要是添加下面的配置***************#
#是否启用游客登录
guest_enable=YES
#游客的身份都会被映射成 vuser
guest_username=vuser
#用户权限的配置目录
user_config_dir=/etc/vsftpd/vuserconfig.d
#是否允许读写
allow_writeable_chroot=YES
#密码解析配置文件
pam_service_name=vsftpd.vuser

4、配置虚拟用户权限

[root@benarchen /]# mkdir  /etc/vsftpd/vuserconfig.d	#创建用户权限配置目录
[root@benarchen /]# cd  /etc/vsftpd/vuserconfig.d
[root@benarchen vuserconfig.d]# vim u1 					#这里的文件名和用户名相同
local_root=/data/ftp				#访问到的根目录
write_enable=YES					#是否可写
anon_umask=022 			
anon_world_readable_only=NO			#可写
anon_upload_enable=YES				#上传
anon_mkdir_write_enable=YES			#可建立目录可写
anon_other_write_enable=YES			#可写
download_enable=YES					#可下载

#保存文件后退出,重启 vsftpd 服务即可
[root@benarchen vsftpd]# systemctl restart vsftpd.service 

5、验证

[root@benarchen vsftpd]# ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): u1							#创建的虚拟用户
331 Please specify the password.
Password:											#第二步中设置的用户密码 123456
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls												#查看当前目录下的文件
229 Entering Extended Passive Mode (|||10482|).
150 Here comes the directory listing.
-rw-r--r--    1 1002     1003         7964 May 14 16:37 a.dump
-rw-r--r--    1 0        0               0 May 14 15:44 aa
-rw-r--r--    1 0        0               0 May 14 15:44 bb
-rw-r--r--    1 0        0               0 May 14 15:44 cc
226 Directory send OK.
ftp> 

以上就是 vsftpd 服务搭建 ftp 站点并设置虚拟用户的详细过程。

你可能感兴趣的:(运维服务)