1.3.4 Release Notes ------------------------ This file contains a description of the major changes to ProFTPD for the 1.3.4 release cycle, from the 1.3.4rc1 release to the 1.3.4 maintenance releases. More information on these changes can be found in the NEWS and ChangeLog files. 1.3.4c --------- + Added Spanish translation. + Fixed several mod_sftp issues, including SFTPPassPhraseProvider, handling of symlinks for REALPATH requests, and response code logging. + Fixed symlink race for creating directories when UserOwner is in effect. + Increased performance of FTP directory listings. 1.3.4b --------- + Fixed mod_ldap segfault on login when LDAPUsers with no filters used. + Fixed sporadic SFTP upload issues for large files. + Fixed SSH2 handling for some clients (e.g. OpenVMS). + New FactsOptions directive; see doc/modules/mod_facts.html#FactsOptions + Fixed build errors on Tru64, AIX, Cygwin. 1.3.4a --------- + Fixed mod_load/mod_wrap2 build issues. 1.3.4 --------- + New "NoEmptyFragments" TLSOption added; see the TLSOptions documentation for details. + Improved configure script for cross-compiling. + Reworked the proftpd.spec RPM file + Fixed mod_sql_mysql "Alarm clock" bug on FreeBSD. + New "IgnoreSFTPSetTimes" SFTPOption added; see the SFTPOptions documentation for details. + Fixed response pool use-after-free issue (CVE-2011-4130). 1.3.4rc3 --------- + The mod_ldap configuration directives have changed to a simplified version; please read the "Changes" section in README.LDAP for details. + Support for using RADIUS for authentication SSH2 logins, and for supporting the NAS-IPv6-Address RADIUS attribute. + Automatically disable sendfile support on AIX systems. + now prevents renaming/moving a file out of the limited directory. + ExtendedLog entries now written for data transfers which time out. 1.3.4rc2 --------- + Display messages work properly again. + Fixes plaintext command injection vulnerability in FTPS implementation (i.e. mod_tls). See http://bugs.proftpd.org/show_bug.cgi?id=3624 for details. + Fixes CVE-2011-1137 (badly formed SSH messages cause DoS). See http://bugs.proftpd.org/show_bug.cgi?id=3586 for details. + Performance improvements, especially during server startup/restarts. + New --enable-memcache configure option ProFTPD now provides an API for modules for using memcached servers for caching information among different proftpd server and/or across sessions. For more information, see the mod_memcache documentation in doc/modules/mod_memcache.html. + New --enable-pcre configure option The C library support for POSIX regular expressions is vulnerable to some pathological regex patterns; the glibc library in particular can be made to burn CPU with such patterns. Sites which wish to avoid such buggy C library implementations can instead use PCRE for regular expression support in ProFTPD, by using the --enable-pcre configure option. + New modules mod_tls_memcache The mod_tls_memcache module uses the new mod_memcache/memcached support in ProFTPD to use memcached servers for caching SSL session information. This can be useful, especially when clusters of proftpd servers are in used, or for preserving SSL session caches across proftpd restarts. See doc/contrib/mod_tls_memcache.html for more details on this module. + New configuration directives: MaxCommandRate Some clients send FTP commands too quickly. The new MaxCommandRate directive is used to detect and to throttle such malicious clients; it also generates an event that can be used by the mod_ban module for banning these clients. See doc/modules/mod_core.html#MaxCommandRate. ProcessTitles By default, proftpd changes the process title for session processes to include the authenticated user name and the FTP command being handled, including the paths to files being downloaded. The new ProcessTitles directive can be used to modify proftpd's behavior with regard to this session process title changing. See doc/modules/mod_core.html#ProcessTitles for more info. SQLNamedConnectInfo Some sites wish to have mod_sql connections to multiple different databases simultaneously, e.g. one connection for retrieving user data and a separate connection for logging. To support such sites, the new SQLNamedConnectInfo directive can be used to create "named connection". These "named connections" can then be used in a SQLNamedQuery, i.e. you can specify the named connection that a SQLNamedQuery is to use when it is expected. More information can found at doc/contrib/mod_sql.html#SQLNamedConnectInfo. TraceOptions The TraceLog can provide very detailed information, especially when diagnosing an issue. To aid in such diagnoses, the new TraceOptions directive can be used to add more information to the TraceLog, such as client/server IP addresses (if available), and timestamps with millisecond granularity. The documentation at doc/modules/mod_core.html#TraceOptions has the details. + The following utilities are now installed under $prefix/bin/ by the 'make install' target: ftpasswd, ftpmail, ftpquota + Changed configuration directives: BanOnEvent The mod_ban module's BanOnEvent directive now supports a few more events, namely 'MaxCommandRate' and 'UnhandledCommand'. These events can be used to ban clients which send commands too quickly, or which send too many unhandled/unknown commands. ExtendedLog For some LogFormat variables (e.g. %E, %I, %O) it is useful to log them when then session exits. The mod_sql module has had the ability to log at session exit for quite some time. The ExtendedLog directive can how log at session exit as well, using the new "EXIT" command class. LogFormat The LogFormat directive now supports a couple of new variables: %E variable, for end-of-session reason %H variable, for IP address of server handling session These are listed in the LogFormat docs; see doc/modules/mod_log.html#LogFormat. PathAllowFilter, PathDenyFilter The PathAllowFilter and PathDenyFilter directives now support an optional flags parameter, which can be used to specify e.g. case-insensitive evaluation of the configured regular expression. For example: PathDenyFilter .jpg$ [NC] See doc/modules/mod_core.html#PathAllowFilter for more details. SFTPOptions The mod_sftp module's SFTPOptions directive supports a new 'IgnoreSFTPSetPerms' option. This option is similar to the existing 'IgnoreSFTPUploadPerms'; it causes mod_sftp to silently ignore the SFTP client's attempts to change file permissions. See doc/contrib/mod_sftp.html#SFTPOptions. SFTPPAMOptions The SFTPPAMOptions directive for the mod_sftp_pam module now supports a 'NoInfoMsgs' option, which disables the sending of informational messages from the PAM library to the connecting SSH client. This option can be used to make mod_sftp_pam behavior like OpenSSH with regard to PAM support. SQLNamedQuery The SQLNamedQuery directive now supports an optional "named connection" name, for supporting multiple database connections. See the doc/contrib/mod_sql.html#SQLNamedConnectInfo docs for more information. TLSSessionCache The TLSSessionCache directive from the mod_tls module can now be used to explicitly configure the session cache timeout when OpenSSL's internal session caching mechanism (used by default) is being used. See doc/contrib/mod_tls.html#TLSSessionCache for details. Trace The Trace directive can now to be used to specify a range of trace channel log levels, rather than simply specifying the maximum log level for a channel. For example, to see only messages from log levels 5 to 8, you would do: Trace DEFAULT:5-8 This is documented in the Trace directive documentation, at doc/modules/mod_core.html#Trace. + New documentation: doc/howto/ConnectionACLs.html doc/utils/ftpasswd.html doc/utils/ftpcount.html doc/utils/ftpdctl.html doc/utils/ftpquota.html doc/utils/ftpscrub.html doc/utils/ftptop.html doc/utils/ftpwho.html + Developer/API Changes The following functions have been removed, as they are not used anywhere and should not be being used: pr_response_send_ml() pr_response_send_ml_start() pr_response_send_ml_end() The following function has been renamed/moved: end_login() is now pr_session_end() A related new function, pr_session_disconnect() is added. This new function allows the caller to specify a reason code indicating why the session is ending, as well as support for an optional string for more details about the reason for ending the session. 1.3.4rc1 --------- + Fixed Telnet IAC stack overflow vulnerability (ZDI-CAN-925) + Fixed directory traversal bug in mod_site_misc (CVE-2010-3867) + Fixed sql_prepare_where() buffer overflow (Bug#3536) + Added Japanese translation + Many mod_sftp bugfixes + Fixed SSL_shutdown() errors caused by OpenSSL 0.9.8m and later + Fixed handling of utmp/utmpx format changes on FreeBSD + Automatic detection of MySQL, Postgres library and header file locations + Added support for SMTP authentication in ftpmail script + Updated fnmatch implementation, using glibc-2.9 version. + Overhauled mod_ldap configuration directives, making mod_ldap easier to configure. Previous configurations must be updated. See README.LDAP for details. + New modules: mod_copy This module provides the SITE CPFR and SITE CPTO commands, for allowing a client to copy files from one location to another on the server, without requiring downloads/uploads. See doc/contrib/mod_copy.html for details. mod_deflate This module provides support for MODE Z, which uses compression to reduce the number of bytes required for data transfers and directory lists. See doc/contrib/mod_deflate.html for more information. Depending on the data being transferred, clients can see quite a difference in the speed; see: http://www.smartftp.com/support/kb/file.php?f=192 for some performance numbers. mod_ifversion This module allows for version-specific configuration sections of the proftpd config file. It is useful for using the same proftpd config across multiple servers where different proftpd versions may be in use. See doc/contrib/mod_ifversion.html for examples. mod_qos This module allows administrators to set networking-specific "Quality of Service" (QoS) bits on the packets used by the server. More information can be found in doc/contrib/mod_qos.html + New configuration directives: Protocols This directive can be used to specify which protocols can be used by a connecting client. It is designed to work with mod_ifsession, so that it can be set on a per-user/group/class basis. See doc/modules/mod_core.html#Protocols for details. ScoreboardMutex This directive is used to explicitly configure the patch to a "mutex" file used for scoreboard locking; this file is used to increase proftpd's performance under load. See: http://bugs.proftpd.org/show_bug.cgi?id=3208 for more information. SFTPClientAlive This directive is used to enable a protocol-level "keep alive" check for mod_sftp SSH connections. More details can be found in doc/contrib/mod_sftp.html#SFTPClientAlive. WrapOptions The mod_wrap2 module has additional behaviors such as checking the allow/deny rules at client connect time (versus after login), and checking the allow/deny rules using all of a client's DNS names. The WrapOptions directive is used to configure these behaviors; see doc/contrib/mod_wrap2.html#WrapOptions for more information. + Changed configuration directives: BanOnEvent The BanOnEvent directive of the mod_ban module now supports LoginRate events; see doc/contrib/mod_ban.html#BanOnEvent. This lets mod_ban reject clients which are logging in too quickly. ListOptions The mod_ls module now supports the -c and -u options for the LIST command. The ListOptions directive handles these options as well. See the ls(1) man page for more details on these options. In addition, the NoErrorIfAbsent ListOption can be used to configure whether mod_ls returns a 226 response code, rather than the default 450 response code, for a LIST/NLST command for a path which does not exist. Some clients are sensitive to this use case. LogFormat The LogFormat directive now supports two additional variables: %I for logging the total number of bytes read from the network, and %O for logging the total number of bytes written to the network. Note that these values do NOT include any bytes for the TCP packet overhead. The mod_sql module's SQLLog directive also supports these variables. These variables can be used to get a better idea of network traffic per session/client, as well as for comparing the relative network traffic of e.g. FTPS versus SFTP. SFTPOptions The mod_sftp module did not interoperate well with old ssh.com or with Tectia SSH clients. Support for these clients was added to mod_sftp via the OldProtocolCompat SFTPOption (Bug#3480). See doc/contrib/mod_sftp.html#SFTPOptions for more information. TLSOptions When verifying a client's certificate, the mod_tls module could be configured to check the iPAddress and/or dNSName portions of the SubjectAltName section of the client certificate, via the TLSOptions directive. A new CommonNamedRequired TLSOptions is now supported, which tells mod_tls to check the CommonName (CN) section of the client certificate. See doc/contrib/mod_tls.html#TLSOptions for details. UseSendfile The UseSendfile directive can now be used in sections and .ftpaccess files. This means that sendfile(2) support can be disabled on filesystems which do not support it, while still be used on other parts of the filesystem which can support it. The UseSendfile directive can now also configure how many bytes of a file to send via sendfile(2) at a time; this can be either in number of bytes, or in percentage of the file size. The advantage of this is that now the ScoreboardFile (and ftptop/ftpwho) can show download progress rates when UseSendfile is enabled. See doc/howto/Sendfile.html for the full details. + Deprecated configuration directives: DisplayGoAway Support for this directive has been removed. Last Updated: $Date: 2013/03/06 17:07:46 $