Compilar e instalar Proftpd + mod_sftp en Debian
El paquete Proftpd en Debian por defecto no trae soporte para mod_sftp, en mi caso particular utilizo este en vez del Subsystem sftp de SSH, que nunca lo pude configurar a mi gusto y tampoco me provee de todas las opciones que mod_sftp pone a mi disposición.
El primer paso es instalar el source y algunas dependencias
12345 6 7 8 9 10 11 12 13 14 15 16 1718 19 20 21 22 23 24 25 26 27 28 29 | server:~# cd /usr/local/srcserver:~# aptitude install build-essential openssl libssl-dev devscriptsserver:/usr/local/src# cd proftpd-dfsg-1.3.3aserver:/usr/local/src# apt-get source proftpd-dfsgReading package lists... Done Building dependency tree Reading state information... Done Need to get 4,828 kB of source archives. Get:1 http://security.debian.org/ squeeze/updates/main proftpd-dfsg 1.3.3a-6squeeze4 (dsc) [1,426 B] Get:2 http://security.debian.org/ squeeze/updates/main proftpd-dfsg 1.3.3a-6squeeze4 (tar) [4,719 kB] Get:3 http://security.debian.org/ squeeze/updates/main proftpd-dfsg 1.3.3a-6squeeze4 (diff) [108 kB] Fetched 4,828 kB in 10s (442 kB/s) dpkg-source: info: extracting proftpd-dfsg in proftpd-dfsg-1.3.3a dpkg-source: info: unpacking proftpd-dfsg_1.3.3a.orig.tar.gz dpkg-source: info: applying proftpd-dfsg_1.3.3a-6squeeze4.diff.gz server:/usr/local/src# apt-get build-dep proftpd-dfsgReading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: dpatch libacl1-dev libattr1-dev libaudio2 libcap-dev libdrm-intel1 libdrm-radeon1 libdrm2 libgl1-mesa-dri libgl1-mesa-glx libglu1-mesa libice6 liblcms1 libltdl-dev libmng1 libncurses5-dev libodbcinstq1c2 libqt3-mt libsm6 libtool libwrap0-dev libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxmu6 libxrandr2 libxt6 libxxf86vm1 unixodbc-dev 0 upgraded, 31 newly installed, 0 to remove and 2 not upgraded. Need to get 23.3 MB of archives. After this operation, 63.6 MB of additional disk space will be used. Do you want to continue [Y/n]? Y server:/usr/local/src# cd proftpd-dfsg-1.3.3a |
server:~# cd /usr/local/src server:~# aptitude install build-essential openssl libssl-dev devscripts server:/usr/local/src# cd proftpd-dfsg-1.3.3a server:/usr/local/src# apt-get source proftpd-dfsg Reading package lists... Done Building dependency tree Reading state information... Done Need to get 4,828 kB of source archives. Get:1 http://security.debian.org/ squeeze/updates/main proftpd-dfsg 1.3.3a-6squeeze4 (dsc) [1,426 B] Get:2 http://security.debian.org/ squeeze/updates/main proftpd-dfsg 1.3.3a-6squeeze4 (tar) [4,719 kB] Get:3 http://security.debian.org/ squeeze/updates/main proftpd-dfsg 1.3.3a-6squeeze4 (diff) [108 kB] Fetched 4,828 kB in 10s (442 kB/s) dpkg-source: info: extracting proftpd-dfsg in proftpd-dfsg-1.3.3a dpkg-source: info: unpacking proftpd-dfsg_1.3.3a.orig.tar.gz dpkg-source: info: applying proftpd-dfsg_1.3.3a-6squeeze4.diff.gz server:/usr/local/src# apt-get build-dep proftpd-dfsg Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: dpatch libacl1-dev libattr1-dev libaudio2 libcap-dev libdrm-intel1 libdrm-radeon1 libdrm2 libgl1-mesa-dri libgl1-mesa-glx libglu1-mesa libice6 liblcms1 libltdl-dev libmng1 libncurses5-dev libodbcinstq1c2 libqt3-mt libsm6 libtool libwrap0-dev libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxmu6 libxrandr2 libxt6 libxxf86vm1 unixodbc-dev 0 upgraded, 31 newly installed, 0 to remove and 2 not upgraded. Need to get 23.3 MB of archives. After this operation, 63.6 MB of additional disk space will be used. Do you want to continue [Y/n]? Y server:/usr/local/src# cd proftpd-dfsg-1.3.3a
Una vez instaladas todas las dependencias, debemos editar el archivo /usr/local/src/proftpd-dfsg-1.3.3a/debian/rules y agregar al final de la sección CONF_ARGS la opción –with-modules=mod_sftp
1
2
3
4
5 | CONF_ARGS := --prefix=/usr \ --with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') \ --mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) \ --enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme \ --enable-ipv6 --enable-nls --with-modules=mod_sftp |
CONF_ARGS := --prefix=/usr \
--with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') \
--mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) \
--enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme \
--enable-ipv6 --enable-nls --with-modules=mod_sftpPara evitar que con alguna actualización Debian nos reinstale Proftpd, debemos marcar el paquete como una versión exclusiva.
1 | server:/usr/local/src/proftpd-dfsg-1.3.3a# dch -l local 'Proftpd with sftp support' |
server:/usr/local/src/proftpd-dfsg-1.3.3a# dch -l local 'Proftpd with sftp support'
Y finalmente compilamos el paquete
1 | server:/usr/local/src/proftpd-dfsg-1.3.3a# debuild -us -uc |
server:/usr/local/src/proftpd-dfsg-1.3.3a# debuild -us -uc
Cuando este proceso termina, tendremos en /usr/local/src/ los *.deb generados
123 4 5 6 7 8 | server:/usr/local/src/proftpd-dfsg-1.3.3a# cd ..server:/usr/local/src# ls -lh *.deb-rw-r--r-- 1 root root 1.5M Nov 27 02:28 proftpd-doc_1.3.3a-6squeeze4local1_all.deb -rw-r--r-- 1 root root 347K Nov 27 02:28 proftpd-mod-ldap_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 338K Nov 27 02:28 proftpd-mod-mysql_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 340K Nov 27 02:28 proftpd-mod-odbc_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 338K Nov 27 02:28 proftpd-mod-pgsql_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 337K Nov 27 02:28 proftpd-mod-sqlite_1.3.3a-6squeeze4local1_i386.deb |
server:/usr/local/src/proftpd-dfsg-1.3.3a# cd .. server:/usr/local/src# ls -lh *.deb -rw-r--r-- 1 root root 1.5M Nov 27 02:28 proftpd-doc_1.3.3a-6squeeze4local1_all.deb -rw-r--r-- 1 root root 347K Nov 27 02:28 proftpd-mod-ldap_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 338K Nov 27 02:28 proftpd-mod-mysql_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 340K Nov 27 02:28 proftpd-mod-odbc_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 338K Nov 27 02:28 proftpd-mod-pgsql_1.3.3a-6squeeze4local1_i386.deb -rw-r--r-- 1 root root 337K Nov 27 02:28 proftpd-mod-sqlite_1.3.3a-6squeeze4local1_i386.deb
