15
Instituto Profesional de Chile 2011 FTP. Cuarta Solemne Sistemas Operativos Manuel Freire Felipe Rodríguez Sebastián Soto

Informe SO.pdf

Embed Size (px)

Citation preview

Page 1: Informe SO.pdf

Instituto Profesional de Chile

2011

FTP.

Cuarta Solemne Sistemas Operativos

Manuel Freire

Felipe Rodríguez

Sebastián Soto

Page 2: Informe SO.pdf

Página 2

INDICE

1. …………………………………………………………………………..Portada.

2. …………………………………………………………………………….Índice.

3. …………………………………………………………………….Introducción.

4. …………………………………………………………………..¿Que es FTP?

3.1……………………………………….…………….. ¿Para qué usamos FTP?

5. ……………………..……………………………………….……..servicio FTP.

6. …………….……………………………….………tipos de acceso.

7. …..…………………………………Parámetros de transferencias.

8. …………………………..………………..Tipos de representación.

9. ………………………………………..……………..Configuración

12. ……………………………………….Como publicar FTP en host. 13. …………………………………………………… FTP en CentOS.

14. …………………………………………………………..Conclusión.

15. ……………………… ………………………………… Bibliografía.

Page 3: Informe SO.pdf

Página 3

Introducción:

La elección del servicio FTP por sobre los demás que se nos fueron nombrados, fue

el hecho del tiempo que lleva vigente, su modo de trabajo y su versatilidad entre

otras cosa. Además el servicio FTP es basado en una arquitectura simple.

En este informe trataremos de exponer la teoría además de la implementación del

protocolo ftp, explicando el trasfondo de lo que un usuario normal puede observar al

realizar una descarga o subir un archivo en algún software enfocado a transmisión

ftp.

Informaremos además los tipos de accesos, modos de transferencia y la

importancia de los puertos ocupados. También explicaremos como funciona a través

de distintos sistemas operativos como Windows, Ubuntu y CentOS 6 entregando la

función de los comandos usados y los parámetros que hay dentro para su

configuración; agregando un ejemplo del uso de este protocolo y tan necesario como

pilar de muchos tipos de transmisión de archivos que se encuentran funcionando en

estos años.

Page 4: Informe SO.pdf

Página 4

¿Qué es FTP?

En 1969, un grupo de investigadores del MIT presenta una propuesta del primer

“protocolo para la transmisión de archivos en Internet”. Era un protocolo muy

sencillo basado en el sistema de e-mail pero sentó las bases para el futuro FTP. En

1985 se termino el desarrollo del FTP.

FTP que es una sigla en ingles de File Transfer Protocol en español Protocolo de

transferencia de Archivos. Que se desarrolla entre sistemas conectados a una red

TCP, con una arquitectura cliente-servidor, es de forma independiente al sistema

operativo, utilizando los puertos de red 20 y el 21.

En su proceso el servidor debe iniciar la conexión al puerto de datos especificado

(puerto 20) y transferir los datos en función de los parámetros que se hayan

especificado. Es independiente del sistema de archivos utilizado en cada

computadora y la mayoría de las veces la conexión de datos es bidireccional pero

cuando es solo de descarga se denomina unidireccional.

FTP admite dos modos de conexión para el cliente. Estos modos se denominan

ACTIVO y PASIVO. 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.

¿Para que usamos FTP?

FTP es usado comúnmente para la transferencia de archivos utilizando aplicaciones para dicho fin. Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otras formas de red, LAN, MAN, etc.). Su funcionalidad es permitir que ocurra el intercambio de datos entre Cliente/Servidor.

FTP es más utilizado para la transferencia de archivos de grandes tamaño, dependiendo de la extensión que este tenga por ejemplo en formato FAT32 soporta un máximo de 4 GB por archivo.

Page 5: Informe SO.pdf

Página 5

FTP

Aquí tenemos un diagrama del modelo de FTP.

Las órdenes FTP las genera el intérprete de protocolo (PI) del usuario y se

transmiten al proceso del servidor a través de la conexión de control. Estas órdenes

FTP especifican parámetros para la conexión de datos y la naturaleza de la

operación. Él proceso de transferencia de datos (DTP) de usuario u otro proceso,

debe esperar a que el servidor inicie la conexión al puerto de datos especificado

(puerto 20 por defecto) y transferir los datos en función de los parámetros que se

hayan especificado.

También vemos en el diagrama que la comunicación entre cliente y servidor es

independiente del sistema de archivos utilizado en cada computadora, de manera

que no importa que sus sistemas operativos sean distintos, porque las entidades que

se comunican entre sí son los PI y los DTP, que usan el mismo protocolo

estandarizado: el FTP.

Page 6: Informe SO.pdf

Página 6

Especificación:

Servidor

Un servidor FTP casi siempre es un programa especial que se ejecuta en algún equipo servidor normalmente conectado a Internet. Por lo general, los programas servidores FTP no suelen encontrarse en los computadores personales, por lo que un usuario normalmente utilizaría el FTP para conectarse de forma remota a uno y así intercambiar información con él.

Cliente El cliente de FTP la mayoría de las veces es un usuario simple que desea obtener o ingresar datos en un servidor. Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos (Microsoft Windows, DOS, GNU/Linux y Unix). Sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica. Aunque muchos navegadores tienen ya integrado FTP. Los clientes FTP poseen distintos tipos de acceso al servidor.

Tipos de accesos

Los clientes se pueden conectar de estas formas obteniendo distintos privilegios (mas adelante se especifica en la “configuración” los posibles privilegios). Acceso anónimo: Si un servidor posee servicio FTP “anonymous” solamente con teclear la palabra “anonymous”, tendrá acceso a ese sistema. No se necesita ninguna contraseña preestablecida, teniendo acceso a los archivos del FTP, aunque con menos privilegios que un usuario normal. 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, y se reservan los servidores de páginas web (HTTP) para almacenar información textual destinada a la lectura en línea. Acceso de usuario: Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, modificar archivos existentes, y la 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 una autentificación y una contraseña que nos identifican. Acceso de invitado: Se puede contemplar como una mezcla de los dos anteriores. La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario se conecte a la máquina mediante su usuario y su contraseña, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de esta forma accederá de forma restringida, algo muy similar a lo que sucede en los accesos anónimos, pero con algunos privilegios.

Page 7: Informe SO.pdf

Página 7

PARAMETROS DE TRANSFERENCIA

Existen dos modos de transferir los “datos” en FTP de modo ACTIVO y de modo

PASIVO, aquí tenemos su descripción de forma grafica

Page 8: Informe SO.pdf

Página 8

Modo activo En 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. El comando "PORT" permite pasar estos datos (el puerto a utilizarse) mediante un parámetro que especifica tanto la dirección IP del cliente como el puerto TCP hacia el servidor. El comando "PORT" es enviado siempre por la máquina cliente, y posteriormente es el servidor quien se encarga de abrir el canal de comunicación a través de ese puerto para enviar o recibir datos. Modo pasivo Cuando el cliente envía un comando “PASV” solicita al servidor que escuche en un puerto de datos distinto del puerto por defecto (puerto 21), y espere a recibir una conexión en lugar de iniciar una al recibir una orden de transferencia. La respuesta a este comando incluye la dirección IP y el puerto donde este servidor está esperando a recibir la conexión. Antes de cada nueva transferencia tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control (PORT o PASV, según el modo en el que haya conectado).

TIPOS DE REPRESENTACION

Debemos conocer cómo transportaremos un archivo a lo largo de la red. Si no utilizamos las opciones adecuadas podemos destruir la información. Por ende, al ejecutar la aplicación FTP, debemos acordarnos de utilizar uno de estos comandos (type X):

tipo ASCII

Adecuado para transferir archivos que sólo contengan caracteres imprimibles (archivos ASCII) por ejemplo páginas HTML, pero no las imágenes que puedan contener.

tipo binario

Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio, etc.

Page 9: Informe SO.pdf

Página 9

Hasta ahora solo hemos tratado mas la parte teórica del servicio, pues bien,

empezaremos con nuestra implementación del servicio.

Ahora bien poseemos distintos tipos de implementación del servidor FTP tales como

VSFTPD, ProFTPD, Wu-FTPD, entre otras. Nosotros utilizaremos VSFTPD para

montar nuestro servidor.

para instalar el servicio en Ubuntu 10.10 utilizamos el siguiente comando sudo apt-get install vsftpd se recomienda hacer una copia de seguridad del archivo ya que si deseamos recuperar la configuración por defecto lo reemplazamos por nuestro respaldo : cp /etc/vsftpd.conf /etc/respaldosvsftpd.conf el archivo que utilizaremos para configurar nuestro servicio ftp es: /etc/vsftpd.conf utilizando Gedit. Dentro del archivo procederemos a hacer los siguientes cambios: Para iniciar el servicio al encender el equipo: listen=YES El siguiente comando indica si queremos que se ingrese al server de forma anónima o con nombre de usuario especifico: anonymous_enable=YES/NO colocaremos en este caso “yes” el siguiente es para acreditar “usuarios” a usuarios locales. local_enable=YES Dar permisos de escritura en los directorios write_enable=YES Para que usuarios anónimos puedan subir archivos en sus directorios anon_upload_enable=YES

Page 10: Informe SO.pdf

Página 10

Habilitamos la opción para crear subdirectorios en los directorios: anon_mkdir_write_enable=YES Se activa los mensajes de los directorios, son los mensajes dados a los usuarios remotos cuando entran en un directorio determinado. dirmessage_enable=YES Utilizar la hora por defecto del servidor ftp: use_localtime=YES Activaremos el registro de carga y descarga del server: xferlog_enable=YES El puerto de escucha para el servicio ftp que utilizara, utilizaremos el por defecto: connect_from_port_20=YES Esta opción indica el nombre de un directorio que está vacío. Además, el directorio no debe ser modificable por el usuario ftp. Este directorio se utiliza como una jaula de seguridad () la cárcel, a veces vsftpd no requiere acceso a sistema de archivos. secure_chroot_dir=/var/run/vsftpd/empty Indica el nombre del servicio pam que utilizaremos: pam_service_name=vsftpd Esta opción especifica la ubicación del certificado de RSA para el uso de conexiones encriptadas SSL : rsa_cert_file=/etc/ssl/private/vsftpd.pem Cantidad de usuarios a conectarse al server: max_clients=5

Page 11: Informe SO.pdf

Página 11

Ahora bien para crear usuarios virtuales y anclarlos a un directorio específico utilizaremos los siguientes comandos: El archivo /etc/vsftpd.chroot_list tendrá los usuarios con acceso: Código: Recuerden que si no quieren usar usuarios con shell, debes quitarlos de esta lista Esta demás decir que ROOT NUNCA debe pertenecer a esta lista. usuario_con_login1 usuario_con_login2 usuariovirtual1 usuariovirtual2 El archivo /etc/vsftpd.deny_list alojara a los usuarios que no tendrán acceso al sistema de archivo con el siguiente comando se inicia el archivo antes mencionado para denegar el acceso a dichos usuarios: cat /etc/passwd | cut -d":" -f1 >>/etc/vsftp.deny_list para crear usuarios para nuestros clientes ftp ingresamos los siguientes comandos: (a estos usuarios se les hace llamar usuarios virtuales): groupadd ftp-users chmod 755 /home/ftp chown root:ftp-users /home/ftp useradd -g ftp-users -d /home/ftp -s /bin/false caos useradd -g ftp-users -d /home/ftp -s /bin/false usuariovirtual2 passwd usuariovirtual1 passwd usuariovirtual2 Por ultimo para reiniciar nuestro servidor ftp utilizamos el siguiente comando: /etc/init.d/vsftpd restart para detenerlo es: /etc/init.d/vsftpd stop

Page 12: Informe SO.pdf

Página 12

para iniciarlo: /etc/init.d/vsftpd start *RSA es utilizado en todo el mundo para los protocolos destinados para el comercio electrónico. SSL proporciona sus servicios de seguridad cifrando los datos intercambiados entre el servidor y el cliente.

Como publicar FTP en host Primero debemos registrar ftp en un host para descarga de archivos: En este caso ingresaremos a www.000webhost.com (o algún servidor que pueda subir y bajar archivos ftp) Nos registramos en “sign up” y a continuación creamos un subdominio llamado www.solemnecuatro.comli.com, rellenamos todos los demás datos. Luego validamos el registro en el correo electrónico que indicamos anteriormente. Nos muestra los detalles de nuestra cuenta: FTP host name solemnecuatro.comli.com FTP user name a8003361 FTP password 123456uno FTP IP 31.170.160.87 Posterior a esto descargamos un cliente FTP en este caso filezilla. Con filezilla instalado vamos a Archivo/gestión de sitios y creamos nuevo sitio, ponemos el nombre que queramos. Proseguimos llenando los datos de servidor con el host name (solemnecuatro.comli.com o 31.170.160.87), seleccionamos FTP, utilizamos un cifrado simple, modo de acceso normal, rellenamos el nombre de usuario con lo registrado anteriormente junto con la contraseña y hacer click en aceptar. Más abajo de la pestaña archivo en filezilla seleccionamos nuestro sitio que creamos anteriormente para poder entrar como administrador, así podremos subir y bajar archivos con toda libertad para que nuestros clientes puedan descargar. Para poder descargar archivos diríjase a la siguiente dirección: ftp://www.solemnecuatro.comli.com Ingresamos con: Nombre: a8003361 Password: 123456uno

Page 13: Informe SO.pdf

Página 13

Y procedemos a la descarga de archivos en caso de ser un cliente o administrarlo en caso de ser el admin. Este ejemplo nos muestra la conexión unidireccional ya el cliente solo podrá realizar descargas de la información que el administrador subió al sitio ftp. Si queremos denegar permisos al cliente de lectura escritura o ejecución, entramos a www.000webhost.com luego a file manager (una opción de la pagina para administrar nuestros archivos y directorios) lo hacemos en la opción chmod y podremos colocar la máscara y seleccionar o deseleccionar los permisos desde una lista de cuadros de verificación.

FTP en CentOS.

Ahora bien, un poco de FTP para CentOS. Utilizaremos el implemento VSFTPD en

CentOS 6 enfocándonos para red interna

VSFTPD (Very Secure File Transfere Protocol Daemon; el mismo que utilizamos

para Ubuntu)

Esto es aplicable para usuario Root en CentOS 6:

Instalación:

Ingresamos el comando “yum -y install vsftpd”

Advertencia: si algunos valores no aparecen en el archivo de configuración se

recomienda agregar al final de nuestro archivo de configuración, realice un respaldo

antes de empezar TODO en caso de cualquier error que se produzca.

Configuración:

Editaremos el archivo de configuración utilizando Gedit, ingresamos el comando

“gedit /etc/vsftpd/vsftpd.conf”.

Los permisos para el acceso de usuarios anónimos:

“anonymous_enable=YES/NO”

Para permitir accesos autenticados de mis usuarios locales:

“local_enable=YES/NO”

Permite Escribir en el servidor:

“write_enable=YES/NO”

Page 14: Informe SO.pdf

Página 14

Para que los usuarios anónimos puedan subir contenido al servidor:

“anon_upload_enable=YES/NO”

Dar permiso a los usuarios anónimos para que creen directorios en el servidor:

“anon_mkdir_write_enable=YES/NO”

Establece un mensaje de bienvenida:

“ftpd_banner=Bienvenidos a mi cuarta solemne”

Para que los usuarios tengan acceso a distintos directorios:

“chroot_local_user=YES/NO”

“chroot_list_enable=YES/NO”

“chroot_list_file=/etc/vsftpd/chroot_list”

Dar un número máximo de clientes que puede acceder a mi servidor#

“max_clients=25”

Para limita el tráfico de los usuarios anónimos, en este caso daremos 500kb's:

“anon_max_rate=524288”

Limita el tráfico para usuarios locales, en este caso a 1mb's:

“local_max_rate=1048576”

Ahora debemos saber que para

Iniciar:

“Service vsftpd start”

Reiniciar:

“Service vsftpd restart”

Detener:

“Servicie vsftpd stop”

Comprobamos IP de nuestro servidor con ifconfig (en nuestro caso será 10.0.2.15),

con esa IP entraremos desde nuestros clientes de una forma anónima. Para finalizar

en la barra de dirección de nuestro navegador debemos poner:

ftp://10.0.2.15 y revisar si podemos realizar descargas desde el servidor

Conclusión.

Tras haber hecho una lectura de la teoría y haber realizado la parte practica del

servicio, nos hemos topado con un servicio complementario y útil para la

transferencia de datos, con una vigencia casi inamovible. Con un diseño simple pero

a la vez algo estructurado que nos facilita la vida sin que nos demos cuenta.

FTP comenzó como una simple idea para traspasar archivos y hoy en día es

utilizado de forma casi masiva para esto.

Page 15: Informe SO.pdf

Página 15

BIBLIOGRAFIA

www.aemilius.net/soporte/manuales/publicar-software-ftp-FileZilla.html

www.taringa.net/posts/hazlo-tu-mismo/8135734/Tutorial-como-hostear-dominio-TK-

con-000webhost-y-wordpress.html

www.wikipedia.es

www.youtube.com

www.desarrolloweb.com/manuales/72/

www.alcancelibre.org/staticpages/index.php/09-como-vsftpd