vsftpd 2.3.5
[tomato.git] / release / src-rt-6.x.4708 / router / vsftpd / FAQ
blob59fe56bf1750d755c262c2b6ddb6a4fe9b9cb597
1 vsftpd frequently asked questions!!
2 -----------------------------------
4 Q) Can I restrict users to their home directories?
5 A) Yes. You are probably after the setting:
6 chroot_local_user=YES
8 Q) Why don't symlinks work with chroot_local_user=YES?
9 A) This is a consequence of how chroot() security works. As alternatives,
10 look into hard links, or if you have a modern Linux, see the powerful
11 "mount --bind".
13 Q) Does vsftpd support a limit on the number of users connected?
14 A1) Yes, indirectly. vsftpd is an inetd-based service. If use the popular
15 "xinetd" as your inetd, this supports per-service per-IP connection limits.
16 There is an example of this in the "EXAMPLE" directory.
17 A2) If you run vsftpd in "standalone" mode with the setting listen=YES, then
18 you can investigate the setting (e.g.):
19 max_clients=10
21 Q) Help! I'm getting the error message "refusing to run with writable root".
22 A) vsftpd is protecting against dangerous configurations. The cause of this
23 message is usually dodgy ownership of the ftp home directory. The home
24 directory should NOT be owned by the ftp user itself. Neither should it
25 be writable by the ftp user. A way to fix this is:
26 chown root ~ftp; chmod -w ~ftp
27 Another cause might be an attempt to use chroot_local_user without setting up
28 the directory ownership properly.
30 Q) Help! I'm getting the error message "str_getpwnam".
31 A) The most likely cause of this is that the user that is configured as the
32 'nopriv_user' setting (often 'nobody') does not exist on your system. vsftpd
33 needs this user to run bits of itself with no privilege.
35 Q) Help! Local users cannot log in.
36 A) There are various possible problems.
37 A1) By default, vsftpd disables any logins other than anonymous logins. Put
38 local_enable=YES in your /etc/vsftpd.conf to allow local users to log in.
39 A2) vsftpd tries to link with PAM. (Run "ldd vsftpd" and look for libpam to
40 find out whether this has happened or not). If vsftpd links with PAM, then
41 you will need to have a PAM file installed for the vsftpd service. There is
42 a sample one for RedHat systems included in the "RedHat" directory - put it
43 under /etc/pam.d
44 A3) If vsftpd didn't link with PAM, then there are various possible issues. Is
45 the user's shell in /etc/shells? If you have shadowed passwords, does your
46 system have a "shadow.h" file in the include path?
47 A4) If you are not using PAM, then vsftpd will do its own check for a valid
48 user shell in /etc/shells. You may need to disable this if you use an invalid
49 shell to disable logins other than FTP logins. Put check_shell=NO in your
50 /etc/vsftpd.conf.
52 Q) Help! Uploads or other write commands give me "500 Unknown command.".
53 A) By default, write commands, including uploads and new directories, are
54 disabled. This is a security measure. To enable writes, put write_enable=YES
55 in your /etc/vsftpd.conf.
57 Q) Help! What are the security implications referred to in the
58 "chroot_local_user" option?
59 A) Firstly note that other ftp daemons have the same implications. It is a
60 generic problem.
61 The problem isn't too severe, but it is this: Some people have FTP user
62 accounts which are not trusted to have full shell access. If these
63 accounts can also upload files, there is a small risk. A bad user now has
64 control of the filesystem root, which is their home directory. The ftp
65 daemon might cause some config file to be read - e.g. /etc/some_file. With
66 chroot(), this file is now under the control of the user. vsftpd is
67 careful in this area. But, the system's libc might want to open locale
68 config files or other settings...
70 Q) Help! Uploaded files are appearing with permissions -rw-------.
71 A1) Depending on if this is an upload by a local user or an anonymous user,
72 use "local_umask" or "anon_umask" to change this. For example, use
73 "anon_umask=022" to give anonymously uploaded files permissions
74 -rw-r--r--. Note that the "0" before the "22" is important.
75 A2) Also see the vsftpd.conf.5 man page for the new "file_open_mode"
76 parameter.
78 Q) Help! How do I integrate with LDAP users and logins?
79 A) Use vsftpd's PAM integration to do this, and have PAM authenticate against
80 an LDAP repository.
82 Q) Help! Does vsftpd do virtual hosting setups?
83 A1) Yes. If you integrate vsftpd with xinetd, you can use xinetd to bind to
84 several different IP addresses. For each IP address, get xinetd to launch
85 vsftpd with a different config file. This way, you can get different behaviour
86 per virtual address.
87 A2) Alternatively, run as many copies as vsftpd as necessary, in standalone
88 mode. Use "listen_address=x.x.x.x" to set the virtual IP.
90 Q) Help! Does vsftpd support virtual users?
91 A) Yes, via PAM integration. Set "guest_enable=YES" in /etc/vsftpd.conf. This
92 has the effect of mapping every non-anonymous successful login to the local
93 username specified in "guest_username". Then, use PAM and (e.g.) its pam_userdb
94 module to provide authentication against an external (i.e. non-/etc/passwd)
95 repository of users.
96 Note - currently there is a restriction that with guest_enable enabled, local
97 users also get mapped to guest_username.
98 There is an example of virtual users setup in the "EXAMPLE" directory.
100 Q) Help! Does vsftpd support different settings for different users?
101 A) Yes - in a very powerful way. Look at the setting "user_config_dir" in the
102 manual page.
104 Q) Help! Can I restrict vsftpd data connections to a specific range of ports?
105 A) Yes. See the config settings "pasv_min_port" and "pasv_max_port".
107 Q) Help! I'm getting the message "OOPS: chdir".
108 A) If this is for an anonymous login, check that the home directory for the
109 user "ftp" is correct. If you are using the config setting "anon_root", check
110 that is correct too.
112 Q) Help! vsftpd is reporting times as GMT times and not local times!
113 A) This behaviour can be changed with the setting "use_localtime=YES".
115 Q) Help! Can I disable certain FTP commands?
116 A) Yes. There are some individual settings (e.g. dirlist_enable) or you can
117 specify a complete set of allowed commands with "cmds_allowed".
119 Q) Help! Can I change the port that vsftpd runs on?
120 A1) Yes. If you are running vsftpd in standalone mode, use the "listen_port"
121 directive in vsftpd.conf.
122 A2) Yes. If you are running vsftpd from an inetd or xinetd program, this
123 becomes an inetd or xinetd problem. You must change the inetd or xinetd
124 configuration files (perhaps /etc/inetd.conf or /etc/xinetd.d/vsftpd)
126 Q) Help! Will vsftpd authenticate against an LDAP server? What about a
127 MySQL server?
128 A) Yes. vsftpd uses PAM for authentication, so you need to configure PAM
129 to use pam_ldap or pam_mysql modules. This may involve installing the PAM
130 modules and then editing the PAM config file (perhaps /etc/pam.d/vsftpd).
132 Q) Help! Does vsftpd support per-IP limits?
133 A1) Yes. If you are running vsftpd standalone, there is a "max_per_ip"
134 setting.
135 A2) Yes. If you are running vsftpd via xinetd, there is an xinetd config
136 variable "per_source".
138 Q) Help! Does vsftpd support bandwidth limiting?
139 A) Yes. See vsftpd.conf.5 man page and investigate settings such as
140 "anon_max_rate" and "local_max_rate".
142 Q) Help! Does vsftpd support IP-based access control?
143 A1) Yes. vsftpd can integrate with tcp_wrappers (if built with this support).
144 It is enabled with the setting "tcp_wrappers=YES".
145 A2) Yes. vsftpd can be run from xinetd, which supports tcp_wrappers
146 integration.
148 Q) Help! Does vsftpd support IPv6?
149 A) Yes, as of version 1.2.0. Read the vsftpd.conf.5 man page.
151 Q) Help! vsftpd doesn't build, it fails with an error about being unable to
152 find -lcap.
153 A) Install the libcap package and retry the build. Seems to affect Debian
154 users a lot.
155 A) Install the libcap-devel. This certainly affects Fedora.
157 Q) Help! I've put settings in /etc/vsftpd.conf, but they are not taking
158 effect!
159 A) This is affecting some RedHat users - some RedHat versions put the config
160 file in /etc/vsftpd/vsftpd.conf.
162 Q) Help! vsftpd doesn't build, it complains about problems with incomplete
163 types in sysutil.c.
164 A) Your system probably doesn't have IPv6 support. Either use a more modern
165 system, use an older vsftpd (e.g. v1.1.3), or wait for a version of vsftpd
166 without this problem!
168 Q) Help! I'm getting messages along the lines of 500 OOPS: vsf_sysutil_bind
169 when trying to do downloads (particularly lots of small files).
170 A) vsftpd-1.2.1 should sort this out.
172 Q) Help! Does vsftpd support hiding or denying certain files?
173 A) Yes. Look at the hide_file and deny_file options in the manual page.
175 Q) Help! Does vsftpd support FXP?
176 A) Yes. An FTP server does not have to do anything special to support FXP.
177 However, you many get tripped up by vsftpd's security precautions on IP
178 addresses. In order to relax these precautions, have a look in the
179 vsftpd.conf.5 for pasv_promiscuous (and the less advisable port_promiscuous).
181 Q) Help! I'm getting the error "426 Failure writing network stream." on
182 downloads.
183 A) You shouldn't see this with v1.2.1 or newer versions of vsftpd. Older
184 versions of vsftpd can give this error if the user tries to download
185 something from an unusual filesystem (e.g. FAT), which don't support
186 performance features used by vsftpd. With vsftpd-1.1.3 and newer there is a
187 config workaround, use_sendfile=NO.
189 Q) Help! I'm using the pam_userdb login module and the login hangs.
190 A) This could be a bad interaction with glibc version 2.3 and PAM. A Debian
191 user reported this. The initial report is here:
192 http://lists.debian.org/debian-glibc/2003/debian-glibc-200309/msg00310.html
194 Q) Help! Does vsftpd support large files (>2Gb?).
195 A) Yes, it does.
197 Q) Help! Well, large file support doesn't seem to be working, then!
198 A1) Large file support first appeared in v1.1.0.
199 A2) Solaris large file support wasn't fixed until v1.2.2.
200 A3) FreeBSD large file support wasn't fixed until v1.2.2.
201 A4) The early Linux 2.6 kernels had a bug in this area - use v2.6.6 or newer.
202 A5) Are you sure your FTP _client_ correctly supports large files?
204 Q) Help! The built-in vsftpd listener is hanging or crashing!
205 A) A bug in this area is fixed in vsftpd v1.2.2. The problem has always existed
206 but seems to frequently trigger only on certain platforms. For example,
207 Fedora Core 1 - the suspected trigger is a glibc-2.3 platform, possibly in
208 combination with a NPTL-enabled kernel.
210 Q) Help! I'm using Solaris / Veritas and vsftpd is hanging!
211 A) Suspected bug with the Solaris / Veritas combination. With vsftpd-1.2.3
212 there is a possible workaround: no_log_lock=YES in your vsftpd.conf.5.
214 Q) Does vsftpd support SSL / TLS based encryption?
215 A) Yes, as of v2.0.0, this is supported for the control and data connections
216 (hurrah). You need a build of vsftpd with this support enabled, and then you
217 need to activate the ssl_enable setting. NOTE there are security considerations
218 with this support. Please make sure to read the ssl_enable section in the
219 vsftpd.conf.5 man page thoroughly before using.
221 Q) Help! I'm using FlashFXP and getting truncated files on download.
222 A) FlashFXP is buggy - particularly with SSL transfers. Upgrade to v3.0RC4
223 or newer, which is reported to be fixed.
225 Q) Help! I'm trying to build vsftpd, and I get an error along the lines of
226 "krb5.h: no such file or directory".
227 A) Yes, seems to be a problem with some RedHat setups. See
228 http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=111301 for details and
229 suggested workarounds.
231 Q) Help! I'm getting the error "OOPS: capset" when I try to connect to vsftpd.
232 A) This is an issue with SELinux enabled distributions. The solution is to
233 make sure the capability kernel module is loaded.
235 Q) Help! I'm getting the error "ftp: netin: Interrupted system call".
236 A) Seems to be a bug in ftp-tls, particularly with SSL transfers with
237 bandwidth limiting in effect.
239 Q) Help! When trying SSL transfers, users log in and are no longer restricted
240 to their home directory! They can browse the entire filesystem!
241 A) Most likely, your FTP client is in fact using the SSH protocol rather than
242 the FTP protocol - so sshd is in control and not vsftpd!
243 A) Of course, make sure you turn on the chroot_local_user option!!
245 Q) Help! I'm getting connections dropped whilst using gFTP for an SSL
246 connection.
247 A) The version of gFTP on my Fedora Core 10 installation appears to send the
248 "SIZE" command plain text during an SSL connection, which obviously breaks the
249 SSL connection.
251 Q) Help! SSL data connections are not working.
252 A) As of v2.1.0, vsftpd only accepts data connections that are reused sessions
253 of the control connection. This is a security measure. Unfortunately, not all
254 FTP clients reuse sessions (e.g. curl). You can disable this requirement by
255 changing require_ssl_reuse to NO.
257 Q) Help! My LDAP / mysql / etc. authentication and / or username lookup are
258 failing!
259 A) As of v2.2.0, the built-in sandboxing uses network isolation on Linux. This
260 may be interfering with any module that needs to use the network to perform
261 operations or lookups. Try changing isolate_network to NO.
263 Q) Blah.. blah..
264 A) For a good idea of what vsftpd can do, read the vsftpd.conf.5 man page
265 and the EXAMPLES.