- Estréllate y Arde - https://www.estrellateyarde.org -
Servidor de archivos FTP en Linux
FTP (File Transfer Protocol, Protocolo de Transferencia de Archivos) es un protocolo de red que permite transferir archivos de forma rápida y sencilla entre ordenadores. Se utiliza para compartir archivos y directorios, pudiendo establecer autentificación de usuarios (con nombre y contraseña) y permisos sobre los elementos compartidos. Los servidores FTP se usan principalmente para tres cosas:
Este protocolo se implementa con arquitectura cliente-servidor, por lo que necesita:
Un problema del protocolo FTP es que no cifra los datos, por lo que es vulnerable a la captura de la información transmitida, especialmente las contraseñas de acceso. Si necesitamos conexiones FTP seguras disponemos de servidores FTP encriptados, como SFTP (FTP sobre SSH) o FTPS (FTP sobre SSL).
En Linux hay muchos servidores FTP, vamos a ver un par de ellos:
Equivalencias en Windows: MS-FTP.
VS-FTPd (Very Secure FTP Daemon, vsftpd.beasts.org, paquete vsftpd), ligero y fácil de configurar, es considerado el servidor FTP más rápido y seguro.
El archivo de configuración de VS-FTPd es /etc/vsftpd.conf. Veamos algunas de sus principales directivas, por ejemplo, para el caso de un servidor web que da hosting a varios sitios web:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
Grabamos los cambios y reiniciamos el demonio vsftpd:
# /etc/init.d/vsftpd restart
Por último, tenemos que crear y securizar los usuarios que usarán el servidor FTP para que tengan los mínimos permisos. En nuestro ejemplo los usuarios son los webmaster de los sitios web alojados:
# groupadd ftp
# useradd -g ftp -d /var/www/domain1 -c user1 -s /bin/false user1
# passwd user1
Probaremos a conectarnos desde un cliente FTP (por ejemplo con un navegador, con ftp://<IP_del_servidor>). Introduciremos el usuario y su contraseña y comprobaremos que nos redirige al directorio de su web, que podemos subir y bajar archivos al servidor y que no podemos subir de nivel en el árbol de directorios.
ProFTPd (proftpd.org, paquete proftpd), es uno de los servidores más utilizados en Linux, es muy configurable y está bien documentado.
Durante la instalación nos preguntará si queremos ejecutar ProFTPd como demonio independiente o mediante inetd (escogeremos standalone) y se creará el usuario ftp, con directorio personal /home/ftp, shell /bin/false y sin contraseña. El directorio /home/ftp sólo contiene el archivo welcome.msg, cuyo contenido se muestra al conectarse.
El archivo de configuración de ProFTPd es /etc/proftpd/proftpd.conf. Veamos algunas de sus principales directivas:
DefaultChdir ~
DefaultRoot ~
ShowSymlinks off
<Directory [directorio]> directivas... </Directory>
<Anonymous [directorio]> directivas... </Anonymous>
<Limit [LOGIN] [READ] [WRITE] [STOR] [ALL]> quien... </Limit>
<Limit LOGIN> quien... </Limit>
Grabamos los cambios y reiniciamos el demonio proftpd:
# /etc/init.d/proftpd restart
Para probar el servidor nos conectaremos con un cliente FTP (ftp://<IP_del_servidor>), nos loguearemos con usuario y contraseña y comprobaremos que accedemos a la carpeta personal, que podemos subir y bajar archivos al servidor y que no podemos escalar en el árbol de directorios.
ProFTPd proporciona varios comandos útiles.
$ ftpwho standalone FTP daemon [2178], up for 2 hrs 22 min 2420 francis [2m 36s] 2m 01s idle Service class - 1 user
$ ftptop
# kill -9 2420
Article printed from Estréllate y Arde: https://www.estrellateyarde.org
URL to article: https://www.estrellateyarde.org/discover/servidor-ftp-en-linux
Click here to print.
Copyright © 2010 Estrellate y Arde