VSFTP服务器配置
服务名:vsftpd
守护进程:vsftpd
使用端口:20/21
安装软件包:vsftpd-2.0.3-1.i386.rpm
配置文件:
/usr/sbin/vsftpd VSFTPD的主程序
/etc/vsftpd.conf 或/etc/vsftpd/vsftpd.conf主配置文件
/etc/pam.d/vsftpd 与/etc/ftpusers 或/etc/vsftpd.ftpusers利用pam 模块认证文件
/etc/vsftpd.ftpusers 禁止使用VSFTPD的用户列表文件
/etc/https://www.doczj.com/doc/023857431.html,er_list 禁止或允许使用VSFTPD的用户列表文件
/var/ftp 匿名用户主目录
/var/ftp/pub 匿名用户的下载目录
VSFTP服务器的启动与停止
Service vsftpd start/restart stop/status
VSFTP用户:匿名用户
本地用户
虚拟用户
默认主配置文件说明:
anonymous_enable=YES设定为YES时,任何非anonymous 登入的账号,均会被假设成为guest (访客)
ftp_username= 匿名用户帐户名称,默认为ftp
no_anon_password=YES 匿名用户login时不询问口令
anon_world_readable_only=YES 匿名用户是否允许下载可阅读文档,默认为YES
local_enable=YES必须要为YES 时,在/etc/passwd 内的账号才能登入我们的vsftpd 主机write_enable=YES是否对登录用户开放写权限,上传!(全局设置)
local_umask=022本地用户上传文件的权限属性(755)
anon_umask=022设置匿名用户上传文件的权限属性(755)
file_open_mode=755 设置上传文件的权限属性(755)
anon_upload_enable=YES匿名用户也可上传则需要设置(write_enable设置为YES时才生效)anon_mkdir_write_enable=YES匿名用户可以建立目录则需要设置(write_enable设置为YES 时才生效)
anon_other_write_enable=YES匿名用户可以建立/删除、更名目录权限(write_enable设置为YES时才生效)
dirmessage_enable=YES 为YES则进入目录时显示此目录下由message_file选项指定的文本文件
xferlog_enable=YES使用上传/下载日志
connect_from_port_20=YES
listen_port=21 建立连接侦听端口
ftp_data_port=20 再PORT方式下数据连接所使用端口
pasv_enable=yes使工作在PASV模式启动被动式(passive mode),一定要设定为YES 的啦#
#chown_uploads=YES用于设置是否改变匿名用户上传文档的属主,若设置为YES则传文档的属主设置为chown_username项值,默认值为NO(注意如果上传的是目录,则属主不会变)#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log上传/下载日志文件(放置log的地方,权限设置chmod a+w 目录也要有写权限)
one_process_model=NO 如果没有这行就增加这行,因为one_process下只能匿名用户登录(我遇到的问题)
xferlog_std_format=YES 日志使用标准xferlog格式
#idle_session_timeout=600设置多长时间不对服务器操作就断开连接
#data_connection_timeout=120 FTP 数据连接超时时间
anon_max_rate=51200 匿名用户的传输比率(b/s),默认为0(不受限制)
local_max_rate=512000 本地用户的传输比率(b/s) 默认为0(不受限制)
max_clients=100 可接受的最大client数目默认为0(不受限制)
max_per_ip=5 每个ip的最大client数目默认为0(不受限制)
listen_address=ip地址设置在哪个IP地址上侦听FTP请求默认所有IP都监听
accept_timeout=60 建立FTP连接的超时时间
connect_timeout=120 PORT方式下建立数据连接的超时时间
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES启用使用ascii模式下载数据
#ascii_download_enable=YES启用使用ascii模式上传数据
ftpd_banner=Welcome to blah FTP service.login时的欢迎信息
banner_file=/etc/vsftpd/banner设置的话将覆盖上面的ftpd_banner设置
massage_file=.message 设置目录文件
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_list_enable=YES是否启用将某些实体用户限制在他们的家目录内?!预设是NO ,不过,如果您想要让某些使用者无法离开他们的家目录时,可以考虑将这个设定为YES ,
并且规划下个设定值
#chroot_list_file=/etc/vsftpd/chroot_list如果chroot_list_enable=YES 那么就可以设定这个项目了!他里面可以规定那一个实体用户会被限制在自己的家目录内而无法离开!(chroot)一行一个账号即可!:(权限,如果是root创建的话要加上ftp用户能访问)
chroot_local_user=YES /设置用户列表文件中的用户是能切换还是不能切换目录/
#ls_recurse_enable=YES
pam_service_name=vsftpd pam 模块的名称,我们放置在/etc/pam.d/vsftpd
userlist_enable=YES/设置用户的访问控制,决定/etc/https://www.doczj.com/doc/023857431.html,er_list是否生效
userlist_deny=YES /决定/etc/https://www.doczj.com/doc/023857431.html,er_list文件中的用户是允许访问还是不允许为NO时能访问,若此设定值为YES 时,则当使用者账号被列入到某个档案时,在该档案内的使用者将无法登入vsftpd 服务器!
userlist_file=/etc/https://www.doczj.com/doc/023857431.html,er_list 若上面userlist_deny=YES 时,则这个档案就有用处了!在这个档案内的账号都无法使用vsftpd
#enable for standalone mode
listen=YES服务器以standalong模式运行,这样可以进行下面的控制
tcp_wrappers=YES/设置主机的访问控制,服务器会检查/etc/hosts.allow和/etc/hosts.deny中的设置/
local_root=/var/ftp本地用户login后所在目录,若没有设置此项, login后将在他的home目录中anon_root=/var/ftp 匿名用户login后所在目录,默认值是/var/ftp
配置范例:
先对vsftpd.conf 设定值进行分块详细说明
关于主机的设定值
connect_from_port_20=YES (NO)
还记得 wu ftp 那篇文章提到的,关于主动联机的 ftp-data 吗?
这个设定项目在启动主动联机的 port 20 咯!
listen_port=21
使用的 vsftpd 命令通道的 port number 设定,如果您想要使用非
正规的 ftp port,在这个设定项目修改吧!
dirmessage_enable=YES (NO)
当使用者进入某个目录时,会显示该目录需要注意的内容,显示的
档案预设是 .message ,当然,可以使用底下的设定项目来修订!
message_file=.message
当 dirmessage_enable=YES 时,可以设定这个项目来让 vsftpd
寻找该档案来显示讯息!您也可以设定其它档名喔!
listen=YES (NO)
若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的!
pasv_enable=YES (NO)
启动被动式联机(passive mode),一定要设定为 YES 的啦!
use_localtime=YES (NO)
是否使用主机的时间?!预设使用 GMT 时间(格林威治),会比台湾
时间晚 8 小时,一般来说,建议设定为 YES 吧!
write_enable=YES (NO)
是否允许使用者具有写入的权限?!这包括删除与修改等功能喔!
connect_timeout=60
单位是秒,如果 client 尝试连接我们的 vsftpd 命令通道超过 60 秒,
则不等待,强制断线咯。
accept_timeout=60
当使用者以被动式 PASV 来进行数据传输时,如果主机启用 passive port 并等待 client 超过60 秒,那么就给他强制断线!您可以修改 60 这个数值。data_connection_timeout=300
如果 client 与 Server 间的数据传送在 300 秒内都无法传送成功,
那 Client 的联机就会被我们的 vsftpd 强制剔除!
idle_session_timeout=300
如果使用者在 300 秒内都没有命令动作,强制离线!
max_clients=0
如果 vsftpd 是以 stand alone 方式启动的,那么这个设定项目可以设定
同一时间,最多有多少 client 可以同时连上 vsftpd 哩!?
max_per_ip=0
与上面 max_clients 类似,这里是同一个 IP 同一时间可允许多少联机?
pasv_max_port=0
pasv_min_port=0
上面两个是与 passive mode 使用的 port number 有关,如果您想要使用
65400 到 65410 这 11 个 port 来进行被动式资料的连接,可以这样设定
pasv_max_port=65410 以及 pasv_min_port=65400
ftpd_banner=一些文字说明
当使用者无法顺利连上我们的主机,例如联机数量已经超过 max_clients 的设定了,那么 client 的画面就会显示『一些文字说明』的字样,您可以修改
关于实体用户登入者的设定值
guest_enable=YES (NO)
若这个值设定为 YES 时,那么任何非 anonymous 登入的账号,均会被
假设成为 guest (访客) 喔!
local_enable=YES (NO)
这个设定值必须要为 YES 时,在 /etc/passwd 内的账号才能以
实体用户的方式登入我们的 vsftpd 主机喔!
local_max_rate=0
实体用户的传输速度限制,单位为 bytes/second, 0 为不限制。
chroot_local_user=YES (NO)
将使用者限制在自己的家目录之内(chroot)!这个设定在 vsftpd
当中预设是 NO,因为有底下两个设定项目的辅助喔!
所以不需要启动他!
chroot_list_enable=YES (NO)
是否启用将某些实体用户限制在他们的家目录内?!预设是 NO ,
不过,如果您想要让某些使用者无法离开他们的家目录时,
可以考虑将这个设定为 YES ,并且规划下个设定值
chroot_list_file=/etc/vsftpd.chroot_list
如果 chroot_list_enable=YES 那么就可以设定这个项目了!他里面可以规定那一个实体用户会被限制在自己的家目录内而无法离开!(chroot)
一行一个账号即可!
userlist_deny=YES (NO)
若此设定值为 YES 时,则当使用者账号被列入到某个档案时,在该档案内
的使用者将无法登入 vsftpd 服务器!该档案文件名与下列设定项目有关。userlist_file=/etc/https://www.doczj.com/doc/023857431.html,er_list
若上面 userlist_deny=YES 时,则这个档案就有用处了!在这个档案内的
账号都无法使用 vsftpd 喔!
关于匿名者登入的设定值
anonymous_enable=YES (NO)
设定为允许anonymous 登入我们的vsftpd 主机!预设是YES ,底下的所有相关设定都需要将这个设定为anonymous_enable=YES 之后才会生效!
anon_world_readable_only=YES (NO)
仅允许anonymous 具有下载可读档案的权限,预设是YES。
anon_other_write_enable=YES (NO)
是否允许anonymous 具有写入的权限?预设是NO!如果要设定为YES,那么开放给anonymous 写入的目录亦需要调整权限,让vsftpd 的PID
拥有者可以写入才行!
anon_mkdir_write_enable=YES (NO)
是否让anonymous 具有建立目录的权限?默认值是NO!如果要设定为YES,那么anony_other_write_enable 必须设定为YES !
anon_upload_enable=YES (NO)
是否让anonymous 具有上传数据的功能,预设是NO,如果要设定为YES ,则anon_other_write_enable=YES 必须设定。
deny_email_enable=YES (NO)
将某些特殊的email address 抵挡住,不让那些anonymous 登入!
如果以anonymous 登入主机时,不是会要求输入密码吗?密码不是要您
输入您的email address 吗?如果你很讨厌某些email address ,
就可以使用这个设定来将他取消登入的权限!需与下个设定项目配合:
banned_email_file=/etc/vsftpd.banned_emails
如果deny_email_enable=YES 时,可以利用这个设定项目来规定那个
email address 不可登入我们的vsftpd 喔!在上面设定的档案内,
一行输入一个email address 即可!
no_anon_password=YES (NO)
当设定为YES 时,表示anonymous 将会略过密码检验步骤,
而直接进入vsftpd 服务器内喔!所以一般预设都是NO 的!
anon_max_rate=0
这个设定值后面接的数值单位为bytes/秒,限制anonymous 的传输速度,
如果是0 则不限制(由最大频宽所限制),如果您想让anonymous 仅有
30 KB/s 的速度,可以设定『anon_max_rate=30000』
anon_umask=077
限制anonymous 的权限!如果是077 则anonymous 传送过来的档案
权限会是-rw------- 喔!
关于系统安全的设定值:
ascii_download_enable=YES (NO)
如果设定为YES ,那么client 就可以使用ASCII 格式下载档案。
一般来说,由于启动了这个设定项目可能会导致DoS 的攻击,因此预设是NO。ascii_upload_enable=YES (NO)
与上一个设定类似的,只是这个设定针对上传而言!预设是NO。
async_abor_enable=YES (NO)
如果您的FTP client 会下达"async ABOR" 这个指令时,这个设定才需要启用一般来说,由于这个设定并不安全,所以通常都是将他取消的!
check_shell=YES (NO)
如果您想让拥有任何奇怪的shell 的使用者(在/etc/passwd 的shell 字段)
可以使用vsftpd 的话,这个设定可以设定为NO 喔!
one_process_model=YES (NO)
这个设定项目比较危险一点~当设定为YES 时,表示每个建立的联机
都会拥有一支process 在负责,可以增加vsftpd 的效能。不过,
除非您的系统比较安全,而且硬件配备比较高,否则容易耗尽系统资源喔!
一般建议设定为NO 的啦!
tcp_wrappers=YES (NO)
当然我们都习惯支持TCP Wrappers 的啦!所以设定为YES 吧!
xferlog_enable=YES (NO)
当设定为YES 时,使用者上传与下载档案都会被纪录起来。记录档案
与下一个设定项目有关:
xferlog_file=/var/log/vsftpd.log
如果上一个xferlog_enable=YES 的话,这里就可以设定了!
这个是登录档的档名啦!
xferlog_std_format=YES (NO)
是否设定为wu ftp 相同的登录档格式?!预设为NO ,因为登录档会比较容易读!
不过,如果您有使用wu ftp 登录文件的分析软件,这里才需要设定为YES
nopriv_user=nobody
我们的vsftpd 预设以nobody 作为此一服务执行者的权限。因为nobody 的权限
相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限喔!
pam_service_name=vsftpd
这个是pam 模块的名称,我们放置在/etc/pam.d/vsftpd 即是这个咚咚!
最简单的 vsftpd.conf 设定
[root@test root]# vi /etc/xinetd.d/vsftpd
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/vsftpd
server_args = /etc/vsftpd.conf
# 上面这个请依照您的主机环境来设定!尤其是server_args 请设定您的
# vsftpd.conf 所在目录的完整文件名(含目录名称)!
log_on_success += DURA TION USERID
log_on_failure += USERID
nice = 10
disable = no
}
[root@test root]# vi /etc/vsftpd/vsftpd.conf # (或/etc/vsftpd.conf)
# 关于主机与安全性的设定
use_localtime=YES
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_enable=YES
xferlog_std_format=YES
pam_service_name=vsftpd
tcp_wrappers=YES
# 关于anonymous 的设定
anonymous_enable=YES
# 关于real user 的设定
local_enable=YES
write_enable=YES
local_umask=022
userlist_enable=YES
# 以上设定值的意义请往前翻到vsftpd.conf 设定值的意义章节去察看!
[root@test root]# /etc/rc.d/init.d/xinetd restart
针对仅有开放实体用户登入的设定
1. 基础设定档
[root@test root]# vi /etc/vsftpd/vsftpd.conf (或/etc/vsftpd.conf)
# 关于主机与安全性的设定
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
tcp_wrappers=YES
# 关于anonymous 的设定
anonymous_enable=NO
# 关于Real User 的设定
local_enable=YES
write_enable=YES
local_umask=022
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
userlist_deny=YES
userlist_file=/etc/https://www.doczj.com/doc/023857431.html,er_list
local_max_rate=100000
# 以上设定值的意义请往前翻到vsftpd.conf 设定值的意义章节去察看!
2. 限制实体用户在自己的家目录内(chroot) 的设定档
[root@test root]# vi /etc/vsftpd.chroot_list
badbird
nogoodbird
# 没有写到这个档案内的其它用户,就可以离开自己的家目录,
# 而到其它目录里面去浏览了!
3. 以PAM 模块限制某些账号无法登入主机的设定:
[root@test root]# vi /etc/pam.d/vsftpd
# 会发现这样的字句:
auth ..... file=/etc/vsftpd.ftpusers ....
# 那个file=.. 后面接的文件名就是以PAM 模块抵挡的账号内容了!
[root@test root]# vi /etc/vsftpd.ftpusers
# 底下列出的账号将无法使用vsftpd 喔!与wu ftp 的/etc/ftpusers 相同功能root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
4. 以userlist_file 抵挡某些账号的登入:
# 事实上,这个功能与上面的PAM 功能相似啦!只是PAM 是外挂的,而# 这个设定是vsftpd 预设提供的就是了!
[root@test root]# vi /etc/https://www.doczj.com/doc/023857431.html,er_list
# 这个档案的设定与上面/etc/vsftpd.ftpusers 相同即可!
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
5. 设定进入目录时,显示的讯息:
[root@test root]# vi /home/.message
一般使用者家目录
6. 重新启动xinetd 啰!
[root@test root]# /etc/rc.d/init.d/xinetd restart
针对仅有开放匿名使用者登入的设定
1.基础设定档
[root@test root]# vi /etc/vsftpd/vsftpd.conf (或/etc/vsftpd.conf)
# 与主机与安全性有关的设定
use_localtime=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
data_connection_timeout=60
idle_session_timeout=600
max_clients=50
max_per_ip=5
ascii_upload_enable=NO
ascii_download_enable=NO
connect_from_port_20=YES
pasv_min_port=65400
pasv_max_port=65420
pam_service_name=vsftpd
tcp_wrappers=YES
nopriv_user=ftp
# 关于anonymous 的设定
anonymous_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
anon_max_rate=30000
# 关于real user 的设定
local_enable=NO
# 以上设定值的意义请往前翻到vsftpd.conf 设定值的意义章节去察看!
2. 建立抵挡不当email address 的档案
[root@test root]# vi /etc/vsftpd.banned_emails
https://www.doczj.com/doc/023857431.html,
# 一行写一个email 名称喔!
3. 建立可以上传的目录!
# 因为我们的nopriv_user 设定为ftp ,所以上传的目录拥有者为ftp 喔
[root@test root]# mkdir -p /var/ftp/upload
[root@test root]# chown ftp /var/ftp/upload
4. 重新启动xinetd 啰!
[root@test root]# /etc/rc.d/init.d/xinetd restart
上机实验之匿名用户:
12 anonymous_enable=YES /接受匿名用户/默认登陆目录为/var/ftp(只读)
ftp_username= 匿名用户帐户名称,默认为ftp
no_anon_password=YES /匿名用户login时不询问口令/
anon_world_readable_only=YES 匿名用户是否允许下载可阅读文档,默认为YES
15 local_enable=YES /接受本地用户/
18 write_enable=YES 是否对登录用户开放写权限(全局设置)
anon_umask=022 设置匿名用户上传文件的权限属性(755)
file_open_mode=755 设置上传文件的权限属性(755)
27 anon_upload_enable=YES匿名用户也可上传则需要设置
(write_enable设置为YES时才生效)
31 anon_mkdir_write_enable=YES匿名用户可以建立目录则需要设置
(write_enable设置为YES时才生效)
27/31行设置为yes后,能上传文件,创建文件夹,但不能删,不能改名
(注意给/var/ ftp/pub 写权限)
添加行anon_other_write_enable=YES匿名用户可以建立/删除、更名目录权限
(write_enable设置为YES时才生效)
anon_root=/var/ftp 匿名用户login后所在目录,默认值是/var/ftp
上机实验之本地用户:
local_enable=YES接受本地用户
write_enable=YES是否对登录用户开放写权限,上传!(全局设置)
local_umask=022本地用户上传文件的权限属性(755)
常见问题解决方法:
注意:/var/ftp目录不能修改权限,否则匿名用户无法正常登陆,只能改/var/ftp/pub,如果匿名用户登陆主目录该在了其他位置,也是一样不能给主目录写的权限,如
果允许匿名用户上传,可在主目录中新建一目录再给写权限
Q1)我能把用户限制在他的家(home)目录里吗?
A)能,设置chroot_local_user=YES就行了。
Q2)为什么设置了chroot_local_user=YES后,符号链接(symlink)就不起作用了呢?
A)这是chroot()这种安全机制如何工作的结果。可选地,看一下硬连接(hard links),或者,你用的是“现
代的”Linux,看一下强大的"mount --bind"命令。
Q3) vsftpd支持限制用户连接数吗?
A1)是的,间接地。vsftpd是一个基于inetd的服务。如果你使用流行的xinetd,它会支持per-service per-IP 的连接限制。"EXAMPLE"目录里有这样的一个例子。
A2)如果你以"standalone"方式运行vsftpd(方法是设置listen=YES),你可以研究一下max_clients=10这样的设置。
Q4)求助!我得到了"refusing to run with writable anonymous root"错误信息。
A) vsftpd是不允许“危险(不安全)”的配置的。出现这个错误信息的原因通常是ftp的家(home)目录的属主
权限不正确。家(home)目录的属主不应该是ftp用户自己,而且ftp用户也不能有写的权限。解决的方法是:chown root ~ftp; chmod -w ~ftp
Q5)求助!我得到了"str_getpwnam"错误信息。
A)最有可能的原因是在你的系统中不存在那个被配置成'nopriv_user'的用户(一般是'nobody') 。vsftpd需
要通过它以最低的权限运行。
Q6)求助!本地用户无法登录。
A)有几种可能的问题导致无法登录。
A1)默认情况下,vsftpd只允许匿名用户(anonymous)登录。在你的/etc/vsftpd.conf配置文件中加入
local_enable=YES就可以让本地用户登录了。
A2) vsftpd需要与PAM联系(运行"ldd vsftpd"检查结果中有没有libpam可以确定这个). 如果vsftpd需要PAM支持, 你必须为vsftpd服务准备一个PAM文件. 在"RedHat"目录下有一个为RedHat系统准备的PAM 文件的例子,把它放在/etc/pam.d目录下。
A3)如果vsftpd不需要PAM, 那么会有多种原因导致这种情况. 用户的shell在/etc/shells文件中吗? 如果你使用shadow passwd,那么include路径中有没有shadow.h文件?
A4)如果你没有用PAM, vsftpd会用自己的方法检查用户的shell是否合法. 如果想用一个非法的shell(这样用户就只能用FTP登录),你可以在配置文件中加入check_shell=NO.
Q7)求助!上传或其他“写”命令都报"500 Unknown command.".
A)默认情况下”写“命令(上传和建新目录等)都是被禁止的. 这是一种安全的方法. 要允许写命令需要在配置文件/etc/vsftpd.conf中加入write_enable=YES.
Q8)求助!chroot_local_user这个选项里有什么安全隐患?
A)首先注意其他ftp服务器也有同样的隐患。这是个一般性的问题。这个问题不是很严重,但它是这样的:有些人使不被信任的ftp帐户具有了全部的shell访问权限。如果这些帐户可以上传文件,那就会有一点风险。一个坏用户就可以控制作为其家目录的文件系统的根目录。FTP进程也许会使一些配置文件被访问到,例如/etc/some_file。使用chroot(),这个文件就处于此用户的控制之下。vsftpd非常在意这些安全问题。但是,系统的libc也许想打开语言配置文件或其他的什么配置......
Q9)求助!上传后的文件权限是-rw-------。
A1)根据上传用户是本地用户还是匿名用户,修改local_umask或anon_umask选项。例如,设置anon_umask=022指定匿名上传的文件权限为-rw-r--r--。注意,22前面的0不能少。
A2)也可以看看vsftpd.conf的man帮助中的新选项file_open_mode。
Q10)求助!我如何集成LDAP用户登录?
A)使vsftpd结合PAM,配置PAM使用LDAP认证。
Q11)求助!vsftpd可以配置成虚拟主机(virtual hosting)吗?
A1)可以。如果你使用xinetd方式运行vsftpd,可以将xinetd绑定到几个不同的IP地址。针对每一个IP
地址,xinetd使用不同的配置文件启动vsftpd。这样,你就能在每个IP上配置不同的vsftpd服务。
A2)也可以用standalone方式运行多个vsftpd实例。使用选项listen_address=x.x.x.x设置虚拟IP。
Q12)求助!vsftpd支持虚拟用户(virtual users)吗?
A)支持,通过PAM集成。在/etc/vsftpd.conf中设置guest_enable=YES,这样的效果是所有非匿名用户的成功登录都映射成guest_username指定的本地用户。然后,使用PAM和(例如:)它的pam_userdb 模块,就可以提高基于外部用户库(即不使用/etc/passwd)的认证。注意:当guest_enable生效后会有一个限制,就是本地用户也被映射到guest_username(译者:也就是说虚拟用户与本地用户不能同时使用)。EXAMPLE目录里有配置虚拟用户的例子。
Q13)求助!vsftpd支持不同的用户使用不同的配置吗?
A)支持,而且功能强大。看man帮助里的user_config_dir选项。
Q14)求助!我可以把vsftpd的数据连接(data connections)限制到指定范围的端口吗?
A)可以。看配置选项pasv_min_port和pasv_max_port。
Q15)求助!我看到了"OOPS: chdir"这样的信息。
A)如果这是匿名用户在登录,就检查系统用户ftp的家目录是否正确。如果你使用了anon_root这个选项,也要检查该选项是否正确。
Q16)求助!vsftpd显示的是GMT时间,而不是本地时间!
A)这个可以通过设置use_localtime=YES来解决。
Q17)求助!我能禁用某些FTP命令吗?
A)可以。有一些单独的选项(比如dirlist_enable),或者可以通过cmds_allowed选项指定允许的命令集。
Q18)求助!我可以改变vsftpd的工作端口吗?
A1)可以。如果以standalone方式运行vsftpd,可以用vsftpd.conf中的listen_port选项(指定端口)。
A2)可以。如果以inetd或xinetd方式运行vsftpd,那么这个问题由inetd或xinetd负责。你就必须修改inetd 或xinetd的配置文件(可能是/etc/inetd.conf或/etc/xinetd.d/vsftpd)。
Q19)求助!vsftpd可以使用LDAP服务器进行验证吗?或者使用Mysql数据库?
A)是的。vsftpd可以使用PAM进行验证,所以你需要配置PAM使用pam_ldap或pam_mysql模块。这包括安装PAM模块,然后编辑vsftpd的PAM配置文件(可能是/etc/pam.d/vsftpd)。
Q20)求助!vsftpd支持每IP限制(per-IP limits)吗?
A1)是的。如果以standalone方式运行vsftpd,可以使用max_per_ip选项。
A2)是的。如果以xinetd方式运行vsftpd,可以用xinetd的配置参数per_source。
Q21)求助!vsftpd支持带宽限制吗?
A)支持。看man帮助(vsftpd.conf.5)中的"anon_max_rate"和"local_max_rate"选项。
Q22)求助!vsftpd支持基于IP(IP-based)的访问控制吗?
A1)可以结合tcp_wrappers实现(前提是编译是加了tcp_wrappers支持)。通过设置tcp_wrappers=YES 启用它。
A2)以xinetd方式运行vsftpd,xinetd可以结合tcp_wrappers。
Q23)求助!vsftpd支持IPv6吗?
A)从版本1.2.0开始就支持了。看vsftpd.conf的man帮助。
Q24)求助!vsftpd编译失败,错误是不能找到-lcap(unable to find -lcap)。
A)安装libcap package再试。好像Debian用户遇到这个问题多一些。
Q25)求助!我的配置文件是/etc/vsftpd.conf,可是好像不起作用!
A) RedHat用户会遇到这个问题- 一些RedHat版本中vsftpd的配置文件是/etc/vsftpd/vsftpd.conf.
Q26)求助!vsftpd编译失败,报sysutil.c中有不完整的类型(types)。
A)你的系统可能不支持IPv6。要么在一个现代一些(支持IPv6)的系统中使用老版本的vsftpd(例如v1.1.3),要么等没有这个问题的版本出来。
Q27)求助!下载(尤其是大量小文件)时看到很多这样的信息:“500 OOPS: vsf_sysutil_bind”。
A) vsftpd-1.2.1已经解决了这个问题。
Q28)求助!vsftpd可以隐藏或拒绝访问某些文件吗?
A)可以。看看vsftpd.conf的man帮助中的hide_file和deny_file选项。
Q29)求助!vsftpd支持FXP吗?
A)支持。FTP服务器不需要特别配置就可以支持FXP。但由于vsftpd在IP地址上的安全限制,你可能不会成功。想放宽这种限制,可以看看vsftpd.conf的man帮助(vsftpd.conf.5)中关于pasv_promiscuous(和不太推荐使用的port_promiscuous)选项。
Q30)......
A)想进一步了解vsftpd,请阅读vsftpd.conf的man帮助和配置示例。增加了11条。
Q31)求助!我在下载时遇到“426 Failure writing network stream.”错误。
A)在v1.2.1以及更高版本的vsftpd中你应该不会遇到这个错误。如果用户试图从不常见的文件系统(比如FAT)中下载,旧版本的vsftpd就会出现这个错误,因为(这种文件系统)不支持vsftpd需要的性能特性。1.1.3及更高版本的vsftpd有一个相关的配置选项use_sendfile=NO.
Q32)求助!我在使用pam_userdb登录模块时登录过程僵死了。
A) 这是因为版本2.3的glibc和PAM交互的问题。有Debian用户已经报告了这个bug。看这里:https://www.doczj.com/doc/023857431.html,/debian-glibc/2003/debian-glibc-200309/msg00310.html
Q33)求助!vsftpd支持大文件(>2Gb?)吗?
A)支持。
Q34)求助!但是大文件支持好像不工作啊!
A1)从版本1.1.0开始就支持大文件了。
A2) Solarisp平台下的大文件支持需要版本v1.2.2。
A3) FreeBSD平台下的大文件支持需要版本v1.2.2。
A4)早期的Linux 2.6 内核在大文件支持上有bug -用v2.6.6或更新版本的内核。
A5)你能保证你的FTP客户端可以正确的支持大文件吗?
Q35)求助!Help! 内置的vsftpd监听器死掉(崩溃)了!
A) vsftpd v1.2.2修复了这个bug。问题还存在但似乎只在特定的平台上才频繁出现。例如,Fedora Core 1 -怀疑是启用了NPTL的内核和glibc-2.3触发了这个问题。
Q36)求助!我在使用Solaris / Veritas时vsftpd死掉了!
A)怀疑是与Solaris / Veritas 结合使用时的bug。vsftpd-1.2.3里有一个可能的解决方法:no_log_lock=YES 详见vsftpd.conf.5。
Q37)vsftpd支持基于SSL / TLS的加密吗?
A)支持。版本v2.0.0对控制和数据连接都支持加密(喝彩!)你首先需要一个启用这些支持的vsftpd,然后激活ssl_enable这个设置。注意这里有安全问题需要考虑,请一定在使用前详细阅读vsftpd.conf.5的man帮助中ssl_enable一节。
Q83)求助!我使用FlashFXP下载文件时会发生截断。
A) FlashFXP的bug多多-尤其是启用SSL传输时。升级到v3.0RC4或更新的版本,据说已修复了这个bug。
Q39)求助!我想编译vsftpd,但我遇到了"krb5.h: no such file or directory"这个错误。
A)好像是一些RedHat系统会有这个问题。详细解释和解决办法请看后面这个链接
https://www.doczj.com/doc/023857431.html,/bugzilla/show_bug.cgi?id=111301。
Q40)求助!当我连接vsftpd时遇到了"OOPS: capset"错误。
A)用启用了SELinux的发行版时会有这个问题。解决办法是确保加载了capability这个内核模块。
Q41)求助!我遇到了"ftp: netin: Interrupted system call"错误。
A)这似乎是ftp-tls的一个bug,特别是结合了SSL并且设置了带宽限制时会发生。