首页 > 系统 > CentOS > 正文

centos 6.5下 vsftp 虚拟用户配置

2024-06-28 16:01:56
字体:
来源:转载
供稿:网友

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

二、安装vsftp

 查看是否安装vsftpd服务

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

1.  [root@localhost ~]# yum -y install vsftpd  

三、配置虚拟用户

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

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

         2.  SELinux status:                 enabled  

           1.1)关闭selinux方法

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

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

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

2.  [root@localhost ~]# touch  vuser.txt  

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

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

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

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

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

1.  auth required   pam_userdb.so   db=/etc/vsftpd/vuser  

2.  account required  pam_userdb.so  db=/etc/vsftpd/vuser  

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

1.  [root@localhost ~]# chmod   700  vuser.db  

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

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

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

3.  [root@localhost ~]# chown  vuser: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   #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表