一:基本知识
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
修改/etc/selinux/config 文件, 将SELINUX=enforcing改为SELINUX=disabled, 重启机器即可
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(设置虚拟用户被锁定在自己的宿主目录中。) |
@H_320_502@
上表中标红的参数为重要的修改项,每项参数都在其后面的括号中有简单的说明。当然还有其他的很多参数来配置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
1. [root@localhost~]#touch/etc/vsftpd/vsftpd_user_conf/lowkeyman
11)编辑虚拟账户lowkeyman的配置文件lowkeyman,是虚拟账户lowkeyman获得相应的权限