GVKun编程网logo

centos 6.5下 vsftp 虚拟用户配置(vsftpd 虚拟用户)

13

本文将分享centos6.5下vsftp虚拟用户配置的详细内容,并且还将对vsftpd虚拟用户进行详尽解释,此外,我们还将为大家带来关于CentOS5.3系统设置vsftpd虚拟用户的具体步骤、Cen

本文将分享centos 6.5下 vsftp 虚拟用户配置的详细内容,并且还将对vsftpd 虚拟用户进行详尽解释,此外,我们还将为大家带来关于CentOS 5.3系统设置vsftpd虚拟用户的具体步骤、CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户、centos 6 安装vsftpd与PAM虚拟用户的方法、CentOS 6.2 快速配置vsftpd虚拟用户的步骤分享的相关知识,希望对你有所帮助。

本文目录一览:

centos 6.5下 vsftp 虚拟用户配置(vsftpd 虚拟用户)

centos 6.5下 vsftp 虚拟用户配置(vsftpd 虚拟用户)

一:基本知识
1
:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器
2:vsftp的服务进程是vsftpd
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf.
4:vsftpd的用户文件是/etc/vsftpd/ftpusers
5:vsftpd的用户文件是/etc/vsftpd/user_list
6:推荐使用虚拟用户登入vs-FTP服务器

二、安装vsftp

查看是否安装vsftpd服务

1. [root@localhost~]#chkconfig--list
如果没有安装,安装vsftpd服务

1. [root@localhost~]#yum-yinstallvsftpd

三、配置虚拟用户

1)检查服务器selinux是否开启,如果开启,关闭selinux

1. [root@localhost~]#/usr/sbin/sestatus-v

2. SELinuxstatus:enabled

1.1)关闭selinux方法

修改/etc/selinux/config 文件, 将SELINUX=enforcing改为SELINUX=disabled, 重启机器即可

2)创建虚拟用户文本文件,添加虚拟用户和密码

1. [root@localhost~]#cd/etc/vsftpd/

2. [root@localhost~]#touchvuser.txt

奇数行是用户名,偶数是密码
比如:
lowkeyman
123456

3)生成虚拟数据库文件(*如果db_load没有安装,yum install db4-utils db4-develdb4-4.3安装才能使用。

1. [root@localhost~]#db_load–T–thash–f/etc/vsftpd/vuser.txt/etc/vsftpd/vuser.db

4)配置PAM文件,目的是对客户端进行验证

编辑/etc/pam.d/vsftpd文件,批注所有内容,后添加:

1. authrequiredpam_userdb.sodb=/etc/vsftpd/vuser

2. accountrequiredpam_userdb.sodb=/etc/vsftpd/vuser

*不能写成db=/etc/vsftpd/vuser.db
5
)修改虚拟数据库文件vuser.db的权限为 700

1. [root@localhost~]#chmod700vuser.db

6)增加一个系统用户vuser ,使用它来对应所有虚拟用户,虚拟用户使用系统用户来访问ftp服务器。

1. [root@localhost~]#mkdir/vsftp

2. [root@localhost~]#useradd-d/var/ftp/pub-s /sbin/nologinvuser

3. [root@localhost~]#chownvuser:vuser/var/ftp/pub

7)修改vsftpd.conf配置文件,使虚拟用户可以访问vsftpd服务器,增加以下参数

修改/etc/vsftpd/vsftpd.conf如下:

anonymous_enable=NO(是否允许匿名登录FTP 服务器,默认设置为YES 允许,即用户可使用用户名ftp 或anonymous 进行ftp 登录,口令为空。如 不允许匿名访问设置为NO)

local_enable=YES(是否允许本地用户登录FTP服务器,默认设置为YES允许,本地用户登录后会进入指定的用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub;设置虚拟账户必须设会YES)

local_umask=022(设置本地用户的文件掩码为缺省022,得到上传文件的初始权限)

#anon_upload_enable=YES(是否允许匿名用户上传文件,须将write_enable=YES,默认设置为YES 允许)

#anon_mkdir_write_enable=YES(是否允许匿名用户创建新文件夹,默认设置为YES允许)

xferlog_enable=YES(默认值为NO如果启用此选项,系统将会维护记录服务器上传和下载情况的日志文件,默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file 选项对其进行设定)

connect_from_port_20=YES(设定 FTP 服务器将启用FTP数据端口的连接请求,端口20为ftp-data数据传输,21 为连接控制端口)

#chown_uploads=YES(设定是否允许改变上传文件的属主,与下面一个设定项配合使用)

#chown_username=whoever(设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名,例如可以把上传的文件都改成root 属主。whoever任何人)

#xferlog_file=/var/log/xferlog(设定系统维护记录FTP 服务器上传和下载情况的日志文件,/var/log/vsftpd.log是默认的,也可以另设其它)

xferlog_std_format=YES

idle_session_timeout=600(设置数据传输中断间隔时间,此语句表示空闲的用户会话中断时间为600秒,即当数据传输结束后,用户连接FTP服务器的时间不应超过600秒,可以根据实际情况对该值进行修改)

#data_connection_timeout=120(设置数据连接超时时间,该语句表示数据连接超时时间为120秒,可根据实际情况对其修改)

#nopriv_user=ftpsecure(运行 vsftpd 需要的非特权系统用户,缺省是nobody)

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd/banned_emails

#chroot_list_enable=YES(设置为 NO 时,用户登录FTP 服务器后具有访问自己目录以外的其他文件的权限,设置为 YES时,用户被锁定在自己的宿主目录中,vsftpd 将在下面 chroot_list_file 选项值的位置寻找 chroot_list 文件,此文件需用户建立,再将需锁定在自己宿主目录的用户列入其中,每行一个用户)

# (default follows)

#chroot_list_file=/etc/vsftpd/chroot_list(此文件需自己建立,被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录,由 FTP 服务器自动地 chrooted 到用户自己的home 目录下,使得 chroot_list 文件中的用户不能随意转到其他用户的FTP home 目录下,从而有利于FTP 服务器的安全管理和隐私保护)

listen=YES(如果设置为YES,则 vsftpd 将以独立模式运行,由vsftpd 自己监听和处理连接请求)

#listen_ipv6=YES(设定是否支持IPV6

pam_service_name=vsftpd(设置 PAM 外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd 文件,此文件中file=/etc/vsftpd/ftpusers 字段,说明了PAM 模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers 中)

userlist_enable=YES(此选项默认值为NO,则不启用user_list文件;若此项设为YES ,则启用user_list 文件,而如果同时设置了 userlist_deny=YES ,则 user_list 文件中的用户将不允许登录FTP 服务器,甚至连输入密码提示信息都没有,直接被FTP 服务器拒绝,如果userlist_deny=NO,将则只允许user_list文件中的用户登陆FTP服务器)

userlist_deny=YES(若已启用userlist_enable项,此项默认为YES,则阻止user_list 文件中的用户登录FTP 服务器;反之,则只允许user_list文件中的用户登录)

tcp_wrappers=YES(表明服务器使用tcp_wrappers作为主机访问控制方式)

write_enable=NO(决定是否允许一些FTP命令去更改文件系统。包括上传文件,删除文件,新增目录,删除目录)

download_enable=NO(决定是否允许下载文件,如果设为NO,下载请求将返回“permission denied”)

guest_enable=YES(如果启用,所有的非匿名用户登录时将被视为游客,其名字将被映射为guest_username里所指定的名字。采用虚拟用户必须设置该选项)

guest_username=vuser(设置当游客进入后,其将会被映射的名字。这里设置为“vuser”,即虚拟用户登陆ftp后被映射的本地用户名)

virtual_use_local_privs=YES(虚拟用户和本地用户权限相同。很重要,保证虚拟用户有和映射的本地用户相同的权限)

chroot_local_user=YES(设置虚拟用户被锁定在自己的宿主目录中。)

user_config_dir=/etc/vsftpd/user_config(定义用户配置文件的目录)

上表中标红的参数为重要的修改项,每项参数都在其后面的括号中有简单的说明。当然还有其他的很多参数来配置VSFTPD,这里不一一例句,附录中将会进行统一的说明。



1. guest_enable=YES####激活虚拟账户

2. guest_username=vuser####把虚拟账户绑定为系统账户vuser

3. pam_service_name=vsftpd####使用PAM验证

8)设置虚拟用户的主配置文件,编辑vsftpd.conf文件,添加:

1. user_config_dir=/etc/vsftpd/vsftpd_user_conf

9)建立vsftpd_user_conf

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

10)设置虚拟用户配置文件,与虚拟账户同名

1. [root@localhost~]#touch/etc/vsftpd/vsftpd_user_conf/lowkeyman

11)编辑虚拟账户lowkeyman的配置文件lowkeyman,是虚拟账户lowkeyman获得相应的权限

1. anon_world_readable_only=NO###浏览FTP目录和下载

2. anon_upload_enable=YES###允许上传

3. anon_mkdir_write_enable=YES###建立和删除目录

4. anon_other_write_enable=YES####改名和删除文件

5. local_root=/var/ftp/pub####指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。

CentOS 5.3系统设置vsftpd虚拟用户的具体步骤

CentOS 5.3系统设置vsftpd虚拟用户的具体步骤

 我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。

匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。

本地用户登录:使用系统用户登录,在/etc/passwd中。

虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。

FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

本文的Linux系统是CentOS 5.3

yum -y install vsftpd

一、建立Vsftpd虚拟用户:

1、添加虚拟用户口令文件安装Vsftpd

[root@51ou.com ~]#vi /etc/vsftpd/vftpuser.txt

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

ftp1 #用户名

123456 #密码

ftp2 #用户名

123456 #密码

2、生成虚拟用户口令认证文件

将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。

首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。

下面使用db_load命令生成虚拟用户口令认证文件。

[root@51ou.com ~]# 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@51ou.com ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txt   /etc/vsftpd/vftpuser.db

3、编辑vsftpd的PAM认证文件

在/etc/pam.d目录下,

[root@51ou.com ~]#vi /etc/pam.d/vsftpd

将里面其他的都注释掉,添加下面这两行:

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

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

4、建立本地映射用户并设置宿主目录权限

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。

[root@51ou.com ~]#useradd -d /home/vftpsite -s /sbin/nologin vftpuser

[root@51ou.com ~]#chmod 755 /home/vftpsite //网上为700,设置为700后FTP用户无上传权限

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

[root@51ou.com ~]#vi /etc/vsftpd/vsftpd.conf

guest_enable=YES #开启虚拟用户

guest_username=vftpuser #FTP虚拟用户对应的系统用户[useradd -d /home/vftpsite -s

/sbin/nologin vftpuser]

pam_service_name=vsftpd #PAM认证文件

6、重启vsftpd服务

[root@51ou.com ~]#service vsftpd restart

7、测试虚拟用户登录FTP

C:Documents and SettingsAdministrator>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@51ou.com ~]# setsebool -P ftp_home_dir on

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

setsebool -P ftpd_disable_trans 1

service vsftpd restart

就OK了!

测试:

C:Documents and SettingsAdministrator>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@51ou.com ~]#vi /etc/vsftpd/vsftpd.conf

添加:

user_config_dir=/etc/vsftpd/vsftpd_user_conf

[root@51ou.com ~]#mkdir /etc/vsftpd/vsftpd_user_conf

编辑ftp1的配置文件

[root@51ou.com ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1

添加:

anon_world_readable_only=NO #开放ftp1的下载权限(只能下载)。注意这个地方千万不能写成YES

,否则ftp1将不能列出文件和目录。

编辑ftp2的配置文件

[root@51ou.com ~]#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删除和重命名的权限

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

[root@51ou.com ~]#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

4、各个虚拟用户使用自身配置

[root@51ou.com ~]#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

[root@51ou.com ~]#mkdir /etc/vsftpd/vsftpd_user_conf

编辑ftp1的配置文件

[root@51ou.com ~]#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

以上就是CentOS 5.3系统设置vsftpd虚拟用户的具体步骤,谢谢阅读,希望能帮到大家,请继续关注江湾时代,我们会努力分享更多优秀的文章。

CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户

CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户

环境:centos5.5+Vsftpd-2.3.4

一、下载当前vsftp最新版本

wget http://www.centoscn.com/tool/vsftpd-2.3.4.tar.gz

二、安装前准备

1、创建虚拟用户映射的本地用户wwwftp


useradd wwwftp -d /data/www -s /sbin/nologin


2、创建自定义配置目录


mkdir -p /data/soft/vsftpd/conf mkdir -p /data/soft/vsftpd/bin mkdir -p /data/soft/vsftpd/lib mkdir -p /data/soft/vsftpd/user_conf mkdir -p /data/soft/vsftpd/empty mkdir -p /data/soft/vsftpd/logs mkdir -p /data/www mkdir -p /data/www/user1 mkdir -p /data/www/user2


3、对自定义目录设置权限


chown -R wwwftp:www /data/www chmod -R 700 /data/soft/vsftpd/empty/ chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/


4、复制用于验证用户登录的库文件到自定义目录方便管理


cp /lib/security/pam_userdb.so /data/soft/vsftpd/lib/


5、安装所需软件


yum -y install gcc db4* pam*


三、解压安装vsftpd


tar zxvf vsftpd-2.3.4.tar.gz cd vsftpd-2.3.4


源码安装默认不支持tcp_wrappers和ssl

需要修改builddefs.h


/*默认值如下:*/ #undef VSF_BUILD_TCPWRAPPERS /*是否支持TCP WRAPPERS*/ #define VSF_BUILD_PAM /*是否支持自定义虚拟用户登录*/ #undef VSF_BUILD_SSL /*是否支持SSL传输*/ /*支持则将对应项设为define,否则设为undef*/


编译vsftpd


make


查看编译的vsftpd二进制文件是否加载了pam


ldd vsftpd


如下:


[root@CentOS5 vsftpd-2.3.4]# ldd vsftpd linux-gate.so.1 => (0x00628000) libwrap.so.0 => /lib/libwrap.so.0 (0x00cee000) libnsl.so.1 => /lib/libnsl.so.1 (0x0015f000) libpam.so.0 => /lib/libpam.so.0 (0x00fc4000) libdl.so.2 => /lib/libdl.so.2 (0x007dc000) libresolv.so.2 => /lib/libresolv.so.2 (0x008d8000) libutil.so.1 => /lib/libutil.so.1 (0x00110000) libcap.so.1 => /lib/libcap.so.1 (0x00d99000) libc.so.6 => /lib/libc.so.6 (0x0029a000) libaudit.so.0 => /lib/libaudit.so.0 (0x00114000) /lib/ld-linux.so.2 (0x004a2000)


看到libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)表示已成功加载pam认证模块


cp vsftpd /data/soft/vsftpd/bin


四、配置vsftpd

1、创建主配置文件


vi /data/soft/vsftpd/conf/vsftpd.conf


如下:


local_enable=YES anonymous_enable=NO anon_upload_enable=NO anon_other_write_enable=NO anon_mkdir_write_enable=NO ftpd_banner=Welcome to FTP service. listen=YES listen_port=21 connect_from_port_20=YES nopriv_user=nobody tcp_wrappers=YES chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/data/soft/vsftpd/chroot_list userlist_enable=yes userlist_deny=no userlist_file=/data/soft/vsftpd/allow dual_log_enable=YES vsftpd_log_file=/data/soft/vsftpd/logs/vsftpd.log xferlog_enable=YES xferlog_file=/data/soft/vsftpd/logs/xferlog pasv_enable=YES pasv_min_port=50000 pasv_max_port=60000 guest_enable=YES guest_username=wwwftp pam_service_name=vsftpd virtual_use_local_privs=YES use_localtime=YES user_config_dir=/data/soft/vsftpd/user_conf secure_chroot_dir=/data/soft/vsftpd/empty


2、创建允许登录ftp的用户文件


vi /data/soft/vsftpd/allow


如下:


user1 user2


3、创建用于锁定用户目录的用户列表文件


vi /data/soft/vsftpd/chroot_list


如下


user1 user2


4、配置vsftpd的pam认证模块(用于虚拟用户认证)


vi /etc/pam.d/vsftpd


如下


auth required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login account required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login


保存退出

5、创建用户名密码文本文件


vi /data/soft/vsftpd/login.txt


如下:一行用户名一行密码


user1 123456 user2 654321


保存退出

6、用db_load生成用户数据库


db_load -T -t hash -f /data/soft/vsftpd/login.txt /data/soft/vsftpd/login.db chmod 600 /data/soft/vsftpd/login.db rm -rf /data/soft/vsftpd/login.txt


7、配置虚拟用户自定义配置文件


vi /data/soft/vsftpd/user_conf/user1


user1所有权限


local_root=/data/www/user1 write_enable=YES local_umask=022


保存退出


vi /data/soft/vsftpd/user_conf/user2


user2只允许下载


local_root=/data/www/user2 write_enable=NO download_enable=YES local_umask=022


保存退出

8、启动vsftpd服务


/data/soft/vsftpd/bin/vsftpd /data/soft/vsftpd/conf/vsftpd.conf &


五、测试
user1登录可读、写、删除、创建、修改一切权限
user2登录仅有下载权限

centos 6 安装vsftpd与PAM虚拟用户的方法

centos 6 安装vsftpd与PAM虚拟用户的方法

使用yum 安装vsftp

 yum install vsftpd pam pam-* db4 db4-*

创建一个保存用户及密码的文件

 cd /etc/vsftpd/
 touch vuser_passwd.txt

添加用户(奇行用户,偶行密码)

 vim vuser_passwd.txt 
 tom
 DSfaoewLD3
 ken
 GetpOIIofd324DLJhg

将文本内的帐号及密码添加到db4的数据库文件内

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

将vsftpd原内容全部注释掉,并添加如下:

 sed -ir ''s/^/#/g'' /etc/pam.d/vsftpd 
 auth  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser_passwd
 account required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser_passwd

创建一个vsftpd服务的用户vsftpd,你也可以使用-d来指定他的家目录

 useradd -d /home/vsftpd -s /sbin/nologin vsftpd

更改 vsftpd的配置文件,先备份一下vsftpd.conf

 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

配置如下:

#不允许匿名访问
anonymous_enable=NO
#设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
local_enable=YES
#允许写操作
write_enable=YES
#创建或上传后文件的权限掩码
local_umask=022
#禁止匿名用户上传
anon_upload_enable=NO
#禁止匿名用户创建目录
anon_mkdir_write_enable=NO
#进入目录时可以显示一些设定的信息,可以通过message_file=.message来设置
dirmessage_enable=YES
#开启日志
xferlog_enable=YES
#主动连接的端口号
connect_from_port_20=YES
#设定禁止上传文件更改宿主
chown_uploads=NO
#日志路径,记得自己创建一下并且对这个文件进行chown vsftpd.vsftpd /var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log
#就是格式话日志格式的,你懂得。使用wu ftp软件时设置yes就行
xferlog_std_format=YES
#因为我们把vsftpd的shell设置为nobody 了,所以 这个地方写vsftpd就可以啦!当然或者可以写成系统内的nobody
nopriv_user=vsftpd
#设定支持异步传输功能
async_abor_enable=YES
#设定支持ASCII模式的上传
ascii_upload_enable=YES
#设定支持ASCII模式的上传
ascii_download_enable=YES
#登陆欢迎语
ftpd_banner=Welcome to dongnan FTP service.
#限定在自己的目录内,不让他出去,就比如如果设置成NO,那么当你登陆到ftp的时候,可以访问服务器的其他一些有权限目录。设置为YES后即,锁定你的目录了
chroot_list_enable=YES
#待会要把用户写到这个里面,写到这里的用户乖乖的呆在家目录下吧
chroot_list_file=/etc/vsftpd/chroot_list
#以standalone方式来启动
listen=YES
#/etc/pam.d/下的vsftpd文件
pam_service_name=vsftpd
#在/etc/vsftpd/user_list中的用户将不得使用FTP
userlist_enable=YES
#支援 TCP Wrappers 的防火墙机制
tcp_wrappers=YES
#启用虚拟用户功能
guest_enable=YES
guest_username=vsftpd
#虚拟用户的权限符合他们的宿主用户
virtual_use_local_privs=YES
#虚拟用户个人vsftpd的配置文件存放路径。vsftpd_config是文件夹啊。注意:配置文件名必须和虚拟用户名相同
user_config_dir=/etc/vsftpd/vuser_conf
#设置被动模式
pasv_enable=yes
#被动模式数据传输端口范围
pasv_min_port=8888
pasv_max_port=8899

创建保存虚拟用户配置文件的目录

 mkdir /etc/vsftpd/vuser_conf/

创建vsftp日志文件

 touch /var/log/vsftpd.log
 chmod 600 /var/log/vsftpd.log
 chown vsftpd.vsftpd /var/log/vsftpd.log

创建要将哪些用户固定在家目录的配置文件

 touch /etc/vsftpd/chroot_list
 echo -e "vsftpd\ntom\nken" > /etc/vsftpd/chroot_list

将需要固定用户目录的用户名字写进去即可

cd /etc/vsftpd/vuser_conf/
cat > tom << EOF #起用虚拟用户,centos下yes必须为小写字母
local_root=/home/ftp/tom
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

注:行末不能有空格

启动vsftpd

/etc/init.d/vsftpd start

总结

以上所述是小编给大家介绍的centos 6 安装vsftpd与PAM虚拟用户的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

您可能感兴趣的文章:
  • VSFTPD配置(匿名——本地用户——虚拟用户)
  • vsftpd 虚拟用户配置步骤
  • Centos6.9安装vsftpd并配置多用户的方法
  • Linux编译安装vsftpd服务器(本地用户验证方式)
  • vsftpd匿名用户上传和下载的配置方法
  • 建立基于虚拟用户的VSftpd服务
  • 构建基于虚拟用户的vsftpd服务器应用
  • 用shell脚本防ssh和vsftpd暴力破解的详解讲解
  • vsftpd用户禁止ssh登陆的实现方法

CentOS 6.2 快速配置vsftpd虚拟用户的步骤分享

CentOS 6.2 快速配置vsftpd虚拟用户的步骤分享

比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

之前就有弄过vsftpd,就不再介绍了!

安装:

复制代码

代码如下:

[root@linuxde ~]# mount /dev/cdrom /media #挂载镜像 省去yum源的配置

[root@linuxde ~]# yum install vsftpd #yum安装vsftpd

[root@linuxde ~]# mv /etc/vsftpd/vsftpd.conf <a>/etc/vsftpd/@vsftpd.conf.bak</a> #备份原始配置文件,以供日后的参照及使用

[root@linuxde ~]# vi /etc/vsftpd/vsftpd.conf #创建vsftpd.conf

内容如下:

复制代码

代码如下:

listen=YES

background=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

chown_uploads=NO

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

async_abor_enable=YES

ascii_upload_enable=YES

ascii_download_enable=YES

ftpd_banner=Welcome to Nanu FTP server

pam_service_name=vsftpd

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

guest_enable=YES

guest_username=linuxde

nopriv_user=linuxde

user_config_dir=/etc/vsftpd/user_config

max_clients=100

max_per_ip=20

创建chroot虚拟用户映射文件

复制代码

代码如下:

[root@linuxde ~]# cat /etc/vsftpd/vsftpd.chroot_list

linuxde #该文件为手动建立,每一行代表一个欲将虚拟用户映射到本地账户的名称创建用户账户文件

复制代码

代码如下:

[root@linuxde ~]# cat /etc/vsftpd/passwd.file

chenchen #该文件默认也不存在的,该文件用来存储用户账户以及明文密码,格式为每个账户两行,第一行是用户名,第二行是密码,以此类推!

123

密码可以使用CentOS 自带的强密码生成工具创建

复制代码

代码如下:

[root@linuxde ~]# mkpasswd 参数 用户名

•-l 定义生成密码的长度,默认9

•-d 定义密码里面包含数字个数,默认2

•-c 定义包含小写字母个数,默认2

•-C 定义包含大写字母个数,默认2

•-s 定义包含特殊字符个数,默认1

•-p 另外指定一个生成密码的程序,默认是/etc/yppasswd

 mkpasswd 隶属于 expect RPM 包,如果系统中没有,可以通过yum安装!

复制代码

代码如下:

[root@linuxde ~]# yum install expect

创建用户账户编译脚本

vsfptd使用DBD数据库进行账户验证,因此需要将用户账户文件passwd.file编译为DBD格式。

复制代码

代码如下:

[root@linuxde ~]# vi /etc/vsftpd/db_load.sh #创建一个脚本,也可以不创建,直接使用命令实现!

[root@linuxde ~]# cat /etc/vsftpd/db_load.sh</p>

<p>#!/bin/bash

# DBD convert for vsftpd passwd.file

db_load -T -t hash -f /etc/vsftpd/passwd.file /etc/vsftpd/ftpuser_passwd.db</p>

<p>[root@linuxde ~]# chmod 755 /etc/vsftpd/db_load.sh #进行相应的赋权,对passwd.file账户文件进行编译,并生成ftpuser_passwd.db格式文件,db_load 隶属于db4 RPM包,如没有请自行安装。

[root@linuxde ~]# sh /etc/vsftpd/db_load.sh

[root@linuxde ~]# ll /etc/vsftpd/ftpuser_passwd.db

-rw-r–r–. 1 root root 12288 12月 6 09:33 /etc/vsftpd/ftpuser_passwd.db

创建用户配置文件

建立好账户后,需要为每个用户创建记录FTP目录位置、用户权限等信息的配置文件

复制代码

代码如下:

[root@linuxde ~]# mkdir /etc/vsftpd/user_config

配置文件以FTP用户名为文件名称,每个FTP用户一个文件,例如chenchen

复制代码

代码如下:

[root@linuxde ~]# vi /etc/vsftpd/user_config/chenchen

内容如下:

复制代码

代码如下:

[root@linuxde ~]# cat /etc/vsftpd/user_config/chenchen

local_root=/vsftptest/www.linuxde.net/ #该路径对应的目录必须存在

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

注:FTP 用户所映射到的系统帐户必须对 FTP 用户主目录拥有相应的读/写权限。仍然以chenchen用户为例,本文中chenchen虚拟用户是被映射到 linuxde 系统帐户的,所以 linuxde 系统帐户必须拥有对 chenchen 的 FTP 主目录/vsftptest/www.linuxde.net/ 的读/写权限

复制代码

代码如下:

[root@linuxde ~]# chown -R linuxde:linuxde /vsftptest/www.linuxde.net/

修改Pam 认证模块

备份vsftpd 原始的pam认证模块配置文件:

复制代码

代码如下:

[root@linuxde ~]# mv /etc/pam.d/vsftpd <a>/etc/pam.d/@vsftpd.bak</a> #如想使用原配置,后面的配置参数必须在前排!

写入新的PAM认证模块配置:

复制代码

代码如下:

[root@linuxde ~]# cat /etc/pam.d/vsftpd #此处后缀无须带上.db

auth required pam_userdb.so db=/etc/vsftpd/ftpuser_passwd

account required pam_userdb.so db=/etc/vsftpd/ftpuser_passwd

启动vsftpd

复制代码代码如下:[root@linuxde ~]# service vsftpd start关于添加其他相应虚用户的过程就略过的,你看懂了 自然会明白如何做!到这里就配置完成了,如果你出现vsftpd 500 OOPS: cannot change directory,为selinux 未关闭!原文地址:http://www.linuxde.net/2013/02/12272.html

今天关于centos 6.5下 vsftp 虚拟用户配置vsftpd 虚拟用户的介绍到此结束,谢谢您的阅读,有关CentOS 5.3系统设置vsftpd虚拟用户的具体步骤、CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户、centos 6 安装vsftpd与PAM虚拟用户的方法、CentOS 6.2 快速配置vsftpd虚拟用户的步骤分享等更多相关知识的信息可以在本站进行查询。

本文标签: