使用linux FTP虚拟用户搭建FTP服务器

最近接触一个项目,客户需要搭建一台FTP服务器。具体要求是:系统采用red hat 6.4 64位操作系统;创建20个ftp用户,这些用户拥有自己独立的工作目录,并且有上传、下载、删除等权限;创建一个ftp管理用户,这个用户拥有管理以上20个ftp用户目录的权限。

仔细一看要求单单使用本地用户设置属组和文件目录权限控制的方法很难实现以上要求,于是想到使用ftp虚拟用户,而且ftp虚拟用户安全性高,不能登录系统,只能访问ftp服务器。

下面开始在自己的虚拟机环境中根据客户的要求搭建ftp服务器。

实验环境:

操作系统:red hat 5.8 64为;

安装软件:vsftpd,db4-utils

  1. 建立虚拟用户口令库文件

    进入/etc/vsftpd目录,创建vuser_list文件,添加需要的虚拟用户和密码,添加格式是一行用户名,紧跟一行密码,文件中不要有空行,如下,

vi vuser_list
admin
admin
huaxia
123456
chinapay
123456
baofu
123456
albb
123456

2. 生产虚拟用户的口令认证文件

使用db_load命令生成口令认证文件,该文件需放在/etc/vsftpd/目录,注意安装db4-utils软件才能使用db_load命令,

 db_load -T -t hash -f vuser_list /etc/vsftpd/vsftpd_login.db

更改认证文件vsftpd_login.db的权限,

chmod 600 /etc/vsftpd/vsftpd_login.db

3. 更改vsftpd的pam配置文件,使其对客户端进行验证时使用生成的虚拟用户认证文件

编辑/etc/pam.d/vsftpd文件,批注所有内容后,添加:

auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login

4. 增加一个系统用户virtuser,用来对应所有的虚拟用户登陆

所有的ftp虚拟用户对应到这个虚拟用户,虚拟用户使用virtuser用户来登陆ftp服务器,

useradd -d /var/ftp/virtuser -s /sbin/nologin virtuser

5. 设置vsftpd主配置文件vsftpd.conf

修改前对vsftpd.conf配置文件进行备份,

在vsftpd.conf配置文件中修改或添加一下内容

vi vsftpd.conf 

anonymous_enable=NO   禁用匿名用户登录
local_enable=YES
pam_service_name=vsftpd  配置vsftpd使用的PAM模块为vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf   设置虚拟账户配置文件的主目录

6. 创建虚拟用户的配置文件和工作目录

1>.创建虚拟用户的配置文件

只有创建的虚拟用户的配置文件才能使用ftp虚拟用户,

在/etc/vsftpd/目录下创建vsftpd_user_conf目录,

mkdir vsftpd_user_conf

在vsftpd_user_conf目录下分别创建和虚拟用户口令库文件vuser_list中同名的用户文件,

touch admin
touch huaxia
touch chinapay
touch baofu
touch albb

分别编辑虚拟用户配置文件,添加配置信息,管理用户的家目录放在/var/ftp/virtuser/目录下,其他虚拟用户的家目录放在/var/ftp/virtuser/admin目录下,实现admin用户管理其他虚拟用户的目的,

guest_enable=YES
local_root=/var/ftp/virtuser/admin   指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目                                     录,虚拟用户登录后的主目录。 
guest_username=virtuser
anon_world_readable_only=NO               浏览FTP目录和下载
anon_upload_enable=YES                    允许上传
anon_mkdir_write_enable=YES               建立和删除目录
anon_other_write_enable=YES               改名和删除文件

2>.创建虚拟用户的工作目录

mkdir -p /var/ftp/virtuser/admin                
mkdir -p /var/ftp/virtuser/admin/albb           
mkdir -p /var/ftp/virtuser/admin/baofu          
mkdir -p /var/ftp/virtuser/admin/chinapay       
mkdir -p /var/ftp/virtuser/admin/huaxia         
chown -R virtuser:virtuser /var/ftp/virtuser/

7. 重新启动vsftpd服务,使所有配置文件的设置生效

service vsftpd restart

8.测试是否符合要求

1>.admin用户登录

可以看到其他虚拟用户的目录,

2>.其他虚拟用户登录

时间: 2024-10-29 09:06:42

使用linux FTP虚拟用户搭建FTP服务器的相关文章

Linux虚拟机上搭建ftp服务器

Linux虚拟机上搭建ftp服务器 实验介绍:本文主要介绍在虚拟机的Linux系统上搭建ftp服务器,并且最终可以在另外一台win7虚拟机中能够正常上传和下载文件,并建立访问用户的黑白名单,以及虚拟账户功能. 1.首先打开Linux虚拟机,配置IP地址,本文的Linux的IP地址为192.168.1.16/24,直接通过系统光盘自带的vsftpd软件包安装.(前提是已经挂载了光盘镜像文件) 2.安装成功后,开启vsftpd服务,在win7虚拟机上(IP地址192.168.1.100)就可以访问L

CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FTP服务器需要安装vsftp服务端软件.我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比

Linux 下 FTP虚拟用户的使用配置

Linux下FTP虚拟用户的使用配置 Linux的FTP服务支持3种用户: 1.匿名帐户 2.本地帐户 3.虚拟用户 为什么要使用虚拟用户: 匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活.如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现.但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患.那么怎么能在灵活的赋予FTP用户权限的前提下,保证FTP服务器乃至整个Linux系统的安全呢?使用虚拟用户就是一种解决办法

Linux Centos 通过虚拟用户访问FTP的配置

Linux Centos 通过虚拟用户访问FTP的配置 实验需求: 让下面4个虚拟用户使用系统用户ftpvu的权限来连接到Linux FTP服务器,并确保都锁定在 自己的虚拟用户目录,不能切换到其他目录. ftp1-3的带宽速率限制在500KB,davidge用户不限制带宽. 系统环境: [root@cent7-184 ~]# uname -r 3.10.0-229.el7.x86_64 [root@cent7-184 ~]# cat /etc/redhat-release CentOS Lin

centos 7搭建基于虚拟用户的FTP服务

该博文主要记录了centos 7中使用vsftpd服务的虚拟用户配置过程,即将一个真实的系统用户映射为多个虚拟用户. 部署vsftpd虚拟用户的思路: 过程如下: 建立虚拟FTP用户的账号数据库文件. 创建FTP根目录及虚拟用户映射的系统用户. 建立支持虚拟用户的PAM认证文件. 在vsftpd.conf文件中添加支持配置. 为个别虚拟用户建立独立的配置文件. 重新加载vsftpd配置. 使用虚拟FTP账户访问进而测试是否成功. 该博文是最初写博文时,写过的一篇博文,当初不懂排版,截图比较多,导

linux下利用脚本添加ftp虚拟用户并赋予权限

首先ftp配置应为虚拟用户登录模式 用户密码文本目录为/etc/vsftpd/vftpuser,代码如下: 1 #!/bin/bash 2 # 3 if [ $# -ne 2 ] //限制用户只能完整输入一组用户名和密码.在用户密码文本中奇数行为用户名,偶数行为密码. 4 then echo "Please input a set of username and password" 提示"请输入一组用户名和密码" 5 exit 1 6 fi 7 8 for user

Linux FTP虚拟用户创建

(1)cd /etc/vsftpd/(2)vim vuser.list创建用户zhaosi和liwu 密码均为redhat(奇数行为帐户名,偶数行为密码)(3)db_load -T -t hash -f vuser.list vuser.db(4)file vuser.db(5)chmod 600 vuser.db(6)rm -f vuser.list(7)设置/var/ftproot/为本地用户家目录(8)chmod -Rf 755 /var/ftproot/赋予家目录权限(9)vim /et

配置FTP虚拟用户访问

直接使用本地用户(Linux系统的用户账户)来访问vsftpd服务器可能带来安全问题,变通的方法是使用虚拟用户(virtual user)来作为专门的FTP账户.FTP虚拟用户并不是操作系统的用户账户,不能登入系统,只能访问FTP服务器,对操作系统的影响更小.虚拟用户主要用来访问提供给非信任用户,但又不适合公开的内容. PAM(Pluggable Authentication Modules)是一套身份验证共享库,用于限定特定应用程序的访问.使用PAM身份验证机制可以实现vsftpd的虚拟用户功

centos 7虚拟用户访问FTP

在vsftpd服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头.基本搭建过程如下:cent OS7搭建基于虚拟用户的FTP服务 1.创建文本格式的用户名/密码列表文本中奇数行为用户名,偶数行为上一行中用户所对应的密码.如:执行以下操作添加两个用户mike.john,密码分别为123,456 新建一个文本:cent OS7搭建基于虚拟用户的FTP服务 输入用户名和密码:cent OS7搭建基于虚拟用户的FTP服务 2.创建Berkeley DB格式的数据库