一:基本知识 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 #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。
新闻热点
疑难解答