vsftpd安装及配置

vsftpd英文全称very secure file transfer protocol deamon,是FTP服务器端软件中,比较常见的一种。从网上了解到ftp服务器端的软件有vsftpd 、serv-u、proftpd、FileZilla Server等,这里主要介绍vsftpd配置。

本机测试环境:CentOS release 6.6 (Final)

一、安装

1、检查是否安装

# yum list installed | grep vsftpd

2、未安装,进行yum安装

# yum install vsftpd.x86_64

二、配置

1、配置文件

# vim /etc/vsftpd/vsftpd.conf

2、配置详解

  • anonymous_enable=NO
  • //允许匿名访问,默认为YES,可选值【yes,no】
  • local_enable=YES
  • //本地用户允许访问,默认为YES,可选值【yes,no】
  • write_enable=YES
  • //设定允许进行写操作(上传、删除),默认为YES,可选值【yes,no】
  • local_umask=022
  • //设定权限掩码,默认022,对应的文件上传权限644、目录权限755
  • anon_upload_enable=NO
  • //设定匿名访问情况下,允许上传
  • anon_mkdir_write_enable=NO
  • //设定匿名访问情况下,允许创建目录
  • dirmessage_enable=YES
  • //设定开启目录标语功能
  • connect_from_port_20=YES
  • //设定端口20进行数据连接,并不是ftp链接端口.
  • chown_uploads=YES
  • //是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主
  • chown_username=whoever
  • //设定禁止上传文件更改宿主
  • xferlog_enable=YES
  • //设定开启日志记录功能
  • xferlog_file=/var/log/ftp/vsftpd.log
  • //设置日志目录
  • xferlog_std_format=YES
  • //设定日志使用标准的记录格式
  • idle_session_timeout=600
  • //设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒。
  • data_connection_timeout=120
  • //设定单次最大连续传输时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值120,单位秒。
  • nopriv_user=vsftpd
  • //设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
  • async_abor_enable=YES
  • //设定支持异步传输功能。
  • ascii_upload_enable=YES
  • //设定支持ASCII模式的上传功能。
  • ascii_download_enable=YES
  • //设定支持ASCII模式的下载功能。
  • ftpd_banner=This Vsftp server supports virtual users ^_^
  • //设定Vsftpd的登陆标语。
  • deny_email_enable=YES
  • //可将某些特殊的 email address 抵挡住。如果以anonymous 登录服务器时,会要求输入密码,也就是您的email address, 如果很讨厌某些email address ,就可以使用此设定来取消他的登录权限,但必须与下面的设置项配合
  • banned_email_file=/etc/vsftpd/banned_emails
  • //当上面的 deny_email_enable=YES 时,可以利用这个设定项来规定那个email address 不可登录vsftpd 服务器,此文件需用户自己创建,一行一个email address 即可!
  • ls_recurse_enable=YES
  • // 是否允许递归查询 , 大型站点的 FTP 服务器启用此项可以方便远程用户查询
  • chroot_local_user=YES
  • chroot_list_enable=YES
  • //设置为 NO 时,用户登录FTP 服务器后具有访问自己目录以外的其他文件的权限, 设置为 YES 时 , 用户被锁定在自己的 home 目录中,vsftpd 将在下面 chroot_list_file 选项值的位置寻找 chroot_list 文件,此文件需用户建立, 再将需锁定在自己home 目录的用户列入其中,每行一个用户
  • 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
  • //此选项默认值为NO , 此时ftpusers 文件中的用户禁止登录FTP 服务器;若此项设为YES ,则 user_list 文件中的用户允许登录 FTP 服务器,而如果同时设置了 userlist_deny=YES ,则 user_list 文件中的用户将不允许登录FTP 服务器,甚至连输入密码提示信息都没有,直接被FTP 服务器拒绝
  • userlist_deny=YES/NO
  • //此项默认为YES ,设置是否阻扯user_list 文件中的用户登录FTP 服务器
  • tcp_wrappers=YES
  • //表明服务器使用 tcp_wrappers 作为主机访问控制方式,tcp_wrappers 可以实现linux 系统中网络服务的基于主机地址的访问控制,在/etc 目录中的hosts.allow 和hosts.deny 两个文件用于设置tcp_wrappers 的访问控制,前者设置允许访问记录,后者设置拒绝访问记录。例如想限制某些主机对FTP 服务器192.168.57.2 的匿名访问,编缉/etc/hosts.allow 文件,如在下面增加两行命令:vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY 表明限制IP 为192.168.57.1/192.168.57.9 主机访问IP 为192.168.57.2 的FTP 服务器,此时FTP 服务器虽可以PING 通,但无法连接
三、关于userlist_enable、userlist_deny的设置,ftpusers和user_list文件的区别
  • ftpusers:禁止user_list列表中的用户访问FTP
  • userlist_enable=YES,userlist_deny=YES,禁止user_list列表中的用户访FTP
  • userlist_enable=YES,userlist_deny=NO, 只允许user_list列表中的用户FTP。
  • userlist_enable=NO,userlist_deny=YES ,因设定userlist_enable=NO,忽略user_list文件,user_list不启作用
  • userlist_enable=NO,userlist_deny=NO ,因设定userlist_enable=NO,忽略user_list文件,user_list不启作用
  • ftpusers禁止的优先级更高。假设ftpusers禁止woodie用户访问,userlist允许woodie用户访问,则在运行时,用户woodie不能访问ftp.
四、制作虚拟用户

这里以后介绍

五、设置用户

1、创建用户

useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
passwd test //为test设置密码

2、更改用户相应的权限设置:

usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
usermod -s /sbin/bash test //用户test恢复正常
usermod -d /test test //更改用户test的主目录为/test

3、限制用户只能访问/home/test,不能访问其他路径

修改/etc/vsftpd/vsftpd.conf如下:
chroot_list_enable=YES //限制访问自身目录
# (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
编辑 vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行
改完配置文件,不要忘记重启vsFTPd服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart

4、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:

usermod -s /usr/bin/passwd test //用户telnet后将直接进入改密界面

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>