VSFTP系列—VSFTP简介和三种用户模式及配置


目录
  • VSFTP与FTP
  • VSFTP软件基本信息
  • VSFTP的三种验证方式
    • 匿名登录
    • 匿名登录相关配置
    • 本地用户登录
    • 本地用户登录相关配置

VSFTP与FTP

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,用于 Internet 上的文件的双向 传输。使用 FTP 来传输时,是具有一定程度的危险性, 因为数据在因特网上面是完全没有受到保护 的明文传输方式! VSFTP是一个基于 GPL发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是Very Secure FTP, 从名称定义上基本可以看出,这是为了解决 ftp 传输安全性问题的。

VSFTP软件基本信息

服务端软件名:vsftpd

客户端软件名:ftp

服务名:vsftpd

端口号:20、21、指定范围内随机端口

配置文件:/etc/vsftpd/vsftpd.conf

安装方式:通常是yum安装即可。本地仓库即可完成安装。

VSFTP的三种验证方式

  • 主要有三种验证方式:分别是匿名登录、用户登录以及虚拟用户登录,这里主要介绍前两种
匿名登录

匿名登录,开箱即用,通过简单的配置即可使用。这种方式用户无需输入账号密码即可进入FTP服务器,存在一定的安全隐患。
匿名模式是最不安全的方式,同时也是最简单的一种模式。匿名用户可以通过设置,登录指定的文件夹。

该模式的配置vsftp.conf文件设置:

anonymous_enable=YES/NO(YES) 控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为 YES。 write_enable=YES/NO(YES) 是否允许登陆用户有写权限。属于全局设置,默认值为 YES。 no_anon_password=YES/NO(NO) 若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为 NO。

ftp_username=ftp 定义匿名登入的使用者名称。默认值为 ftp。

anon_root=/var/ftp 使用匿名登入时,所登入的目录。默认值为/var/ftp。注意 ftp 目录不能是 777 的权限属性,即匿名 用户的家目录不能有 777 的权限。 anon_upload_enable=YES/NO(NO) 如果设为 YES,则允许匿名登入者有上传文件(非目录)的权限,只有在 write_enable=YES 时,此项 才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为 NO。

anon_world_readable_only=YES/NO(YES) 如果设为 YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在 FTP 服务器中打开阅读)。默认值为 YES。 anon_mkdir_write_enable=YES/NO(NO) 如果设为 YES,则允许匿名登入者有新增目录的权限,只有在 write_enable=YES 时,此项才有效。当 然,匿名用户必须要有对上层目录的写入权。默认值为 NO。

anon_other_write_enable=YES/NO(NO) 如果设为 YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如 果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如 果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经 存在的文件夹。)默认值为 NO。

chown_uploads=YES/NO(NO) 设置是否改变匿名用户上传文件(非目录)的属主。默认值为 NO。

chown_username=username 设置匿名用户上传文件(非目录)的属主名。建议不要设置为 root。

anon_umask=077 设置匿名登入者新增或上传档案时的 umask 值。默认值为 077,则新建档案的对应权限为 700。 deny_email_enable=YES/NO(NO) 若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为 email address。若是 使用匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。 默认值为 NO。 banned_email_file=/etc/vsftpd/banner_emails 此文件用来输入 email address,只有在 deny_email_enable=YES 时,才会使用到此档案。若是使用 匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。
一般情况下,默认配置一般可以采用这个配置

匿名登录相关配置
anonymous_enable=YES
anon_umask=022
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=0
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
本地用户登录
  • vsftp的本地用户模式密码校验是使用系统的本地用户的 /etc/passwd 和/etc/shadow两个文件来检验的。

  • 这里特别要注意,新建用户的时候不可以设置 用户无登录权限,比如:useradd zsk -s /sbin/nologin 这样的用户是不可以的,否则ftp即使配置的在正确,也会无法登录的,报530 Login incorrect。普通本地用户 正常建立就可以。

  • 注意第二点,本地用户登录进入的是用户家目录比如/home/greg

本地用户登录相关配置
listen=YES
listen_ipv6=NO
connect_from_port_20=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_enable=YES
userlist_deny=NO
anonymous_enable=NO
local_enable=YES
check_shell=NO
write_enable=NO
local_umask=022
dirmessage_enable=YES
use_localtime=YES
local_root=/opt/vsftp
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log