Instalación y mantenimiento de servicios de Internet
Unidad 4
CONFIGURACIÓN DE UN SERVIDOR FTP: PROFTPD Andrés Rosique Hernández
[email protected]
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Licencia Esta obra está bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es
o envíe una carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
U04. Configuración de un servidor ftp: ProFTPD
2
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Índice 1.Introducción 2.Un poco de historia 3.Explorer revela datos de acceso a servidores FTP 4.Funcionamiento 5.Servidor FTP 6.Cliente FTP 7.Tipos de transferencia de archivos 8.Comandos 9.Instalacion 10.Configuración 11.Sitios anónimos 12.Hosts virtuales U04. Configuración de un servidor ftp: ProFTPD
3
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Introducción ●
●
●
●
FTP (File Transfer Protocol) es un protocolo de transferencia de archivos. Fue uno de los primeros servicios ofrecidos por Internet que fueron normalizados junto con Telnet y el correo electrónico. El RFC 114 fue la primera propuesta de estandarización en el año 1971. Hoy en día se usa mucho la transferencia de archivos pero haciendo uso de protocolos distintos al FTP. Por ejemplo, los servicios P2P (Peer To Peer).
U04. Configuración de un servidor ftp: ProFTPD
4
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Un poco de historia El mismo año en que nació ARPANET (1969) un grupo de investigadores del MIT presentó la propuesta del primer "Protocolo para la transmisión de archivos en Internet" (RFC 114). ● Era un protocolo muy sencillo basado en el sistema de correo electrónico pero sentó las bases para el futuro protocolo de transmisión de archivos (FTP). ● Quince años después de esa primera propuesta, se termina el desarrollo del FTP, basado en la filosofía de cliente-servidor. ● El gran boom de Internet se produce en 1995 y puede ser considerado como el nacimiento de la Internet comercial. U04. Configuración de un servidor ftp: ProFTPD ●
5
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Un poco de historia (2) ●
●
Ese año la World Wide Web superó a FTP transformándose en el servicio preferido de la red, después de que el año anterior superase también en popularidad a Telnet. Con la llegada del World Wide Web, y de los navegadores , ya no fue necesario conocer los complejos comandos de FTP, este protocolo se puede utilizar escribiendo la URL del servidor al que queramos conectar en el navegador web, indicando con ftp:// que vamos a contactar con un servidor FTP y no con un servidor web (que sería http://).
U04. Configuración de un servidor ftp: ProFTPD
6
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Explorer revela datos de acceso a servidores FTP ●
●
●
El problema afecta a los usuarios que disponen de sitios web y acceden a ellos para modificar algún documento utilizando Explorer como cliente de FTP. Sorprendentemente, tras editar un fichero HTML y guardarlo de nuevo, Explorer incluye, como comentario en el código fuente de la página, el nombre de usuario y contraseña de acceso al servidor FTP. En resumen: cualquiera que se descargue esa página en lo sucesivo dispone de las credenciales necesarias para modificar el sitio web o hacerlo desaparecer... Información obtenida en
U04. Configuración de un servidor ftp: ProFTPD
Kriptopolis.
7
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Explorer revela datos de acceso a servidores FTP (2) ●
●
¿Conoce Microsoft la existencia del problema? Sí, y al menos desde 2004. Para Microsoft, la capacidad de cliente ftp se incluye en Explorer sólo "por comodidad", pero no se trata de un auténtico cliente de ftp. Por otro lado modificar este comportamiento requeriría -decía Microsoft en 2004una "rearquitectura" de la característica. Ante estas declaraciones, cualquiera podría pensar que Explorer 7 hubiera podido ser la ocasión más indicada para reparar el bug. Pues no: Explorer 7 se comporta exactamente igual.
U04. Configuración de un servidor ftp: ProFTPD
8
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Explorer revela datos de acceso a servidores FTP (3) ●
En caso de duda, sería recomendable que se realizara una búsqueda en el código fuente de las páginas web de expresiones del tipo de la siguiente:
●
●
Se trata de la línea de comentario añadida por Explorer que puede resultar nefasta para la seguridad del sitio, puesto que incluye la contraseña y nombre del usuario que accede al sitio por ftp. Un cambio inmediato de esos datos de acceso también podría estar indicado, antes de que una búsqueda en Google proporcione a un eventual atacante la llave de su sitio.
U04. Configuración de un servidor ftp: ProFTPD
9
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Funcionamiento ●
●
FTP es un servicio basado en la arquitectura cliente/ servidor. El servidor FTP en la red (ya sea local o en Internet) proporciona el servicio y utiliza dos puertos: – –
●
●
El puerto 20 para la transferencia de datos. El puerto 21 para la transferencia de órdenes (control)
El cliente se conecta al servidor haciendo uso de un puerto local (origen) mayor que 1024, y tomando como destino el puerto 21 del servidor. Una vez se ha establecido la conexión, ya se puede hacer uso de las órdenes específicas FTP de manejo de archivos y directorios remotos.
U04. Configuración de un servidor ftp: ProFTPD
10
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Funcionamiento (2) ●
El siguiente esquema muestra el funcionamiento del servicio FTP:
U04. Configuración de un servidor ftp: ProFTPD
11
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Servidor FTP ●
●
●
Un servidor FTP es un programa que se ejecuta en un equipo servidor normalmente conectado a una red (Internet o LAN). Su función es permitir el intercambio de datos entre diferentes equipos (servidores y/o clientes). Las aplicaciones más comunes de los servidores FTP suelen ser: –
–
Alojamiento web: en el que sus clientes utilizan el servicio para subir sus páginas web y sus archivos correspondientes; Servidor de backup (copia de seguridad) de los archivos importantes que pueda tener una empresa.
U04. Configuración de un servidor ftp: ProFTPD
12
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Cliente FTP ●
●
●
Un cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos. Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, como Windows, Linux y Unix. Sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica. Aunque muchos navegadores tienen ya integrado FTP, es más confiable a la hora de conectarse con servidores FTP no anónimos utilizar un programa cliente.
U04. Configuración de un servidor ftp: ProFTPD
13
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Cliente FTP (2) ●
●
Desde un navegador también puede incluirse el usuario y la contraseña en la barra de direcciones para acceder a un servidor FTP con el formato: ftp://user:password@ftpserver_name aunque NO ES RECOMENDABLE POR MOTIVOS DE SEGURIDAD. El acceso a los servidores FTP desde los clientes se hace, principalmente, de dos formas: – –
Acceso anónimo. Acceso de usuario.
U04. Configuración de un servidor ftp: ProFTPD
14
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Acceso anónimo ●
●
●
[email protected]
Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder al FTP sin necesidad de tener una cuenta de usuario. Es una forma muy cómoda de permitir que todo el mundo tenga acceso a cierta información sin que para ello el administrador de un sistema tenga que crear una cuenta para cada usuario. Para acceder a un servidor posee servicio FTP anónimo: – –
Usuario: anonymous. Contraseña: se suele utilizar la dirección de correo electrónico propia.
U04. Configuración de un servidor ftp: ProFTPD
15
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Acceso anónimo (2) ●
●
●
[email protected]
De esta forma se consigue acceso a los archivos del FTP, aunque con menos privilegios que un usuario normal. Normalmente solo se podrá leer y copiar los archivos existentes, pero no modificarlos ni crear otros nuevos. Normalmente, se utiliza un servidor FTP anónimo para depositar grandes archivos que no tienen utilidad si no son transferidos a la máquina del usuario, como por ejemplo programas.
U04. Configuración de un servidor ftp: ProFTPD
16
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Acceso de usuario ●
●
[email protected]
Si se desean tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificación de archivos existentes, y de posibilidad de subir nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la información de las distintas cuentas de usuario que pueden acceder a él, de manera que para iniciar una sesión FTP debemos introducir un login y una contraseña que nos identifica unívocamente.
U04. Configuración de un servidor ftp: ProFTPD
17
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Modos de conexión ●
FTP admite dos modos de conexión del cliente. –
– ●
[email protected]
Activo (o estándar o PORT, debido a que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión). Pasivo (o PASV, porque en este caso envía comandos tipo PASV).
Tanto en el modo activo como en el modo pasivo, el cliente establece una conexión con el servidor mediante el puerto 21, que establece el canal de control. Una explicación más detallada se puede encontrar en http://www.ignside.net/man/ftp/pasivo.php (español) y en http://slacksite.com/other/ftp.html (inglés).
U04. Configuración de un servidor ftp: ProFTPD
18
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Modos de conexión (2) ●
[email protected]
Modo activo: –
–
El servidor siempre crea el canal de datos en su puerto 20, mientras que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024. Para esto, el cliente manda un comando PORT al servidor por el canal de control indicándole ese número de puerto, de manera que el servidor pueda abrirle una conexión de datos por donde se transferirán los archivos y los listados, en el puerto especificado.
U04. Configuración de un servidor ftp: ProFTPD
19
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Modos de conexión (3) ●
[email protected]
Modo activo (cont.): –
–
Lo anterior tiene un grave problema de seguridad. Éste es que la máquina cliente debe estar dispuesta a aceptar cualquier conexión de entrada en un puerto superior al 1024, con los problemas que ello implica si tenemos el equipo conectado a una red insegura como Internet. De hecho, los cortafuegos que se instalen en el equipo para evitar ataques seguramente rechazarán esas conexiones aleatorias. Para solucionar esto se desarrolló el modo pasivo.
U04. Configuración de un servidor ftp: ProFTPD
20
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Cliente FTP Modos de conexión (4) ●
Modo pasivo: –
●
[email protected]
Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP abre un puerto efímero (cualquiera entre el 1024 y el 5000) e informa de ello al cliente FTP para que, de esta manera, sea el cliente quien conecte con ese puerto del servidor y así no sea necesario aceptar conexiones aleatorias inseguras para realizar la transferencia de datos.
Antes de cada nueva transferencia, tanto en el modo activo como en el pasivo, el cliente debe enviar otra vez un comando de control, y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en pasivo) o por el puerto 20 (si está en activo).
U04. Configuración de un servidor ftp: ProFTPD
21
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Tipos de transferencia de archivos ●
●
Se debe conocer cómo transportar un archivo a lo largo de la red porque si no utilizamos las opciones adecuadas podemos destruir la información del archivo. Por eso, al ejecutar el cliente FTP, debemos indicar el tipo de archivo que se va a transmitir: –
–
Texto o ascii: adecuado para transferir archivos que sólo contengan caracteres imprimibles (archivos ASCII), por ejemplo páginas HTML. Binario: usado cuando se trata de archivos comprimidos, ejecutables, imágenes, archivos de audio...
U04. Configuración de un servidor ftp: ProFTPD
22
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Tipos de transferencia de archivos (2) ●
Ejemplos de cómo transferir algunos tipos de archivo dependiendo de su extensión: – – – – – –
txt (texto) → ascii html (página WEB) → ascii doc (documento) → binary ps (poscript) → ascii tar (empaquetado) → binary ZIP (comprimido) → binary
U04. Configuración de un servidor ftp: ProFTPD
23
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Comandos ●
Algunos de los comandos FTP: open servidor close cd directorio delete archivo dir o ls get archivo lcd directorio put archivo mput archivos pwd bin o binary ascii user
Inicia una conexión con un servidor FTP Finaliza una conexión FTP sin cerrar el programa cliente Cambia el directorio de trabajo en el servidor Borra un archivo en el servidor Muestra el contenido del directorio en el que estamos en el servidor Obtiene un archivo Cambia el directorio de trabajo local Envía un archivo al directorio activo del servidor Envía múltiples archivos Muestra el directorio activo en el servidor Activa el modo de transferencia binario Activa el modo de transferencia en modo texto ASCII Para cambiar nuestro nombre de usuario y contraseña sin necesidad de salir de la sesión FTP
U04. Configuración de un servidor ftp: ProFTPD
24
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Instalación Suse ●
●
ProFTPD no está en los repositorios oficiales de Suse y “tampoco existen rpm” para facilitar la instalación, por lo que lo instalaremos desde a partir de código fuente. Descargamos el archivo proftpd-1.3.0a.tar.gz con los fuentes (source) desde: – –
●
●
[email protected]
www.proftpd.org → y elegimos un servidor. ftp://ftp4.fr.proftpd.org/mirrors/ftp.proftpd.org/distrib/source
Descomprimimos el archivo: tar xvfz proftpd-1.3.0a.tar.gz Nos ponemos dentro del directorio recién extraído: cd proftpd-1.3.0a
U04. Configuración de un servidor ftp: ProFTPD
25
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Instalación Suse (2) ●
●
●
[email protected]
¡OjO! Antes de ejecutar estos comandos hay que tener instalado gcc con sus correspondientes dependencias.
Y ejecutamos los siguientes comandos: ./configure –sysconfdir=/etc make make install Por último, eliminamos los archivos de la instalación: cd .. rm -fr proftpd-1.3.0a* A continuación, hay que crear el archivo /etc/init.d/proftpd (no lleva extensión) con el siguiente contenido:
U04. Configuración de un servidor ftp: ProFTPD
26
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Instalación Suse (3) #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany. # All rights reserved. # # Original author: Marius Tomaschewski <
[email protected]> # # Slightly modified in 2003 for use with SuSE Linux 8.1, # by http://www.learnlinux.co.uk/ # # Slightly modified in 2005 for use with SuSE Linux 9.2, # by Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Starts ProFTPD server ### END INIT INFO # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test $link = $base && START_PROFTPD=yes test "$START_PROFTPD" = yes || exit 0 # Return values acc. to LSB for all commands but # status (see below): # # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running
U04. Configuración de un servidor ftp: ProFTPD
proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Source status functions . /etc/rc.status # First reset status of this service rc_reset case "$1" in start) echo -n "Starting ProFTPD Server: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Shutting down ProFTPD Server: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop $0 start rc_status ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: not (yet) part of LSB (as of 0.7.5)
27
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Instalación Suse (4) $0 status >/dev/null && rc_status ;;
[email protected]
$0 restart
reload|force-reload) ## Exclusive possibility: Some services must be stopped ## and started to force a new load of the configuration. echo -n "Reload ProFTPD Server: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running echo -n "Checking for ProFTPD Server: " checkproc $proftpd_bin rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## give out the argument which is required for a reload. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Usage: $0 {start|stop|status|restart|reload|try-restart| probe}" exit 1 ;; esac # Set an exit status. rc_exit
U04. Configuración de un servidor ftp: ProFTPD
28
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Instalación Suse (5) ●
●
[email protected]
Por último, ejecutaremos: chmod 755 /etc/init.d/proftpd chkconfig --add proftpd Y para hacer que arranque el servidor FTP: /etc/init.d/proftpd start
U04. Configuración de un servidor ftp: ProFTPD
29
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Instalación Ubuntu ●
●
[email protected]
Para instalar ProFTPd en Ubuntu tenemos dos opciones: desde un terminal o desde el Synaptic. Desde un terminal: sudo aptitude install proftpd
●
Desde el Synaptic: – – –
●
Buscamos “proftpd” (sin las comillas). Seleccionamos el paquete proftpd. Pulsamos sobre Aplicar.
Opcionalmente podemos instalar: – –
Un editor gráfico de la configuración (no se recomienda) → gproftpd. La documentación → proftpd-doc.
U04. Configuración de un servidor ftp: ProFTPD
30
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración básica ●
●
Los ficheros de configuración de Apache se encuentran en /etc/proftpd. Los ficheros de configuración más importantes son: – –
●
/etc/proftpd/proftpd.conf → fichero de configuración principal. /etc/proftpd/modules.conf → fichero de configuración de los módulos y sus características.
Sin modificar ninguno de los ficheros de configuración, los usuarios del sistema pueden acceder al servidor FTP. ¡OjO!
Recuerda hacer una copia de seguridad de cualquier archivo que vayas a editar.
U04. Configuración de un servidor ftp: ProFTPD
Accede al FTP con tu usuario
31
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Configuración Parámetros generales ●
ServerType inetd|standalone – –
●
Se recomienda usar standalone. Con standalone el servicio funcionará de manera autónoma, mientras que con inetd será este superdemonio quien lo controle.
ServerName nombre –
●
[email protected]
Este parámetro sirve para identificar al servidor. Sólo es descriptivo.
Port numeroPuerto – –
Indica el puerto a través del que se atenderán las solicitudes de servicio FTP. Si se usa el 21, no es necesario especificarlo.
U04. Configuración de un servidor ftp: ProFTPD
32
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Parámetros generales (2) ●
UserAlias alias usuarioReal –
– ●
ProFTPd requiere un usuario real cuando los usuarios tienen que autentificarse. Con este parámetro se especifica un alias para un usuario real. El uso más frecuente de este parámetro es UserAlias anonymous ftp
ServerIdent on|off “descripción” – – –
Si está a on, muestra el mensaje escrito en “descripción” antes de autenticar al usuario. Si está a off, muestra el mensaje por defecto. Este mensaje no se verá si se accede desde un navegador.
U04. Configuración de un servidor ftp: ProFTPD
33
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Parámetros generales (3) ●
AccessGrantMsg “mensaje” –
●
Mensaje que se muestra al usuario si se ha autenticado correctamente.
AccessDenyMsg “mensaje” –
Mensaje que se muestra al usuario si NO se ha autenticado correctamente.
El listado con todos los parámetros lo puedes encontrar en http://www.proftpd.org.
U04. Configuración de un servidor ftp: ProFTPD
34
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Configuración Limitar ●
[email protected]
Limitar a los usuarios: –
–
Si se quiere permitir el acceso via FTP a unos usuarios sí y al resto no, se debe usar la directiva
... Por ejemplo, para que accedan al FTP sólo los usuarios del sistema dante y trish, y no el resto de usuarios tendríamos que editar /etc/proftpd.conf para añadir:
...
AllowUser dante trish DenyAll
U04. Configuración de un servidor ftp: ProFTPD
Primera práctica
35
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Configuración Limitar (2) ●
[email protected]
Limitar la escritura sobre un directorio concreto: –
–
Si se quiere denegar la escritura sobre el sitio FTP, se debe usar la directiva
... Por ejemplo, para que no se pueda escribir en el directorio /var/ftp/soloLectura independientemente de que el usuario tuviera permiso (en el sistema) de escritura:
...
DenyAll U04. Configuración de un servidor ftp: ProFTPD
36
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Configuración Limitar (3) ●
[email protected]
Limitar el almacenaje sobre un directorio concreto: –
–
Si se quiere permitir el almacenaje sobre el sitio FTP, se debe usar la directiva
... Por ejemplo, para que se puedan subir archivos y leerlos pero no borrarlos ni crear carpetas en el directorio /var/ftp/almacen independientemente de que el usuario tuviera permiso (en el sistema) de escritura:
AllowAll U04. Configuración de un servidor ftp: ProFTPD
37
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Usuarios con shell falsa Planteamiento del problema: – –
– ●
De momento, todo usuario que accede vía FTP debe estar previamente registrado en el sistema. Cuando se crea la cuenta del sistema, si no se indica lo contrario, se le conceden los permisos para iniciar sesión en el sistema, y por lo tanto, existe una puerta abierta a acceder remotamente al mismo (telnet, vnc...). Esto es un fallo de seguridad.
Para solucionar este problema hay que crear cuentas que permitan el acceso al FTP pero no puedan entrar en el sistema → shell falsa.
U04. Configuración de un servidor ftp: ProFTPD
38
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Usuarios con shell falsa (2) ●
Con este fin, en el momento de la creación del usuario se le asignará una shell falsa.
sudo useradd -d directorio_FTP -s /bin/false usuario ●
●
Ahora bien, para que este tipo de usuarios pueda acceder al servidor FTP, es necesario usar el parámetro RequireValidShell {on|off}. Para permitir los usuarios con shell falsa habría que modificar el fichero de configuración y añadir: ... RequireValidShell off
U04. Configuración de un servidor ftp: ProFTPD
39
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Impedir navegar por el sistema Planteamiento del problema: – –
– ●
●
Una vez dentro del servidor FTP el usuario puede navegar por todo el sistema de ficheros. En principio, como el usuario que accede al FTP es un usuario del sistema, no debería plantear ningún riesgo de seguridad. Sin embargo, puede interesarnos que no sea así.
Para solucionar este problema se hace uso del parámetro DefaultRoot directorio. Este parámetro restringe el acceso al servidor FTP al directorio especificado y sus subdirectorios (pero no a los superiores).
U04. Configuración de un servidor ftp: ProFTPD
40
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Impedir navegar por el sistema (2) ●
●
El valor por defecto de este parámetro es DefaultRoot / es decir, que se puede navegar por todo el sistema de ficheros. Por ejemplo: –
Si sólo se permite navegar por el home del usuario:
... DefaultRoot ~
–
Si sólo se permite navegar por /var/ftp:
... DefaultRoot /var/ftp
U04. Configuración de un servidor ftp: ProFTPD
41
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Permisos: ficheros y directorios ●
Planteamiento del problema: – –
–
Cada vez que se crea un fichero o un directorio en el sistema se le asignan unos permisos por defecto. Estos permisos surgen de hacer un AND entre los permisos por defecto (777 para directorios y 666 para ficheros ) con el complemento a 1 de la máscara definida con umask. Por ejemplo: si umask tiene el valor 022 y se hace un AND sobre 777, el resultado es 755. 777 AND 022
=
777 AND 755
U04. Configuración de un servidor ftp: ProFTPD
=
777 AND 755 755
rwxr-xr-x 42
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Permisos: ficheros y directorios (2) –
Por ejemplo: si umask tiene el valor 022 y se hace un AND sobre 666, el resultado es 644. 666 AND 022
●
●
●
=
666 AND 755
=
666 AND 755 644
rw-r--r--
Lo mismo ocurre con los ficheros y directorios creados vía FTP. En este caso la máscara viene definida por el parámetro Umask que por defecto también vale 022. Por ejemplo: –
Para establecer la máscara a 022:
... Umask 022 U04. Configuración de un servidor ftp: ProFTPD
43
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Permisos: ficheros y directorios (3) ●
●
Sin embargo, si desde el sistema creamos una carpeta o un archivo, normalmente lo haremos como root. Esto implica problemas con los permisos: –
●
root sería el propietario y el grupo.
Para solventar este problema una vez que hayamos creado una carpeta o archivo (desde el sistema), le cambiaremos el propietario por ftp y el grupo también con el comando chown. sudo mkdir /var/ftp/publico sudo chown -R ftp.ftp /var/ftp/publico
U04. Configuración de un servidor ftp: ProFTPD
44
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Control de la conexiones ●
●
Si se necesita limitar el número de conexiones FTP a nuestro servidor, tenemos a nuestra disposición un conjunto de parámetros. Los más importantes son: – –
MaxInstances: limita el número de conexiones al servicio FTP. MaxClients: limita el número de conexiones diferenciando entre el número de accesos desde un equipo y/o de un usuario. ● ●
MaxClientsPerHost: limita las conexiones por equipo. MaxClientesPerUser: limita las conexiones por usuario.
U04. Configuración de un servidor ftp: ProFTPD
45
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Configuración Control de la conexiones (2) ●
Por ejemplo: –
Si se quiere establecer el límite máximo de conexiones en 30 para el servidor FTP:
... MaxInstances 30
–
Si se quiere que el número máximo de conexiones por host sea de 10 y el máximo por usuario sea de 5:
... MaxClientsPerHost 10 “Número máximo de conexiones superado” MaxClientsPerUser 5 “Ya has superado tu límite de conexiones” El comando ftpwho nos indica el número de conexiones, los usuarios y el tiempo de conexión al servidor FTP. U04. Configuración de un servidor ftp: ProFTPD
46
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Sitios anónimos ●
Un servidor FTP anónimo es aquel al que se puede conectarse cualquier usuario con un nombre de usuario común y sin una contraseña concreta. – –
●
Usuario: anonymous Contraseña: un email o cualquier texto.
Para crear un sitio anónimo hay que tener en cuenta los siguientes aspectos: –
Si el servicio va a ser totalmente anónimo, ningún otro usuario debe poder entrar al servidor. Por lo tanto, debemos indicarlo en el bloque general:
DenyAll U04. Configuración de un servidor ftp: ProFTPD
47
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Sitios anónimos (2) –
Para permitir el acceso de forma anónima indicando el directorio raíz, se usa la directiva
...
#Parámetros de configuración
–
Cuando entremos en un sitio anónimo, realmente estaremos usando un usuario del sistema. Ese usuario suele ser ftp.
User ftp
U04. Configuración de un servidor ftp: ProFTPD
¡OjO! Sólo se ha modificado el ejemplo anterior.
48
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Sitios anónimos (3) –
–
Sin embargo, por convenio se usa como nombre de usuario anonymous para acceder a un servidor FTP anínimo. El usuario anonymous no tiene una cuenta en el sistema, sino que es un alias de una cuenta existente.
User ftp UserAlias anonymous ftp
–
Como el usuario ftp no tiene una shell válida, es necesario el uso de RequireValidShell off.
U04. Configuración de un servidor ftp: ProFTPD
49
Andrés Rosique Hernández
[email protected]
Instalación y mantenimiento de servicios de Internet
Sitios anónimos (4) –
Por último, para permitir conectarse al servidor FTP a los usuarios anónimos habrá que usar la directiva
.
DenyAll User ftp UserAlias anonymous ftp RequireValidShell off AllowAll
U04. Configuración de un servidor ftp: ProFTPD
50
Andrés Rosique Hernández [email protected]
Instalación y mantenimiento de servicios de Internet
Hosts virtuales ●
●
●
●
ProFTPd permite la creación de hosts virtuales de forma muy parecida a cómo se hizo con Apache. En Apache se tenían dos posibilidades: hosts virtuales basados en IP y en nombre de dominio. Sin embargo, un servidor FTP no tiene en cuenta el nombre de dominio y no podremos crear hosts virtuales basados en nombre. Los dos tipos de hosts virtuales que permite ProFTPd son las siguientes: – –
Hosts virtuales basados en IP. Hosts virtuales basados en puerto.
U04. Configuración de un servidor ftp: ProFTPD
51
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Hosts virtuales Basados en IP ●
●
[email protected]
Para crear hosts virtuales basados en IP hay que hacer uso de la directiva #Directivas y parámetros Esto nos permite tener en un mismo equipo diferentes sitios FTP anónimos y no anónimos mediante la asignación de una IP distinta a cada uno de ellos.
U04. Configuración de un servidor ftp: ProFTPD
52
Andrés Rosique Hernández
Instalación y mantenimiento de servicios de Internet
Hosts virtuales Basados en puerto ●
[email protected]
Para crear hosts virtuales basados en puerto hay que hacer uso de la misma directiva que antes pero especificando el puerto Port numeroPuerto #Directivas y parámetros
U04. Configuración de un servidor ftp: ProFTPD
53
Andrés Rosique Hernández [email protected]
Instalación y mantenimiento de servicios de Internet
Sitios que usan ProFTPD ●
ProFTPd es un servidor FTP usado en sitios web muy importantes como por ejemplo: – – – – – –
●
SourceForge Samba → ftp.samba.org Linksys Slackware → ftp.slackware.com. ibiblio.org abebooks.com
La lista completa de sitios se puede ver en http://www.proftpd.org/sites.html.
U04. Configuración de un servidor ftp: ProFTPD
54
Andrés Rosique Hernández [email protected]
Instalación y mantenimiento de servicios de Internet
Glosario ●
●
FTP: File Transfer Protocol (protocolo de transferencia de archivos). RFC: Request For Comments (petición de comentarios).
U04. Configuración de un servidor ftp: ProFTPD
55
Andrés Rosique Hernández [email protected]
Bibliografía Instalación y mantenimiento de servicios de Internet
●
●
Libros: – Martín Romero, A. y Martín Romero, J. Servicios de Internet. Instalación y mantenimiento. Mira Editores, 2006. Enlaces: – http://es.wikipedia.org/. – http://www.proftpd.org/localsite/Userguide/linked/userguide.html – http://www.proftpd.org/docs/directives/configuration_full.html. – http://www.howtoforge.com/perfect_setup_opensuse_10.2_p7
U04. Configuración de un servidor ftp: ProFTPD
56