VPS y servidores dedicados (centro de control de hosting) Ayuda

Bup bip bop… iniciando secuencia 42…
¡Llegaron los robots! Han tomado el control y tradujeron esta página a tu idioma local. Sus corazoncitos de metal solo tienen las mejores intenciones. ¡Quieren ayudar! Dinos si están haciendo un buen trabajo con los botones al final de la página. Ve a la versión en inglés

Cómo configurar un servidor FTP en Ubuntu 14.04

Configuración de un servidor FTP totalmente funcional y altamente seguro en Ubuntu se hace muy fácil con un puñado de componentes clave y un par de minutos de su tiempo. Desde el acceso FTP anónimo, restricciones de directorio raíz o transferencias incluso totalmente cifradas mediante SSL, este tutorial proporciona todos los elementos básicos que necesitará obtener rápidamente su servidor FTP activo y en funcionamiento.

DIFICULTAD Básico - 1 | Medio - 2 | Avanzado - 3
TIEMPO NECESARIO 20 min
PRODUCTOS RELACIONADOS Basado en Ubuntu VPS o servidores dedicados

Instalar vsftpd

Aunque hay una variedad de herramientas de servidor FTP para Linux, es una de las opciones más populares y maduras vsftpd.

Comenzar por SSHing en el servidor como root y utilice el comando apt-get para instalar vsftpd:

$ apt-get update
$ apt-get install vsftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
[...]
The following NEW packages will be installed:
  vsftpd
0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded.
Need to get 111 kB of archives.
After this operation, 361 kB of additional disk space will be used.
Get:1 http://mirrors.digitalocean.com/ubuntu/ trusty-updates/main vsftpd amd64 3.0.2-1ubuntu2.14.04.1 [111 kB]
Fetched 111 kB in 0s (231 kB/s)
Preconfiguring packages ...
Selecting previously unselected package vsftpd.
(Reading database ... 175600 files and directories currently installed.)
Preparing to unpack .../vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb ...
Unpacking vsftpd (3.0.2-1ubuntu2.14.04.1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up vsftpd (3.0.2-1ubuntu2.14.04.1) ...
vsftpd start/running, process 18690
Processing triggers for ureadahead (0.100.0-16) ...

Configuración

El paso siguiente es cambiar cualquier configuración de vsftpd. Abra el archivo /etc/vsftpd.conf en su editor de textos preferido:

$ nano /etc/vsftpd.conf

Edite el archivo para que se asemeje a la siguiente:

# Example config file /etc/vsftpd.conf
# ...
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES

La configuración crítica vista anteriormente se describe a continuación:

  • listen=YES indica vsftpd para que se ejecute como un demonio independiente (el método más sencillo para poner en ejecución). anonymous_enable = NO impide que los usuarios FTP anónimos, que normalmente es preferible usar por motivos de seguridad, pero se puede habilitar con fines de prueba.
  • local_enable=YES permite a cualquier cuenta de usuario definida en el acceso a los archivos/etc/passwd en el servidor FTP y generalmente se conectará la mayoría de los usuarios FTP.
  • write_enable=YES está comentada por defecto, pero eliminando que la almohadilla (#) permite que los archivos se carga en el servidor FTP. chroot_local_user = YES restringe a los usuarios a su directorio particular y es comentadas de forma predeterminada.

Para empezar las pruebas y asegurarse de que todo funciona, comience con los siguientes valores para los parámetros anteriores:

listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES

Guardar el vsftpd.conf a continuación, reinicie el servicio vsftpd para que surtan efecto los cambios de archivo:

$ sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 18954

Probar el servidor FTP

Para determinar si el servidor se ha instalado correctamente y está en servicio y rápidamente ejecutando, intente conectarse al servidor FTP desde el shell activo, utilizando el nombre anónimo y una contraseña en blanco:

$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Con ambos anonymous_enable y local_enable establece en "YES" en la configuración, debe ser capaz de inicio de sesión correctamente a su servidor FTP local tal como se muestra arriba!

Con eso fuera del camino, simplemente escriba quit en el ftp > preguntar Cancelar:

ftp> quit
221 Goodbye.

Con la prueba completa, puede que desee deshabilitar el acceso anónimo estableciendo una vez más anonymous_enable=NO En /etc/vsftpd.conf archivo y reiniciar el servicio:

$ nano /etc/vsftpd.conf

Edite el archivo para parecerse a esto:

# Set to NO to disable anonymous access
anonymous_enable=NO
sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 18996

Cómo agregar un usuario de FTP

Si se trata de un nuevo servidor, puede ser aconsejable agregar un usuario específico para el acceso a FTP. Si lo hace, es un proceso bastante sencillo pero comience por crear un nuevo usuario:

$ sudo adduser foobar
Adding user `foobar' ...
Adding new group `foobar' (1000) ...
Adding new user `foobar' (1000) with group `foobar' ...
Creating home directory `/home/foobar' ...
Copying files from `/etc/skel' ...
$ Enter new UNIX password:
$ Retype new UNIX password:
passwd: password updated successfully
Changing the user information for foobar
$ Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
$ Y

Con un nuevo usuario agregado puede conectar al servidor de forma remota con un cliente FTP como FileZilla, pero ejecutará inmediatamente un error:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    USER foobar
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    500 OOPS: vsftpd: refusing to run with writable root inside chroot()

El vsftpd de error "500 UY" devuelve una medida de seguridad diseñada para prevenir puede escribir acceso a la raíz para los usuarios FTP de forma predeterminada. Para resolver este problema hay dos principales opciones están disponibles.

Permitir el acceso de escritura de usuario root

El método más sencillo consiste en alterar la /etc/vsftpd.conf archivo nuevo y habilitar a una configuración determinada:

$ nano /etc/vsftpd.conf

Edite el archivo para que se asemeje a la siguiente:

# Allow users to write to their root directory
allow_writeable_chroot=YES

Con allow_writeable_chroot habilitado después de un reinicio del servicio vsftpd, puede ahora correctamente FTP en su servidor de forma remota como el usuario recién creado:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    USER foobar
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    230 Login successful.

Utilizar escritura subdirectorios

La otra opción para mantener la seguridad ligeramente más fuerte es no activar allow_writeable_chroot descritas anteriormente, pero en su lugar, para crear un nuevo subdirectorio en el directorio de raíz del usuario con acceso de escritura:

$ sudo chown root:root /home/foobar
$ sudo mkdir /home/foobar/uploads
$ sudo chown foobar:foobar /home/foobar/uploads
$ sudo service vsftpd restart

Ahora cuando se conecta remotamente a su servidor FTP como el nuevo usuario, dicho usuario no tendrá acceso de escritura al directorio raíz, pero en su lugar tendrá acceso completo de escritura para cargar archivos en el directorio recién creado cargas en su lugar.

Asegurar el FTP con SSL

Mientras que el acceso FTP estándar sin cifrar como descritos hasta ahora es suficiente en muchos casos, al transferir información confidencial a través de FTP es útil utilizar una conexión más segura mediante SSL.

Para empezar, probablemente necesitará generar un nuevo certificado SSL con el siguiente comando, seguir las indicaciones según corresponda completar el proceso:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Ahora debe asegurarse de que vsftpd es consciente del certificado SSL. Abrir la /etc/vsftpd.conf archivo nuevo:

$ sudo nano /etc/vsftpd.conf

Buscar en la parte inferior del archivo para dos configuraciones de rsa_ de este tipo, que indica la ubicación del certificado SSL que se acaba de crear:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Si estas líneas no existe o no coincide con la ruta apropiada para el certificado SSL creado, actualizarlos en consecuencia.

Además, hay un número de opciones de configuración para controlar las conexiones SSL, especialmente forzar el uso del protocolo TLS ideal:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Algunas de las opciones son autoexplicativos, pero los componentes clave son la habilitación general de SSL, la restricción a utilizar TLS sólo y no permite el acceso anónimo.

Con los valores agregados y guarda el archivo, reinicie nuevamente el servicio vsftpd:

$ sudo service vsftpd restart

Ahora el servidor FTP está listo para aceptar conexiones seguras mediante cifrado "FTP sobre TLS". Mediante un cliente como FileZilla, aparecerá con un elemento emergente de certificado pregunta si desea comprobar la certificación SSL recién creada.

Al aceptar ahora se conectará con seguridad y transferencias se cifrarán mediante SSL:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    AUTH TLS
Response:    234 Proceed with negotiation.
Status:    Initializing TLS...
Status:    Verifying certificate...
Command:    USER foobar
Status:    TLS/SSL connection established.
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    230 Login successful.


¿Este artículo fue útil?
Gracias por tus comentarios. Para hablar con un representante de servicio al cliente, usa el número de teléfono de asistencia técnica o la opción de chat que aparece más arriba.
¡Nos complace haber ayudado! ¿Hay algo más que podamos hacer por ti?
Lo sentimos. Cuéntanos lo que te resultaba confuso o por qué la solución no resolvió tu problema.