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 | 文件名不允许 |