`
matt.u
  • 浏览: 129845 次
  • 性别: Icon_minigender_1
  • 来自: CQ
社区版块
存档分类
最新评论

(转)CentOS 5.3建立Vsftpd虚拟用户

阅读更多
转自http://yoozhu.com/?p=1469=1

CentOS 5.3建立vsftpd虚拟用户

我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

yum -y install vsftpd


一、建立vsftpd虚拟用户:
1、添加虚拟用户口令文件安装vsftpd
[root@localhost ~]#vi /etc/vsftpd/vftpuser.txt

添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。

ftp1 #用户名
123456 #密码
ftp2 #用户名
123456 #密码


2、生成虚拟用户口令认证文件
将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。
首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。
下面使用db_load命令生成虚拟用户口令认证文件。

[root@localhost ~]# db_load -T -t hash -f /home/vuser.txt /etc/vsftpd_login.db
-bash: db_load: command not found


出现没有db_load的提示是因为有些db4的包没有安装,需要安装下列包:

db4-*.rpm
db4-tcl-*.rpm
db4-utils-*.rpm

或者直接: yum -y install db4 db4-tcl db4-utils

db_load命令主要是用来生成db数据库使用的

格式:
db_load -T -t hash -f passwd.txt /etc/vsftpd/user_passwd.db
生成一个hash码型的数据库文件供ftp虚拟用户使用。

[root@localhost ~]#[color=blue]db_load -T -t hash -f /etc/vsftpd/vftpuser.txt
/etc/vsftpd/vftpuser.db[/color]


3、编辑vsftpd的PAM认证文件
在/etc/pam.d目录下,
[color=blue][root@localhost ~]#vi /etc/pam.d/vsftpd[/color]

将里面其他的都注释掉,添加下面这两行:
[color=blue]auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser[/color]


4、建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
[root@localhost ~]#useradd -d /home/vftpsite -s /sbin/nologin vftpuser
[root@localhost ~]#chmod 755 /home/vftpsite //网上为700,设置为700后FTP用户无上传权限

5、配置vsftpd.conf(设置虚拟用户配置项)

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
[color=blue]guest_enable=YES #开启虚拟用户[/color]
[color=blue]guest_username=vftpuser #FTP虚拟用户对应的系统用户[/color]
[color=blue]pam_service_name=vsftpd #PAM认证文件[/color]
[color=blue]listen_port=1221 #监听端口,可选设置[/color]
[color=blue]user_config_dir=/etc/vsftpd/vsftpd_user_conf#虚拟用户配置目录[/color]


[color=blue]root@localhost ~]useradd -d /home/vftpsite -s /sbin/nologin vftpuser][/color]


6、重启vsftpd服务
[root@localhost ~]#service vsftpd restart


7、测试虚拟用户登录FTP
C:\Documents and Settings\Administrator>ftp 192.168.2.12

Connected to 192.168.2.12.

220 (vsFTPd 2.0.5)

User (192.168.2.12:(none)): ftp1

331 Please specify the password.

Password:

500 OOPS: cannot change directory:/home/vftpsiteConnection closed by remote host


.//在配置vsftpd的时候连接vsftpd出现了500 OOPS: cannot change directory:/home/vftpsite

的错误,vftpsite为登录时使用的本地用户名。

解决办法:

[root@localhost ~]# [color=blue]setsebool -P ftp_home_dir on[/color]


也有网上说在终端输入命令:

[root@localhost ~]# [color=blue]setsebool -P ftpd_disable_trans 1[/color]

[root@localhost ~]# service vsftpd restart

就OK了!

测试:

C:\Documents and Settings\Administrator>ftp 192.168.2.12

Connected to 192.168.2.12.

220 (vsFTPd 2.0.5)

User (192.168.2.12:(none)): ftp1

331 Please specify the password.

Password:

230 Login successful.


二、虚拟用户高级设置:

1、virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

2. 建立各个虚拟用户自身的配置文件

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf


添加:
user_config_dir=/etc/vsftpd/vsftpd_user_conf


[root@localhost ~]#mkdir /etc/vsftpd/vsftpd_user_conf


编辑ftp1的配置文件
[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1

添加:
anon_world_readable_only=NO #开放ftp1的下载权限(只能下载)。注意这个地方千万不能写成YES,否则ftp1将不能列出文件和目录。

编辑ftp2的配置文件
[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp2

添加:
write_enable=YES #开放ftp2的写权限
anon_world_readable_only=NO #开放ftp2的下载权限
anon_upload_enable=YES #开放ftp2的上传权限
anon_mkdir_write_enable=YES #开放ftp2创建目录的权限
anon_other_write_enable=YES #开放ftp2删除和重命名的权限
local_root=/home/ftp2 #用户ftp2对应的默认目录

3、所有虚拟用户使用一般配置

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
write_enable=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=vftpuser
virtual_use_local_privs=NO
pam_service_name=vsftpd
anon_world_readable_only=NO #可以下载
anon_upload_enable=NO(默认值) #不能上传
anon_mkdir_write_enable=NO(默认值) #不能新建文件夹
anon_other_write_enable=NO(默认值) #不能删除和重命名文件
ftpd_banner=Welcome to yoozhu FTP server
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
tcp_wrappers=NO
setproctitle_enable=YES
listen_port=21
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=0
max_per_ip=3
local_max_rate=512000
user_config_dir=/etc/vsftpd/vsftpd_user_conf #虚拟用户配置目录



4、各个虚拟用户使用自身配置
[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
write_enable=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=vftpuser
virtual_use_local_privs=NO
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf #设定用户配置文件存放目录
ftpd_banner=Welcome to yoozhu FTP server
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
tcp_wrappers=NO
setproctitle_enable=YES
listen_port=21
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=0
max_per_ip=3
local_max_rate=512000



编辑ftp1的配置文件
[root@localhost ~]#mkdir /etc/vsftpd/vsftpd_user_conf
[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1
anon_world_readable_only=NO


编辑ftp2的配置文件
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/ftp2
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES


如果出现:PAM unable to dlopen(/lib/security/pam_userdb.so
PAM adding faulty module: /lib/security/pam_userdb.so
则有可能是64位和32位库的问题,将lib切换成lib64可解决该问题。


参考Blog:

http://yuanbin.blog.51cto.com/363003/129071

http://blog.163.com/mike_homis/blog/static/20104948200951614143913/
分享到:
评论

相关推荐

    CentOS 5.3下vsftp创建新用户

    在CentOS 5.3系统下配置vsftpd(Very Secure FTP Daemon)以创建并管理新的FTP用户是一项关键的IT技能,尤其对于那些负责维护服务器和确保数据安全的专业人士而言。下面将详细介绍如何在CentOS 5.3环境中通过vsftpd...

    vsftpd虚拟用户的配置

    ### vsftpd虚拟用户的配置详解 #### 一、虚拟用户概念 在介绍具体的配置步骤之前,我们先来了解一下什么是虚拟用户。虚拟用户是指在FTP服务器上使用的非真实系统账户,通常用于提高安全性以及方便管理和控制。 **...

    CentOS5.3-5.8_32x64位DVD镜像下载种子

    【标题】"CentOS5.3-5.8_32x64位DVD镜像下载种子"涉及的是Linux操作系统中的一个发行版本——CentOS,具体是5.x系列的多个版本。CentOS是一款基于Red Hat Enterprise Linux源代码再编译的开源操作系统,它提供了与...

    CentOS5.3系统

    CentOS 5.3 是一个基于 Red Hat Enterprise Linux (RHEL) 的开源操作系统,它为用户提供了一个稳定、安全且高度可定制的服务器环境。这个版本在2009年发布,作为CentOS系列的一个重要里程碑,它带来了许多改进和更新...

    CentOS-5.3-x86_64-bin-1of7.iso

    centos5.3_64镜像包,安装包,ISO镜像

    Centos7下安装vsftpd并启用虚拟用户访问

    ### Centos7下安装vsftpd并启用虚拟用户访问 #### 一、环境搭建与软件安装 在CentOS 7环境中部署vsftpd并实现虚拟用户登录,首先需要完成vsftpd服务的基本安装。 1. **安装vsftpd及其客户端**: ```bash yum ...

    CentOS5.3挂载NTFS

    以下是在CentOS 5.3版本上挂载NTFS驱动器的详细步骤: 1. **安装内核补丁**: 在进行NTFS挂载之前,首先需要确保你的系统内核支持NTFS。通过运行`uname -a`命令来查看当前系统的内核版本。例如,如果你的内核版本...

    LINUX操作系统_CentOS5.3_超详细的安装图文教程.doc

    LINUX操作系统_CentOS5.3_超详细的安装图文教程.doc

    vsftpd虚拟用户建立,无错版

    VSFTPD 虚拟用户建立是指在 CentOS 服务器上安装和配置 VSFTPD 服务,以便实现虚拟用户的 FTP 访问。下面是相关的知识点: 1. 安装 VSFTPD 服务 在 CentOS 服务器上,需要安装 VSFTPD 服务相关组件,包括 VSFTPD ...

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

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

    CentOS 7中vsftpd服务安全部署(匿名用户、本地用户、虚拟用户管理).docx

    在 CentOS 7 中,部署 vsftpd 服务以允许本地用户登录通常涉及以下步骤: 1. 创建系统用户:通过 `useradd` 命令创建新的用户账户,如 `useradd myuser`。 2. 设置权限:确保用户家目录具有适当的权限,通常设置为 ...

    centos5.3-i386笔记

    阿里云服务器centos+apache+php5.3+mysql+Zend Guard Loader+memcached+ftp环境搭建笔记

    Centos5.3 management guide

    ### CentOS 5.3 管理指南知识点详解 #### 一、课程介绍与目标 - **课程背景:** - 本课程旨在为学员提供一套全面的基础工具、技能及实践,以帮助他们掌握配置、保护及维护 Linux 服务器的能力。 - **目标受众:*...

    CentOS5中vsftp虚拟用户配置

    CentOS5中vsftp虚拟用户配置是一种常见的文件服务器配置方式,本文将介绍在CentOS5.3下vsftp虚拟用户配置的实例,该配置方式可以在CentOS5中通用。 vsftp虚拟用户配置的主要步骤 1. 安装db4-utils软件包 在开始...

    centos5.3 配置DNS详解

    CentOS 5.3 配置 DNS 详解 CentOS 5.3 配置 DNS 需要安装相应的软件包,包括 bind、bind-libs、bind-chroot、bind-utils 和 caching-nameserver。这些软件包可以使用 rpm 命令进行安装。安装完成后,需要配置 DNS ...

    Centos7.9安装配置vsftpd

    在本文中,我们将详细介绍如何在 CentOS 7.9 上安装和配置 vsftpd,以实现匿名用户的上传和下载操作。 一、关闭防火墙 在配置 vsftpd 之前,需要关闭防火墙,以免防火墙的限制导致-vsftpd 无法正常工作。可以使用...

    centos7部署vsftpd.docx

    Centos7 部署 VSFTPD VSFTPD 是一个基于 GPL 许可的 FTP 服务器实现,广泛应用于 Linux 操作系统中。CentOS 7 作为一个流行的 Linux 发行版,也支持 VSFTPD 的安装和配置。下面将详细介绍如何在 CentOS 7 中部署 ...

    CentOS5.3_05_mysql安装

    至于提供的资源,"CentOS5.3 Linux 编译安装 mysql-6.0.10-alpha 视频教程.avi" 可能是一个详细的视频指南,可以帮助你更直观地了解每个步骤。"访问脚本之家.html" 和 "服务器常用软件.html" 可能包含更多关于服务器...

    CentOS5.3下JDK1.5的完整安装过程

    本文将详细介绍在CentOS 5.3上安装JDK 1.5的完整步骤,这对于系统管理员和开发者来说是一项基础任务。 首先,我们需要下载JDK的安装包。在CentOS 5.3的时代,Sun Microsystems是Java的主要供应商,但现在Oracle已经...

Global site tag (gtag.js) - Google Analytics