vsftpd 常见问题(FQA)

概述:使用vsftpd常见的问题



vsftpd 常见问题FQA
-----------------------------------


Q) 我能限制用户的根目录?
A) 当然可以,通过如下设置
chroot_local_user=YES


Q) 为啥不用symlinks(符号链接)与你chroot_local_user=YES?
A) chroot()安全工作是一个序列。作为可选方案,可以去研究hard links(硬链接),或者你有现代Linux系统。可以查看"mount --bind"强大功能


Q) vsftpd支持限制连接用户数量?
A1) 当然,间接地,vsftpd是一个基于端口监视的服务,如果使用流行"xineted"作为你端口监视。它是支持每个服务每个端口的连接限制。
A2)如果你在“standalone”模式下运行vsftpd,并设置listen=YES,那么你可以设置max_clients=10


Q) "refusing to run with writable root" 异常信息
A) vsftpd正在对抗危险的配置。导致这个消息的经常是访问除了自己根目录以外的文件或文件夹。这个目录应该不属于当前ftp用户。也就是不能
被当前用户写。有个方法去解决这个问题:chown root ~ftp; chmod -w ~ftp
其他原因导致的,可能尝试使用chroot_local_user,而没有合理设置目录所有者关系




Q) "str_getpwnam" 异常信息.
A)最有可能导致这个信息是该用户被配置成“nopriv_user”(表示不存在你系统上)。vsftpd需要这个用户没有权限运行它自己东西。


Q) 本地用户不能登录
A) 这个很多种原因
A1) 在默认情况下,vsftpd只允许匿名登录。在你的/etc/vsftpd/vsftpd.conf设置local_enable=YES(表示本地用户可以登录)
A2) vstpd 尝试与PAM进行连接。(运行"ldd vsftpd" 然后寻找libpam,看是否发生没有)如果vsftpd连接PAM,那么你将会需要为vsftpd安装pam文件.
A3) 如果vsftpd并没有连接PAM,那么这里有很多可能问题,用户shell在/ect/shells 文件中吗?如果你有阴影口令,"shadow.h"文件是否包含路径中
A4) 如果没有使用PAM,vsftpd将会自己检查有效性,也就是用户shell是否在/etc/shells中。如果你使用无效shell,你需要关闭vsftpd自检功能。
请在/etc/vsftpd/vsftpd.conf设置 check_shell=NO


Q) 上传或其他写命令报错"500 Unknown command"
A) 在默认情况下,写命令,包括上传和新目录都是不可用的。这是一个安全策略,为了开启写功能,请在/etc/vsftpd/vsftpd.conf 设置write_enable=YES


Q) 这里有一个安全涉及"chroot_local_user"?
A) 首先注意其他ftp进程有相同的含义,这一个通用问题
首先这个问题不会很严重,但是,有些具有ftp用户账户,它并没有所有shell的权限。如果这些账户只是上传文件。这是很小的风险。一个不好情况,一个用户现在
具有控制整个文件系统root,也就是它的根目录。这样ftp 进程中导致一些配置文件可以被读取到。例如/etc/一些文件.chroot()。这个文件现在处于该用户
控制之下。vsftpd非常小心这块。但是系统库可能想要打开本地配置文件。或其他设置。。。




Q) 上传文件被限制 -rw-------.

A1) 设置文件上传的权限可以通过设置本地用户"local_umask", 匿名用户"anon_umask"。举个栗子,使用"anon_umask=022" 给出匿名上传文件的权限-rw-r--r--,
顺序很重要,0必须在22之前。
A2) 也可以查看 vsftpd-conf.5 新的属性 "file_open_mode"


Q) 如何整合LDAP 用户和登录?
A) 使用vsftpd的PAM就可以整合,PAM认证可以通过LDAP库存。


Q) vsftpd 可以做虚拟主机设置?
A1) 当然,如果你用vsftpd整合xinetd,可以使用xinetd 绑定多个不同的ip 地址,对于每一个ip 地址,使得xinetd启动vsftpd不同配置文件。通过这个方法,可以得到
每个虚拟地址的不同行为。
A2) 可选的,运行很多 vsftpd 副本,在单独模式下,使用"listen_address=x.x.x.x"设置虚拟IP


Q) vsftpd 支持虚拟用户使用?
A) 当然,通过PAM整合,设置在/etc/vsftpd/vsftpd.conf,它将可以影响映射每一个非匿名用户登录到本地用户,通过"guest_username"设置,使用PAM,它的pam_userdb
模块去提供认证一个外部用户(不在 /etc/passwd文件中)
注意:当前有个限制就是如果guest_enable开启,那么本地用户也会映射到guest_username中。


Q) vsftpd 支持不同用户不同的配置?
A) 当然,这个非常强大功能,详情查看"user_config_dir" 设置


Q) 可以限制vsftpd数据连接端口在某一个范围内?
A) 当然,查看设置"pasv_min_port" 和 "pasv_max_port"


Q) "OOPS: chdir"异常信息
A) 如果这个匿名登录,请检查使用用户"ftp"的根目录是否正确,如果使用配置设置"anon_root",还是检查”ftp“的根目录是否正确。


Q) vsftpd展示的时间不是本地时间而是GMT时间?
A) 这个行为可以通过设置"use_localtime=YES"


Q) 能够将FTP特定的命令不可用?
A) 当然,这里有些个人设置(例如 dirlist_enable)或者你可以定义完整允许命令的集合通过设置 "cmds_allowed"。


Q) 能够改变vsftpd运行的端口?
A1) 当然,如果你在单独模式下运行vsftpd,在配置文件设置"listen_port"
A2) 如果你vsftpd运行在inetd或者xinetd工程,这将变成inetd或xinetd问题。你必须改变inetd或xinetd配置文件
(/etc/inetd.conf 或 /etc/xinetd.d/vsftpd)


Q) vsftpd 可以认证 LDAP服务器或者 MySQL服务?
A) 当然,vsftpd使用PAM去认证。所以你需要配置PAM去使用 pam_ldap 或 pam_mysql模块。这可能涉及到安装PAM模块。然后
编辑PAM配置文件(/etc/pam.d/vsftpd)


Q) vsftpd 支持 单IP限制?
A1) 当然,你可以运行单独模式vsftpd,然后设置"max_per_ip"
A2)当然,如果你通过xinetd运行vsftpd,这里有一个xinetd配置变量"per_source"


Q) vsftpd支持带宽限制?
A) 当然,详情参考vsftpd.conf.5中"anon_max_rate" 和 "local_max_rate"


Q) vsftpd支持基于IP权限控制?
A1) 当然,vsftpd可以整合tcp_wrappers(如果你构建支持的话)
确保/etc/vsftpd/vsftpd.conf "tcp_wrappers=YES"
A2) 当然, vsftpd 整合xinetd ,当然xinetd也是支持tcp_wrappers




Q) vsftpd 支持 IPv6?
A) 当然,从版本1.2.0开始,可以读取vsftpd.conf.5文件获取详情

Q) vsftpd并没有构建,生成一个错误信息,不能够找到 -lcap 
A) 安装libcap包和获取build权限,好像影响Debian用户比较多
users a lot.
A) 对于Fedora用户 安装 libcap-devel


Q) 已经在/etc/vsftpd.conf 设置好,但是好像没有作用
A) 原因是有些RedHat用户,有些RedHat版本把配置文件放到/etc/vsftpd/vsftpd.conf


Q) vsftpd不能构建,在编译sysutil.c未完成?
A) 你的系统可能不支持IPv6,你要么换个系统,或者使用老的版本,或者等待修复这个问题版本。


Q) 当下载(特别是小文件),将会报错500 OOPS:vsf_sysutil_bind 
A) vsftpd-1.2.1 应该解决了。


Q) vsftpd支持隐藏或禁止访问特定文件?
A) 当然,查看hide_file和deny_file 选项


Q) vsftpd 支持 FXP?
A) 一个FTP并不需要任何支持FXP特性,然而,可以通过在vsftpd的IP上做安全预防措施对于FXP进行拦截。为了放松这些预防措施限制,你可以
查看vsftpd.conf.5当中的pasv_promiscuous(或者 port_promiscuous)


Q) 在下载的时候出现了"426 Failure writing network stream."。
A)你应该不清楚v1.2.1或最新版本vsftpd。老的版本vsftpd可以出现这个异常,当用户尝试去下载不寻常的文件系统(例如 FAT)。这个系统vsftpd是不支持的,
vsftpd-1.1.3+有一个配置选项。use_sendfile=NO.


Q) 使用pam_userdb登录模块,然后登录挂起了
A) 这可能的原因glibc 2.3 和PAM交互出现的,一个Debian用户提交这个问题。初始提交问题的地址在
http://lists.debian.org/debian-glibc/2003/debian-glibc-200309/msg00310.html




Q) vsftpd 支持大文件?(大于2G?)
A) 当然


Q) 大文件好像不支持工作?
A1) 大文件的支持版本在v1.1.0
A2) Solaris 大文件支持直到 v1.2.2才修复.
A3) FreeBSD 大文件支持直到il v1.2.2才修复.
A4) 早期Linux2.6内核在这个地方有个bug, 使用版本v2.6.6+
A5) 你确定你ftp客户端支持大文件传输?


Q) 内置vsftpd监听器被挂起或崩溃了?
A) 这个bug在v1.2.2修复了。这个问题经常存在,但是似乎频繁触发只出现在特定平台。举个例子,
   Fedora 内核 1- 怀疑触发是glibc-2.3平台,可能合并NPTL-enabled 内核。 


Q) 使用Solaris/Veritas vsftpd会被挂起?
A)怀疑bug是Solaris、Veritas合并的时候。vsftpd-1.2.3,这里可能工作环境: no_log_lock=YES 


Q) vsftpd 支持基于SSL/TLS的加密?
A) 当然,从v2.0.0开始。它支持控制和数据连接。你需要构建支持的vsftpd,然后激活ssl_enable设置。注意
这里有个安全考虑支持。在使用之前请确保阅读了vsftpd.conf.5的ssl_enable区域相关信息。


Q) 使用FlashFXP在下载时候文件被截断了?
A) 这是FlashFXP的bug,特别是SSL传输的时候,更新到v3.0RC4+,它已经被修复了




Q) 尝试构建vsftpd,抛出异常信息:"krb5.h: no such file or directory".
A)  当然,这个问题好像与RedHat设置有关。详情参考http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=111301 


Q) 当然尝试连接vsftpd抛出异常信息: "OOPS: capset" 
A) 这个问题是SELinux开启分发。这个问题解决是确保kernel模块容器被加载了。


Q) 异常信息 "ftp: netin: Interrupted system call".

A) 这个似乎是ftp-tls的bug,特别是SSL传输时候的带宽的影响。




Q)当尝试采用SSL传输,使用登录不再限制他们根目录,他们可以访问整个文件系统
A) 很有可能,你的FTP客户端使用的是SSH协议而不是FTP协议。所以sshd不在vsftpd控制范围内
A) 当然确保你开启chroot_local_user选项 


Q) 当我使用gFTP的SSL连接vsftpd时候出现同时断开了

A) gTFP版本在Fedore内核 10安装的系统在采用SSL连接出现发送"SIZE"命令字符串。它显而易见会打破连接。


Q) SSL 数据连接没有工作?
A) v2.1.0,vsftpd只支持数据连接,它会重复使用控制连接的session。这是一个安全策略。不幸的是。并不是所有的FTP客户端
都会重复使用sessions(例如 curl),你可以设置require_ssl_reuse 为NO。


Q) 我的LADP/mysql/ 等等验证 和用户名都失败了?
A) 在v2.2.0,内嵌沙箱使用Linux网络隔离,这个可能会影响到任何需要使用网络的模块。尝试改变设置 isolate_network为NO




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值