Primero de todo ¿Que es el servicio FTP?
El servicio FTP (File Transfer Protocol) es un protocolo del nivel de aplicación. Está basado en una arquitectura de cliente servidor y proporciona un mecanismo de transferencia de archivos entre sistemas a través de redes TCP/IP
Ahora que ya sabemos todo esto vamos a instalar proftpd.
Durante la instalación a lo mejor nos da a elegir dos opciones, si es así, elegiremos 'Independiente'
Después de tenerlo instalado vamos a configurar el acceso autentificado. Vamos a ir al fichero de configuración proftpd.conf.
- sudo nano /etc/proftpd/proftpd.conf
Una vez dentro del fichero, con ctlr + w buscaremos la linea comentada DefaultRoot, la des-comentamos y estará tal que así.
DefaultRoot ~
Pero nosotros queremos tenerla en el la carpeta public_html, así que modificaremos la linea para que se vea tal que así.
DefaultRoot ~/public_html
¿Que acabamos de hacer?
Hemos el DefaultRoot y redireccionando al public_html. Esto significa que en el ~ de tu usuario vas a tener que tener creada una carpeta llamada public_html, en la que solo podrás acceder desde tu usuario y contraseña vía FTP.
Para que los cambios se vean reflejado vamos a reiniciar el servicio proftpd.
- systemctl restart proftpd
Vamos a utilizar la aplicación Filezilla para conectarnos via FTP, si no la tenéis instalada la podéis instalar mediante este comando.
- sudo apt-get install filezilla
Para poder conectarte tendrás que poner tu IP en la casilla de Servidor, tu nombre de usuario y tu contraseña.
Si tienes bien configurado el servidor ftp y creada la carpeta public_html en tu home, entraras lo veras tal que así.
La parte izquierda son los fichero que tienes en tu ordenador y la parte de la derecha la carpeta public_html del servidor. Si creamos un fichero dentro de la carpeta public_html desde el terminal, refrescamos la vista en el Filezilla podremos ver el fichero.
Configurar el servidor para entrar de manera anónima.
Vamos a ir de nuevo al fichero de configuración proftpd.conf.
- sudo nano /etc/proftpd/proftpd.conf
Una vez dentro del fichero, con ctlr + w buscaremos la linea comentada Anonymous, la des-comentamos desde la etiqueta que empieza (<Anonymous>) hasta la que finaliza (</Anonymous>) las lineas que están comentadas dos veces las dejaremos con un comentario. Para especificar la carpeta donde la gente se conectara sera en la etiqueta que abre <Anonymous>. crearemos la carpeta /srv/doc y la añadiremos a la etiqueta <Anonymopus>, el fichero se quedara tal que así:
<Anonymous /srv/doc>
User ftp
Group nogroup
#We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# # Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
# Uncomment this if you're brave.
# <Directory incoming>
# # Umask 022 is a good standard umask to prevent new files and dirs
# # (second parm) from being group and world writable.
# Umask 022 022
# <Limit READ WRITE>
# DenyAll
# </Limit>
# <Limit STOR>
# AllowAll
# </Limit>
# </Directory>
</Anonymous>
Ahora tendremos dos manera de conectarnos por usuario y contraseña a su public_html y de manera anónima a /srv/doc. Para que estos cambios se reflejen reiniciamos el servicio de proftpf
- systemctl restart proftpd
Vamos a ir de nuevo a Filezilla para ver si esta todo correctamente configurado, solo introduciendo la IP del servidor en el apartado de Servidor, pulsamos en conexión rápida.
Si lo tenemos todo bien configurado nos funcionara igual que el anterior, desde esta carpeta todo el mundo podrá descargar y subir archivos.
Aquí podéis ver mas información.