Archive for the ‘Proftpd’ Category.

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_sftp

Para 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