jueves, 7 de mayo de 2009

VSFTPD: Very Secure File Transfer Protocol Daemon

En la práctica, realmente no soy un usuario consecuente con el uso de FTP para realizar la transferencia de archivos en ningún escenario que requiera usuarios, claves y permisos. Prefiero alternativas como SSP o DAV.

Sin embargo, son muchas las personas y programas que todavía mantienen el uso de este protocolo.

Es por esto que he escogido "VSFTPD", que al menos considera unas cuantas estrategias de seguridad para la trasnferencia de información entre máquinas de una red.

El "Demonio del protocolo de transferencia de archivos muy seguro" ofrece una serie de características interesantes para fortalecer las debilidades del FTP tradicional. Entre ellas está la integración con sistemas de bases de datos como MYSQL y PAM.

Aquí vamos con la instalación:
  1. Agregar el usuario que emplearemos para acceder vía FTP al sistema:
    # adduser usuario-ftp
    Ingresamos algunos datos descriptivos y la clave de acceso.
  2. Instalar el programa VSFTPD:
    # aptitude install vsftpd
  3. Editamos el archivo de configuración:
    # vim /etc/vsftpd.conf
    El archivo tiene un montón de opciones, aquí colocaré cómo he dejado el mío para que los usuarios queden "enjaulados" y no puedan estar husmeando por mi sistema:

    listen=YES
    #listen_ipv6=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    ascii_upload_enable=YES
    ascii_download_enable=YES
    ftpd_banner=Servicio FTP.
    chroot_local_user=YES
    chroot_list_enable=NO
    chroot_list_file=/usr/local/etc/vsftpd/vsftpd.chroot_list
    ls_recurse_enable=YES
    secure_chroot_dir=/var/run/vsftpd
    pam_service_name=vsftpd
  4. Si quieren ampliar la información de estos parámetro y muchos otros basta con que revisen el manual que trae el programa:
    # man vsftpd.conf
  5. Indicar los usuarios que serán "enjaulados" en el archivo "vsftpd.chroot_list":
    # vim /usr/local/etc/vsftpd/vsftpd.chroot_list
    Agregamos el nombre del usuario "usuario-ftp" sin las comillas.
  6. Reiniciar el servicio "vsftpd":
    # /etc/init.d/vsftpd restart
Las pruebas son muy sencillas. Basta con ejecutar desde cualquier máquina el comando "ftp" e indicar el usuario y claves creados previamente:
  1. Iniciar la sesión FTP:
    # ftp 192.168.1.100
    Ingresamos usuario y clave.
  2. Podemos intentar subir un archivo con el comando "put" y luego eliminarlo con "delete".
  3. También si ejecutamos el comando "hash", se mostrará una marca "#" por cada 1024 bytes (1k) transferido.
Interesante! :D

Éxitos!

José Gregorio.

FUENTES CONSULTADAS:
  1. http://linuxsix.blogspot.com/2008/10/servidor-ftp-con-vsftpd.html
  2. http://www.alcancelibre.org/staticpages/index.php/09-como-vsftpd
  3. http://alien2thisworld.net/sitePages/tutorials/vsftpd_virtual_users_setup.html
  4. http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/
  5. http://www.howtoforge.com/vsftpd_mysql_debian_etch

No hay comentarios: