安装服务软件
yum install vsftpd -y ##安装软件
启动配置服务
systemctl start vsftpd ##开启vsftpd服务
systemctl enable vsftpd ##开机自启动
netstat -anltp | grep vsftpd ### 查看状态
setenforce 0 ##设置selinux
yum install -y firewalld 安装防火墙
systemctl start firewalld 启动防火墙
firewall-cmd --permanent --add-service=ftp 配置防火墙
firewall-cmd --reload 重启防火墙
firewall-cmd --list-all 查看
vsftpd文件信息
/var/ftp ##默认的发布目录
/etc/vsftpd ##配置目录
vsftpd服务配置参数
/etc/vsftpd/vsftpd.conf ##配置文件
sestatus -b | grep ftp 执行以下命令查看状态
setsebool -P tftp_home_dir on 外网开启
setsebool -P ftpd_full_access on 外网开启
setsebool -P httpd_enable_ftp_server on
setsebool -P httpd_can_connect_ftp on
sestatus -b | grep ftp
netstat -anltp | grep vsfpd 查看端口号
systemctl start vsftpd 启动服务
systemctl enable vsftpd 开机自启
netstat -anltlp | grep vsftp
yum -y install ftp 安装客户端
ftp创建用户和添加权限
1.创建用户,并指定分组和主目录
useradd -d /opt/reconciliation -s /sbin/nologin -g ftpGroup -G root ftpUser
解析:
useradd 添加用户ftpUser
-d 指定用户根目录为/opt/reconciliation
-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
-g 创建分组ftpGroup
-G 指定root分组
PS:创建有问题可以删除重新创建 userdel -r ftpUser
2.设定密码 passwd ftpUser
3.设置访问权限 chown ftpUser /opt/reconciliation/
更改ftp配置文件
修改配置文件
/etc/vsftpd/vsftpd.conf
并设定或删掉注释:
userlist_enable=NO
anonymous_enable=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
打开/etc/vsftpd/user_list并增加一行:
ftpUser
新建文件/etc/vsftpd/chroot_list并增加一行
ftpUser
配置用户ftp权限及访问路径限制:
此时用usertest登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。打开/etc/vsftpd /vsftpd.conf,查找userlist_enable、userlist_deny、userlist_file。如果 userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果 userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开 关。我们的系统配置如下:
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。
由于该主目录是mpsp用户建的,usertest是mpsp组的成员,所以usertest默认具有增删查改权限;而usertest作为 mpsp组成员,对/home/mpsp下的所有路径具有访问权限(根据各目录的权限设置,默认是这样),登录ftp后会发现,usertest用户可以 访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将usertest用户的访问范围控制在其主目录下。方法如下:
1. cd /etc/vsftpd 进入ftp配置文件目录
2. vi vsftpd.conf编辑此文件,找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能
找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list
3. 编辑chroot_list文件,加入你要限制的用户名,一行一个用户。
如果更新了vsftpd.conf,一定要重启ftp
/usr/sbin/vsftpd: VSFTPD的可执行文件
/etc/rc.d/init.d/vsftpd:启动脚本
/etc/vsftpd/vsftpd.conf:主配置文件
/etc/pam.d/vsftpd:PAM认证文件
/etc/vsftpd.ftpusers:禁用使用VSFTPD的用户列表文件
/etc/vsftpd.user_list:禁止或允许使用VSFTPD的用户列表文件
/var/ftp:匿名用户主目录
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
vim /etc/vsftpd/user_list
如果userlist_deny= YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码
#prompt 提示
/etc/vsftpd/vsftpd_conf_migrate.sh
:是vsftpd 操作的一些变量和设置脚本
设置了两个用户分别是upo和longxibendi
接下来相让upo 可以上传文件,但是不希望longxibendi也有同样的权限 ,借助vsftpd提供的分用户 设置机制,可以容易的做到这一点。
上文,已经在/etc/vsftpd.conf 中加入了
user_config_dir 设置,现在只需建立相应的目录,并在该目录下增加用户upo的配置文件即可:代码:
sudo mkdir /etc/vsftpd_user_conf
#建立文件夹,在/etc/下,名字是#vsftpd_user_conf
#这样才可以与上面的配置相对应。
代码:
sudo sh -c “echo 'write_enable=YES' > /etc/vsftpd_user_conf/upo”
将 内容write_enable=YES 写 入/etc/vsftpd_user_conf/upo
而,write_enable=YES的意思是允许写操作
代码:
sudo sh -c “echo 'anno_upload_enable=YES' >> / /etc/vsftpd_user_conf/upo
按行,也就是为什么要用‘>> /’将
anno_upload_enable=YES写
入/etc/vsftpd_user_conf/upo 中
anno_upload_enable=YES 允许用户上传
代码:
sudo sh -c “echo 'anno_mkdir_write_enable=YES' >> / /etc/vsftpd_user_conf/upo”
也是写入…内容到…
anno_mkdir_write_enable=YES
意思是
anno_mkdir_write_enable=YES
允许建立文件夹
如果允许用户upo删除和重命名文件(不建议)
执行:
sudo sh -c “echo 'anon_other_write_enable=YES' >> / /etc/vsftpd_user_conf/upo”
然后运行下面的命令,让vsftpd读入新配置
代码:
sudo invoke-rc.d vsftpd reload
现在用户upo 可以上传文件了,作为站点管理员,可能希望文件只能被上传到限定的目录,所以运行下面:
sudo mkdir /home/ftp/incoming
建立文件夹incoming 在/home/ftp/下
sudo chown ftp:nogroup incoming
sudo chmod 770 /home/ftp/incoming
sudo chmod -w /home/ftp
上面的命令是配置文家夹的属性
这样,目录/home/ftp对ftp用户,也就是隐藏在所有虚拟用户背后的真实用户不可写了,因此上传到/home/ftp不会成功。
注意,上面的例子中屏蔽了一般用户对
/home/ftp/incoming
的访问权限,这样做是为了利用vsftpd的一个副作用。
在默认的情况下,虚拟用户只能读取,或者下载对于任何用户都可读的文件和目录。上面的设置使虚拟用户无法列出目录
/home/ftp/incoming
下的文件,通常这是一个不错的特性。另一方面,通常,会希望upo用户,也可以看到自己上传的文件,为此可以运行如下命令:
代码:
sudo sh -c “echo 'anno_world_readable_only=NO' >> / etc/vsftpd_user_conf/upo”
将… 写入…文档
anno_world_readable_only=NO 意思是
取消用户的只读限制,不加这句,用户不能查看自
己上传的文件。
代码:
sudo killall -l vsftpd
sudo /etc/init.d/vsftpd restart
现在用户upo 可以看到
/home/ftp/incoming
的内容了,完美主义者,可在
/etc/vsftpd_user_conf/upo
中加入下面两行
local_umask=027
以彻底化副作用。
ftpd_banner=Welcome to blah FTP service
用户连接后看到的欢迎信息
pam_service_name=vsftpd
PAM 服务名称,这里的设置决定PAM将为vsftpd使用配置文件
#
/etc/pam.d/vsftpd
除了local_enable和ftpd_banner 之外,其他设置都很好地适应我们的需求,因此不需改动
ftp配置项注释
vsftpd.conf的格式非常简单。每一行都是注释或指令。注释行以#开头并被忽略。指令行的格式为:选项=值
重要的是要注意在选项,=和值之间放置任何空格是错误的。
每个设置都有一个默认编译,可以在配置文件中修改。
布尔选项
下面是布尔选项列表。布尔选项的值可以设置为YES 或NO。
allow_anon_ssl
仅在ssl_enable处于活动状态时适用。如果设置为YES,则允许匿名用户使用安全SSL连接。
默认值:NO
anon_mkdir_write_enable
如果设置为YES,则允许匿名用户在特定条件下创建新目录。为此,必须激活选项write_enable,并且匿名ftp用户必须具有父目录的写权限。
默认值:NO
anon_other_write_enable
如果设置为YES,则允许匿名用户执行除上载和创建目录之外的写入操作,例如删除和重命名。通常不建议这样做,但为了完整性而包括在内。
默认值:NO
anon_upload_enable
如果设置为YES,则允许匿名用户在特定条件下上载文件。为此,必须激活选项write_enable,并且匿名ftp用户必须具有所需上载位置的写入权限。虚拟用户上传也需要此设置; 默认情况下,虚拟用户使用匿名(即最大限制)权限进行处理。
默认值:NO
anon_world_readable_only
启用后,将只允许匿名用户下载世界可读的文件。这是认识到ftp用户可能拥有文件,尤其是在上传的情况下。
默认值:是
anonymous_enable
控制是否允许匿名登录。如果启用,则用户名ftp和anonymous都将被识别为匿名登录。
默认值:是
ascii_download_enable
启用后,ASCII模式数据传输将在下载时受到尊重。
默认值:NO
ascii_upload_enable
启用后,上传时将遵循ASCII模式数据传输。
默认值:NO
async_abor_enable
启用后,将启用称为“异步ABOR”的特殊FTP命令。只有不明智的FTP客户端才会使用此功能。此外,此功能难以处理,因此默认情况下禁用。遗憾的是,除非此功能可用,否则某些FTP客户端将在取消传输时挂起,因此您可能希望启用它。
默认值:NO
背景
启用后,vsftpd以“listen”模式启动,vsftpd将为侦听器进程提供背景。即控件将立即返回到启动vsftpd的shell。
默认值:是
check_shell
注意!此选项仅对vsftpd的非PAM构建有效。如果禁用,vsftpd将不会检查/ etc / shells是否有用于本地登录的用户shell。
默认值:是
chmod_enable
启用后,允许使用SITE CHMOD命令。注意!这仅适用于本地用户。匿名用户永远不会使用SITE CHMOD。
默认值:是
chown_uploads
如果启用,则所有匿名上载的文件都将更改为设置chown_username中指定的用户。从管理(可能是安全性)的角度来看,这很有用。
默认值:NO
chroot_list_enable
如果激活,您可以在登录时提供放置在其主目录中的chroot()jail中的本地用户列表。如果chroot_local_user设置为YES,则含义略有不同。在这种情况下,列表将成为不被放置在chroot()jail中的用户列表。默认情况下,包含此列表的文件是/ etc / vsftpd / chroot_list,但您可以使用chroot_list_file设置覆盖它。默认值:NO
chroot_local_user
如果设置为YES,则登录后本地用户(默认情况下)将放置在其主目录中的chroot()jail中。警告:此选项具有安全隐患,尤其是在用户具有上载权限或shell访问权限的情况下。只有在您知道自己在做什么时才启用。请注意,这些安全隐患不是vsftpd特定的。它们适用于所有提供将本地用户放入chroot()jail的FTP守护进程。
默认值:NO
connect_from_port_20
这可以控制PORT样式数据连接是否在服务器计算机上使用端口20(ftp-data)。出于安全原因,一些客户可能会坚持认为是这种情况。相反,禁用此选项可使vsftpd以较低的权限运行。
默认值:NO(但是示例配置文件启用它)
debug_ssl
如果为true,则将OpenSSL连接诊断转储到vsftpd日志文件。(在v2.0.6中添加)。
默认值:NO
delete_failed_uploads
如果为true,则删除任何失败的上载文件。(在v2.0.7中添加)。默认值:NO
deny_email_enable
如果激活,您可以提供匿名密码电子邮件响应列表,这会导致登录被拒绝。默认情况下,包含此列表的文件是/ etc / vsftpd / banned_emails,但您可以使用banned_email_file设置覆盖它。
默认值:NO
force_local_logins_ssl
仅在激活ssl_enable时适用。如果激活,则强制所有非匿名登录使用安全SSL连接以发送密码。
默认值:是
guest_enable
如果启用,则所有非匿名登录都被归类为“访客”登录。guest 虚拟机登录将重新映射到guest_username设置中指定的用户。
默认值:NO
hide_ids
如果启用,目录列表中的所有用户和组信息将显示为“ftp”。默认值:NO
implicit_ssl
如果启用,则SSL握手是所有连接(FTPS协议)上的第一件事。要支持显式SSL和/或纯文本,还应运行单独的vsftpd侦听器进程。
默认值:NO
侦听如果启用,vsftpd将以独立模式运行。这意味着vsftpd不能从某种类型的inetd运行。相反,vsftpd可执行文件直接运行一次。然后,vsftpd将负责监听和处理传入的连接。
默认值:NO
listen_ipv6
与listen参数一样,除了vsftpd将侦听IPv6套接字而不是IPv4套接字。此参数和listen参数是互斥的。默认值:NO
local_enable
控制是否允许本地登录。如果启用,则可以使用/ etc / passwd中的普通用户帐户(或PAM配置引用的任何位置)登录。必须启用此功能才能使任何非匿名登录工作,包括虚拟用户。
默认值:NO
lock_upload_files
启用后,所有上载都会继续对上载文件进行写锁定。所有下载都继续下载文件上的共享读锁定。警告!在启用此功能之前,请注意恶意阅读器可能会使想要添加文件的作者感到饥饿。
log_ftp_protocol
启用后,将记录所有FTP请求和响应,前提是未启用xferlog_std_format选项。用于调试。
默认值:NO
ls_recurse_enable
启用后,此设置将允许使用“ls -R”。这是一个较小的安全风险,因为大型站点顶层的ls -R可能会消耗大量资源。默认值:NO
mdtm_write
启用后,此设置将允许MDTM设置文件修改时间(根据通常的访问检查)。默认值:是
no_anon_password
启用后,这会阻止vsftpd请求匿名密码 – 匿名用户将直接登录。默认值:NO
no_log_lock
启用后,这会阻止vsftpd在写入日志文件时进行文件锁定。通常不应启用此选项。它存在以解决操作系统错误,例如Solaris / Veritas文件系统组合,已经观察到有时会出现试图锁定日志文件的挂起。默认值:NO
one_process_model
如果您有Linux 2.4内核,则可以使用不同的安全模型,每个连接只使用一个进程。它是一种不太纯粹的安全模型,但会提高您的性能。除非您知道自己在做什么,并且您的站点支持大量同时连接的用户,否则您真的不想启用它。
默认值:NO
passwd_chroot_enable
如果启用,则与chroot_local_user一起,然后可以基于每个用户指定chroot()jail位置。每个用户的jail都是从/ etc / passwd中的主目录字符串派生的。主目录字符串中出现/./表示jail位于路径中的特定位置。默认值:NO
pasv_addr_resolve
如果要在pasv_address选项中使用主机名(而不是IP地址),请设置为YES 。
默认值:NO
pasv_enable
如果要禁用PASV获取数据连接的方法,请设置为NO。默认值:是
pasv_promiscuous
如果要禁用PASV安全检查,则设置为YES,以确保数据连接源自与控制连接相同的IP地址。只有在你知道自己在做什么的情况下才能启用 对此的唯一合法用途是采用某种形式的安全隧道方案,或者可能是为了促进FXP支持。默认值:NO
port_enable
如果要禁止PORT方法获取数据连接,请设置为NO。默认值:是
port_promiscuous
如果要禁用PORT安全检查,则设置为YES,以确保传出数据连接只能连接到客户端。只有在你知道自己在做什么的情况下才能启用。默认值:NO
require_cert
如果设置为yes,则需要所有SSL客户端连接来提供客户端证书。应用于此证书的验证程度由validate_cert控制(在v2.0.6中添加)。
默认值:NO
require_ssl_reuse
如果设置为yes,则需要所有SSL数据连接以展示SSL会话重用(这证明它们知道与控制通道相同的主密钥)。虽然这是一个安全的默认设置,但它可能会破坏许多FTP客户端,因此您可能希望禁用它。有关后果的讨论,请参阅 http://scarybeastsecurity.blogspot.com/2009/02/vsftpd-210-released.html(在v2.1.0中添加)。默认值:是
reverse_lookup_enable
如果希望vsftpd在pam身份验证之前将ip地址转换为主机名,则设置为YES。如果您使用包含主机名的pam_access,这将非常有用。如果您希望vsftpd在某些主机名的反向查找可用并且名称服务器暂时不响应的环境中运行,则应将其设置为NO以避免性能问题。
run_as_launching_user
如果您希望vsftpd以启动vsftpd的用户身份运行,请设置为YES。在根访问不可用的情况下,这很有用。大规模警告!除非您完全知道自己在做什么,否则不要启用此选项,因为天真地使用此选项会产生大量安全问题。具体来说,当设置此选项时,vsftpd不会/不能使用chroot技术来限制文件访问(即使由root启动)。一个糟糕的替代品可能是使用deny_file 设置如{/
,
…*},但这种可靠性无法与chroot相比,并且不应该依赖。如果使用此选项,则适用对其他选项的许多限制。例如,需要权限的选项(例如非匿名登录,上载所有权更改,从端口20连接和小于1024的侦听端口)预计不起作用。其他选项可能会受到影响。默认值:NO
secure_email_list_enable
如果您只想接受匿名登录的指定电子邮件密码列表,请设置为YES。这非常有用,可以在不需要虚拟用户的情况下限制对低安全性内容的访问。启用后,除非提供的密码列在email_password_file设置指定的文件中,否则将阻止匿名登录。文件格式是每行一个密码,没有额外的空格。默认文件名是/ etc / vsftpd / email_passwords。默认值:NO
session_support
这可以控制vsftpd是否尝试维护登录会话。如果vsftpd维护会话,它将尝试更新utmp和wtmp。如果使用PAM进行身份验证,它也会打开一个pam_session,并且只有在注销时关闭它。如果您不需要会话日志记录,您可能希望禁用此功能,并且您希望为vsftpd提供更多机会以更少的进程和/或更少的权限运行。注 – utmp和wtmp支持仅在PAM启用的版本中提供。默认值:NO
setproctitle_enable
如果启用,vsftpd将尝试在系统进程列表中显示会话状态信息。换句话说,报告的进程名称将更改以反映vsftpd会话正在执行的操作(空闲,下载等)。出于安全考虑,您可能希望将其关闭。
默认值:NO
ssl_enable
如果启用,并且vsftpd是针对OpenSSL编译的,则vsftpd将通过SSL支持安全连接。这适用于控制连接(包括登录)以及数据连接。您也需要一个支持SSL的客户端。注意!!请注意启用此选项。只有在需要时才启用它。vsftpd无法保证OpenSSL库的安全性。通过启用此选项,您声明您信任已安装的OpenSSL库的安全性。默认值:NO
ssl_request_cert
如果启用,vsftpd会要求(但不一定需要;见 require_cert)一个证书上的传入 SSL 连接。通常这不应该造成任何麻烦,但IBM zOS似乎有问题。(v2.0.7中的新功能)。默认值:是
ssl_sslv2
仅在激活ssl_enable时适用。如果启用,此选项将允许SSL v2协议连接。TLS v1连接是首选。
默认值:NO
ssl_sslv3
仅在激活ssl_enable时适用。如果启用,此选项将允许SSL v3协议连接。TLS v1连接是首选。
默认值:NO
ssl_tlsv1
仅在激活ssl_enable时适用。如果启用,此选项将允许TLS v1协议连接。TLS v1连接是首选。
默认值:是
strict_ssl_read_eof
如果启用,则需要通过SSL终止SSL数据上载,而不是套接字上的EOF。需要此选项以确保攻击者未使用伪造的TCP FIN过早终止上载。不幸的是,默认情况下它没有启用,因为很少有客户端能够正确使用它。(v2.0.7中的新功能)。
默认值:NO
strict_ssl_write_shutdown
如果启用,则需要通过SSL终止SSL数据下载,而不是套接字上的EOF。默认情况下这是关闭的,因为我无法找到执行此操作的单个FTP客户端。这是次要的。它影响的是我们判断
syslog_enable
如果启用,那么将转到/var/log/vsftpd.log的任何日志输出都将转到系统日志。记录在FTPD工具下完成。默认值:NO
tcp_wrappers
如果启用,并且vsftpd是使用tcp_wrappers支持编译的,则传入连接将通过tcp_wrappers访问控制提供。此外,还有一种基于每个IP的配置机制。如果tcp_wrappers设置VSFTPD_LOAD_CONF环境变量,则vsftpd会话将尝试加载此变量中指定的vsftpd配置文件。默认值:NO
text_userdb_names
默认情况下,数字ID显示在目录列表的用户和组字段中。您可以通过启用此参数来获取文本名称。出于性能原因,它默认是关闭的。
默认值:NO
tilde_user_enable
如果启用,vsftpd将尝试解析路径名,例如~chris / pics,即代字号后跟用户名。请注意,vsftpd将始终解析路径名〜和〜/ something(在这种情况下,〜解析为初始登录目录)。请注意,只有在_current_ chroot()jail中找到文件/ etc / passwd时,〜用户路径才会解析 。默认值:NO
use_localtime
如果启用,vsftpd将显示当前时区中包含时间的目录列表。默认为显示GMT。MDTM FTP命令返回的时间也受此选项的影响。默认值:NO
use_sendfile
用于测试在平台上使用sendfile()系统调用的相对好处的内部设置。
默认值:是
userlist_deny
如果激活userlist_enable,则检查此选项。如果将此设置设置为NO,则将拒绝用户登录,除非它们明确列在userlist_file指定的文件中。拒绝登录时,将在要求用户输入密码之前发出拒绝。默认值:是
userlist_enable
如果启用,vsftpd将从userlist_file给出的文件名加载用户名列表。如果用户尝试使用此文件中的名称登录,则在要求输入密码之前,他们将被拒绝。这可能有助于防止传输明文密码。另请参见 userlist_deny。默认值:NO
validate_cert
如果设置为yes,则收到的所有SSL客户端证书都必须验证OK。自签名证书不构成OK验证。(v2.0.6中的新功能)。默认值:NO
userlist_log
如果激活userlist_enable,则检查此选项。如果启用,将记录基于用户列表的每个登录拒绝。
默认值:NO
virtual_use_local_privs
如果启用,虚拟用户将使用与本地用户相同的权限。默认情况下,虚拟用户将使用与匿名用户相同的权限,这往往更具限制性(特别是在写访问方面)。默认值:NO
WRITE_ENABLE
这可以控制是否允许任何更改文件系统的FTP命令。这些命令是:STOR,DELE,RNFR,RNTO,MKD,RMD,APPE和SITE。默认值:NO
xferlog_enable
如果启用,将保留日志文件,详细说明上载和下载。默认情况下,此文件将放在/var/log/vsftpd.log中,但可以使用配置设置vsftpd_log_file覆盖此位置。
默认值:NO(但是示例配置文件启用它)
xferlog_std_format
如果启用,传输日志文件将以标准xferlog格式写入,如wu-ftpd所使用。这很有用,因为您可以重用现有的传输统计信息生成器 但是,默认格式更具可读性。此样式的日志文件的缺省位置是/ var / log / xferlog,但您可以使用xferlog_file设置进行更改。
默认值:NO
isolate_network
如果启用,请使用CLONE_NEWNET隔离不受信任的进程,以便它们不能执行任意connect(),而是必须向特权进程请求套接字(必须禁用port_promiscuous)。默认值:是
隔离如果启用,请使用CLONE_NEWPID和CLONE_NEWIPC将进程隔离到其ipc和pid名称空间。因此,分离的流程不能相互交互。
默认值:是
数字选项
以下是数字选项列表。必须将数字选项设置为非负整数。支持八进制数,以方便umask选项。要指定八进制数,请使用0作为数字的第一个数字。
accept_timeout
远程客户端与PASV样式数据连接建立连接的超时(以秒为单位)。默认值:60
anon_max_rate
匿名客户端允许的最大数据传输速率(以字节/秒为单位)。默认值:0(无限制)
anon_umask
为匿名用户设置用于文件创建的umask的值。注意!如果要指定八进制值,请记住“0”前缀,否则该值将被视为基数为10的整数!
默认值:077
chown_upload_mode
要强制进行chown()ed匿名上传的文件模式。(在v2.0.6中添加)。默认值:0600
connect_timeout
远程客户端响应我们的PORT样式数据连接的超时(以秒为单位)。默认值:60
data_connection_timeout
超时(以秒为单位),大致是允许数据传输停止而没有进度的最长时间。如果超时触发,则启动远程客户端。默认值:300
delay_failed_login
报告登录失败之前暂停的秒数。
默认值:1
delay_successful_login
允许成功登录之前暂停的秒数。
默认值:0
file_open_mode
用于创建上载文件的权限。Umasks应用于此值之上。如果您希望上传的文件可执行,您可能希望更改为0777。默认值:0666
ftp_data_port
PORT样式连接源自的端口(只要启用名称不佳的connect_from_port_20)。默认值:20
idle_session_timeout
超时(以秒为单位),即远程客户端在FTP命令之间可能花费的最长时间。如果超时触发,则启动远程客户端。默认值:300
listen_port
如果vsftpd处于独立模式,则它将侦听传入FTP连接的端口。默认值:21
local_max_rate
本地身份验证用户允许的最大数据传输速率(以字节/秒为单位)。默认值:0(无限制)
local_umask
为本地用户设置用于文件创建的umask的值。注意!如果要指定八进制值,请记住“0”前缀,否则该值将被视为基数为10的整数!
默认值:077
max_clients
如果vsftpd处于独立模式,则这是可以连接的最大客户端数。连接的任何其他客户端都将收到错误消息。值0关闭限制。默认值:2000
max_login_fails
在这么多登录失败之后,会话被终止。
默认值:3
max_per_ip
如果vsftpd处于独立模式,则这是可以从同一源Internet地址连接的最大客户端数。如果客户端超过此限制,将收到错误消息。值0关闭限制。
默认值:50
pasv_max_port
为PASV样式数据连接分配的最大端口。可用于指定窄端口范围以协助防火墙。
默认值:0(使用任何端口)
pasv_min_port
为PASV样式数据连接分配的最小端口。可用于指定窄端口范围以协助防火墙。
默认值:0(使用任何端口)
trans_chunk_size
您可能不想更改此设置,但尝试将其设置为类似8192的设备,以获得更平滑的带宽限制器。
默认值:0(让vsftpd选择合理的设置)
字符串选项
以下是字符串选项列表。
anon_root
此选项表示vsftpd在匿名登录后尝试更改的目录。失败被默默地忽略了。
默认值:(无)
banned_email_file
此选项是包含不允许的匿名电子邮件密码列表的文件的名称。如果启用了选项deny_email_enable,则会查询此文件 。
默认值:/ etc / vsftpd / banned_emails
banner_file
此选项是包含要在有人连接到服务器时显示的文本的文件的名称。如果设置,它将覆盖ftpd_banner选项提供的标题字符串 。
默认值:(无)
ca_certs_file
此选项是用于加载证书颁发机构证书的文件的名称,用于验证客户端证书。加载的证书也会通告给客户端,以满足TLSv1.0客户端的需求,例如z / OS FTP客户端。遗憾的是,由于vsftpd使用受限制的文件系统空间(chroot),因此未使用默认的SSL CA证书路径。(在v2.0.6中添加)。
默认值:(无)
chown_username
这是获得匿名上传文件所有权的用户的名称。仅当设置了另一个选项chown_uploads时,此选项才有意义。
默认值:root
chroot_list_file
该选项是包含本地用户列表的文件的名称,该列表将放置在其主目录中的chroot()jail中。仅当启用了选项chroot_list_enable时,此选项才有意义。如果启用了选项chroot_local_user,则列表文件将成为未放置在chroot()jail中的用户列表。
默认值:/etvsftpd.confc/vsftpd.chroot_list
cmds_allowed
此选项指定允许的FTP命令的逗号分隔列表(登录后.USER,PASS和QUIT以及其他始终允许登录前)。其他命令被拒绝。这是一种真正锁定FTP服务器的强大方法。示例:cmds_allowed = PASV,RETR,QUIT默认值:(无)
cmds_denied
此选项指定以逗号分隔的拒绝FTP命令列表(登录后。始终允许登录前使用USER,PASS,QUIT等)。如果此命令和cmds_allowed上都出现命令,则拒绝优先。(在v2.1.0中添加)。
默认值:(无)
dsa_cert_file
此选项指定用于SSL加密连接的DSA证书的位置。
默认值:(无 – RSA证书就足够了)
dsa_private_key_file
此选项指定用于SSL加密连接的DSA私钥的位置。如果未设置此选项,则预期私钥与证书位于同一文件中。默认值:(无)
email_password_file
此选项可用于提供secure_email_list_enable设置使用的备用文件。
默认值:/ etc / vsftpd / email_passwords
ftp_username
这是我们用于处理匿名FTP的用户的名称。该用户的主目录是匿名FTP区域的根目录。
默认值:ftp
deny_file
此选项可用于设置文件名(和目录名等)的模式,这些模式不应以任何方式访问。受影响的项目不会被隐藏,但任何对它们做任何事情的尝试(下载,更改到目录,影响目录中的内容等)都将被拒绝。此选项非常简单,不应用于严格的访问控制 – 应优先使用文件系统的权限。但是,此选项在某些虚拟用户设置中可能很有用。特别要注意的是,如果文件名可以通过各种名称访问(可能是由于符号链接或硬链接),那么必须注意拒绝访问所有名称。如果项目的名称包含hide_file给出的字符串,或者它们与hide_file指定的正则表达式匹配,则将拒绝访问项目。注意vsftpd’ 正则表达式匹配代码是一个简单的实现,它是完整正则表达式功能的子集。因此,您需要仔细而详尽地测试此选项的任何应用程序。并且由于其更高的可靠性,建议您对任何重要的安全策略使用文件系统权限。支持的正则表达式语法是任意数量的* ,? 和unnested {,}运算符。仅在路径的最后一个组件上支持正则表达式匹配,例如a / b /?支持,但/?/ c不支持。示例:deny_file = {
。mp3,
。mov,.private} 并且由于其更高的可靠性,建议您对任何重要的安全策略使用文件系统权限。支持的正则表达式语法是任意数量的* ,? 和unnested {,}运算符。仅在路径的最后一个组件上支持正则表达式匹配,例如a / b /?支持,但/?/ c不支持。示例:deny_file = {
。mp3,
。mov,.private} 并且由于其更高的可靠性,建议您对任何重要的安全策略使用文件系统权限。支持的正则表达式语法是任意数量的* ,? 和unnested {,}运算符。仅在路径的最后一个组件上支持正则表达式匹配,例如a / b /?支持,但/?/ c不支持。示例:deny_file = {
。mp3,
。mov,.private}
默认值:(无)
ftpd_banner
此字符串选项允许您在首次进入连接时覆盖vsftpd显示的问候语横幅。
默认值:(无 – 显示默认的vsftpd横幅)
guest_username
有关访客登录的描述,请参阅布尔值设置guest_enable。此设置是访客用户映射到的真实用户名。默认值:ftp
hide_file
此选项可用于设置文件名(和目录名称等)的模式,这些模式应该从目录列表中隐藏。尽管被隐藏,但是知道实际使用的名称的客户可以完全访问文件/目录等。如果项目的名称包含hide_file给出的字符串,或者它们与hide_file指定的正则表达式匹配,则将隐藏这些项目。请注意,vsftpd的正则表达式匹配代码是一个简单的实现,它是完整正则表达式功能的子集。有关具体支持的正则表达式语法的详细信息,请参阅deny_file。示例:hide_file = {*。mp3,.hidden,hide *,h?}默认值:(无)
listen_address
如果vsftpd处于独立模式,则此设置可能会覆盖(所有本地接口的)默认侦听地址。提供数字IP地址。默认值:(无)
listen_address6
与listen_address类似,但指定IPv6侦听器的默认侦听地址(如果设置了listen_ipv6,则使用该地址)。格式是标准IPv6地址格式。
默认值:(无)
local_root
此选项表示vsftpd在本地(即非匿名)登录后尝试更改的目录。失败被默默地忽略了。
默认值:(无)
message_file
此选项是输入新目录时我们查找的文件的名称。内容显示给远程用户。仅当启用了选项dirmessage_enable时,此选项才有意义。
默认值:.message
nopriv_user
这是vsftpd在完全没有特权的情况下使用的用户名。请注意,这应该是专用用户,而不是任何人。在大多数机器上,用户没有倾向于使用很多重要的东西。默认值:没人
pam_service_name
此字符串是vsftpd将使用的PAM服务的名称。
默认值:ftp
pasv_address设置
使用此选项可覆盖vsftpd将响应PASV命令而通告的IP地址。提供数字IP地址,除非 启用了pasv_addr_resolve,在这种情况下,您可以提供在启动时为您解析DNS的主机名。
默认值:(无 – 地址取自传入的连接套接字)
rsa_cert_file
此选项指定用于SSL加密连接的RSA证书的位置。
默认值:/usr/share/ssl/certs/vsftpd.pem
rsa_private_key_file
此选项指定用于SSL加密连接的RSA私钥的位置。如果未设置此选项,则预期私钥与证书位于同一文件中。默认值:(无)
secure_chroot_dir
此选项应该是空目录的名称。此外,ftp用户不应该写入该目录。此目录有时用作安全chroot()jail,vsftpd不需要文件系统访问。
默认值:/ usr / share / empty
的ssl_ciphers
此选项可用于选择vsftpd允许加密SSL连接的SSL密码。有关更多详细信息,请参见密码手册页。请注意,限制密码可能是一种有用的安全预防措施,因为它可以防止恶意远程方强制使用已发现问题的密码。
默认值:DES-CBC3-SHA
user_config_dir
这个功能强大的选项允许基于每个用户覆盖手册页中指定的任何配置选项。用法很简单,最好用一个例子来说明。如果将user_config_dir设置为/ etc / vsftpd / user_conf然后以用户“chris”身份登录,则vsftpd将在会话期间应用文件/ etc / vsftpd / user_conf / chris中的设置。此文件的格式详见本手册页!请注意,并非所有设置都对每个用户有效。例如,许多设置仅在用户会话启动之前。不会影响每个用户的任何行为的设置示例包括listen_address,banner_file,max_per_ip,max_clients,xferlog_file等。默认值:(无)
user_sub_token
此选项与虚拟用户结合使用非常有用。它用于根据模板为每个虚拟用户自动生成主目录。例如,如果通过guest_username指定的真实用户的主目录是/ home / virtual / $ USER,并且user_sub_token设置为 $ USER,那么当虚拟用户fred登录时,他将结束(通常是chroot()’ed )在目录/ home / virtual / fred中。如果local_root包含user_sub_token,则此选项也会生效。默认值:(无)
userlist_file
此选项是userlist_enable选项处于活动状态时加载的文件的名称。
默认值:/ etc / vsftpd / user_list
vsftpd_log_file
此选项是我们编写vsftpd样式日志文件的文件的名称。仅当设置了选项xferlog_enable并且未设置xferlog_std_format时, 才会写入此日志。或者,如果已设置选项dual_log_enable,则会写入。另一个复杂因素 – 如果您设置了syslog_enable,则不会写入此文件,而是将输出发送到系统日志。
默认值:/var/log/vsftpd.log
xferlog_file
此选项是我们编写wu-ftpd样式传输日志的文件的名称。仅当 设置了xferlog_enable选项以及xferlog_std_format时才会写入传输日志。或者,如果已设置选项dual_log_enable,则会写入。
默认值:/ var / log / xferlog
VSFTP 链接模式配置
主动模式配置方法:
#主动式连接使用的数据通道
connect_from_port_20=YES
#支持数据流的被动式连接模式
pasv_enable=NO
被动模式配置方法:
#主动式连接使用的数据通道
connect_from_port_20=NO
pasv_enable=YES(默认为YES) #设置是否允许被动模式
pasv_min_port=1024(default:0(use any port))
pasv_max_port=65536(default:0(use any port))