Queremos facilitar el acceso al servidor instalando un servidor FTP con la funcionalidad de acceso autentificado y anónimo. Con esto los usuarios del servidor podrán acceder y gestionar sus páginas web en las carpetas «public_html» de sus directorios personales, y además si se accede anónimamente se accederá a la carpeta pública «/srv/documentos» la cual también se accede mediante «http://www.elolimpo.org/documentos».
En esta entrada veremos:
- Instalación del servidor FTP
- Configuración de acceso autentificado
- Configuración de acceso anónimo
- Modificación del servidor DNS
- Pruebas de acceso
Instalación del servidor FTP
Antes que nada explicaré que es «FTP». «FTP» viene de las siglas en inglés «Files Transfer Protocol» que significa «Protocolo de Transferencia de Archivos» y es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor.
Instalación
Existen varios paquetes en Debian como servidor FTP, pero nosotros instalaremos el paquete «proftpd», para ello escribimos lo siguiente siendo «root»:
aptitude install proftpd
Durante la instalación nos preguntará si queremos ejecutarlo al inicio como un servicio dependiente de otro o independiente, nosotros elegiremos independiente.
Configuración de acceso autentificado
El archivo de configuración principal de «proftpd» se encuentra en /etc/proftpd/proftpd.conf
, para habilitar el acceso autentificado de los usuarios en sus directorios «public_html» editaremos dicho archivo siendo «root», en el que descomentaremos y dejaremos la siguiente línea tal que así:
DefaultRoot ~/public_html
Configuración de acceso anónimo
Para habilitar el acceso anónimo al directorio «/srv/documentos» editaremos el archivo /etc/proftpd/proftpd.conf
siendo «root», añadiendo al final las siguientes líneas:
# A basic anonymous configuration, no upload directories. <Anonymous /srv/documentos> 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>
Estas líneas las encontramos comentadas por defecto en el archivo de configuración, si no queréis añadir tantas líneas al archivo podéis descomentarlas tal y como yo las tengo editando únicamente la línea siguiente:
<Anonymous /srv/documentos>
Si queremos que sólo se acceda al servidor anónimamente podemos añadir al final del archivo de configuración /etc/proftpd/proftpd.conf
las siguientes líneas siendo «root»:
<Limit LOGIN> AllowUser ftp DenyAll </Limit>
Con el que dejaremos acceder al usuario «ftp» que es el usuario anónimo y denegaremos todos los demás accesos.
Finalmente teniendo ya nuestro servidor FTP bien configurado recargamos el archivo de configuración de «proftpd» con el siguiente comando siendo «root»:
systemctl reload proftpd
Modificación del servidor DNS
Ahora modificaremos el servidor DNS para que los usuarios accedan al servidor FTP mediante el nombre «ftp.elolimpo.org». Para ello editaremos el archivo de los registros de la zona directa /var/cache/bind/zd.elolimpo
siendo «root», en el que añadiremos el registro siguiente al final:
ftp IN CNAME zeus
Para que se efectúen los cambios recargamos el archivo de configuración de bind9, escribiendo lo siguiente como “root”:
systemctl reload bind9
Pruebas de acceso
Para acceder al servidor FTP utilizaremos el cliente «Filezilla». Introducimos el nombre del servidor en nuestro caso «ftp.elolimpo.org» el usuario y contraseña:
- En Debian de forma autentificada:
- En Windows de forma anónima:
Si queremos ver quien está accediendo a nuestro servidor FTP podemos utilizar los siguientes comandos:
ftpwho
Con el que conseguimos la siguiente salida:
standalone FTP daemon [2278], up for 1 hr 24 min 2645 josedom [ 8m9s] 8m9s idle 2697 ftp [ 2m17s] 2m17s idle Service class - 2 users
ftptop
Con el que conseguimos una muestra en vivo de los accesos.