您的位置:首页 > 编程语言 > PHP开发

安装vsftp 虚拟用户设置全解

2011-11-14 12:49 686 查看
一.安装:

1.安装Vsftpd服务相关部件:

# yum -y install vsftpd*

2.确认安装PAM服务相关部件:

# yum -y install pam*

3.安装DB4部件包:

这里要特别安装一个db4的包,用来支持文件数据库。

# yum -y install db4*

二.系统帐户

1.建立Vsftpd服务的宿主用户:

# /usr/sbin/useradd vsftpd -s /sbin/nologin

建立Vsftpd虚拟宿主用户:

# /usr/sbin/useradd virtusers -s /sbin/nologin

三.调整Vsftpd的配置文件:

1.编辑配置文件前先备份

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

编辑主配置文件Vsftpd.conf

# vim /etc/vsftpd/vsftpd.conf

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

chroot_local_user=YES

#xferlog_file=/var/log/vsftpd.log

#xferlog_std_format=YES

nopriv_user=vsftpd

async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

ftpd_banner=Welcome to FTP service

chroot_list_enable=NO

ls_recurse_enable=NO

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=www

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vconf

建立Vsftpd的日志文件,并更该属主为Vsftpd的服务宿主用户:

# touch /var/log/vsftpd.log

# chown www:www /var/log/vsftpd.log

建立虚拟用户配置文件存放路径:

# mkdir /etc/vsftpd/vconf/

三.制作虚拟用户数据库文件

1.先建立虚拟用户名单文件:

# touch /etc/vsftpd/virtusers

建立了一个虚拟用户名单文件,这个文件就是来记录vsftpd虚拟用户的用户名和口令的数据文件,

这里给它命名为virtusers。为了避免文件的混乱,我把这个名单文件就放置在/etc/vsftpd/下。

2.编辑虚拟用户名单文件:

# vim /etc/vsftpd/virtusers

ftp001

123456

ftp002

123456

ftp003

123456

编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“一行用户名,一行口令”。

3.生成虚拟用

户数据文件:

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

这里我顺便把这个命令简单说明一下

4.察看生成的虚拟用户数据文件

# ll /etc/vsftpd/virtusers.db

# vim /etc/vsftpd/reload.sh

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

# chmod +x /etc/vsftpd/reload.sh

四.设定PAM验证文件,并指定虚拟用户数据库文件进行读取

1.察看原来的Vsftp的PAM验证配置文件:

# cat /etc/pam.d/vsftpd

----------------------------------------------------------------

#%PAM-1.0

session optional pam_keyinit.so force revoke

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth required pam_shells.so

auth include system-auth

account include system-auth

session include system-auth

session required pam_loginuid.so

----------------------------------------------------------------

2.在编辑前做好备份:

# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup

3.编辑Vsftpd的PAM验证配置文件

# vi /etc/pam.d/vsftpd

----------------------------------------------------------------

#%PAM-1.0

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

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

以上两条是手动添加的,上面的全部加#注释了.内容是对虚拟用户的安全和帐户权限进行验证。

!!!!!!!这里有个要注意说明的:如果系统是64位系统在这里的所有lib后面要加入64!!!!!!

!!!!!!!如下这样才可以:

#%PAM-1.0

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

五.虚拟用户的配置

建立虚拟用户配置文件模版:

建立虚拟用户配置文件模版:

# vi /etc/vsftpd/vconf/vconf.tmp

local_root=/home/htdocs/

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000

pam_service_name=vsftpd

chroot_local_user=YES

启动服务:

# /sbin/service vsftpd start

# /sbin/chkconfig vsftpd --list (查看0~6个runlevel 是否按照阁下意愿开启或关闭 ntpd服务)

# /sbin/chkconfig vsftpd --level 35 on (开启runlevel 3和5的ntpd服务)

# /sbin/chkconfig vsftpd on (开启runlevel 2345的ntpd服务)

# /sbin/chkconfig vsftpd off (关闭所有runlevel的ntpd服务)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: