centos6.5搭建FTP-server

一、概念

vsftpd虚拟用户:不是系统用户,即虚拟用户在系统中是不存在的,不能用来登录系统。他们的总体权限其实是集中寄托在一个真实存在的用户(即虚拟宿主用户)身上。

vsftpd的虚拟宿主用户:真实存在的用户,是所有虚拟用户的宿主用户。由于他支撑了FTP的所有虚拟的用户,所以虚拟宿主用户的权限将会影响着这些虚拟的用户。出于安全性考虑,要非常注意对该用户的权限的控制,该用户绝对没有登陆系统的必要,这里也设定为不能登陆系统的用户。

ftp目录:/test/pub

指定访问的用户名:aa

密码:Aa123456

二、安装

(1)安装vsftpd、pam、db4、db4-utils

pam:是认证模块

db4/db4-utils:用来生成Berkeley DB格式的数据库

(2)#yum -y install vsftpd pam* db4*

(3)添加真实用户(宿主用户):useradd -s /sbin/nologin vsftpd

(4)建立虚拟用户帐号密码文件:奇数行为账号,偶数行为密码

vim /etc/vsftpd/virtual_user.txt                          //virtual_user.txt自己起的文件名,可以添加多个帐号密码

aa

Aa123456

(5)生成vsftpd虚拟用户数据库文件

#cd /etc/vsftpd

#db_load -T -t hash -f virtual_user.txt virtual_user.db

#chmod 600 virtual_user.db

(6)PAM设置

注释掉原来的所有行,并添加如下三行

vim /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     password-auth

#account    include     password-auth

#session    required    pam_loginuid.so

#session    include     password-auth

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

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

session    required     pam_loginuid.so

(7)配置vsftpd.conf

###原文件中没有的参数,就要添加###

vim /etc/vsftpd/vsftpd.cof

anonymous_enable=NO       #修改此行禁用匿名用户访问,YES改为NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES       #开启日志记录

connect_from_port_20=YES

xferlog_std_format=YES   #日志记录格式

listen=YES

pam_service_name=vsftpd                        #设置PAM使用的名称,该名称就是/etc/pam.d/目录下vsfptd文件的文件名

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES                  #开启虚拟用户功能,即映射虚拟用户与真实用户

guest_username=vsftpd         #指定真实用户,vsftpd就是上面添加的用户

user_config_dir=/etc/vsftpd/user_conf    #指定虚拟用户配置目录,此目录要自己创建

chroot_local_user=YES                              #锁定虚拟用户只能操作指定目录

(8)单独给虚拟用户分配权限

mkdir /etc/vsftpd/user_conf                                          #创建虚拟用户配置目录

vim /etc/vsftpd/user_conf/aa                                #文件名和账户名一致

local_root=/test/pub

write_enable=YES

anon_upload_enable=YES                               #允许上传

anon_mkdir_write_enable=YES                       #允许虚拟用户创建目录

anon_other_write_enable=YES                         #允许拥有除了上传和新建目录之外的其他权限,如删除、更名等

anon_world_readable_only=NO                       #允许虚拟用户浏览整个服务器的文件系统

virtual_use_local_privs=YES                             #虚拟用户和本地用户有相同的权限

(9)重启vsftpd并测试

#service vsftpd restart

用用户名密码测试:aa/Aa123456

Linux:  ftp 192.168.10.233

Window:ftp://192.168.10.233



备注:

禁锢根目录相关:

默认情况下,用户登陆ftp后的根目录就是用户自己的家目录。若不将用户禁锢在根目录,则登陆的用户可以通过cd命令至切换至根目录以外的目录,产生安全隐患。配置文件中相关选项如下:

chroot_list_enable=YES         是否启用用户禁锢在家目录文件

chroot_list_file=/etc/vsftpd/chroot_list              指定禁锢文件,文件中的用户将被禁锢

chroot_local_user=YES                     是否允许所有系统用户禁锢在家目录。

例如:

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

或者

chroot_local_user=YES


你可能感兴趣的:(centos6.5搭建FTP-server)