Ir al contenido principal
Instalación de un servidor FTP
FTP
Bueno después de todos los tutoriales de git, apache y demás ahora me gustaría traeros un tutorial para instalar un servidor FTP, como es costumbre primero explicaremos que es un servidor FTP, para que sirve y luego pasaremos a la acción instalando uno y configurando algunas cosas para que empecemos a trastear con el.
¿Qué es el FTP?
FTP es uno de los diversos protocolos de la red Internet, concretamente significa File Transfer Protocol(Protocolo de Transferencia de Archivos) y es el ideal para transferir grandes bloques de datos por la red.
Se precisa de un Servidor de FTP y un cliente FTP, puede darse el caso de que los servidores sean de libre acceso para todo el mundo y entonces estamos hablando de login anónimo o FTP anónimo.
Por defecto utiliza los puertos 20 y 21. El puerto 20 es el utilizado para el flujo de datos entre el cliente y el servidor y el puerto 21 para el flujo de control.
El FTP, en la mayoría de servidores, es la única manera de conectar con nuestro sitio, para asi, poder subir y bajar archivos.
Cliente FTP
Un cliente FTP emplea el protocolo FTP para conectarse a un servidor FTP para transferir archivos. Ahora instalaremos la última versión de Filezilla en nuestro máquina cliente, lo bueno que nos presenta Filezilla esque nos da un entorno gráfico para la transferencia de archivos entre cliente y servidor.
Para ello introducimos el comando:
sudo add-apt-repository ppa:n-muench/programs-ppa
Con este comando habremos añadido el repositorio necesario, ahora deberemos actualizarlo
sudo apt-get update
Y ahora una vez hecho esto quedará instalar el Filezilla.
sudo apt-get install filezilla
Una vez hecho esto, si vamos a las aplicaciones que tiene nuestra máquina instaladas veremos que tenemos el filezilla.
Su funcionamiento es muy simple, arriba a la izquierda introducimos la IP del servidor al que queremos conectarnos, el usuario, la contraseña de dicho usuario y el puerto de conexión.
Los archivos que salen en la izquierda es nuestra máquina (cliente) y los de la derecha son los archivos del servidor.
Con esto ya seriamos capaces de transferir archivos entre cliente y servidor pero esto no termina aquí lo que queremos es instalar un servidor real FTP en el servidor, el Filezilla sería como una herramienta de ayuda con entorno gráfico para la conexión entre servidor y cliente.
Servidor FTP
Ahora vamos a instalar un servidor FTP en el servidor, el cuál podremos configurar para que cada usuario tenga sus directorios donde poder subir o descargar archivos, sin que puedan acceder a los de los demas, o incluso poner contraseña de acceso.
Para empezar vamos a nuestro VPS e introducimos:
sudo apt-get install vsftpd
Una vez instalado el servidor se quedará iniciado y se iniciará automáticamente cada vez que arranque el sistema.
Ahora vamos a entrar en la configuración, el archivo de configuración es muy extenso porque esta todo documentado, para verlo podemos usar el comando:
cat /etc/vsftpd.conf
CONSEJO*: Yo os recomiendo que useis este otro para poder filtrar y quitar todos los comentarios:
cat /etc/vsftpd.conf | grep -v '^#'
El resultado debe ser algo similar a esto:
Configurar servidor FTP
Al leer el archivo anterior podemos ver que los usuarios anónimos no estan permitidos y que solo se puede acceder con usuarios registrados en el VPS.
Si quisiesemos darle acceso a los usuarios anónimos solo debemos cambiar la linea que pone "anonymous_enable=NO" y cambiar el "NO" por "YES".
Una vez habilitada esta opción, vamos a nuestra máquina cliente, encendemos el filezilla y en la barra donde se introduce el usuario, si ponemos "anonymous" o "ftp" sin contraseña, nos dejará acceder a los archivos de un directorio solo para usuarios anónimos
Luego hay una opcion que es "write_enable" por defecto viene comentada por lo que esta desactivada, esta opción da permisos de escritura, antes de tocar nada tenemos que tener claro como quedemos configurar nuestro servidor FTP.
El siguiente en nuestra lista es "anon_upload_enable", esta configuración solo tendrá efecto si el "write_enable" esta activado y lo que hace esque permite a los usuarios anónimos subir archivos.
"anon_mkdir_write_enable" esto permite a los usuarios anónimos crear directorios.
Ahora os explicaré como "enjaular" usuarios, es decir que solo puedan acceder a los archivos que hay en su directorio /home/X.Para ello deberemos encontrar las líneas que pone "chroot_local_user=YES" y descomentarla, con esto nos aseguramos que solo accedan a sus archivos, ya que de otra forma es un problema de seguridad bastante grave.
Si lo queremos podemos crear una lista con los usuarios que no queremos que sean enjaulados, para ello deberemos descomentar las líneas "chroot_list_enable" y "chroot_list_file" (lo que sigue a esta última linea es donde esta ubicada dicho archivo con la lista).
Ahora deberemos descomentar la línea "allow_writeable_chroot" y dejarla en "YES", una vez hecho esto, podremos conectarnos como usuarios solo a nuestro directorio home y los usuarios que estén en la lista blanca, podrán acceder por todo el árbol de directorios.
La siguiente imagen es un usuario enjaulado:
Y en esta imagen el usuario que está en la lista blanca:
NOTA*: En mi caso en el archivo de configuración la línea "allow_writeable_chroot" no estaba, la tuve que poner yo mismo a mano, si es vuestro caso ya tenéis una posible solución.
Conclusión
Podría seguir durante un buen tiempo con todas las configuraciones que tiene el servidor, como poner un mensaje de bienvenido y demás cosas, pero esto se haría eterno y lo mejor es que experimeteis cada uno por vuestra cuenta.
Asi que decidme,¿vosotros cómo configurais vuestro servidor FTP?¿crees que me he dejado algo importante?
Este comentario ha sido eliminado por el autor.
ResponderEliminar