Jump to content
Tomas10

Configurar Servidor FTP Ubuntu - Debian - mint

Recommended Posts

Un Servidor FTP (sigla cuyo significado es “File Transfer Protocol”) es un programa que hace que desde un computador se puedan bajar (y/o subir) archivos de todo tipo, a través del “Protocolo de Transferencia de Archivos”… en español.


En general, en un servidor FTP se pueden hacer varias configuraciones, como: ponerle password, crear usuarios, crear usuarios que sólo puedan bajar ciertos archivos, etc., etc…

 

En este artículo nos concentraremos en un servidor FTP desde el cual solamente se puedan bajar archivos (por motivos de seguridad).
Además, cualquiera que se conecte al servidor podrá bajar esos archivos (por motivos de facilidad).


Para los servidores FTP, ese “usuario cualquiera” que se conecte al servidor es denominado “anonymous”. Este dato será importante para lo que vendrá posteriormente.

 

+++++++ ¿PARA QUE? +++++++


El primer objetivo obviamente es compartir archivos… pero existen situaciones más específicas en las que un servidor FTP se hace extremadamente útil, por ejemplo:


¿Qué pasa si necesitamos enviar un archivo enorme (ej: 1GB)? 


Por mail sería imposible, pues habría que partirlo en 100 pedazos de 10MB…


¿Y podríamos hacer lo mismo con un servidor web?


Sí, pero el protocolo FTP tiene la gran ventaja de ser mucho (realmente muuuucho) más rápido que el protocolo HTTP, pues está menos congestionado. Esto mismo hace que la probabilidad de que ocurra un error durante la transferencia sea mucho menor.

 

+++++++ INSTALANDO EL SERVIDOR. +++++++


Ok, lo primero que se debe hacer es instalar vsftpd (“Very Secure FTP Daemon”), así:

sudo apt-get install vsftpd

 

Al hacer esto, se generará una carpeta llamada “ftp” en /home.


Es en esta carpeta en donde debemos dejar los archivos que queremos que puedan bajar los que se conecten a nuestro servidor.

 

+++++++ CONFIGURANDO EL SERVIDOR. +++++++


Luego, debemos abrir el archivo de configuración de vsftpd, así:


 

sudo gedit /etc/vsftpd.conf 


En ese archivo, debemos “des-comentar” o borrar el símbolo “#” y cambiar “NO” por “YES” en la línea donde dice:

 

#anonymous_enable=NO

y convertirla en:

 

anonymous_enable=YES


Haciendo esto, permitimos que el exista el usuario “anonymous”, o dicho de otra manera, permitimos que cualquiera se pueda conectar a nuestro servidor FTP. Esto suena bastante inseguro, pero el hecho de que ningún usuario pueda “escribir” (o subir archivos y tener la capacidad de borrar archivos) lo hace relativamente seguro.

 

Reiniciamos el servidor, así:

 

sudo /etc/init.d/vsftpd restart


Listo! Ya tenemos un servidor FTP en nuestro PC.

 

+++++++ MANEJANDO EL SERVIDOR. +++++++


Vsftpd es un “Daemon” y se activa automáticamente al iniciar el SO.


¿Cómo hacer que esto NO ocurra?


 

Instalamos BUM: sudo apt-get install bum


Sistema -> Administración -> BootUp-Manager -> Desactivamos la casilla de “vsftpd”.

 

Comando para iniciarlo: sudo /etc/init.d/vsftpd start
Comando para detenerlo: sudo /etc/init.d/vsftpd stop
Comando para Reiniciarlo: sudo /etc/init.d/vsftpd restart
Comando para configurarlo: sudo gedit /etc/vsftpd.conf


Esta última acción debe hacerse siempre con sumo cuidado.

 

+++++++ CONECTANDOSE AL SERVIDOR. +++++++


¿Pero cómo hacemos para que alguien se conecte a nuestro Servidor?


Primero que nada, nuestro “anonymous” debe conocer nuestra IP.


(¿Cómo conocer mi IP? Así: http://www.cualesmiip.com/ )


Segundo, debe disponer de un Cliente FTP, pero no os preocupeis, pues cualquier browser como firefox, explorer, etc., es un cliente FTP de sólo lectura, que es todo lo que se necesita.


Finalmente, para conectarse, en el browser debe colocar la IP de nuestro servidor, así (ejemplo):

 

ftp://111.222.333.444


Ojo con que en lugar del famoso “http://"  debe decir “ftp://" antes de la IP.


Todo usuario que se conecte a nuestro servidor desde un browser es automáticamente considerado “anonymous” por el servidor.


Si nuestro usuario quisiera usar un verdadero cliente FTP (como Filezilla, gFTP, Putty, etc.), en donde dice Usuario debe colocar “anonymous”, y la IP debe escribirla en donde dice Servidor. La casilla de Contraseña simplemente se deja vacía.

 

Una consideración importante:


Para que los usuarios puedan conectarse a nuestro servidor, la carpeta /ftp debe tener los permisos 755 (para que no permitamos “escribir” en ella):

sudo chmod 755 /home/ftp


Pero no podremos copiar archivos normalmente hacia la carpeta /ftp.


Si deseamos copiar archivos a esa carpeta, debemos setear los permisos a 777:

sudo chmod 777 /home/ftp


…o de manera más simple, podemos copiarlos mediante el comando “cp”, así:

sudo cp [nombre_archivo] /home/ftp

 

…otro comando MUY UTIL para copiar carpetas hacia /home/ftp es:

sudo cp -r [nombre_carpeta] /home/ftp

 

+++++++ OTRAS PREGUNTAS +++++++


¿Es posible que nuestro servidor dé una “bienvenida” a los usuarios?


Claro, des-comentando (borrando el “#”) la línea del archivo de configuración que dice:

#ftpd_banner=


…y escribiendo nuestro propio mensaje de bienvenida, ejemplo:

ftpd_banner=Bienvenido a mi increible Server FTP… 


(Sólo es posible dar la bienvenida a un usuario que acceda mediante Cliente FTP.)


¿Es posible que nuestro servidor FTP tenga un dominio (para no acceder mediante la IP)?


Claro que sí. En lugar de escribir “ftp://111.222.333.444”, se podría escribir

 

ftp:// dominioeninternet.com 

 

Claro, que este apuntando a su IP directamente o con DDNS


¿Es posible tener un servidor web y un servidor FTP en el mismo PC y activados al mismo tiempo?


Así es. Y también es posible utilizar el mismo dominio tanto para el server web como para el FTP.

 

 

Que se diviertan!!! xD

 

Explicacion Original: Carlos Ruiz Ortega

  • Upvote 3

Share this post


Link to post
Share on other sites

Instalación y Configuración:

------------------------------------

 

sudo aptitude install vsftpd

 

De esta forma instalaréis el servidor FTP desde los repositorios de Ubuntu.

 

Configuración del servidor FTP. Editamos vsftpd.conf

 

Nos vamos a consola y ponemos:

 

sudo gedit /etc/vsftpd.conf

 

Podéis sustituir el gedit por cualquier editor de texto, como por ejemplo vi.

 

Si queréis poder entrar al servidor con vuestro usuario y clave de Ubuntu, y tener acceso a todos los archivos, incluido /media/discos_duros tenéis que poner la siguiente configuración (me salto las líneas comentadas #).

# Iniciar servidor al inicio del sistema.

listen=YES
# Podemos habilitar o deshabilitar el inicio de sesión de usuarios anónimos, lo ponemos en NO para que solo entremos nosotros.
anonymous_enable=NO
#
# Para poder loguearnos usuarios locales (nosotros).
local_enable=YES
#
# Permiso de escritura en los directorios.
write_enable=YES
# Log de lo que hace el cliente en el servidor.
dirmessage_enable=YES
#
#Hora del servidor (por defecto).
use_localtime=YES
# Activate logging of uploads/downloads.
xferlog_enable=YES
# Puerto de escucha FTP, lo dejamos por defecto (el 20).
connect_from_port_20=YES
# Mensaje de entrada al servidor
ftpd_banner=Bienvenido al servidor FTP de Bron
# Podemos restringir a los usuarios a su propio /home/. Selecciona YES para restringir, y NO para tener acceso a todos los archivos y carpetas.
chroot_local_user=NO

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Los propios comentarios en el código explican qué significa cada parámetro (explicados por nosotros).

Para tener un usuario encerrado en su /home/ y otro de administrador:

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

 

Creas un archivo:

 

sudo gedit /etc/vsftpd.chroot_list

 

Y pones el nombre del usuario que quieres de administrador, aplicas cambios y reinicias el servidor.

De esta forma, todos los que no estén en la lista, estarán encerrados en su /home/

Iniciar, parar y reiniciar el proceso vsftpd

 

Para iniciar el servidor FTP una vez configurado a nuestro gusto.

 

sudo /etc/init.d/vsftpd start

 

Para parar el servidor FTP.

 

sudo /etc/init.d/vsftpd stop

 

Para reiniciar el servidor FTP.

 

sudo /etc/init.d/vsftpd restart

 

Si tienes alguna duda pon un comentario y te responderemos, el manual se irá ampliando.

 

Servidor FTP mediante SSH

 

http://www.redeszone.net/gnu-linux/servidor-ssh-en-ubuntu-manual-para-configurar-un-servidor-ssh-en-ubuntu-y-entrar-a-tu-equipo-de-forma-remota-con-seguridad/

 

Para enjaular usuarios al utilizar SFTP debemos editar el fichero /etc/ssh/sshd_config

 

#Subsystem sftp /usr/lib/openssh/sftp-server (lo ponemos como comentario)

 

Añadimos al final:

 

Subsystem sftp internal-sftp
Match user redeszone
ChrootDirectory /home/jail/home
AllowTcpForwarding no
ForceCommand internal-sftp

 

Esta parte está muy relacionada con enjaular el SSH que hemos hecho anteriormente, miraos el otro manual.

 

  • Upvote 2

Share this post


Link to post
Share on other sites

Yo me volvi loco en mi FTP local porque podía descargarme archivos del servidor pero no volverlos a subir, y todo era una configuración del server:

 

# Permiso de escritura en los directorios.
write_enable=YES

Si esa opción esta en "NO" olvidense de poder modificar el FTP. No importa los permisos de los archivos ni re-enviarse nada.

 

Cambiar a "YES", reiniciar el server por consola y ya funciona todo el re-conectarse.

 

sudo /etc/init.d/vsftpd restart

 

  • Upvote 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...