Linux的FTP服务支持3种用户:
1.匿名帐户
2.本地帐户
3.虚拟用户
为什么要使用虚拟用户:
匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活.如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来 实现.但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患.那么怎么能在灵活的赋予FTP用户权限的前提下, 保证FTP服务器乃至整个Linux系统的安全呢?使用虚拟用户就是一种解决办法.
下面,我们就一起来学习,该怎样在Linux下配置FTP服务器的虚拟用户.
开始配置前,让我们先大概了解下FTP虚拟用户的工作原理:
虚拟用户,顾名思义,并不是一个合法的Linux系统帐户,但是他可以用来登陆该系统上运行的FTP服务器.
当用户在连接上FTP服务器后,会被要求输入用户名和密码.FTP服务器在拿到这个用户名和密码后,会调用相应的PAM认证模块对,和系统中的 FTP认证文件进行相比较.如果该用户名和密码与FTP认证文件中的某条记录相符,就通过认证,然后该帐户就被映射成一个Linux下的本地帐户,然后根 据使用该本地帐户对FTP资源进行访问.否则则断开该连接请求.
了解了FTP虚拟用户的工作原理后,我们就可以开始配置FTP虚拟用户了.
整个过程可以分这几个步骤:
1.准备一个虚拟用户的口令库文件.该文件中保存的用户名和密码是用户连接FTP服务器时,需要输入的用户名和密码.文件可以自己创建,位置无关紧要,文件格式为:奇数行为用户名,偶数行为密码.
例如:touch login.txt //创建一个名为login.txt的虚拟用户口令库文件
vi login.txt //编辑该口令库文件
mike //虚拟用户mike
123 //虚拟用户mike的密码
john //虚拟用户john
321 //虚拟用户john的密码
保存退出.
2.用刚才建立的虚拟用户口令库文件生成FTP服务器的认证文件.该认证文件是一个被加密后的密文.PAM在调用相应的认证模块后,会对从FTP服务器发来的用户名和密码进行加密,然后在跟该文件进行对比,发现相符条目后,登陆用户才会被允许登陆.
db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
//在运行该命令前,别忘记安装db4-utils软件包,该包包含有db_load命令等.关于该命令的使用不在本文讨论范围内.其中-f参数后跟的为刚才创建的虚拟用户口令库文件.最后的路径为生成的FTP认证文件的存放位置.
为了进一步保证安全,可以将该FTP认证文件的权限设置为600.
3.建立虚拟用户所需要的PAM配置文件.由于FTP服务器在接受到用户的用户名和口令后会调用PAM认证,所以我们还要创建虚拟用户的PAM配置文件.
我们将该文件保存在/etc/pam.d目录下,文件名暂时取为:vsftpd.这里要注意一点就是,该文件名要与FTP服务主配置文件(/etc/vsftpd/vsftpd.conf)中的pam_service_name=vsftpd选项的选项值相同.
创建好该文件后,将下面的内容加入到该文件中:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
改好后,保存退出.注意3个红色文件的文件名.该3个文件为1个文件,只不过在使用中写法不同.
4.由于用户在通过PAM的认证后要被映射成一个本地用户,所以我们还要建立一个本地用户供虚拟用户使用.
我们只需要对该本地用户赋予FTP主目录的适当访问权限就行.即使FTP服务器遭到攻击,这个本地用户也没有访问其他目录的权限,相对比较安全一些.
useradd -d /home/ftpsite virtual //用户名为virtual,主目录为FTP的根
chmod 700 /home/ftpsite //将其权限设置为700,可以根据实际情形进行修改
5.在FTP的主配置文件中,启用FTP虚拟用户.增加如下选项即可:
guest_enable=YES
guest_username=virtual //将虚拟用户映射成本地的哪个用户.这里用的是virtual,刚才建
立的那个用户.
pam_service_name=/etc/vsftpd/vsftpd //切记要修改该项的值
6.配置到这里就完成了,别忘记重启FTP服务进行测试.
7.为不同的虚拟用户分配权限
默认情况下,虚拟用户拥有相同的权限,就是virtual的权限,我们可以根据实际需求对不同的虚拟用户分配权限.
首先在FTP的主配置文件中加一个选项:
user_config_dir=/etc/vsftpd_user_conf //文件名和路径都可以自己定义
然后创建该目录.
mkdir /etc/vsftpd_user_conf
下面就可以在该目录下编辑不同虚拟用户的权限配置文件了,比如要对mike编辑其权限.
touch mike //建立mike的权限文件.文件名要与虚拟用户名相同
可以根据实际需求为该文件添加下面的选项和值:
anon_world_readable_only=NO //表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES //表示用户可以上传文件
anon_mkdir_write_enable=YES //表示用户有创建和删除目录的权限
anon_other_write_enable=YES //表示用户具有文件改名和删除文件的权限
到这里,虚拟用户就算完成配置完成了
相关推荐
CentOS FTP 虚拟用户设置全解 ...设置 CentOS FTP 虚拟用户环境需要安装 Vsftpd 服务、PAM 服务和 DB4 部件包,并配置 Vsftpd 服务和虚拟用户环境。通过本文的指导,读者可以轻松地设置 CentOS FTP 虚拟用户环境。
在 Linux 系统中,我们可以通过添加虚拟 IP 地址、创建虚拟 FTP 服务用户、预备虚拟 FTP 服务器的配置文件、修改配置文件和启动虚拟 FTP 服务器来搭建一个虚拟的 FTP 主机。这种配置可以实现多个 FTP 站点的配置,...
以下是配置Linux中的ftp虚拟用户的详细步骤: 1. **建立用户列表**: 创建一个文本文件,例如`/tmp/logins.txt`,列出所有虚拟用户的用户名及其对应的权限。例如,`upload`、`download`和`admin`用户。 2. **创建...
以下是配置Linux中`vsftpd`虚拟用户的详细步骤: 1. **建立用户权限文件** 首先,你需要创建一个文本文件,例如`/tmp/logins.txt`,在这个文件中定义各个用户及其权限。例如: ``` upload upload download ...
在Linux环境中配置FTP虚拟用户主要是为了实现不同用户有不同的权限控制,这在多用户共享FTP服务时非常有用。以下是如何使用vsftpd软件包配置FTP虚拟用户的详细步骤: 1. **创建用户权限列表**: 首先,你需要创建...
总的来说,这个项目提供的`嵌入式Linux系统ftp虚拟用户配置文件和源码.zip`包含了一套完整的解决方案,用于在嵌入式Linux环境中搭建安全的FTP服务器,并实现虚拟用户功能。这使得在没有为每个用户创建系统账户的情况...
在Linux环境中,配置FTP(File Transfer Protocol)服务以实现虚拟用户和不同权限的管理是一项重要的系统管理任务。这里我们将详细讲解如何使用vsftpd(Very Secure FTP Daemon)服务来配置虚拟用户,以及如何为这些...
本文的标题是「Linux FTP 创建虚拟用户扫描」,这篇文档的主要内容是讲述如何在 Linux 系统中创建虚拟用户,并对其进行 FTP 服务的配置和管理。该标题明确地表明了文档的主题和内容。 二、描述分析 描述中仅重复了...
### Linux环境下搭建高效FTP服务详解 #### 一、VSFTP简介与优势 ...此过程不仅涉及基础安装与配置,还涵盖了虚拟用户的设置以及 SELinux 的调整等高级功能,旨在帮助用户构建一个稳定可靠的FTP解决方案。
Linux FTP 创建虚拟用户参考 一、安装软件包 在 Linux 系统中,创建虚拟用户需要安装相应的软件包。首先,在服务器上安装 vsftpd 软件包,这是 FTP 服务器软件包。安装完成后,需要建立虚拟用户口令库文件。 二、...
Linux FTP 创建虚拟用户归纳 Linux FTP 创建虚拟用户归纳是指在 Linux 服务器上创建虚拟用户,以便用户可以通过 FTP 访问服务器资源。下面是创建虚拟用户的详细步骤: 安装软件包 第一步是在服务器上安装软件包,...
通过以上步骤,我们成功地配置了一个基于 VSFTPD 的安全 FTP 服务器,支持虚拟用户认证,并且能够有效地控制用户的访问权限。这种配置方式非常适合于需要对 FTP 服务进行精细控制的场景,如企业内部文件共享、网站...
4. **功能丰富**:支持IP虚拟FTP服务器、虚拟用户、PAM或xinetd/tcp_wrappers认证、独立或Xinetd运行模式,以及每个虚拟用户的独立配置。 许多知名的开源项目和镜像站点使用VSFTPd作为其FTP服务器,如Red Hat、SuSE...
Linux下的FTP服务器配置主要涉及到如何使用vsftpd(Very Secure FTP Daemon)软件来搭建和管理FTP服务。这个过程包括三个部分:基于匿名用户、基于系统用户以及基于虚拟用户FTP服务器的配置。 首先,我们需要了解...
Linux FTP 上传文件配置 Vsftpd 支持限额配置 Linux FTP 上传文件是指通过 FTP protocol 将文件上传到 Linux 服务器上的一种方法。Vsftpd 是一个广泛使用的 FTP 服务器软件,它提供了多种配置选项来满足不同的需求...
本文将指导读者如何在 Linux 系统中设置 FTP 用户,包括建立虚拟用户、生成认证文件、设置 PAM 配置文件、建立虚拟用户目录、设置 vsftpd.conf 配置文件、设置主配置文件、建立用户配置文件目录和设置用户权限等步骤...
在Linux操作系统中,FTP...总之,Linux下的FTP服务器配置与管理是一项涉及多方面知识的任务,包括网络协议、服务器安全、用户管理和权限控制。正确配置和管理FTP服务器对于提供稳定、安全的文件传输服务至关重要。