知识大全 VSFTP+MySQL虚拟用户配置

Posted 目录

篇首语:业无高卑志当坚,男儿有求安得闲?本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VSFTP+MySQL虚拟用户配置相关的知识,希望对你有一定的参考价值。

VSFTP+MySQL虚拟用户配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  VSFTPD是一种在UNIX/Linux中非常安全且快速的FTP服务器 目前已经被许多大型站点所采用 VSFTPD支持将用户名和口令保存在数据库文件或数据库服务器中 VSFTPD称这种形式的用户为虚拟用户 相对于FTP的本地(系统)用户来说 虚拟用户只是FTP服务器的专有用户 虚拟用户只能访问FTP服务器所提供的资源 这大大增强系统本身的安全性 相对于匿名用户而言 虚拟用户需要用户名和密码才能获取FTP服务器中的文件 增加了对用户和下载的可管理性 对于需要提供下载服务 但又不希望所有人都可以匿名下载 既需要对下载用户进行管理 又考虑到主机安全和管理方便的FTP站点来说 虚拟用户是一种极好的解决方案 本文介绍在RedHat Linux 上如何将VSFTPD的虚拟用户名和密码保存在MySQL数据库服务器中      一 VSFTPD的安装  目前 VSFTPD的最新版本是 版 官方下载地址为ftp:///users/cevans/vsftpd tar gz 在安装前 需要先做以下准备工作     VSFTPD默认配置中需要 nobody 用户 在系统中添加此用户 如果用户已经存在 useradd命令有相应提示   [root@hpe root]# useradd nobody  useradd: user nobody exists    VSFTPD默认配置中需要 /usr/share/empty 目录 在系统中此目录 如果目录已经存在 mkdir命令有相应提示   [root@hpe root]# mkdir /usr/share/empty/  mkdir: cannot create directory /usr/share/empty : File exists    VSFTPD提供匿名FTP服务时 需要 ftp 用户和一个有效的匿名目录   [root@hpe root]# mkdir /var/ftp/  [root@hpe root]# useradd d /var/ftp ftp  接下来的操作对于ftp用户是否已经存在都是有用的   [root@hpe root]# chown root root /var/ftp  [root@hpe root]# chmod og w /var/ftp    以上准备工作完成后 我们就可以开始编译源代码了 假定我们下载的vsftpd tar gz在/root目录 执行以下命令   [root@hpe root]# tar zxvf vsftpd tar gz  [root@hpe root]# cd vsftpd   [root@hpe vsftpd ]# make  [root@hpe vsftpd ]# make install    上面的 make install 命令将编译好的二进制文件 手册等复制到相应目录 在RHL 上 可能需要手动执行以下复制   [root@hpe vsftpd ]# cp vsftpd /usr/local/sbin/vsftpd  [root@hpe vsftpd ]# cp nf /usr/local/share/man/man   [root@hpe vsftpd ]# cp vsftpd /usr/local/share/man/man     接下来 我们复制一个简单的配置文件作为基础供后面修改   [root@hpe vsftpd ]# cp nf /etc  [root@hpe vsftpd ]# cp RedHat/vsftpd pam /etc/pam d/ftp  复制PAM验证文件 以允许本地用户登录VSFTPD   [root@hpe vsftpd ]# cp RedHat/vsftpd pam /etc/pam d/ftp     二 创建guest用户  VSFTPD采用PAM方式验证虚拟用户 由于虚拟用户的用户名/口令被单独保存 因此在验证时 VSFTPD需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证 这就是VSFTPD的guest用户 这正如同匿名用户也需要有一个系统用户ftp一样 当然 我们也可以把guest用户看成是虚拟用户在系统中的代表 下面在系统中添加vsftpdguest用户 作为VSFTPD的guest   [root@hpe vsftpd ]# useradd vsftpdguest  当虚拟用户登录后 所在的位置为vsftpdguest的自家目录/home/vsftpdguest 如果要让虚拟用户登录到/var/ftp等其他目录 修改vsftpdguest的自家目录即可      三 设置VSFTPD配置文件  在/etc/nf文件中 加入以下选项   guest_enable=YES  guest_username=vsftpdguest    然后执行以下命令 让VSFTPD在后台运行   [root@hpe vsftpd ]# /usr/local/sbin/vsftpd &     四 将虚拟用户保存在MySQL数据库服务器中  我们建立数据库vsftpdvu 表users 字段name和passwd用于保存虚拟用户的用户名和口令 同时增加两个虚拟用户xiaotong和xiaowang     [root@hpe vsftpd ]# mysql p  mysql>create database vsftpdvu;  mysql>use vsftpdvu;  mysql>create table users(name char( ) binary passwd char( ) 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@hpe vsftpd ]# mysql u root mysql p  mysql>grant select on vsftpdvu users to vsftpdguest@localhost identified by i serial ;  mysql>quit    如果要验证刚才的操作是否成功可以执行下面命令   [root@hpe vsftpd]#mysql u vsftpdguest pi serial vsftpdvu  mysql>select * from users;  如果成功 将会列出xiaotong xiaowang和加密后的密码     五 设置MySQL的PAM验证  这里我们要用到一个利用mysql进行pam验证的开源项目( mysql/) 首先从网站下载它的程序包pam_myql tar gz 复制到/root目录中 在编译安装之前 要确保mysql devel的RPM包已经安装在你的机器上 如果没有请从RHL安装光盘中安装该包 然后 执行以下命令   [root@hpe root]#tar xvzf pam_mysql tar gz  [root@hpe root]#cd pam_mysql  [root@hpe pam_mysql]#make  [root@hpe 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=i serial host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=   account required pam_mysql o user=vsftpdguest passwd=i serial host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=   上面涉及到的参数 只要对应前面数据库的设置就可以明白它们的含义 这里需要说明的是crypt参数 crypt表示口令字段中口令的加密方式 crypt= 口令以明文方式(不加密)保存在数据库中 crypt= 口令使用UNIX系统的DES加密方式加密后保存在数据库中 crypt= 口令经过MySQL的password()函数加密后保存      六 进一步的虚拟用户设置  经过以上的步骤 虚拟用户就可以正常使用了 这里介绍进一步的虚拟用户设置 首先 介绍虚拟用户的权限设置     VSFTPD 新添了virtual_use_local_privs参数 当该参数激活(YES)时 虚拟用户使用与本地用户相同的权限 当此参数关闭(NO)时 虚拟用户使用与匿名用户相同的权限 这也就是VSFTPD 之前版本对虚拟用户权限的处理方法 这两者种做法相比 后者更加严格一些 特别是在有写访问的情形下 默认情况下此参数是关闭的(NO)   当virtual_use_local_privs=YES时 只需设置write_enable=YES 虚拟用户就可以就拥有写权限 而virtual_use_local_privs=NO时 对虚拟用户权限的设置就更多一些更严格一些   控制虚拟用户浏览目录 如果让用户不能浏览目录 但仍可以对文件操作 那么需要执行以下二个步骤 一 配置文件中 anon_world_readable_only=YES 二 虚拟用户目录的权限改为只能由vsftpdguest操作   [root@hpe root]# chown vsftpdguest vsftpdguest /home/vsftpdguest  [root@hpe root]# chmod /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@hpe root]# mkdir /etc/vsftpd/vsftpd_user_conf  [root@hpe root]# cd /etc/vsftpd/vsftpd_user_conf cha138/Article/program/MySQL/201311/29511

相关参考

知识大全 redhat linux 9.0 VSFTP配置大权

redhatlinux9.0VSFTP配置大权  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  V

知识大全 vsftpd的配置

    作者免费打工仔    RedHat服务器配置指南vsftp  RedHat带了wuftpd和vsftp两套ftp系统我也使第一次接触vsftp根据man说vsftp的含义就是VerySecur

知识大全 mysql的本地备份和双机相互备份脚本

  先修改脚本进行必要的配置然后以root用户执行  第一执行远程备份时先用first参数  本地备份用local参数  远程备份不用参数    注意:需要在另一主机上的Mysql用户用添加用户   

知识大全 解析wamp5下虚拟机配置文档

  Wamp下虚拟机配置分为三个步骤实例如下修改Hosts文件C:WINDOWSsystemdriversetcHostsdztest  编辑wampbinapacheApacheconfextra文

知识大全 配置Web服务器(IIS)虚拟站点

ASP.NET开发宝典:配置Web服务器(IIS)虚拟站点  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 jboss下配置虚拟主机

  先在你发布的项目的WEBINF目录下建一个jbosswebxml的文件内容如下:  Java代码  <?xmlversion=?>  <!DOCTYPEjbossweb> 

知识大全 php 在windows下配置虚拟目录的方法介绍

  先打开Apache的conf目录下的文件在末尾添加如下代码复制代码代码如下:<VirtualHost*:>ServerNamemydemoDocumentRoot"D:/mydemo"

知识大全 MYSQL 双机热备配置手册

MYSQL双机热备配置手册  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!MYSQL双机热备配置手册

知识大全 MySql配置主从复制读写分离

MySql配置主从复制读写分离  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  myini配置文件

知识大全 Linux下MySQL的管理与配置

Linux下MySQL的管理与配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MySQL服务