`
cppmule
  • 浏览: 447066 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Vsftpd FTP Server With Virtual Users ( Berkeley DB + PAM )

 
阅读更多

Vsftpd FTP Server With Virtual Users ( Berkeley DB + PAM )

 

Vsftpd supports virtual users with PAM (pluggable authentication modules). A virtual user is a user login which does not exist as a real login on the system in /etc/passwd and /etc/shadow file. Virtual users can therefore be more secure than real users, because a compromised account can only use the FTP server but cannot login to system to use other services such as ssh or smtp.

Required software

  • Berkeley DB (version 4) databases
  • pam_userdb.so

Install Berkeley DB And Utilities Under RHEL / CentOS

Type the following command:
# yum install db4-utils db4

Create The Virtual Users Database

To create a "db4" format file, first create a plain text files with the usernames and password on alternating lines. For e.g. create user called "vivek" with password called "vivekpass" and sayali with password "sayalipass":
# cd /etc/vsftpd
# cat > vusers.txt

Sample output:

vivek
vivekpass
sayali
sayalipass

Next, create the actual database file like this:
# db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db
# chmod 600 vsftpd-virtual-user.db
# rm vusers.txt

Configure VSFTPD for virtual user

Edit the vsftpd configuration file. Add or correct the following configuration options:

anonymous_enable=NO
local_enable=YES
# Virtual users will use the same privileges as local users.
# It will grant write access to virtual users. Virtual users will use the
# same privileges as anonymous users, which tends to be more restrictive
# (especially in terms of write access).
virtual_use_local_privs=YES
write_enable=YES
 
# Set the name of the PAM service vsftpd will use
# RHEL / centos user should use /etc/pam.d/vsftpd
pam_service_name=vsftpd.virtual
 
# Activates virtual users
guest_enable=YES
 
# Automatically generate a home directory for each virtual user, based on a template.
# For example, if the home directory of the real user specified via guest_username is
# /home/virtual/$USER, and user_sub_token is set to $USER, then when virtual user vivek
# logs in, he will end up (usually chroot()'ed) in the directory /home/virtual/vivek.
# This option also takes affect if local_root contains user_sub_token.
user_sub_token=$USER
 
# Usually this is mapped to Apache virtual hosting docroot, so that
# Users can upload files
local_root=/home/vftp/$USER
 
# Chroot user and lock down to their home dirs
chroot_local_user=YES
 
# Hide ids from user
hide_ids=YES

Save and close the file.

Create a PAM File Which Uses Your New Database

The following PAM is used to authenticate users using your new database. Create /etc/pam.d/vsftpd.virtual:
# cat > /etc/pam.d/vsftpd.virtual
Append the following:

#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account    required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session    required     pam_loginuid.so

Create The Location Of The Files

You need to set up the location of the files / dirs for the virtual users. Type the following command:
# mkdir /home/vftp
# mkdir -p /home/vftp/{vivek,sayali}
# chown -R ftp:ftp /home/vftp

Restart The FTP Server

Type the following command:
# service vsftpd restart

Test Your Setup

Open another shell session and type:
$ ftp ftp.nixcraft.net
Sample output:

Connected to ftp.nixcraft.net.in.
Name (localhost:root): vivek
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Sample log from /var/log/secure:
# tail -f /var/log/secure
Output

May 21 16:54:28 xentest vsftpd: pam_userdb(vsftpd.virtual:auth): user 'vivek' granted access
分享到:
评论

相关推荐

    vsftpd FTP Server lsc远程拒绝服务漏洞

    ### vsftpd FTP Server "ls.c" 远程拒绝服务漏洞详解 #### 一、漏洞概述 **vsftpd**(Very Secure FTP Daemon)是一款专为UNIX类平台设计的安全FTP服务器软件,因其高度的安全性和稳定性而被广泛部署于各类网络...

    vsftpd+pam+mysql.docx

    本文将详细介绍如何通过集成vsftpd(Very Secure FTP Daemon)、PAM(Pluggable Authentication Modules)以及MySQL数据库来实现这一目标。这个配置允许你创建虚拟用户,通过MySQL数据库进行身份验证,从而提高系统...

    vsftpd+pam+mysql安装配置[文].pdf

    比如,可能需要开启`anonymous_enable=NO`来禁用匿名访问,设置`pam_service_name=ftp`来指定PAM服务名称,以及可能需要设置`sql_user`、`sql_pass`、`sql_db`和`sql_host`等参数来连接MySQL。 在确保所有组件正确...

    Vsftpd+DB4

    而**Db4**(Berkeley DB 4)则是一种高性能嵌入式数据库系统,能够高效地存储和检索数据。结合两者,可以创建一个无需依赖系统用户账户即可运行的FTP服务,所有FTP用户的认证信息均保存在Db4数据库中,这大大增强了...

    lvs+keepalived+vsftp配置FTP服务器负载均衡

    在构建大型、高可用性的FTP(File Transfer Protocol)服务时,使用LVS(Linux Virtual Server)、Keepalived和VSFTPd的组合是一个常见的解决方案。LVS提供负载均衡,Keepalived确保服务高可用,而VSFTPd是常用的FTP...

    使用pam_mysql和VSFTPD实现ftp虚拟账号

    - `auth required pam_mysql.so host=localhost port=3306 db=vsftpd user=vsftpd password=vsftpd table=users use_first_pass=1 crypt=1` #### 三、注意事项与优化建议 - **安全性考量**: - 需要定期检查并...

    vsftpd pam验证

    【vsftpd pam验证】是FTP(File Transfer Protocol)服务器软件vsftpd(Very Secure FTP Daemon)中的一种安全验证方式。PAM(Pluggable Authentication Modules)是Linux系统中的一个模块化认证框架,允许系统管理...

    ubuntu server 安装vsftpd FTP服务器linux服务器应用 电脑资料.doc.docx

    Ubuntu Server 安装 VSFTPD FTP 服务器 Linux 服务器应用电脑资料 安装 VSFTPD FTP 服务器是 Linux 服务器应用电脑资料中的一部分,本文将详细介绍如何在 Ubuntu Server 10.4 上安装 VSFTPD FTP 服务器。 一、安装...

    FtpServer FtpServer

    - 下载服务器软件,如开源的vsftpd、ProFTPD或商业的FileZilla Server。 - 配置服务器设置,包括监听端口(默认21)、用户账户、数据连接模式(主动或被动)以及防火墙/路由器的端口映射。 - 配置安全性,启用SSL...

    Vsftpd+mysql

    sudo cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd ``` - 编辑`/etc/pam.d/vsftpd`,设置Vsftpd使用MySQL进行认证: ```bash sudo vim /etc/pam.d/vsftpd auth required /...

    ubuntu设置FTP需要安装的db

    总之,在Ubuntu上配置FTP服务器,尤其是使用vsftpd时,正确安装和配置Berkeley DB库至关重要。这不仅确保了vsftpd的正常运行,也提高了系统的安全性和管理效率。理解这些基本概念有助于更好地管理和维护FTP服务,为...

    rehl-linux-Server6搭建vsftpd服务器

    在Red Hat Linux Server 6上搭建VSFTPD服务器是一个常见的任务,这主要涉及到FTP服务器的配置,以便提供安全且可控的文件传输服务。VSFTPD(Very Secure FTP Daemon)是一个流行的开源FTP服务器软件,因其安全性而...

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

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

    ftpFile及ftpServer使用说明

    市面上有许多免费和商业化的FTP Server软件可供选择,如FileZilla Server、vsftpd等。根据需求选择合适的软件进行下载。 2. **安装FTP Server**:安装过程通常非常简单,只需按照安装向导的提示进行即可。安装过程中...

    linux的centOS7.5(1804)版本的vsftpd+ftp客户端rpm安装包

    在本场景中,我们关注的是如何在CentOS 7.5上安装并配置VSFTPD(Very Secure FTP Daemon)服务器,以及FTP客户端。这两个组件可以通过提供的RPM(Red Hat Package Manager)安装包进行安装。 首先,VSFTPD是一个...

    Centos下使用vsftpd安装ftp服务v1.2

    account required pam_mysql.so user=ftpuser password=<your_mysql_root_password> db=vsftpd table=users user_column=username password_column=password ``` 4.5 配置vsftpd的配置文件`vsftpd.conf` 编辑`/etc/...

    vsftpd-server:vsftpd ftp 服务器的 docker 镜像

    21 -p 2020:20 -p 12020:12020 -p 12021:12021 -p 12022:12022 -p 12023:12023 -p 12024:12024 -p 12025:12025 -e "USER=myuser" -e "PASS=verysecretpwd" -d --volumes-from <data> -d emilybache/vsftpd-server:...

    ubuntu_vsftpd FTP服务器配置学习札记

    在本文中,我们将深入探讨如何在Ubuntu操作系统上配置和管理vsftpd(Very Secure FTP Daemon)服务器。vsftpd是一款安全、高效的FTP服务器软件,广泛应用于Linux系统中。以下是关于vsftpd安装、配置和注意事项的详细...

    vsftpd FTP服务器架设

    VSFTPD(Very Secure FTP Daemon)是一款非常安全的FTP服务器软件,主要在Unix-like系统上运行,如Linux。本文将详细介绍如何使用VSFTPD搭建FTP服务器,并探讨其配置与安全特性。 首先,安装VSFTPD是搭建FTP服务器...

Global site tag (gtag.js) - Google Analytics