`
lingduxyz
  • 浏览: 22277 次
文章分类
社区版块
存档分类
最新评论

深入浅出 Linux Vsftpd 创建多虚拟用户教程

 
阅读更多

Vsftpd 是一款轻量级并有着安全与简易等特性的FTP服务器程序,破受欢迎。在 Linux 中一旦配置好 Vsftpd  环境就可以一劳永逸,任意的迁移到类似的服务器之上,因此我们对配置过程做个系统的了解也是有必要的。

本 文的任务是创建两个虚拟账户,第一个账户(bugxm_admin)拥有可读写指定目录文件、不可登陆系统权限,第二个(bugxm_general)只 拥有只读被绑定目录中文件的权限,依然不能登陆系统。新建一个虚拟用户并且合理分配权限、绑定目录,这和IDC商的虚拟主机效果是一样的。臭虫小明 为了方便,直接采用的  Root 账户操作。

1、安装 Vsftpd 程序,为了方便我们采用以下方式进行自动安装

yum install -y vsftpd

2、创建“bugxm_admin”与“bugxm_general”这两个账户,密码暂定为“123456”,其中奇数行表示账号,偶数行表示密码。

vi /etc/vsftpd/vm_user.txt

bugxm_admin

123456

bugxm_general

123456

2-1、创建 Vsftpd 认证文件

db_load -T -t hash -f /etc/vsftpd/vm_user.txt /etc/vsftpd/vm_user.db

注: 执行上条命令若提示:“bash: db_load: command not found”,请安装“db4-utils”,具体操作如下

yum install -y db4 db4-utils

注: 如果出现“db_load: unexpected end of input data or key/data pair、 db_load: odd  number of key/data pairs”提示,请在 vm_user.txt 最后一行添加空行,即回车一下。

3、编辑虚拟用户需要用到的PAM认证配置文件

rm -f /etc/pam.d/vsftpd

vi /etc/pam.d/vsftpd

3-1、PAM认证配置文件输入以下内容

auth required pam_userdb.so db=/etc/vsftpd/vm_user

account required pam_userdb.so db=/etc/vsftpd/vm_user

4、给 bugxm_admin、bugxm_general 这两个账户增加属性,控制访问目录、权限等,首先创建 bugxm_admin 账户

mkdir /etc/vsftpd/users

vi /etc/vsftpd/users/bugxm_admin

4-1、输入以下内容

local_root=/data/htdocs/bugxm_admin

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

4-2、以下是对上面这步操作的注释补充

local_root=/data/htdocs/bugxm_admin #根目录绑定

write_enable=YES #表示拥有可写权限

anon_umask=022 #上传文件的权限,022表示文件夹755、文件644权限

anon_world_readable_only=NO #表示用户具有下载权限

anon_upload_enable=YES #表示用户有权限上传文件

anon_mkdir_write_enable=YES #表示用户具有创建和删除目录的权限

anon_other_write_enable=YES #表示用户具有文件改名和删除文件的权限

4-3、创建 bugxm_general 用户

vi /etc/vsftpd/users/bugxm_general

4-4、输入以下内容

local_root=/data0/htdocs/bugxm_general

anon_world_readable_only=NO

5、两个用户创建完成之后,开始配置 Vsftpd。

vi /etc/vsftpd/vsftpd.conf

5-1、为安全考虑,我们配置不允许匿名访问。

默认:anonymous_enable=YES

改成:anonymous_enable=NO

5-2、YES 表示用户不能离开被我们指定的上级的任何目录。

默认:#chroot_list_enable=YES

改成:chroot_list_enable=YES

5-3、允许用户使用ASCII上传文件。

默认:#ascii_upload_enable=YES

改成:ascii_upload_enable=YES

5-4、允许用户使用ASCII下载文件。

默认:#ascii_download_enable=YES

改成:ascii_download_enable=YES

5-5、在末尾添加以下内容

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftpd/users

6、 重新启动 Vsftpd (service vsftpd restart),出现 了 500 OOPS: could not open chroot()  list file:/etc/vsftpd/chroot_list 错 误,执行以下操作就可以解决问题。

touch /etc/vsftpd/chroot_list

service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ]

6-1、用软件连接 ftp 服务器时,出现了以下问题,防火墙开启 21 端口就能得到解决。

状态: 正在连接 192.168.182.128:21.

错误: 连接超时

错误: 无法连接到服务器

状态: 正在等待重试。

6-2、在防火墙中开启 21 端口

vi /etc/sysconfig/iptables

任意位置添加以下内容

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21-j  ACCEPT

重启防火墙

/sbin/service iptables restart

6-3、再次连接时出现了不能切换目录错误“500 OOPS: cannot change  directory:/data/htdocs/bugxm_admin”,执行以下操作即可解决。

setsebool -P ftpd_disable_trans 1

service vsftpd restart

6-4、终于连接上了!

状态: 读取目录列表。

命令: PORT 192,168,182,1,38,172

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

6-5、登陆 bugxm_admin 账户试试能否上传文件,臭虫小明这里上传文件还存在权限问题。

4上传错误:553 Could not create file.

解决方法:

chmod 770 -R /data/htdocs

chown root:ftp -R /data/htdocs

6-6、再次上传,正确了。

28状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_admin

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 开始上传 E:\Users\Desktop\index.htm

命令: CWD /

响应: 250 Directory successfully changed.

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,46

响应: 200 PORT command successful. Consider using PASV.

命令: STOR index.htm

响应: 150 Ok to send data.

响应: 226 File receive OK.

状态: 文件传输成功,传输了 35,250 字节 (用时1 秒)

状态: 读取目录列表。

命令: PORT 192,168,182,1,40,47

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

6-7、试试另外一个账号是不是实现了仅有下载权限需求。

状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_admin

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 开始上传 E:\Users\Desktop\index.htm

命令: CWD /

响应: 250 Directory successfully changed.

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,46

响应: 200 PORT command successful. Consider using PASV.

命令: STOR index.htm

响应: 150 Ok to send data.

响应: 226 File receive OK.

状态: 文件传输成功,传输了 35,250 字节 (用时1 秒)

状态: 读取目录列表。

命令: PORT 192,168,182,1,40,47

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

状态: 已从服务器断开

状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_general

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: SYST

响应: 215 UNIX Type: L8

命令: FEAT

响应: 211-Features:

响应: EPRT

响应: EPSV

响应: MDTM

响应: PASV

响应: REST STREAM

响应: SIZE

响应: TVFS

响应: UTF8

响应: 211 End

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 读取目录列表。

命令: PWD

响应: 257 “/”

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,56

响应: 200 PORT command successful. Consider using PASV.

命令: LIST

响应: 150 Here comes the directory listing.

响应: 226 Directory send OK.

状态: 列出目录成功

状态: 已从服务器断开

状态: 正在连接 192.168.182.128:21.

状态: 连接建立,等待欢迎消息。

响应: 220 (vsFTPd 2.0.5)

命令: USER bugxm_general

响应: 331 Please specify the password.

命令: PASS ******

响应: 230 Login successful.

命令: OPTS UTF8 ON

响应: 200 Always in UTF8 mode.

状态: 已连接

状态: 开始上传 E:\Users\Desktop\index.htm

命令: CWD /

响应: 250 Directory successfully changed.

命令: PWD

响应: 257 “/”

命令: TYPE I

响应: 200 Switching to Binary mode.

命令: PORT 192,168,182,1,40,59

响应: 200 PORT command successful. Consider using PASV.

命令: STOR index.htm

响应: 550 Permission denied.

错误: 严重文件传输错误

总结:Vsftpd  整个配置过程实际上比较简单,但初次配置总会遇到各种不解的难题,如果稍微耐心一些,这些问题都很容易得到解决。转载请注明出处http://www.bugxm.com/system/linux/534.html ,谢谢。

分享到:
评论

相关推荐

    vsftpd虚拟用户的配置

    - 编辑或创建`/etc/pam.d/vsftpd`文件,添加以下内容以启用虚拟用户的PAM认证。 ```bash # vi /etc/pam.d/vsftpd auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /...

    vsftpd虚拟用户建立,无错版

    VSFTPD 虚拟用户建立 VSFTPD 虚拟用户建立是指在 CentOS 服务器上安装和配置 VSFTPD 服务,以便实现虚拟用户的 FTP 访问。下面是相关的知识点: 1. 安装 VSFTPD 服务 在 CentOS 服务器上,需要安装 VSFTPD 服务...

    Centos7下安装vsftpd并启用虚拟用户访问

    ### Centos7下安装vsftpd并启用虚拟用户访问 #### 一、环境搭建与软件安装 在CentOS 7环境中部署vsftpd并实现虚拟用户登录,首先需要完成vsftpd服务的基本安装。 1. **安装vsftpd及其客户端**: ```bash yum ...

    linux vsftpd 一键配置、用户权限配置脚本

    该FTP是配置在linux环境上的vsftpd,可以为FTP用户制定任意主目录,分配任意权限,很灵活、方便,有说明ReadMe.txt 首先 确认 linux 系统的 selinux 和防火墙,这些自己百度修改吧。 包含: 一键初始化配置vsftpd ....

    vsftpd虚拟用户设置权限

    vsftpd 虚拟用户设置权限 vsftpd 虚拟用户设置权限是指在 vsftpd 服务器中,如何设置虚拟用户的权限,以满足不同的用户需求。本文将详细介绍如何设置虚拟用户的权限,包括普通用户、管理员用户和网站管理员用户的...

    linuxFTP创建虚拟用户扫描.pdf

    1. 虚拟用户的创建:在 Linux 系统中,可以使用 vsftpd 软件包来创建虚拟用户。首先,需要安装软件包,然后创建虚拟用户口令库文件。在这个文件中,奇数行为用户名,偶数行为密码。 2. vsftpd 的认证文件生成:使用 ...

    vsftpd_ftp服务器Linux虚拟用户配置(超详细)

    本教程将详细讲解如何在Linux环境下配置VSFTPD,实现FTP服务器的虚拟用户功能,以便为不同的用户提供独立的权限和目录访问。虚拟用户允许我们通过用户名和密码认证,而这些信息并不直接与系统的实际用户账户对应,...

    Linuxvsftpd的配置.pdf

    Linux vsftpd 配置详解 Vsftpd 是一个非常安全的 FTP 守护进程,可以在 Linux 操作系统中使用。本文将详细介绍如何配置 vsftpd,以便实现 root 用户和普通用户的 FTP 登录。 一、Root 用户的 FTP 配置 1. 打开 /...

    linux下配置vsftpd和虚拟用户[文].pdf

    总的来说,配置Linux下的VSFTPD和虚拟用户涉及到多个步骤,包括设置配置文件、创建账号数据库、建立PAM文件、创建本地用户以及调整权限。这些操作确保了FTP服务的安全性和灵活性,使得管理员可以更有效地管理和控制...

    linux安装vsftpd详细教程

    ### Linux安装VSFTPD详细教程 #### 一、前言 在Linux环境下部署FTP服务器是一项常见且实用的任务,尤其对于需要进行文件传输的场景尤为重要。本文将详细介绍如何在Linux 7系统上安装与配置VSFTPD(Very Secure FTP...

    linux离线安装vsftpd包.zip

    这将解压出一个或多个RPM文件,比如`vsftpd.rpm`。 接下来,我们使用RPM命令进行离线安装。在Linux终端中,进入解压后的目录,并执行以下命令: ```bash cd /path/to/extracted/directory sudo rpm -Uvh *.rpm --...

    linuxFTP创建虚拟用户归纳.pdf

    Linux FTP 创建虚拟用户归纳 Linux FTP 创建虚拟用户归纳是指在 Linux 服务器上创建虚拟用户,以便用户可以通过 FTP 访问服务器资源。下面是创建虚拟用户的详细步骤: 安装软件包 第一步是在服务器上安装软件包,...

    linux下配置vsftpd和虚拟用户.pdf

    在Linux环境中配置VSFTPD(Very Secure File Transfer Protocol Daemon)服务并设置虚拟用户,是为了实现更安全、可控的FTP(File Transfer Protocol)访问。VSFTPD是一个开源的FTP服务器软件,因其安全性高而受到...

    Centos 8 vsftpd多用户FTP服务器配置完美方案——同时解决PORT和PASV模式

    为了实现多用户虚拟用户方式,需要在vsftpd.conf文件中设置virtual_use_local_privs=YES和virtual_users=ftp-test1,ftp-test2等参数。 结论 本文介绍了CentOS 8系统中配置vsftpd多用户FTP服务器的详细步骤,包括...

    vsftpd虚拟目录安装

    总之,安装并配置VSFTPD虚拟目录涉及多个步骤,包括安装软件、配置服务、创建虚拟用户、设置数据库和权限,以及验证服务的正确运行。这个过程需要对Linux系统管理、FTP服务原理以及PAM认证机制有一定的理解。一旦...

    linuxFTP创建虚拟用户参考.pdf

    创建虚拟用户需要安装软件包、建立虚拟用户口令库文件、生成 vsftpd 认证文件、建立 PAM 配置文件、建立虚拟用户所需的目录和权限、修改主配置文件、启动服务、测试虚拟用户、设置虚拟用户权限、创建用户配置文件...

    CentOS 7中vsftpd服务安全部署(匿名用户、本地用户、虚拟用户管理).docx

    4. 修改 vsftpd 配置:启用虚拟用户模式(`virtual_use_local_users=YES`),配置 pam 模块认证。 5. 权限设定:为虚拟用户指定家目录和文件权限,如 `chown vuser:vuser /home/vuser` 并设置 `chmod 755 /home/...

    建立Vsftpd虚拟用户

    ### 建立Vsftpd虚拟用户 #### 1. FTP登录方式概述 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。通过FTP,用户可以上传、下载以及管理远程服务器上的文件。根据登录方式的不同,FTP...

    Centos中Vsftpd安装与虚拟用户设置.txt

    本文将深入解析这一主题,涵盖Vsftpd的基本概念、安装过程、配置虚拟用户的具体步骤及安全策略。 ### 一、Vsftpd简介 Vsftpd是目前最流行的FTP守护进程之一,以其高效、稳定、安全而闻名。它支持多种功能,包括...

    linux-vsftpd安装配置教程

    "Linux-vsftpd安装配置教程" 本教程旨在指导读者安装和配置Linux系统下的vsftpd服务器。vsftpd是Linux系统下的一个FTP服务器软件,提供了anonymous和local用户两种身份验证方式。本教程将详细介绍vsftpd的安装、...

Global site tag (gtag.js) - Google Analytics