[HowTo] Upgrade ProFTPD to 1.3.6rc2 Ubuntu 14.04 LTS

2 posts / 0 new
Last post
#1 Thu, 10/20/2016 - 01:57

[HowTo] Upgrade ProFTPD to 1.3.6rc2 Ubuntu 14.04 LTS


If using Ubuntu 14.04.X with the latest version of ProFTPD available via apt-get AND using mod_tls then Read Ahead. Else STOP.

Might work for other distros as well, but I did not try so I cannot say for sure if it will work.

As always, backup everything and do not attempt this on a production server. Test it on a virtual machine, or at least, do it after "rush hour" :)

ProFTPD prior to 1.3.5b is very slow to list directories when using FTP over TLS. Downloading large number of files from many sub-directories is a pain. (very very slow). The problem seems to be mod_tls. I could not find a simple way to upgrade ProFTPD anywhere, so I am writing this little mini howto, maybe it helps someone.

Login via SSH

Backup your /etc/proftpd folder just in case.

Run: service proftpd stop

Run: wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6rc2.tar.gz

Run: tar xf proftpd-1.3.6rc2.tar.gz

Run: cd proftpd-1.3.6rc2

Run: apt-get install build-essential libmysqlclient15-dev libpam-dev debhelper zlib1g-dev libpq-dev libldap2-dev libssl-dev libwrap0-dev libcap-dev autotools-dev dpatch libacl1-dev libattr1-dev unixodbc-dev libsqlite3-dev

Run: proftpd -V

It will display something like:

Built With: configure 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'FFLAGS=-g -O2' 'GCJFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' '--prefix=/usr' '--with-includes=/usr/include/postgresql:/usr/include/mysql' '--mandir=/usr/share/man' '--sysconfdir=/etc/proftpd' '--localstatedir=/var/run' '--libexecdir=/usr/lib/proftpd' '--enable-sendfile' '--enable-facl' '--enable-dso' '--enable-autoshadow' '--enable-ctrls' '--with-modules=mod_readme' '--enable-ipv6' '--enable-nls' '--enable-memcache' '--with-lastlog=/var/log/lastlog' '--enable-pcre' '--build' 'x86_64-linux-gnu' '--with-shared=mod_unique_id:mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_sql_sqlite:mod_sql_odbc:mod_dynmasq:mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap:mod_wrap2:mod_wrap2_file:mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_copy:mod_deflate:mod_ifversion:mod_tls_memcache:mod_geoip:mod_exec:mod_sftp:mod_sftp_pam:mod_sftp_sql:mod_shaper:mod_sql_passwd:mod_ifsession' 'build_alias=x86_64-linux-gnu'

Copy everything from "configure" to "gnu" to clipboard. (it may be a little different for you). Add a ./ in front

Run: ./configure 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'FFLAGS=-g -O2' 'GCJFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' '--prefix=/usr' '--with-includes=/usr/include/postgresql:/usr/include/mysql' '--mandir=/usr/share/man' '--sysconfdir=/etc/proftpd' '--localstatedir=/var/run' '--libexecdir=/usr/lib/proftpd' '--enable-sendfile' '--enable-facl' '--enable-dso' '--enable-autoshadow' '--enable-ctrls' '--with-modules=mod_readme' '--enable-ipv6' '--enable-nls' '--enable-memcache' '--with-lastlog=/var/log/lastlog' '--enable-pcre' '--build' 'x86_64-linux-gnu' '--with-shared=mod_unique_id:mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_sql_sqlite:mod_sql_odbc:mod_dynmasq:mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap:mod_wrap2:mod_wrap2_file:mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_copy:mod_deflate:mod_ifversion:mod_tls_memcache:mod_geoip:mod_exec:mod_sftp:mod_sftp_pam:mod_sftp_sql:mod_shaper:mod_sql_passwd:mod_ifsession' 'build_alias=x86_64-linux-gnu'

Remember to paste your configure and not the above one. Wait for it to finish.

Run: make

In case of errors, search the web for the error to see which dependencies are missing. If no errors reported, go to next step.

Run: make install

Run: service proftpd start

If everything is in order, you should have the latest version installed and running.

Also, in case you did not know, in your /etc/proftpd/modules.conf, comment #LoadModule mod_copy.c to prevent a serious security issue.

Hope it help someone.

Tue, 10/25/2016 - 07:43
unborn's picture

Hi, please dont take this offensive or anything like it - but you should update your server to latets distro release.. by any chance can you do that?

Configuring/troubleshooting Debian servers is always great fun

Contact me directly ? GPG/PGP supported!