Configuración de FTP con vsftp en Linux

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Las siglas FTP significan File Tranasfer Protocol y es un protocolo de comunicaciones no cifrado y, por lo tanto, inseguro para almacenar ficheros. Siempre que podamos, utilizaremos SFTP en vez de FTP si queremos cifrar el tráfico.

En cualquier caso, FTP todavía es un servicio muy utilizado en servicios públicos donde no importa la seguridad de los datos almacenados.

En Linux es muy común utilizar el producto vsftp (Very Secure FTP) para configurar un servicio de FTP público.

El fichero de configuración suele estar el /etc/vsftpd/vsftpd.conf y dependiendo de si queremos un servicio privado o anónimo configuraremos las directivas de este fichero de una manera u otra.

Un ejemplo de configuración sería el siguiente:

Deshabilitamos los accesos anónimos

anonymous_enable=NO

Enjaular usuarios con vsftpd (chroot)

  • Habilitamos el enjaulamiento de usuarios para que únicamente puedan acceder a un directorio concreto de nuestro sistema y no más allá:

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user indica que el directorio de enjaulamiento es el $HOME del usuario que se conecta.

chroot_list_enable y chroot_list_file se utilizan para excluir el enjaulamiento de los usuarios que se definen en el fichero especificado.

  • Si deseamos enjaular las conexiones FTP de los usuarios anónimos, también podemos:

anonymous_enable=YES
anon_root=/home/ftp

Deshabilitar el acceso a la shell del sistema

Por seguridad, es altamente recomendable que los usuarios que solamente se conectan por FTP no puedan iniciar una sesión en el servidor:

myftpuser:x:1050:1050:FTP de test:/ftp/myftpuser:/sbin/nologin

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/bin/false
/usr/bin/ksh
/usr/bin/pdksh
/usr/libexec/openssh/sftp-server
/usr/bin/ftp
#

Arranque del servicio VSFTPD

Una vez que ya hemos terminado de configurar vsftp, lo arrancaremos como un servicio más del sistema operativo.

En RedHat 7, utilizaríamos los comandos:

  • Arranque del servicio con el boot del sistema: systemctl enable vsftpd
  • Arranque del servicio: systemctl start vsftpd
  • Parada del servicio: systemctl stop vsftpd

Errores con los que me he encontrado

# ftp localhost
Connected to localhost (127.0.0.1).
500 OOPS: vsftpd: cannot locate user specified in ‘ftp_username’:ftp
ftp> bye
#

Se soluciona incluyendo esta directiva en el fichero /etc/vsftpd/vsftpd.conf:

ftp_username=nobody

Te puede interesar

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author