我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何进行VSFTP+MySQL虚拟用户配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行VSFTP+MySQL虚拟用户配置

本篇文章为大家展示了如何进行VSFTP+MySQL虚拟用户配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

  VSFTPD是一种在UNIX/Linux中非常安全且快速的FTP服务器,目前已经被许多大型站点所采用。VSFTPD支持将用户名和口令保存在数据库文件或数据库服务器中。VSFTPD称这种形式的用户为虚拟用户。相对于FTP的本地(系统)用户来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。本文介绍在RedHat Linux 9上如何将VSFTPD的虚拟用户名和密码保存在MySQL数据库服务器中。

  一、VSFTPD的安装

  目前,VSFTPD的最新版本是1.2.0版。官方下载地址为ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz。在安装前,需要先做以下准备工作:

  VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。

  [root@hpe45 root]# useradd nobody

  useradd: user nobody exists

  VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。

  [root@hpe45 root]# mkdir /usr/share/empty/

  mkdir: cannot create directory '/usr/share/empty': File exists

  VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。

  [root@hpe45 root]# mkdir /var/ftp/

  [root@hpe45 root]# useradd -d /var/ftp ftp

  接下来的操作对于ftp用户是否已经存在都是有用的。

  [root@hpe45 root]# chown root.root /var/ftp

  [root@hpe45 root]# chmod og-w /var/ftp

  以上准备工作完成后,我们就可以开始编译源代码了。假定我们下载的vsftpd-1.2.0.tar.gz在/root目录,执行以下命令:

  [root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz

  [root@hpe45 root]# cd vsftpd-1.2.0

  [root@hpe45 vsftpd-1.2.0]# make

  [root@hpe45 vsftpd-1.2.0]# make install

  上面的“make install”命令将编译好的二进制文件、手册等复制到相应目录。在RHL9上,可能需要手动执行以下复制:

  [root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd

  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5

  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8

  接下来,我们复制一个简单的配置文件作为基础供后面修改。

  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc

  [root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

  复制PAM验证文件,以允许本地用户登录VSFTPD。

  [root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

  二、创建guest用户

  VSFTPD采用PAM方式验证虚拟用户。由于虚拟用户的用户名/口令被单独保存,因此在验证时,VSFTPD需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证,这就是VSFTPD的guest用户。这正如同匿名用户也需要有一个系统用户ftp一样。当然,我们也可以把guest用户看成是虚拟用户在系统中的代表。下面在系统中添加vsftpdguest用户,作为VSFTPD的guest。

  [root@hpe45 vsftpd-1.2.0]# useradd vsftpdguest

  当虚拟用户登录后,所在的位置为vsftpdguest的自家目录/home/vsftpdguest。如果要让虚拟用户登录到/var/ftp等其他目录,修改vsftpdguest的自家目录即可。

  三、设置VSFTPD配置文件

  在/etc/vsftpd.conf文件中,加入以下选项:

  guest_enable=YES

  guest_username=vsftpdguest

  然后执行以下命令,让VSFTPD在后台运行:

  [root@hpe45 vsftpd-1.2.0]# /usr/local/sbin/vsftpd &

  四、将虚拟用户保存在MySQL数据库服务器中

  我们建立数据库vsftpdvu,表users,字段name和passwd用于保存虚拟用户的用户名和口令,同时增加两个虚拟用户xiaotong和xiaowang。

  [root@hpe45 vsftpd-1.2.0]# mysql -p

  mysql>create database vsftpdvu;

  mysql>use vsftpdvu;

  mysql>create table users(name char(16) binary,passwd char(16) binary);

  mysql>insert into users (name,passwd) values ('xiaotong',password('qqmywife'));

  mysql>insert into users (name,passwd) values ('xiaowang',password('ttmywife'));

  mysql>quit

  然后,授权vsftpdguest可以读vsftpdvu数据库的users表。执行以下命令:

  [root@hpe45 vsftpd-1.2.0]# mysql -u root mysql -p

  mysql>grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0';

  mysql>quit

  如果要验证刚才的操作是否成功可以执行下面命令:

  [root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu

  mysql>select * from users;

  如果成功,将会列出xiaotong、xiaowang和加密后的密码

  五、设置MySQL的PAM验证

  这里我们要用到一个利用mysql进行pam验证的开源项目(http://sourceforge.net/projects/pam-mysql/)。首先从网站下载它的程序包pam_myql-0.5.tar.gz,复制到/root目录中。在编译安装之前,要确保mysql-devel的RPM包已经安装在你的机器上,如果没有请从RHL安装光盘中安装该包。然后,执行以下命令:

  [root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz

  [root@hpe45 root]#cd pam_mysql

  [root@hpe45 pam_mysql]#make

  [root@hpe45 pam_mysql]#make install

  make install这一步可能会出现错误,那只好手动将该目录下生成的pam_mysql.o复制到/lib/security目录下。

  接下来,我们要设置vsftpd的PAM验证文件。打开/etc/pam.d/ftp文件,加入以下内容:

  auth required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2

  account required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2

  上面涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1,口令使用UNIX系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过MySQL的password()函数加密后保存。

  六、进一步的虚拟用户设置

  经过以上的步骤,虚拟用户就可以正常使用了。这里介绍进一步的虚拟用户设置。首先,介绍虚拟用户的权限设置。

  VSFTPD-1.2.0新添了virtual_use_local_privs参数,当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限,这也就是VSFTPD-1.2.0之前版本对虚拟用户权限的处理方法。这两者种做法相比,后者更加严格一些,特别是在有写访问的情形下。默认情况下此参数是关闭的(NO)。

  当virtual_use_local_privs=YES时,只需设置write_enable=YES,虚拟用户就可以就拥有写权限。而virtual_use_local_privs=NO时,对虚拟用户权限的设置就更多一些更严格一些。

  控制虚拟用户浏览目录:如果让用户不能浏览目录,但仍可以对文件操作,那么需要执行以下二个步骤:一,配置文件中,anon_world_readable_only=YES。二,虚拟用户目录的权限改为只能由vsftpdguest操作:

  [root@hpe45 root]# chown vsftpdguest.vsftpdguest /home/vsftpdguest

  [root@hpe45 root]# chmod 700 /home/vsftpdguest

  允许虚拟用户上传文件:

  write_enable=YES

  anon_upload_enable=YES

  允许虚拟用户修改文件名和删除文件:

  anon_other_write_enable=YES

  由于以上选项的设置同样会对匿名用户生效。如果不想匿名用户趁机拥有同样的权限,最好是禁止匿名用户登录。

  其次,由于虚拟用户在系统中是vsftpdguest身份,所以可以访问到系统的其他目录。为了更加安全,我们可以将虚拟用户限制在自家目录下。有两种做法:一,在配置文件中增加以下选项

  chroot_local_user=NO

  chroot_list_enable=YES

  chroot_list_file=/etc/vsftpd.chroot_list

  然后,在/etc/vsftpd.chroot_list文件中加入虚拟用户名xiaotong和xiaowang。

  第二种做法,在配置文件中修改chroot_local_user=YES。

  经过修改后,虚拟用户登录后其根目录就限制在/home/vsftpdguest下,无法访问其他目录。

  七、虚拟用户的个人目录

  大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/vsftpdguest,即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。首先,在主配置文件中加入以下选项:

  user_config_dir=/etc/vsftpd/vsftpd_user_conf

  然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:

  [root@hpe45 root]# mkdir /etc/vsftpd/vsftpd_user_conf

  [root@hpe45 root]# cd /etc/vsftpd/vsftpd_user_conf

上述内容就是如何进行VSFTP+MySQL虚拟用户配置,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何进行VSFTP+MySQL虚拟用户配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux 中怎么配置vsftp虚拟用户

本篇文章为大家展示了linux 中怎么配置vsftp虚拟用户,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单
2023-06-13

CentOS怎么安装配置vsftp虚拟用户登录

本篇内容主要讲解“CentOS怎么安装配置vsftp虚拟用户登录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CentOS怎么安装配置vsftp虚拟用户登录”吧!在使用Linux时,难免要进行各
2023-06-16

Linux下如何安装vsftpd以及配置FTP虚拟用户

这篇文章主要为大家展示了“Linux下如何安装vsftpd以及配置FTP虚拟用户”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装vsftpd以及配置FTP虚拟用户”这篇文章吧。
2023-06-16

使用宝塔面板进行Java虚拟机的优化配置

Java虚拟机优化配置简介:优化JVM配置可提升性能和稳定性。宝塔面板可简化配置,满足应用程序需求。优化步骤:调整内存分配:Xms和Xmx选择垃圾收集器:G1GC或ParallelGC配置堆外内存:-XX:MaxDirectMemorySize启用编译优化:-XX:+TieredCompilation启用性能监控:-XX:+PrintGCDetails应用其他优化:-Xverify:none等示例配置:-Xms2048m-Xmx4096m-XX:+G1GC-XX:MaxDirectMemorySize=5
使用宝塔面板进行Java虚拟机的优化配置
2024-04-12

使用宝塔面板进行Java虚拟机的优化配置

要使用宝塔面板进行Java虚拟机(JVM)的优化配置,可以按照以下步骤进行操作:1. 登录到宝塔面板,进入网站管理页面。2. 在网站列表中找到需要配置JVM的网站,点击进入网站管理页面。3. 在网站管理页面的左侧导航栏中找到“配置文件”选项
2023-10-09

虚拟主机租用如何选择配置

选择虚拟主机的配置取决于您的网站的需求和预算。以下是一些考虑因素:1. 流量和带宽:根据您预计的网站访问量和流量需求选择合适的带宽。如果您的网站将有大量访问者或需要传输大量数据,您可能需要选择更高的带宽。2. 存储空间:根据您网站的内容和需
2023-08-16

vps虚拟主机租用如何选择配置

vps虚拟主机租用选择配置的方法:1、根据网站数据量选择vps虚拟主机空间,如网站有100M数据,选择300M以上的空间;2、根据网站访客需求选择合适的流量,访问量高,流量消耗大;3、根据自身实际情况选择vps虚拟主机带宽和机房线路;4、根
2023-02-08

新加坡虚拟主机租用如何配置

新加坡虚拟主机租用需要进行以下配置:1. 选择适合自己需求的虚拟主机套餐,根据网站访问量、流量、存储空间等要求选择合适的套餐。2. 注册域名并将域名解析到虚拟主机的IP地址。3. 登录虚拟主机控制面板,进行基本设置,如修改FTP密码、添加邮
2023-06-13

如何进行virtualbox虚拟机安装centos并配置网络使宿主机和虚拟机能够互相访问

这篇文章给大家介绍如何进行virtualbox虚拟机安装centos并配置网络使宿主机和虚拟机能够互相访问,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。配置步骤安装virtualbox之后它会在宿主机上面安装一个虚拟网
2023-06-10

MySql如何实现新建并验证vsftpd虚拟用户

这篇文章将为大家详细讲解有关MySql如何实现新建并验证vsftpd虚拟用户,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. Mysql安装yum -y install mariadb-serversy
2023-06-25

成都虚拟主机租用如何选择配置

成都虚拟主机租用选择配置的方法:1、选择300M以上的空间大小,能容纳大量数据;2、根据网站的访问量,选择合适的虚拟主机流量;3、选择多线或BGP线路,能保障网站的访问速度;4、根据自身使用习惯,选择合适的虚拟主机操作系统。具体内容如下:1
2023-02-15

如何进行SuSE Linux操作系统下Apache虚拟网站设置

今天就跟大家聊聊有关如何进行SuSE Linux操作系统下Apache虚拟网站设置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。本次讲解的是需要设定成Apache虚拟网站空间方式。本
2023-06-17

OpenBSD中如何配置和使用虚拟专用服务器

在OpenBSD中配置和使用虚拟专用服务器(VPS)通常涉及使用第三方虚拟化软件,如QEMU或VirtualBox。以下是一个简单的步骤指南:安装虚拟化软件:在OpenBSD上安装QEMU:您可以使用pkg_add qemu命令来安装QEM
OpenBSD中如何配置和使用虚拟专用服务器
2024-04-09

如何在MySQL中进行连接池配置和管理

要在MySQL中进行连接池配置和管理,可以使用以下步骤:配置连接池参数:在MySQL配置文件中(一般是my.cnf或my.ini),可以设置连接池相关参数,例如最大连接数、最小连接数、连接超时时间等。可以通过修改以下参数来配置连接池:max
如何在MySQL中进行连接池配置和管理
2024-04-09

编程热搜

目录