vsftpd (very secure FTP daemon) tiene la peculiaridad de que no permite establecer varias IPs en escucha (listen_address) dentro de una misma instancia/demonio. Con una única instancia, tenemos la posibilidad de:
- Escuchar en todas las IPs del sistema (por defecto).
- Escuchar en una única IP especificada en listen_address.
Pero lo que no podemos hacer es especificar varias IPs (pero no todas) en el fichero de configuración con la directiva listen_address:
listen_address=10.0.0.100,10.0.3.100
La forma de establecer que vsftp escuche por varias IPs es configurando un demonio independiente por cada IP. Cada demonio estará configurado con un archivo de configuración independiente (/etc/vsftpd*.conf) y en ese archivo se especificará la IP por la que va a escuchar.
Para el caso anterior, podríamos crear:
/etc/vsftpd/vsftpd.conf
listen_address=10.0.0.100
/etc/vsftpd/vsftpd-2.conf
listen_address=10.0.3.100
Una vez creados los dos ficheros de configuración, basta con arrancar el servicio con el script de arranque. Aseguraos de que el script de arranque está preparado para arrancar múltiples instancias. Lo veréis en el código de la función de arranque:
if [ -d /etc/vsftpd ] ; then CONFS=`ls /etc/vsftpd/*.conf 2>/dev/null` [ -z "$CONFS" ] && exit 6 PROC_FAILED=0 for i in $CONFS; do site=`basename $i .conf` echo -n $"Starting $prog for $site: " daemon /usr/sbin/vsftpd $i
Si os fijáis, arranca un demonio por cada archivo de configuración en «/etc/vsftpd/*.conf». Una vez levantado verificamos que cada demonio escucha por una IP:
# netstat -natp | grep ftp tcp 0 0 10.0.0.100:21 0.0.0.0:* LISTEN 6468/vsftpd tcp 0 0 10.0.3.100:21 0.0.0.0:* LISTEN 6463/vsftpd