Search code examples
debianproftpd

proFTPD install mod_exec


For dummys please:

I need to install proFTPD module mod_exec on a debian squeeze (64bit). How does it work. The documentation on the proftpd page was no help for me.

Thank you.


Solution

  • Compiling the source is the only way to get it right. By the way you'll get the latest version with important bugfixes. I've done this with these steps:

    # install build-tools and dependencies:
    aptitude install build-essential gettext make g++ libwrap0-dev libldap2-dev libmysql++-dev libpam0g-dev libssl-dev libsqlite3-dev unixodbc-dev libncurses5-dev libacl1-dev libcap-dev
    
    # download sources:
    wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
    tar -xvf proftpd-1.3.3e.tar.gz
    cd proftpd-1.3.3e
    
    # add missing module mod_vroot
    cd contrib/
    wget http://www.castaglia.org/proftpd/modules/proftpd-mod-vroot-0.9.2.tar.gz
    tar -xvf proftpd-mod-vroot-0.9.2.tar.gz
    cd ..
    
    # configure, make and install:
    ./configure --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:mod_sql:mod_sql_postgres:mod_exec --enable-ipv6 --enable-nls --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_vroot:mod_sftp:mod_sftp_pam:mod_sftp_sql:mod_shaper:mod_sql_passwd:mod_ifsession build_alias=x86_64-linux-gnu CFLAGS=-O2
    make
    make install
    

    I've used --with-modules=mod_readme:mod_sql:mod_sql_postgres:mod_exec to also include mod_sql with postgres which is maybe not necessary because it's in the --with-shared part.