配置FTP虚拟用户访问

直接使用本地用户(Linux系统的用户账户)来访问vsftpd服务器可能带来安全问题,变通的方法是使用虚拟用户(virtual user)来作为专门的FTP账户。FTP虚拟用户并不是操作系统的用户账户,不能登入系统,只能访问FTP服务器,对操作系统的影响更小。虚拟用户主要用来访问提供给非信任用户,但又不适合公开的内容。

PAM(Pluggable Authentication Modules)是一套身份验证共享库,用于限定特定应用程序的访问。使用PAM身份验证机制可以实现vsftpd的虚拟用户功能。实现的关键是攒关键vsftpd的PAM用户数据库文件和修改相应的PAM配置文件,具体步骤如下。

1.创建虚拟用户数据库

需要使用PAM用户数据库来验证虚拟用户,为此要建立一个采用通用数据库格式(db)的文件来存储用户名和密码。

(1)建立包含虚拟用户名和密码的文本文件。文件中奇数行为用户名,偶数行为对应的密码。例如创建/etc/vsftpd/login.txt,并在其中个输入如下内容:

abc

123

def

456

上面的文本文件包含连个用户abc和def,密码分别为123和456.

(2)执行以下命令将包含虚拟用户的文本文件转换成数据库文件。

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

注意:找不到db_load命令,需要安装db4软件。

(3)执行以下命令以限制改数据库我那件的访问权限。

#chmod 600 /etc/vsftpd/login.db                          //防止该文件被普通用户修改。

2.修改vsftpd的PAM配置文件

安装vsftpd时创建了一个相应的PAM配置文件/etc/pam.d/vsftpd,对该文件进行修改,将所有的行加上#使其成为注释,或者直接删除,然后添加一下两行内容。

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/login

db=/etc/vsftpd/login和上一步建立的数据库文件相对应,只是在PAM文件里不能写后缀名.db。这两行内容告知PAM使用新的数据库(/etc/vsftpd/login.db)来验证用户。

PAM的目的是对客户端进行验证,也可另外创建一个PAM文件用于vsftpd虚拟用户验证。

3.为虚拟用户创建一个系统用户和主目录

#useradd -d /home/ftpsite -s /sbin/nologin virtual

这样就创建了一个名为“virtual”的普通用户,同时为其创建一个名为“/home/ftpsite”的主目录。

可以讲要下载的内容复制到该目录。

4.创建或修改现有的vsftpd.conf配置文件,启用虚拟用户功能。这里为了示范,创建一个新的vsftpd.conf配置文件,具体配置如下:

anonymous_enable=NO
#启用非匿名用户访问(包括虚拟用户)
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
#启用用户目录锁定(将虚拟用户锁定在其主目录中)
chroot_local_user=YES
#启用虚拟用户功能
guest_enable=YES
#设置所有虚拟用户要映射的真实用户
guest_username=virtual
#设置vsftpd进行PAM认证是所用的PAM配置文件名
pam_service_name=vsftpd
listen=YES
#设置vsftpd监听非标准口8021的FTP请求
listen_port=8021
#被动模式端口设置为高端口范围
pasv_min_port=30000
pasv_max_port=30999

其中与虚拟用户功能最相关的选项有3个。

*  guest_enable:设置是否启用vsftpd的虚拟用户功能,默认设置为NO。将其设置为YES,所有非匿名用户的访问都会被认为“虚拟用户”登录。将虚拟用户登录重新映射到有guest_username选项指定的用户。

*  guest_username: 指定虚拟用户在系统中的用户名,及虚拟用户被映射为哪一个本地系统用户,默认设为ftp(等同于匿名用户)。

*  pam_service_name:设置vsftpd进行PAM认证是所用的PAM配置文件名,告诉vsftpd对那个文件实现PAM身份验证。默认值为ftp。但是默认配置文件中将该选项设置为vsftpd,表示PAM配置文件为/etc/pam.d/vsftpd。

时间: 2024-09-29 05:36:01

配置FTP虚拟用户访问的相关文章

Linux下vsftpd安装以及配置FTP虚拟用户实践

首选的FTP服务器搭建方式 安装vsftpd #查看当前系统版本 cat /etc/redhat-release  CentOS release 6.6 (Final)  #查看是否已经安装vsftpd rpm -qa | grep vsftpd #如果没有,就安装,并设置开机启动 yum -y install vsftpd chkconfig vsftpd on 基于虚拟用户的配置 所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的.虚拟用户不能登录CentOS系统.

Vsftpd安装以及配置FTP虚拟用户实践

安装vsftpd #查看当前系统版本 [[email protected] vsftpd]# cat  /etc/redhat-release CentOS release 6.7 (Final) #安装 yum  install  vsftpd  -y #开机启动 chkconfig  vsftpd   on 基于虚拟用户和被动模式的配置 [[email protected] vsftpd]# cat  vsftpd.conf anonymous_enable=NO listen=YES li

配置ftp虚拟用户

今天我们学习的内容主要有以下几点:1.创建挂载目录2.挂载镜像3.配置yum 源4.检查yum源是否有效5.yum安装vsftpd服务6.关闭iptables7.yum安装ftp服务8.进入vsftpd主配置文件中,修改相应的需要的参数9.修改/var/ftp/pub文件的所有者为ftp10.查询ftp的所有用户的链接参数getsebool -a | grep ftp11.修改ftp的所有用户的链接参数为ON12.登录即可以下是几个主要步骤:通过今天一天的学习,认识到了自己的很多缺点与不足,希望

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

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

Centos下安装FTP并进行虚拟用户访问方式配置

1.准备工作 yum install pam* yum install db4* 首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件). 2.安装vsftpd yum install vsftpd 设置vsftpd开机启动: chkconfig vsftpd on 通过chkconfig --list 查看启动项 3. 配置vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_u

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

ftp虚拟用户的配置

实验环境: 1.操作系统:centos 6.6 x86_64 2.vsftpd版本为系统自带 3.IP地址为:192.168.10.136 步骤如下: 1.首先安装vsftpd [[email protected] ~]# yum -y install vsftpd 2.创建虚拟用户数据库 [[email protected] ~]# touch /etc/vsftpd/ftpusr.txt ◆.首先设置用户和密码 [[email protected] ~]# cat /etc/vsftpd/f

通过MySQL实现虚拟用户访问vsftpd服务器

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 通过MySQL实现虚拟用户访问FTP服务器. 配置 # 安装本次实验所用到的所有软件包 yum -y install vsftpd mysql-server mysql-devel pam-devel gcc-c++ make wget # 启动mysqld服务 service mysqld start # 初始化数据库管理员密码 mysq

ahjesus配置vsftpd虚拟用户在Ubuntu

网上搜索了很多资料,过时,不全,货不对版 已下步骤亲测有效,不包含匿名用户登录 1.新建/home/loguser.txt 并填充内容,格式如下 用户名密码用户名密码用户名密码 2.生成db文件用于用户验证 执行db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db 如果没有装db会提示你apt-get install,根据提示的内容输入命令安装后再次执行生成db 3.设置数据库文件的访问权限 chmod 600 /etc/vsf