废话不多说,先上图

FTP-工作原理及Vsftpd基础配置_第1张图片

说明:上图介绍了FTP的工作原理及数据连接下的两种工作模式对比


常见Server和Client

Server:wu-ftpd,proftpd,pureftp,vsftpd(今天的主角),IIS,ServU

Client:flashfxp,cuteftp,filezilla,gftp,ftp,lftp


响应码(与HTTP协议的响应码类似)

1xx:信息码

2xx:成功状态码

3xx:进一步提示补全信息的状态码

4xx:客户端错误

5xx:服务器端错误


Vsftpd安装及安装后文件解释

# 安装
yum -y install vsftpd
# 安装后主要文件
/etc/pam.d/vsftpd # 认证文件
/etc/rc.d/init.d/vsftpd # 服务脚本
/etc/vsftpd/vsftpd.conf # 配置文件
/usr/sbin/vsftpd # 主程序文件
/var/ftp/    # 匿名用户的数据文件目录

Vsftpd基础配置

# 1.对于ftp用户访问ftp服务时,应该对其chroot
    禁锢全部用户于家目录中
        chroot_local_user={YES|NO}
    禁锢指定用户于家目录中
        chroot_list_enable=YES
        chroot_list_file=/etc/vsftpd/chroot_list # (每行一个用户)
# 2.匿名用户的设置
    允许登录:登录帐号为anonymous,密码可以为空
        以ftp用户身份登录的,进入ftp用户的家目录
        anonymous_enable=YES
    允许上传文件:
        anonymous_upload_enable=YES
    允许删除文件:
        anonymous_other_write_enable=YES
    允许创建目录:
        anonymous_mkdir_write_enable=YES
    注:启用写入功能时,ftp用户对相应的本地文件系统也应有相应的写入权限
        但/var/ftp目录权限不允许修改,否则vsftpd无法启动
        可在/var/ftp/目录下新建目录,如/var/ftp/incoming/,并给ftp用户设置权限
            setfacl -m u:ftp:rw /var/ftp/incoming
# 3.本地用户(即系统用户)的设置
    允许登录:local_enable=YES
    允许上传文件:write_enable=YES
# 4.欢迎信息的定义
    方式一:显示一行欢迎信息
        ftpd_banner=Welcome to FTP Server
    方式二:显示多行欢迎信息
        banner_file=/etc/vsftpd/banner
    方式三:切换目录时,显示目录下.messages文件的内容
        需在某ftp可访问的目录下创建.messages文件
        dirmessage_enable=YES
# 5.vsftpd控制登录用户的机制
    机制一:/etc/vsftpd/ftpusers中的用户都不允许使用ftp服务,
        这是在/etc/pam.d/vsftpd中定义的
        auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
    机制二:/etc/vsftpd/user_list配置文件的两种用法
        黑名单(默认):
            userlist_enable=YES
            [userlist_deny=YES] # 默认值,可省略
        白名单:
            userlist_enable=YES
            userlist_deny=NO
    注:若ftpusers中存在用户A,而在user_list白名单中也有用户A,则用户A也无法登录ftp
        因为ftpusers机制会先被验证,故用户A直接被拒绝登录了
# 6.连接限制
    max_clients:最大并发连接数
    max_per_ip:单个IP可同时发起的并发请求数
# 7.传输速率限制
    anon_max_rate:全部匿名用户的最大传输速率(包括上传和下载),单位是bytes/s
    local_max_rate:全部本地用户的最大传输速率,单位是bytes/s
# 8.上传文件的umask
    anon_umask:匿名用户上传文件的umask
    local_umask:本地用户上传文件的umask
# 9.修改匿名用户上传文件的属主和属组
    chown_uploads=YES
    chown_username=someuser
# 10.日志配置(主要记录上传下载记录)
    xferlog_enable=YES
    xferlog_file=/var/log/vsftpd.log


下一章:FTP-Vsftpd的高级应用-虚拟用户