














Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Tema 4: Servidor FTP. 4.1. Introducción. 1 4.2. Servidor FTP. 2 4.3. Cliente FTP. 3 4.4. Protocolo FTP. 3 4.5. Tipos de acceso. 4 4.6. Conexiones. 4 4.7. Modos de trabajo. 5 4.7.1. Modo activo. 5 4.7.2. Modo pasivo. 6 4.8. Cortafuegos y encaminadores/NATP. 7 4.9. Seguridad. 9 4.10. Otros protocolos. 10 4.11. Ejercicios. 11 Anexos: 15 Comandos FTP. 15 Filezilla. 16 Instalación. 16 Configuración. 16 Configuración general del servidor. 16 Configuración de usuarios y grupos. 17
Tipo: Apuntes
1 / 22
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!















Examen temas 3 y 4: Miércoles 16 1ª y 2ª horas
Las redes TCP/IP permiten transferir información entre equipos de distintas formas: adjuntando en correos, mediante hipervínculos, arrastrar-soltar vía Web (moodle),.. FTP: File Transfer Protocol. (RFC 959) FTP es un servicio especialmente diseñado para transferencia de ficheros, abstrayéndose de los Sistemas Operativos utilizados. Por lo que, optimiza los recursos y facilita el trabajo. FTP es un protocolo de la capa Aplicación, el servicio que ofrece es estándar entre los sistemas conectados en red TCP/IP. Permite: Acceso remoto y listar directorios y ficheros. Transferencia de ficheros: subida (upload) o bajada (download). Operaciones remotas sobre los archivos: renombrar, borrar, crear y borrar carpetas,.. Funciona según el modelo cliente – servidor. Sus componentes son: a) Cliente FTP: Permite a cualquier equipo acceder al servidor para subir, bajar o modificar archivos. b) Servidor FTP: En el residen los ficheros a descargas o donde se suben. Permite identificar a los usuarios, personalizar los privilegios en el sistema (en cuanto a subida, bajada acceso a carpetas,..), gestión de tiempos de acceso y velocidades,.. c) Protocolo FTP: Normas y reglas que permiten la comunicación entre cliente y servidor. Ejemplos de servidores FTP públicos: ftp.rediris.es ftp.debian.com ftp.sites.org Para acceder a ellos (tanto desde linux como windows): $ftp ftp.rediris.es Se entra en modo comando. Usuario: anonymous Usuario anónimo disponible. Contraseña: Dejar la contraseña en blanco (como norma de netiquette se solía dejar el email del usuario que accedía).
ls Desde en entorno del servidor FTP visualizamos los archivos disponibles. quit Para salir del entorno del servidor FTP También se puede acceder desde un navegador (parece que ya no): ftp://ftp.rediris.es
Servidor FTP: programa que atiende a los clientes FTP dando acceso al sistema de archivos que gestiona el FTP. Ofrece diferentes configuraciones para los usuarios: privilegios, limitaciones (en subidas, descargas, tiempos de conexión),... Hay gran variedad de servidores FTP, podemos destacar los siguientes: Sistemas Linux // Unix. vsftpd http://vsftpd.beasts.org proftpd http://www.proftpd.ord pure-ftp http://www.pureftpd.org/project/pure-ftpd wu-ftpd http://www.landfield.com/wu-ftpd Sistemas Windows. FTP incluido en http://www.iis.net Filezilla serverhttp://filezilla-project.org Serv-U http://www.serv-u.com
Programas que acceden al sistema de ficheros del servidor FTP. Se pueden distinguir: En línea de comando. Aplicaciones dedicadas en entornos Gráficos. Navegador. La mayoría de los sistemas operativos tienen integrados el cliente ftp en línea de comando, se invoca: ftp servidor. Se entra en modo comando, según el SO ofrecerá un listado de los posibles comandos a usar. Se pueden acceder a ese listado con: “help” o “?”. Y para solicitar ayuda de un comando específico se pone el comando detrás: “help comando” // “? comando”. Para ejecutar un comando del equipo local, pero dentro del entorno FTP, se pone delante el símbolo “!”. Ej: !dir , si estamos ejecutando el cliente en un equipo windows nos mostrará el directorio actual del equipo windows. ls mostrará el contenido del directorio actual del servidor ftp (si es un servidor linux). Excepto para el comando cd , que en caso de querer ejecutarlo para el equipo cliente: lcd. Clientes gráficos más utilizados: Filezilla client http://filezilla-project.org WinSCP http://winscp.net
put subida ls lista directorio … y recibe una respuesta de la evolución de la petición. Esta conexión se mantiene hasta que se cierra la sesión bien por el usuario cliente FTP o por time out previsto en el servidor. El servidor puede atender a más de un cliente, teniendo más de una conexión de control simultánea, tantas como se configuren en el servidor sin llegar a la saturación por sobrecarga. Conexión de datos. Cuando se solicita una transferencia se abre una conexión de datos, que se cerrará cuando termine la transmisión. Asociadas a una conexión de control puede haber más de una conexión de datos, tantas como se programe en el servidor. Se ha de cuidar de no sobrecargar el sistema. Por una conexión de datos nunca se envían comandos de control. Por una conexión de control nunca se envían datos: Siempre hay una conexión de control y una de datos. Los clientes utilizan puertos dinámicos (que habitualmente son superiores al 1024).
El cliente FTP puede iniciar una conexión de dos formas distintas: Modo activo. Modo pasivo (El cliente lo inicia enviando la palabra clave PASV).
Es el modo nativo de FTP. En él se utilizan los puertos TCP-20 para datos y TCP-21 para control (servicio fuera de banda). El procedimiento de funcionamiento es el siguiente:
Cuando inicia el servidor la conexión de datos, previamente el cliente ha debido abrir el puerto por el que recibirá los datos. Esto genera una vulnerabilidad en la seguridad del equipo cliente , que se corrige con el uso de un firewall o si está detrás de un NATP (la parte del NAT que estamos acostumbrados a ver, es abreviatura de NAT Port). Pero en ambos casos, se rechazará el intento de conexión desde el servidor: Firewall situado delante del cliente evitará intentos de conexiones desde el exterior al cliente por puertos superiores al 102 4. Si el cliente está detrás de NATP, este descartará las conexiones que vienen desde el exterior (en este caso del servidor) al puerto que abre el cliente. Los cortafuegos y NATP actuales implementan FTP-ALG (Application Level Gateway) ayuda1 ayuda2. (ALG explicado de una forma muy sencilla (en este contexto) funciona así: Un dispositivo de interconexión, típicamente el Router sobre el que se realiza el NAT-> (que en este caso es NATP), revisa el interior de los paquetes del nivel de FTP para redireccionarlos a la ip y puerto adecuados de manera que de facto se permita, en este caso, la conexión a un puerto superior a 1024 en el cliente desde el puerto 20 del servidor) -> que sí permitirán la conexión. Su funcionamiento es el siguiente: Analiza las conexiones FTP y se fija en los comandos PORT y registra IP privada y puerto cliente. Modifica el comando PORT a la IP pública y un puerto del equipo NATP. Cuando el servidor responde: lo hace a la IP pública y al puerto NATP, que lo cambia a la IP privada y al puerto que indicó el cliente.
En este caso, el cliente siempre empieza las conexiones, el puerto 20 del servidor no se utiliza. El procedimiento sería el siguiente:
b) Conexión en modo pasivo (nunca hay conexión entrante en el cliente): i) El cortafuegos ha de permitir conexiones salientes al puerto 21: conexión control. ii) El cortafuegos ha de permitir conexiones salientes a puertos mayor 1024 para las conexiones de datos. B) Servidor. a) Conexión en modo activo: i) Trivial: El cortafuegos ha de permitir entrada al puerto 21. Conexión de control. ii) Trivial: El cortafuegos ha de permitir conexiones salientes del puerto 20 hacia puertos mayores de 1024. Conexión de datos. b) Conexión en modo pasivo: i) Trivial: Se han de permitir conexiones TCP entrantes al puerto 21. Conexiones de control. ii) No es trivial: Habilitar el mecanismo para que se permitan conexiones TCP entrantes a puertos mayores de 1024. Conexiones de datos. C) Actuaciones que hay que realizar a) Evitar el Hijacking: Es importante que el cortafuegos haga un seguimiento de las entradas pasivas: asegurar que el cliente que inicia la conexión por un puerto mayor que 1024 es el cliente al que se le indicó dicho puerto. b) Protección del servidor: El encaminador, NATP y/o cortafuegos de red. i) Permitir conexiones entrantes al puerto 21. ii) Redirigir el puerto 21 del NATP al puerto 21 del servidor. iii) Configurar la IP externa del NATP y un rango de puertos para aceptar las conexiones de datos. iv) El cortafuegos de red debe permitir conexiones entrantes hacia los puertos definidos. v) Hay que redirigir el rango de puertos del encaminador al servidor FTP. Resumiendo: Modo activo Cliente Servidor Puerto > 1024 Puerto = 21 Conexión de control Puerto > 1024 Puerto = 20 Conexiones de datos El cliente queda expuesto en la conexión de datos. Si el cliente está detrás de un cortafuegos o NATP requiere FTP-ALG Configuración de cliente compleja, configuración de servidor fácil. Modo pasivo Cliente Servidor Puerto > 1024 Puerto = 21 Conexión de control Puerto > 1024 Puerto > 1024 Conexiones de datos Servidor queda expuesto y requiere una configuración más compleja. El cliente es fácil de configurar.
FTP no es un protocolo seguro. Se diseñó buscando eficacia y velocidad en la transmisión de datos. Se caracteriza por tener como mínimo estas vulnerabilidades intrínsecas: ● Tiene mecanismo de identificación de usuarios. Permite privilegios de acceso, transferencia, escritura, listado de directorios, etcétera.. ● No garantiza la legitimidad de los equipos involucrados. Se puede hacer suplantación de identidad: spoofing. ● Todas las comunicaciones incluidas las contraseñas y usuarios van en texto plano. Se puede sufrir ataques por análisis de tráfico de red: sniffing. Además de las vulnerabilidades extrínsecas que pueda haber en clientes y servidores. Al igual que FTP en su diseño, otros protocolos TCP/IP no tuvieron en cuenta problemas de seguridad: HTTP, SMTP, Telnet, POP, IMAP, DNS,.. Como respuesta a esas deficiencias en seguridad surge: FTPS (SSL/TLS). Permiten encapsular FTP en SSL (Secure Sockets Layer) o en TLS (Transport Layer Security). Mediante criptografía y certificados digitales se garantiza la confidencialidad e integridad de la información transmitida y de los servidores. Se implementa de forma implícita o explícita. FTPS Implícito. ◦ Cliente establece conexión de control SSL/TLS. ◦ Si el servidor no soporta FTPS se cierra la conexión. ◦ Todas las comunicaciones son cifradas: control y datos. ◦ Para mantener compatibilidad con FTP que no soporte SSL/TLS se usan los puertos: control TCP-990 y datos TCP- ◦ No hay negociación entre cliente y servidor. FTPS Explícito (FTPES). ◦ El cliente establece la conexión por el puerto 21 y solicita explícitamente que sea segura, mediante los comandos: AUTH SSL ó AUTH TLS. ◦ Si el servidor soporta una conexión SSL/TLS se establece y si no ofrece una conexión FTP normal, “no segura”. ◦ Cliente y servidor pueden negociar que parte es cifrada: datos / control. No confundir con: SFTP: ssh File Transfer Protocol. FTP basado en ssh. (considerar el uso de SCP) https://geekflare.com/es/sftp-command-examples/ Secure FTP: FTP a través de una conexión ssh, túnel FTP sobre ssh. Tanto FTPS (seguridad dentro de la aplicación), SFTP (tunelización ya preparada), Secure FTP ( tunelización manual ) son técnicas diferentes.
Medio de transferencia seguro de archivos entre ordenador local y remoto; o entre dos ordenadores remotos. Utiliza el protocolo SSH. SCP: Secure Copy Protocol. SCP permite: Copia de fichero entre equipos remotos. Hay clientes SCP gráficos. Los servidores SSH atienden peticiones de transferencia de ficheros desde clientes SFTP y/o SCP. Algunos servidores SSH: OpenSSH http://www.openssh.com WinSSHD http://www.bitvise.com/winsshd Encapsulado SSH (otra alternativa) La mayoría de los clientes gráficos FTP pueden actuar como clientes SFTP ó SCP.
Vamos a centrarnos en el cliente, para ahorrar tiempo lectivo prescindiremos de las prácticas de servidor que dejaremos como voluntarias. TUNELIZACIÓN Investigación: Documenta con bibliografía y ejemplos propios como tunelizar un servicio (propongo mysql, aunque no necesariamente tiene que ser este) y acceder a él de forma segura desde un cliente Windows y un cliente Linux. PRÁCTICAS CON CLIENTES FTP (OBLIGATORIOS)
Los trabajos hechos de instalación de servidor han de estar en una máquina virtual que tenga al menos una tarjeta puente: 192.168.10.xx, donde xx es el número de posición de la clase multiplicado por 10. Igual que en el los trabajos de DNS.
fichero: ejercicio_nombrealumno a pub y a alumnos. Entrar como anonymous. Descargar tema3 y publico2. Subir un fichero llamado opinion1 al directorio pub. Conectarse con alumno2 desde XP y alumno3 desde Debian. Alternativamente un usuario y otro: descargan algún fichero y suben algún otro. Estudiar el fichero logs. C:\Archivos de programa\Filezilla server\logs. Comenta las anotaciones. ¿Se pueden hacer todas las cosas propuestas?
! Permite ejecutar comandos del sistema operativo en la máquina local. ? Muestra los comandos que se pueden ejecutar en el cliente ftp. Append Concatena un archivo. Ascii Configura y transfiere archivos de tipo ascii. Bell Sonido de campanilla cuando el comando se ha realiza con éxito. Binary Configura y transfiere archivos de tipo binarios. Bye Finaliza la sesión ftp. Cd Se sitúa dentro del directorio indicado. Close Finalizar la sesión ftp. Debug Configura el modo de supresión de errores. Delete Borra el archivo especificado de la computadora remota. Dir Nos muestra los archivos y directorios en el servidor FTP. Disconnect Finalizar la sesión ftp. Get Descarga un archivo desde el servidor ftp. Glob Transponer el nombre de archivo local con un metacarácter. Hash Imprime el metacarácter “#” por cada buffer transferido. Help Imprime información de ayuda local. Lcd Cambiarse de directorio en el equipo local. Literal Envía argumentos literales al servidor ftp remoto. Ls Lista el contenido de un directorio remoto. Mdelete Borrar varios archivos. Mdir Lista los contenidos de varios directorios remotos. Mget Descarga varios archivos. Mkdir Crea un directorio en la máquina remota. Mls Lista el contenido de varios directorios remotos. Mput Envía varios archivos. Open Abre conexión remota. Prompt Fuerza la ejecución de múltiples comandos. Put nombredearchivo.txt Sube al servidor ftp el archivo.txt. Pwd Nos indica el directorio en que nos encontramos en el servidor FTP. Quit Cierra la sesión con el servidor ftp. Quote Envía comando ftp arbitrario. Recv Recibe archivo desde máquina remota. Remotehelp Nos da ayuda sobre los comandos de la máquina remota. Rename Cambia el nombre de un archivo en la computadora remota. Rmdir Borra un directorio de la máquina remota. Send Envía un archivo al servidor remoto. Status Muestra el status local. Trace Activa/desactiva trazado de transferencia de paquetes. Type Configura el tipo de archivo a transferir. User Envía información de usuario nuevo.
Filezilla sólo permite usuarios virtuales, es decir, son usuarios establecidos en Filezilla y no del Sistema Operativo. Los usuarios están confinados al directorio al que acceden por defecto. Primero se crea la estructura de directorios. Segundo desde Edit/Users se configuran los usuarios y sus privilegios. Add. Para añadir un usuario. Se especifica si pertenece a algún grupo o no. Si pertenece a un grupo toma por defecto todas las características del grupo, en caso contrario habría que dar las especificaciones para él: directorio por defecto, velocidad de acceso,.. Borrar. Renombrar. Edit/groups. Para gestionar los grupos de usuarios. Add. Añadir un grupo nuevo. Shared folder. Permite establecer los privilegios sobre los directorios que se indiquen del grupo de usuarios. En el caso del grupo alumnos, ha de tener como home (H) c:\ftp\alumnos y acceso de lectura a c:\ftp\pub. Para permitir el acceso a directorios distintos del home (H) se ha de crear un alias. Para crear el alias: primero se añade el directorio c:\ftp\pub y botón derecho elegir crear alias. Se especifica dentro de la estructura que tenga el home donde se creará el enlace o alias, ej: /pub, esto hará que cuando entre el usuario en su home vea un directorio “\pub” que lo llevará a “c:\ftp\pub”. Speed limit. Limitaciones de velocidad, por hora y días (añadiendo reglas). IP Filter. Serían IPs de las que no pueden acceder los usuarios pertenecientes a ese grupo.
Hay que configurar el Firewall del Windows2008 para que permita las conexiones de Filezilla. Inicio / Panel de control / Seguridad / Permitir un programa a través de Firewall. Si no aparece en el listado de programas “Filezilla server”, entonces: botón “Permitir otro programa” y se busca, debe estar en: c:\Archivos de programa\Filezilla server\Filezilla server.exe Se marca y se salva.
Very Secure FTP Daemon, la página principal: http://vsftpd.beast.org Servidor que se distribuye con licencia GNU para sistemas Linux. Para instalarlo desde cuenta root: #apt-get update #apt-get install vsftpd #apt-get install ftp Si no está disponible algún cliente ftp modo terminal. Con esto se crearán:
Archivos de configuración. Usuario ftp, que pertenece al grupo ftp. Directorio /srv/ftp, cuyo propietario es root y grupo ftp. Será el directorio predeterminado para usuarios anónimos. Comprobar: Se ha creado el usuario ftp: #cat /etc/passwd #cat /etc/group Está creado el directorio /srv/ftp cuyo propietario es root y grupo ftp. #ls -l /srv La configuración del servidor se hace a través de ficheros de configuración. El principal fichero de configuración y que se crea en la instalación es: /etc/vsftpd.conf. Su contenido tiene el siguiente formato: El archivo contiene una serie de directivas que determinan el comportamiento del servidor. Estas directivas tienen el formato:
Vsftpd permite la conexión de usuarios anónimos, locales del sistema y virtuales. a) Anónimos son: anonymous o ftp. Directiva: anonymous_enable Al conectarse un usuario anónimo tiene como directorio por defecto: /srv/ftp. Queda especificado en /etc/passwd para el usuario ftp. El usuario anónimo está confinado a este directorio con permiso de lectura y no escritura.
Para resolverlo hay que eliminar el permiso de escritura en el home del usuario (555) y crear dentro una carpeta en que tenga permiso de escritura (755) y en ella si podrá escribir. Esa carpeta nueva ha de pertenecer al usuario y a su grupo (supongamos que el home de los usuarios ftp está dentro de una carpeta ftp): #chown nombre_usuario:ftp /home/ftp/nombre_usuario/carpeta_nueva
Para instalar el servicio FTP en Windows 2008 debemos seguir los siguientes pasos: ● Inicio / Herramientas administrativas / Administrador del servidor. ● Roles – Agregar roles. ● Servidor web (IIS). ● Marcar: − Herramientas de administración.
◌ Consola de administración IIS. − Servidor FTP. ● Instalar.
Se trata de crear una carpeta que será el origen del sitio ftp, es decir, a partir de donde se colgarán todas las carpetas de los usuarios y la estructura ftp. Será la raíz FTP. Ej: c:\ftp Dentro de esa carpeta origen o raíz ha de haber: Una carpeta para los usuarios locales del sistema operativo llamada localuser. Ej: c:\ftp\localuser Una carpeta para los usuarios anónimos llamada public. Ej: c:\ftp\localuser\public Una carpeta para los usuarios del dominio con el nombre del dominio. Ej: c:\ftp\nombre_dominio Para cada uno de los usuarios locales o del dominio que tengan acceso ftp, se ha de crear una carpeta con su nombre dentro de localuser o nombre_dominio según el caso, en la que por seguridad solo puedan leer y escribir ellos.
Una vez creada la infraestructura de carpetas dentro de la raíz ftp para los usuarios locales o del dominio que tengan acceso FTP: Menú contextual del servidor / Agregar sitio FTP. En las siguientes pantallas se pide: Nombre del sitio, ej: ftp-iis Ruta física. La que se ha preparado como origen o raíz del sitio, ej: c:\ftp Dirección IP y puerto se deja con los datos que vienen por defecto. Se pueden crear más de un sitio FTP en el mismo servidor, para ello cada uno ha de tener un puerto distinto. Los clientes, según al sitio con el que van a actuar tendrán que especificar el puerto, por defecto irán al 21. SSL. En principio se indica: sin SSL. Como reto se puede hacer con SSL. Identificación: se marca anónima y básica. Los usuarios anónimos son: anonymous y ftp. Permitir acceso a todos los usuarios en forma lectura / escritura.
Por defecto, los usuarios no están enjaulados y se pueden mover libremente al igual que el anónimo y pueden leer/escribir en cualquier sitio. Al hacer clic sobre el sitio creado, aparecen una serie de iconos que permiten la configuración: Aislamiento de usuario FTP. Permite confinar o no a los usuarios. Independientemente que por las propiedades de las carpetas se impidan que puedan escribir en las que no están autorizados. Se debe marcar la opción: “Directorio de nombre de usuario”. No deja acceder a los usuarios que no tengan un directorio con su nombre dentro de la raíz ftp: “Raíz FTP/ localuser/nombre_usuario ”. Identificación FTP. Se puede modificar la aceptación o no de usuarios anónimos.