23 Linux-网络基础-VSFTP服务

24.1 VSFTP 概述

FTP 是 File Transfer Protocol (文件传输协议)的英文简称,用于 Internet 上的文件的双向 传输。 使用 FTP 来传输时, 是具有一定程度的 危险性 因为数据在因特网上面是完全没有受到保护 的 明文传输方式!

VSFTP 是一个基于 GPL 发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是 Very Secure FTP 从名称定义上基本可以看出,这是为 了 解决 ftp 传输安全性问题的 。

安全特性:

  • vsftp 程序的运行者一般是普通用户 ,降低了相对 应 进 程 的 权限 ,提高了安全 性

  • 任何需要执行较高权限的指令都需要上层程序许可

  • ftp 所需要使用的绝大多数命令都被整合到了 vsftp 中,基本不需要系统额外提供命令

  • 拥有 chroot 功能,可以改变用户的根目录,限制用户只能在自己的家目录

24.2 VSFTP 连接类型

控制连接(持续连接) → TCP 21(命令信道) → 用户收发FTP命令

数据连接(按需连接) → TCP 20(数据信道) → 用于上传下载数据

24.3 VSFTP 工作模式

Port 模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive 模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来建立控制通道发送命令,但建立连接后客户端发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器的临时端口,然后FTP服务器将通过这个端口传输数据。

24.4 VSFTP 传输模式

Binary模式:不对数据进行任何处理,适合进行可执行文件、压缩文件、图片等

ASCII模式:进行文本传输时,自动适应目标操作系统的结束符,如回车符等

 

Linux的红帽发行版中VSFTP默认采用的是Binary模式,这样能保证绝大多数文件传输后能正常使用

切换方式:在ftp>提示符下输入ascii即转换到ACSII方式,输入bin,即转换到Binary方式。

24.6 VSFTP 软件信息

服务端软件名:vsftpd

客户端软件名:ftp

服务名:vsftpd

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

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

24.6 登录验证方式

匿名用户验证:

  • 用户账号名称:ftp或anonymous

  • 用户账号密码:无密码

  • 工作目录:/var/ftp

  • 默认权限:默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)

本地用户验证:

  • 用户账号名称:本地用户(/etc/passwd)

  • 用户账号密码:用户密码(/etc/shadow)

  • 工作目录:登录用户的宿主目录

  • 权限:最大权限(drwx------)

虚拟(virtual) 用户验证:

  • 创建虚拟用户用来代替本地用户,减少本地用户曝光率

  • 使用本地用户作为虚拟用户的映射用户,为虚拟用户提供工作目录和权限控制

  • 能够设置严格的权限(为每一个用户生成单独的配置文件)

24.7 VSFTP 实验部署

注:先关闭服务器和客户机上的防火墙和 SELinux

安装VSFTP

yum -y install vsftpd

24.7.1 匿名用户验证实验:

匿名权限控制:

anonymous_enable=YES            # 启用匿名访问
anon_umask=022 # 匿名用户所上传文件的权限掩码
anon_root=/var/ftp # 匿名用户的 FTP 根目录
anon_upload_enable=YES # 允许上传文件
anon_mkdir_write_enable=YES # 允许创建目录
anon_other_write_enable=YES # 开放其他写入权 删除、覆盖、重命名
anon_max_rate=0 # 限制最大传输速率( 0 为不限速, 单位: bytes/ 秒)

实验需求与流程:

注意:在客户端登录后,默认情况下是可以下载的,但不能上传

1)实现可以上传

anon_upload_enable=YES
在/var/ftp/下创建上传目录
修改上传目录的权限或所有者,让匿名用户有写入权限

2)实现创建目录和文件其他操作

anon_mkdir_write_enable=YES     #允许创建目录
anon_other_write_enable=YES #删除文件、文件改名、文件覆盖

3)用户进入某个文件夹时,弹出相应的说明

在对应目录下创建 .message 文件,并写入相应内容
认dirmessage_enable=YES是否启用
尝试却换目录查看效果(同一次登录仅提示一次)

4)实现上传的文件可下载

默认情况下开放上传权限后,上传的文件是无法被下载的,因为文件的其他人位置没有r权限设置anon_umask=022,可以让上传的文件其他人位置拥有r权限,然后才能被其他人下载

24.7.2 本地用户验证实验:

本地用户权限控制:

local_enable=YES                # 是否启用本地系统用户
local_umask=022 # 本地用户所上传文件的权限掩码
local_root=/var/ftp # 设置本地用户的 FTP 根目录
chroot_local_user=YES # 是否将用户禁锢在主目录
local_max_rate=0 # 限制最大传输速率
f tp d _banner=Welcome to blah FTP service # 用户登录时显示的欢迎信息
userlist_enable=YES & userlist_deny=YES
# 禁止 /etc/vsftpd/user_list 文件中出现的用户名登录 FTP
userlist_enable=YES & userlist_deny=NO
# 仅允许 /etc/vsftpd/user_list 文件中出现的用户名登录 FTP
配置文件:ftpusers
# 禁止 /etc/vsftpd/ftpusers 文件 中 出现的用户名登录 FTP, 权限比 user_list 更高,即时生效

实验需求与流程:

1)服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)

useradd -s /sbin/nologin username

2)将所有用户禁锢在自己的家目录下

注:默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名
chroot_local_user=YES
# 开启用户家目录限制,限制所有用户不能随便切换目录

3)将部分用户禁锢在自己的家目录下

chroot_list_enable=YES
# 开启白名单功能,允许白名单中的用户随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
# 白名单文件所在位置(需自己创建)

4)配置文件:/etc/vsftpd/ftpusers

所有写入此文件内的用户名都不允许登录ftp,立刻生效。

5)修改被动模式数据传输使用端口

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=35000

24.7.3 虚拟用户验证实验:

1)建立FTP的虚拟用户的用户数据库文件(在/etc/vsftpd)

vim vsftpd.user
注:该文件名可以随便定义,文件内容格式:奇数行用户,偶数行密码

db_load -T -t hash -f vsftpd.user vsftpd.db
#将用户密码的存放文本转化为数据库类型,并使用hash加密
chmod 600 vsftpd.db
#修改文件权限为600,保证其安全性

2)创建FTP虚拟用户的映射用户,并制定其用户家目录

useradd 	-d 	/var/ftproot 	-s 	/sbin/nologin virtual
#创建virtual 用户作为ftp的虚拟用户的映射用户

3)建立支持虚拟用户的PAM认证文件,添加虚拟用户支持

cp –a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam
#使用模板生成自己的认证配置文件,方便一会调用
编辑新生成的文件vsftpd.pam (清空原来内容,添加下列两行)
auth required pam_userdb.so db=/etc/vsftpd/vsftpd
account required pam_userdb.so db=/etc/vsftpd/vsftpd
在vsftpd.conf文件中添加支持配置
修改:
pam_service_name=vsftpd.pam
添加:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/dir

4)为虚拟用户建立独立的配置文件,启动服务并测试

注:做虚拟用户配置文件设置时,将主配置文件中自定义的匿名用户相关设置注释掉。

用户可以上传:
anon_upload_enable=YES # 允许上传文件
用户可以创建目录或文件:
anon_mkdir_write_enable=YES # 允许创建目录
用户可以修改文件名:
anon_upload_enable=YES # 允许上传文件(为了覆盖开启的)
anon_other_write_enable=YES # 允许重名和删除文件、覆盖

注:给映射用户的家目录 设置 o+r 让虚拟用户有读权限。

24.7.4 openssl+vsftpd 加密验证方式:

拓展:使用tcpdump 工具进行指定端口抓包,抓取ftp登录过程中的数据包

tcpdump -i eth0 -nn -X -vv tcp port 21 and ip host 来源ip
-i # interface:指定tcpdump需要监听的接口
-n # 对地址以数字方式显式,否则显式为主机名
-nn # 除了-n的作用外,还把端口显示为数值,否则显示端口服务名
-X # 输出包的头部数据,会以16进制和ASCII两种方式同时输出
-vv # 产生更详细的输出

1)查看是否安装了openssl

rpm -q openssl

2)查看vsftpd 是否支持openssl

ldd /usr/sbin/vsftpd | grep libssl

3)生成加密信息的秘钥和证书文件

位置:/etc/ssl/certs/

a. openssl genrsa -out vsftpd.key 1024
# 建立服务器私钥,生成RSA密钥

b. openssl req -new -key vsftpd.key -out vsftpd.csr
# 需要依次输入国家,地区,城市,组织,组织单位,Email等信息。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书

c. openssl x509 -req -days 365 -sha256 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt
# 使用CA服务器签发证书,设置证书的有效期等信息

 

注意1:生成完秘钥和证书文件后,将本目录{/etc/ssl/certs/}的权限修改为500.

注意2:在实验环境中可以用命令生成测试,在生产环境中必须要在https证书厂商注册(否则浏览器不识别)

4)修改主配置文件/etc/vsftpd/vsftpd.conf

ssl_enable=YES
#启用ssl认证
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
#开启tlsv1、sslv2、sslv3都支持
allow_anon_ssl=YES
#允许匿名用户{虚拟用户}
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
#匿名登录和传输时强制使用ssl
force_local_logins_ssl=YES
force_local_data_ssl=YES
#本地登录和传输时强制使用ssl
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
#rsa格式的证书
rsa_private_key_file=/etc/ssl/certs/vsftpd.key
#rsa格式的密钥

注:密钥文件要在配置文件中单独声明(写入配置文件时,注释要单独一行,否则会报错)

5)重启服务

service vsftpd restart

6)测试(使用第三方客户端连接)

FileZilla-FTP(第三方客户端工具)

连接测试时选择:

服务器类型:显式 TLS/SSL

登录类型: 一般或匿名

24.8 vsftpd配置文件详解

24.8.1 默认配置:

1)允许匿名用户和本地用户登陆。

anonymous_enable=YES
local_enable=YES

2)匿名用户使用的登陆名为 ftp 或 anonymous ,口令为空;匿名用户不能离开匿名用户家目录 /var/ 且只能下载不能上传。

3)本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行 读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上 传 下载。

write_enable=YES

4)写在文件 /etc/vsftpd.ftpusers 中的本地用户禁止登陆。

24.8.2 配置文件格式:

vsftpd.conf的内容非常单纯,每一行即为一项设定。若是空白行或是开头为 的一行,将会被忽略。内容的格式只有一种,如下所示

option=value # 要注意的是,等号两边不能加空白。

24.8.3 匿名用户( anonymous )设置

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_en able=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 在此档案内,则不允许进入。默认值为 N O 。

banned_email_file=/etc/vsftpd/banner_emails
# 此文件用来输入email address ,只 有在 deny_email_enable=YES 时,才会使用到此档案。若是使用匿名登入,则会要求输入 email address ,若输入的 email address 在此档案内,则不允许进入。

24..4 本地用户设置

local_enable=YES/NO(YES)
# 控制是否允许本地用户登入,YES 为允许本地用户登入, NO 为不允许。默认值为 YES 。

local_root=/home/username
# 当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。

write_enable=YES/NO(YES)
# 是否允许登陆用户有写权限。属于全局设置,默认值为YES 。

local_umask=022
# 本地用户新增档案时的umask值。默认值为077。

file_open_mode=0755
# 本地用户上传档案后的档案权限,chmod 所使用的数值相同 。默认值为 0666

24.8.5 欢迎语设置

dirmessage_enable=YES/NO(YES)
# 如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message 这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。

message_file=.message
# 设置目录消息文件,可将要显示的信息写入该文件。默认值为.message 。

banner_file=/etc/vsftpd/banner
# 当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。如果欢迎信息较多,则使用该配置项。

ftpd_banner=Welcome to BOB's FTP server
# 这里用来定义欢迎话语的字符串,banner_file是档案的形式,而ftpd_banner则是字符串的形式。预设为无。

24.8.6 控制用户是否允许切换到上级目录

在默认配置下,本地用户登入FTP 后可以使用 cd 命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。

chroot_list_enable=YES/NO(NO)
# 设置是否启用chroot_list_f ile 配置项指定的用户列表文件。默认值为 NO 。

chroot_list_file=/etc/vsftpd.chroot_list
# 用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。

chroot_local_user=YES/NO(NO)
# 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO 。
通过搭配能实现以下几种效果:
- 当 chroot_list_enable=YES chroot_local_user=YES 时,在 /etc/v sftpd.chroot_list 文件 中列
出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
- 当 chroot_list_enable=YES chroot_local_user=NO 时,在 /etc/vsftpd.chroot_list 文件中列出
的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
- 当 chroot_list_enable=NO chroot_local_user=YES 时,所有的用户均不能切换到其他目录。
- 当 chroot_list_enable=N O chroot_local_user=NO 时,所有的用户均可以切换到其他目录。

24.8.7 数据传输模式设置

FTP在传输数据时,可以使用二进制方式,也可以使用 ASCII 模式来上传或下载数据。

ascii_upload_enable=YES/NO(NO)
# 设置是否启用ASCII 模式上传数据。默认值为 NO 。

ascii_download_enable=YES/NO(NO)
# 设置是否启用ASCII 模式下载数据。默认值为 NO

24.8.8 访问控制设置

两种控制方式:一种控制主机访问,另一种控制用户访问。

控制主机访问:

tcp_wrappers=YES/NO(YES)
# 设置vsftpd 是否与 tcp wrapper 相结合来进行主机的访问控制。默认值为 YES 。如果启用,则 vsftpd服务器会检查 /etc/hosts.allow 和 /etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该 FTP 服务器。这两个文件可以起到简易的防火墙功能。

比如:若要仅允许192.168.0.1 192.168.0.254 的用户可以连接 FTP 服务器,则在 /etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.0. :allow
all:all :deny

控制用户访问:

对于用户的访问控制可以通过 /etc 目录下的 vsftpd.user_list 和 ftpusers 文件来实现。

userlist_file=/etc/vsftpd.user_list
# 控制用户访问FTP 的文件,里面写着用户名称。一个用户名称一行。

userlist_enable=YES/NO(NO)
# 是否启用vsftpd.user_list 文件。

userlist_deny=YES/NO(YES)
# 决定vsftpd.user_list 文件中的用户是否能够访问 FTP 服 务器。若设置为 YES ,则 vsftpd.user_li st文件中的用户不允许访问 FTP ,若设置为 NO ,则只有 vsftpd.user_list 文件中的用户才能访问 FTP 。/etc/vsftpd/ftpusers文件专门用于定义不允许访问 FTP 服务器的用户列表( 注意 如果userlist_enable=YES,userlist_deny=NO, 此时如果在 vsftpd.user_list 和 ftpusers 中都有某个用户时,那么这个用户是不能够访问 FTP 的,即 ftpusers 的优先级要高)。默认情况下 vsftpd.user_list和 ftpusers ,这两个文件已经 预设置了一些不允许访问 FTP 服务器的系统内部账户。如果系统没有这两个文件,那么新建这两个文件,将用户添加进去即可。

24.8.9 访问速率设置

anon_max_rate=0
# 设置匿名登入者使用的最大传输速度,单位为B/s 0 表示不限制速度。默认值为 0 。

local_max_rate=0
# 本地用户使用的最大传输速度,单位为B/s 0 表示不限制速度。预设值为 0 。

24.8.10 超时时间设置

accept_timeout=60
# 设置建立FTP 连接的超时时间,单位为秒。默认值为 60 。

connect_timeout=60
# PORT方式下建立数据连接的超时时间,单位为秒。默认值为 60 。

data_connection_timeout=120
# 设置建立FTP 数据连接的超时时间,单位为秒。默认值为 120 。

idle_session_timeout=300
# 设置多长时间不对FTP 服务器进行任何操作,则断开该 FTP 连接,单位为秒。默认值为 300 。

24.8.11 日志文件设置

xferlog_enable=YES/NO (YES)
# 是否启用上传下载日志记录。如果启用,则上传与下载的信息将被完整纪录在 xferlog_file 所定义的档案中。预设为开启。

xferlog_file=/var/log/vsftpd.log
# 设置日志文件名和路径,默认值为/var/log/vsftpd.log 。

xferlog_std_format=YES/NO(NO)
# 如果启用,则日志文件将会写成xferlog 的标准格式,如同 wu ftpd 一般。默认值为关闭。

log_ftp_protocol=YES|NO(NO)
# 如果启用此 选项,所有的 FT P 请求和响应都会被记录到日志中,默认日志文件在 /var/log/vsftpd.log 。启用此选项时, xferlog_std_format 不能被激活。这个选项有助于调试。默认值为 NO 。

24.8.12 定义用户配置文件

在vsftpd 中,可以通过定义用户配置文件来实现不同的用户使用不同的配置。

user_config_dir=/etc/vsftpd/userconf
# 设置用户配置文件所在的目录。当设置了该配置项后,用户登陆服务器后,系统就会到/etc/vsftpd/userconf 目录下,读取与当前 用户名相同的文件,并 根据文件中的配置命令,对当前用户进行更进一步的配置。

例如:

定义user_config_dir=/etc/vsftpd/userconf ,且主机上有使用者 test1,test2 ,那么我们就在user_config_dir 的目录新增文件名为 test1 和 test2 两个文件。若是 test1 登入,则会读user_config_dir 下的 test1 这个档案内的设定。默认值为无。利用用户配置文件,可以实现对不同用户进行访问速度的控制,在各用户配置文件中定义local_max_rate=XX ,即可。

24.8.13 FTP 的工作方式与端口设置

FTP有两种工作方式: PORT FTP (主动模式)和 PASV FTP (被动模式)

listen_port=21
# 设置FTP 服务器建立连接所监听的端口,默认值为 21 。

connect_from_port_20=YES/NO
# 指定FTP 使用 20 端口进行数据传输,默认值为 YES 。

ftp_data_port=20
# 设置在POR T 方式下, FTP 数据连接使用的端口,默认值为 20 。

pasv_enable=YES/NO(YES)
# 若设置为YES ,则使用 PASV 工作模式;若设置为 NO ,则使用 PO RT 模式。默认值为 YES ,即使用 PASV工作模式。

pasv_max_port=0
# 在PASV 工作模式下,数据连接可以使用的端口范围的最大端口, 0 表示任意端口。默认值为 0 。

pasv_min_port=0
# 在PASV 工作模式下,数据连接可以使用的端口范围的最小端口, 0 表示任意端口。默认值为 0 。

24.8.14 与连接相关的设置

listen=YES/NO(YES)
# 设置vsftpd 服务器是否以 standalone 模式运行。以 standalone 模式运行是一种较好的方式,此时listen 必须设置为 YES ,此为默认值 。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效。若设置为 NO ,则 vsftpd 不是以独立的服务运行,要受到 xinetd 服务的管控,功能上会受到限制。

max_clients=0
# 设置vsftpd 允许的最大连接数,默认值为 0 ,表示不受限制。若设置为 100 时,则同时允许有 100 个连接,超出的将被拒绝。只有 在 standalone 模式运行才有效。

max_per_ip=0
# 设置每个IP 允许与 FTP 服务器同时建立连接的数目。默认值为 0 ,表示不受限制。只有在 standalone模式运行才有效。

listen_address=IP 地址
# 设置FTP 服务器在指定的 IP 地址上侦听用户的 FTP 请求。若不设置,则对服务器绑定的所有 IP 地址进行侦听。只有在 standalone 模式运行才有效。

setproctitle_enable=YES/NO(NO)
# 设置每个与FTP 服务器的连接,是否以不同的进程表现出来。默认值为 NO ,此时使 用 ps aux |grep ftp只会有一个 vsftpd 的进程。若设置为 YES ,则每个连接都会有一个 vsftpd 的进程。

24.8.15 虚拟用户设置

虚拟用户使用PAM 认证方式。

pam_service_name=vsftpd
# 设置PAM 使用的名称,默认值为 /etc/pam.d/vsftpd 。

guest_enable= YES/NO(NO)
# 启用虚拟用户。默认值为NO 。

guest_username=ftp
# 这里用来映射虚拟用户。默认值为ftp 。

virtual_use_local_privs=YES/NO(NO)
# 当该参数激活(YES )时,虚拟用户使用与本地用户相同的权限。当此参数关闭 NO )时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的( NO )。

24.8.16 其他设置

text_userdb_names= YES/NO(NO)
# 设置在执行ls la 之类的命令时,是显示 UID 、 GID 还是显示出具体的用户名和组名。默认值为 NO,即以 UID 和 GID 方式显示。若希望显示用户名和组名,则设置为 YES 。

ls_recurse_enable=YES/NO(NO)
# 若是启用此功能,则允许登入者使用ls -R (可以查看当前目录下子目录中的文件)这个指令。默认值为 NO 。

hide_ids=YES/NO(NO)
# 如果启用此功能,所有档案的拥有者与群组都为ftp ,也就是使用者登入使用 ls -al 之类的指令,所看到的档案拥有者跟群组均为 ftp 。默认值为关闭。

download_enable=YES/NO(YES)
# 如果设置为NO ,所有的文件都不能下载到本地,文件夹不受影响。默认值为 YES 。

24.8.17 响应代码解释说明

响应码 解释说明 响应码 解释说明
110 新文件指示器上的重启标记 120 服务器准备就绪的时间(分钟数)
125 打开数据连接,开始传输 150 打开连接
200 成功 202 命令没有执行
211 系统状态回复 212 目录状态回复
213 文件状态回复 214 帮助信息回复
215 系统类型回复 220 服务就绪
221 退出网络 225 打开数据连接
226 结束数据连接 227 进入被动模式( IP 地址、 ID 端口)
230 登录因特网 250 文件行为完成
257 路径名建立 331 要求密码
332 要求帐号 350 文件行为暂停
421 服务关闭 425 无法打开数据连接
426 结束连接 450 文件不可用
451 遇到本地错误 452 磁盘空间不足
500 无效命令 501 错误参数
502 命令没有执行 503 错误指令序列
504 无效命令参数 530 未登录网络
532 存储文件需要帐号 550 文件不可用
551 不知道的页类型 552 超过存储分配
553 文件名不允许    
本文摘抄或总结其他笔记,笔记不涉及任何商业用途,如果侵权请及时联系处理