码迷,mamicode.com
首页 > 其他好文 > 详细

VSFTP安装(只允许虚拟用户登录)

时间:2019-08-05 20:20:40      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:toc   不执行   目录权限   临时   ftp安装   服务安装   上传文件   vsftpd服务   代码   

VSFTP简介

一.FTP服务器

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

二. VSFTP

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

特点
1、它是一个安全、高速、稳定的FTP服务器;
2、它可以做基于多个IP的虚拟FTP主机服务器;
3、匿名服务设置十分方便;
4、匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其它的系统文件;
5、不执行任何外部程序,从而减少了安全隐患;
6、支持虚拟用户,并且每个虚拟用户可以具有独立的属性配置;
7、可以设置从inetd中启动,或者独立的FTP服务器两种运行方式;
8、支持两种认证方式(PAP或xinetd/ tcp_wrappers);
9、支持带宽限制;

VSFTP市场应用十分广范,很多国际性的大公司和自由开源组织在使用,如:Red Hat, Suse,Debian,OpenBSD。

三.VSFTP登录方式

vsftp有多种登录方式:包括匿名登录方式、本地系统用户登录方式和虚拟用户登录,此文将介绍第三种更为安全的登录方式——>虚拟用户登录方式。

四.虚拟用户特点

1、只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。

2、可以建立多个虚拟用户,设置各自的密码,并且根据其用途设置相应的配置,能适应多种情况。

虚拟用户原理:

以本地系统用户为宿主(一般是不能登录系统的本地用户),然后通过虚拟用户和本地系统用户建立映射关系,实现虚拟用户登录FTP服务功能。

VSFTP搭建


一.实验环境

操作系统:centOS7
vsftpd版本:vsftpd-3.0.2-22.el7

二.安装准备

关闭SELinux
(SELINUX为Linux提供安全强化同时,也让Linux服务安装变得更复杂。未正确的为相关服务配置SELINUX,将导致服务无法正常运行。所以对于初学者来说,建议关闭SELINUX。)

①永久关闭       
vim /etc/selinux/config
SELINUX=disable

技术图片

②临时关闭
setenforce 0

三.安装vsftpd服务

使用yum安装vsftpd
yum -y install vsftpd

技术图片

四.配置虚拟用户访问的vsftpd服务

1.创建虚拟用户密码文件
vim/etc/vsftpd/vir_user

技术图片

2.生成虚拟用户数据库
    yum -y install libdb-utils
    db_load -T -t hash -f /etc/vsftpd/vir_user  /etc/vsftpd/vir_user.db
    chmod 700 /etc/vsftpd/vir_user.db

技术图片

3.配置vsftpd pam验证文件

vim /etc/pam.d/vsftpd(将auth及account的所有配置行均注释掉,添加如下两行)       
auth                 required     pam_userdb.so   db=/etc/vsftpd/vir_user 
account              required     pam_userdb.so   db=/etc/vsftpd/vir_user

技术图片

4.增加一个系统用户‘virftp’ ,所有虚拟用户都会映射到此用户后对文件系统进行读写操作
mkdir /ftproot
useradd -d /ftproot -s /sbin/nologin virftp
chown -R virftp:virftp /ftproot

5.设置vsftpd主配置文件

vim /etc/vsftpd/vsftpd.conf

    #禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户 
guest_enable=YES
#把虚拟账户映射到系统账户virftp               
guest_username=virftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES

技术图片

6.配置虚拟用户各自的配置文件(创建虚拟用户配置文件的存放目录) 
mkdir /etc/vsftpd/vsftpd_viruser/
创建和配置虚拟用户各自的配置文件:文件名称是"虚拟用户名"

vim /etc/vsftpd/vsftpd_viruser/hpl

# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
#允许虚拟用户上传文件
anon_upload_enable=YES
#允许虚拟用户创建目录
anon_mkdir_write_enable=YES
#允许虚拟用户执行其他操作(如改名、删除)
anon_other_write_enable=YES
#上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
#指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/admin/

技术图片

7.创建虚拟用户的根目录,要保证虚拟用户映射的系统用户,对这个根目录有读写权限

mkdir -p /ftproot/admin/
chown -R virftp.virftp /ftproot/admin/

五.禁止其他用户登录

vim /etc/vsftpd/ftpusers

技术图片

六.测试配置结果

1.重启vsftpd服务
systemctl restart vsftpd
systemctl enable vsftpd
2.关闭防火墙或者开启“21”端口号

systemctl stop firewalld
或者
firewall-cmd --add-port=21/tcp

3.利用FZ工具连接测试

技术图片

VSFTP安装(只允许虚拟用户登录)

标签:toc   不执行   目录权限   临时   ftp安装   服务安装   上传文件   vsftpd服务   代码   

原文地址:https://blog.51cto.com/14359196/2426841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!