Buscar en este blog

lunes, 1 de octubre de 2012

SERVICIO WEB







EL SERVICIO  WEB ES UNA TECNOLOGÍA QUE UTILIZA UN CONJUNTO DE PROTOCOLOS Y ESTÁNDARES QUE SIRVEN PARA INTERCAMBIAR DATOS ENTRE APLICACIONES CON CAPACIDAD PARA INTEROPERAR EN LA WEB.
ESTOS SERVICIOS PROPORCIONAN MECANISMOS DE COMUNICACIÓN ESTÁNDARES ENTRE DIFERENTES APLICACIONES, QUE INTERACTÚAN ENTRE SÍ PARA PRESENTAR INFORMACIÓN DINÁMICA AL USUARIO. PARA PROPORCIONAR INTEROPERABILIDAD Y EXTENSIBILIDAD ENTRE ESTAS APLICACIONES, Y QUE AL MISMO TIEMPO SEA POSIBLE SU COMBINACIÓN PARA REALIZAR OPERACIONES COMPLEJAS.

PUERTOS QUE UTILIZA:
80: PUERTO POR DEFECTO
8080:PUERTO ALTERNATIVO
443: PUERTO SEGURO


CÓMO INTERACTÚA UN CONJUNTO DE SERVICIOS WEB:


SEGÚN EL EJEMPLO DEL GRÁFICO, UN USUARIO (QUE JUEGA EL PAPEL DE CLIENTE DENTRO DE LOS SERVICIOS WEB), A TRAVÉS DE UNA APLICACIÓN, SOLICITA INFORMACIÓN SOBRE UN VIAJE QUE DESEA REALIZAR HACIENDO UNA PETICIÓN A UNA AGENCIA DE VIAJES QUE OFRECE SUS SERVICIOS A TRAVÉS DE INTERNET. LA AGENCIA DE VIAJES OFRECERÁ A SU CLIENTE (USUARIO) LA INFORMACIÓN REQUERIDA. PARA PROPORCIONAR AL CLIENTE LA INFORMACIÓN QUE NECESITA, ESTA AGENCIA DE VIAJES SOLICITA A SU VEZ INFORMACIÓN A OTROS RECURSOS (OTROS SERVICIOS WEB) EN RELACIÓN CON EL HOTEL Y LA COMPAÑÍA AÉREA. LA AGENCIA DE VIAJES OBTENDRÁ INFORMACIÓN DE ESTOS RECURSOS, LO QUE LA CONVIERTE A SU VEZ EN CLIENTE DE ESOS OTROS SERVICIOS WEB QUE LE VAN A PROPORCIONAR LA INFORMACIÓN SOLICITADA SOBRE EL HOTEL Y LA LÍNEA AÉREA. POR ÚLTIMO, EL USUARIO REALIZARÁ EL PAGO DEL VIAJE A TRAVÉS DE LA AGENCIA DE VIAJES QUE SERVIRÁ DE INTERMEDIARIO ENTRE EL USUARIO Y EL SERVICIO WEB QUE GESTIONARÁ EL PAGO.
EL SISTEMA DEBE CONTAR CON UNA SERIE DE PROGRAMAS BÁSICOS PARA DAR SERVICIO WEB. EXISTEN ALGUNAS COMBINACIONES DE PROGRAMAS MUY UTILIZADAS PARA TAL FIN: WAMP, LAMP, FAMP, MAMP, SOAP, MTOM,SOAP RRSHB, WSDL, UDDI, ENTRE OTRAS).

SERVIDOR WEB APACHE

 "A PATCHY SERVER". SERVIDOR  DE PÁGINAS WEB DE DISTRIBUCIÓN LIBRE Y DE CÓDIGO ABIERTO, UN SERVIDOR DE PÁGINAS WEB ES UN PROGRAMA QUE PERMITE ACCEDER A PÁGINAS WEB ALOJADAS EN UN ORDENADOR. APACHE ES PRINCIPALMENTE USADO PARA SERVIR PÁGINAS WEB ESTÁTICAS Y DINÁMICAS EN LA WWW.  SI ES WINDOWS: WAMP, SI ES EL LINUX: LAMP, ETC.
ES EL MÁS UTILIZADO SEGUIDO DE MICROSOFT INFORMATION SERVICES (IIS). LA APLICACIÓN PERMITE EJECUTARSE EN MÚLTIPLES SISTEMAS OPERATIVOS COMO WINDOWS, NOVELL NETWARE, MAC OS X Y LOS SISTEMAS BASADOS EN UNIX.
 
APACHE TIENE SOPORTE PARA LOS LENGUAJES PERL, PYTHON, TCL Y PHP, 
PERMITE LA CONFIGURACIÓN DE MENSAJES DE ERRORES PERSONALIZADOS Y NEGOCIACIÓN DE CONTENIDO Y  PERMITE AUTENTICACIÓN DE BASE DE DATOS BASADA EN SGBD.

 
  • APACHE ES UNA TECNOLOGÍA GRATUITA DE CÓDIGO FUENTE ABIERTO.ESTO LE DA UNA TRANSPARENCIA A ESTE SOFTWARE DE MANERA QUE SI QUEREMOS VER QUE ES LO QUE ESTAMOS INSTALANDO COMO SERVIDOR , LO PODEMOS SABER,  ;). 
     
  • APACHE ES UN SERVIDOR ALTAMENTE CONFIGURABLE DE DISEÑO MODULAR. ES MUY SENCILLO AMPLIAR LAS CAPACIDADES DEL SERVIDOR WEB APACHE. 
     
  • APACHE TRABAJA CON GRAN CANTIDAD DE LENGUAJES DE SCRIPT, TAMBIÉN TRABAJA CON JAVA Y PÁGINAS JSP. TENIENDO TODO EL SOPORTE QUE SE NECESITA PARA TENER PÁGINAS DINÁMICAS. 
     
  • APACHE TE PERMITE PERSONALIZAR LA RESPUESTA ANTE LOS POSIBLES ERRORES QUE SE PUEDAN DAR EN EL SERVIDOR. ES POSIBLE CONFIGURAR APACHE PARA QUE EJECUTE UN DETERMINADO SCRIPT CUANDO OCURRA UN ERROR EN CONCRETO.
  • TIENE UNA ALTA CONFIGURABILIDAD EN LA CREACIÓN Y GESTIÓN DE LOGS. APACHE PERMITE LA CREACIÓN DE FICHEROS DE LOG A MEDIDA DEL ADMINISTRADOR, DE ESTE MODO PUEDES TENER UN MAYOR CONTROL SOBRE LO QUE SUCEDE EN TU SERVIDOR .
 
CONFIGURACIÓN DE APACHE:

-->
CUANDO SE HA INSTALADO EL SERVIDOR, HAY QUE CONFIGURARLO. APACHE INCLUYE POR DEFECTO UNA CONFIGURACIÓN QUE ARRANCA EL SERVIDOR EN EL PUERTO TCP POR DEFECTO, QUE ES EL PUERTO 80, Y SIRVE LOS FICHEROS DEL DIRECTORIO QUE SE HA ESPECIFICADO MEDIANTE LA DIRECTIVA DE CONFIGURACIÓN DENOMINADA DOCUMENTROOT. ESTE FICHERO DE CONFIGURACIÓN DE APACHE ES EL HTTPD.CONF, LOCALIZADO EN EL SUBDIRECTORIO "CONF" DENTRO DEL DIRECTORIO DE INSTALACIÓN. HTTPD.CONF ES UN FICHERO DE TIPO ASCII QUE CONTIENE LAS DIRECTIVAS DE CONFIGURACIÓN.

ESTRUCTURA DEL FICHERO DE CONFIGURACIÓN HTTPD.CONF
HTTPD.CONF ESTÁ COMPUESTO POR TRES BLOQUES FUNDAMENTALES, AUNQUE LAS DIRECTIVAS DE CADA UNO DE LOS BLOQUE PUEDEN APARECER DESORDENADAS O MEZCLADAS.
ESTOS BLOQUES SON:
  • PARÁMETROS GLOBALES
  • DIRECTIVAS DE FUNCIONAMIENTO
  • WEB HOSTING
-->
 PARÁMETROS GLOBALES:
-->
<DIRECTORY>: LOS PARÁMETROS QUE SE ENCUENTRAN DENTRO DE LA SECCIÓN DIRECTORY SÓLO SE APLICAN AL DIRECTORIO INDICADO Y SUS SUBDIRECTORIOS.
<DIRECTORYMATCH>: IGUAL QUE DIRECTORY, AUNQUE ACEPTA EXPRESIONES REGULARES EN EL NOMBRE DEL DIRECTORIO.
<FILES>: LOS PARÁMETROS DE CONFIGURACIÓN FACILITAN CONTROL DE ACCESO A LOS FICHEROS MEDIANTE SU NOMBRE.
<FILESMATCH>: IGUAL QUE FILES, PERO ACEPTA EN EL NOMBRE DEL FICHERO EXPRESIONES REGULARES.
<LOCATION>: PROPORCIONA CONTROL DE ACCESO A LOS FICHEROS MEDIANTE LA URL.
<LOCATIONMATCH>: IGUAL QUE LOCATION, PERO ACEPTA EN EL NOMBRE DEL FICHERO EL USO DE EXPRESIONES REGULARES.
<VIRTUALHOST>: LOS PARÁMETROS SÓLO SE APLICAN A AQUELLAS PETICIONES DIRIGIDAS A ESTE HOST (NOMBRE DE SERVIDOR, DIRECCIÓN IP O PUERTO TCP).
<PROXY>: SÓLO SE APLICAN ESTOS PARÁMETROS A AQUELLAS PETICIONES DE PROXY (REQUIERE QUE ESTÉ INSTALADO "MOD PROXY") COINCIDENTES CON LA ESPECIFICACIÓN DE URL.
<PROXYMATCH>: IGUAL QUE PROXY, PERO ACEPTA EN LA URL INDICADA EL USO DE EXPRESIONES REGULARES.
<IFDEFINE>: SÓLO SE APLICA SI AL ARRANCAR EL SERVIDOR EXISTE UN PARÁMETRO CONCRETO DEFINIDO EN LA LÍNEA DE COMANDOS, MEDIANTE LA OPCIÓN -D.
<IFMODULE>: SE APLICAN LOS PARÁMETROS SI EL MÓDULO ESPECIFICADO SE ENCUENTRA CARGADO (MEDIANTE LOADMODULE) EN EL MOMENTO DE ARRANCAR EL SERVIDOR .
EN CASO DE QUE EXISTA CONFLICTO ENTRE DIFERENTES ESPECIFICACIONES DE PARÁMETROS, EL ORDEN DE PRECEDENCIA ES:
  1. <DIRECTORY> Y .HTACCESS
  2. <DIRECTORYMATCH> Y <DIRECTORY>
  3. <FILES> Y <FILESMATCH>
  4. <LOCATION> Y <LOCATIONMATCH>
EN CUANTO A <VIRTUALHOST>, ESTAS DIRECTIVAS SIEMPRE SE APLICAN SIEMPRE DESPUÉS DE LAS DIRECTIVAS GENERALES. DE ESTE MODO, UN VIRTUALHOST PUEDE MODIFICAR LA CONFIGURACIÓN POR DEFECTO.

DIRECTIVAS DE FUNCIONAMIENTO:
ESTAS SON OPCIONES DE CONFIGURACIÓN PAR LA EJECUCIÓN DEL SERVIDOR WEB.

- ACCESSFILENAME ESPECIFICA EL NOMBRE DEL ARCHIVO DE CONTROL POR DIRECTORIO, EL ARCHIVO .HTACCES CONTIENE DIRECTIVAS APLICADAS PARA CADA DIRECTORIO.

- DOCUMENTROOT ES EL DIRECTORIO RAÍZ PARA LOS ARCHIVOS DEL SITIO WEB.
CADA HOST VIRTUAL DEFINIDO DENTRO DE LOS CONTENEDORES <VIRTUALHOST> DEBE TENER ESTA DIRECTIVA PARA INDICAR LA RUTA DÓNDE SE ENCUENTRAN LOS ARCHIVOS DEL SITIO.

INCLUDE USADA SI DESEA INCLUIR OTROS ARCHIVOS DE CONFIGURACIÓN A PARTE DE LOS PROPIOS DEL SERVIDOR.

-LISTEN USADA PARA ESPECIFICAR EL PUERTO A TRAVÉS DEL CUAL ESCUCHARÁ APACHE LAS PETICIONES DE LOS CLIENTES WEB. 
* LISTEN 80  //PUERTO HTTP POR DEFECTO
* LISTEN 8080  //HTTP ALTERNATIVO
* LISTEN  443 //HTTPS

-USER ESTA DIRECTIVA SE USA PARA CONFIGURAR EL ID DEL USUARIO DEL SISTEMA QUE SE UTILIZARÁ PARA EJECUTAR LOS PROCESOS DEL APACHE.

-GROUP ESTA DIRECTIVA SE USA PARA CONFIGURAR EL ID DEL GRUPO DEL SISTEMA QUE SE UTILIZARÁ PARA EJECUTAR LOS PROCESOS DEL APACHE.

-OPTIONS ESTA DIRECTIVA CONTROLA LAS PROPIEDADES DEL SERVIDOR DISPONIBLES PARA UN DIRECTORIO EN PARTICULAR. 

LOS VALORES POSIBLES SON LOS SIGUIENTES:

NONE:SIN OPCIONES 
ALL:  TODAS
EXECCEGI:SE PERMITE LA EJECUCIÓN DE CGI  
INDEXES: SI SE SOLICITA LA URL DE UN DIRECTORIO Y ÉSTE CARECE DE UN DIRECTORYINDEX, ENTONCES EL SERVIDOR MUESTRA UNA LISTA CON EL CONTENIDO DE DICHA CARPETA. 
FOLLOWSYMLINKS: EL SERVIDOR SEGUIRÁ LOS ENLACES SIMBÓLICOS QUE APUNTEN A LOS DIRECTORIOS DEL SISTEMA.
 INCLUDES: SE PUEDEN UTILIZAR LOS COMANDOS SSI

-SERVERADMIN ESTA DIRECTIVA ESPECIFICA LA DIRECCIÓN DE CORREO ELECTRÓNICO QUE EL SERVIDOR INCLUYE PARA LOS MENSAJES DE ERROR (PUEDE SER LA DEL WEBMASTER).

- SERVERNAME ESTA DIRECTIVA ES LA ENCARGADA DE DEFINIR EL NOMBRE DEL SERVIDOR (FQDN).
TENGA EN CUENTA QUE PARA CADA HOST VIRTUAL DEBE ESPECIFICAR UN SERVERNAME.

- SERVERROOT ESTA DIRECTIVA SE USA PARA DEFINIR EL DIRECTORIO EN EL QUE SE ENCUENTRAN LOS ARCHIVOS DE CONFIGURACIÓN DEL SERVIDOR.(ARCHIVO DE CONFIGURACIÓN GLOBAL).

- SERVERALIAS CUANDO TENGA QUE REFERIRSE A UN SERVIDOR QUE TIENE VARIOS NOMBRES PUEDE UTILIZAR SERVERALIAS PARA DEFINIR UN SOBRENOMBRE PARA EL MISMO SERVERNAME.

-ERRORLOG ESTA DIRECTIVA ESPECIFICA EL NOMBRE DEL ARCHIVO DE REGISTRO DONDE SE GUARDAN LOS MENSAJES DE ERROR QUE GENERA EL SERVIDOR.

- ALLOWOVERRIDE ESTA DIRECTIVA LE INDICA AL SERVIDOR QUÉ DIRECTIVAS DE LAS DECLARADAS EN EL ARCHIVO .HTACCESS, PUEDEN SUSTITUIR A LAS QUE SE ENCONTRÓ EN LOS PRIMEROS ARCHIVOS DE CONFIGURACIÓN.

CUANDO EL ARGUMENTO SEA NONE, EL SERVIDOR NO LEERÁ EL ARCHIVO .HTACCESS (SE ACELERA EL TIEMPO DE RESPUESTA DEL SERVIDOR)


OPCIONES:
       AUTHCONFIG
       FILEINFO
       INDEXES
       LIMIT
       OPTIONS

-ORDER CONTROLA EL SISTEMA DE EVALUACIÓN QUE UTILIZA APACHE CON LAS DIRECTIVAS ALLOW Y DENY (USADAS PARA PERMITIR O DENEGAR HOSTS)

-DIRECTORYINDEX ESPECIFICA LAS PAGINAS PRINCIPALES PARA UN SITIO WEB

  HOSTING VIRTUAL:
-->
APACHE PERMITE SERVIR VARIOS SITIOS WEB CON UN ÚNICO SERVIDOR. PARA ELLO PERMITE LA CREACIÓN DE DOMINIOS VIRTUALES EN FUNCIÓN DE DIFERENTES DIRECCIONES IP O DIFERENTES NOMBRES POR IP. APACHE FUE DE LOS PRIMEROS SERVIDORES QUE SOPORTÓ SERVIDORES VIRTUALES SIN NECESIDAD DE DISTINGUIR POR IP, SINO EN FUNCIÓN DE NOMBRE. ESTA CAPACIDAD SIMPLIFICA ENORMEMENTE LA ADMINISTRACIÓN DE LOS SERVIDORES, Y SUPONE UN AHORRO DE DIRECCIONES IP, QUE NORMALMENTE SON ESCASAS
 

HOSTING  VIRTUAL BASADO EN NOMBRES:


- CUANDO SE USA HOSTING VIRTUAL BASADO EN NOMBRES, EL SERVIDOR ATIENDE AL NOMBRE DE HOST QUE ESPECIFICA EL CLIENTE EN LAS CABECERAS DE HTTP.

- USANDO ESTA TÉCNICA, UNA SOLA DIRECCIÓN IP PUEDE SER COMPARTIDA POR MUCHOS SITIOS WEB DIFERENTES.

- EL HOSTING VIRTUAL BASADO EN NOMBRES ES MÁS SENCILLO, PORQUE SOLO NECESITA CONFIGURAR SU SERVIDOR DE DNS PARA QUE LOCALICE LA DIRECCIÓN IP CORRECTA Y ENTONCES CONFIGURAR SERVIDOR WEB PARA QUE RECONOZCA LOS DIFERENTES NOMBRES DE HOST. 

HOSTING  VIRTUAL BASADO EN BASADO EN IP:



-->
-ES NECESARIO CONFIGURAR LOS ROUTERS PARA QUE ASOCIEN ADECUADAMENTE TODAS LAS DIRECCIONES IP QUE QUIERA USAR CON LOS SERVIDORES WEB (VIRTUALES Y PRINCIPAL)
-PODRÁ ELEGIR ENTRE CREAR ALIAS IP PARA CADA INTERFAZ ETHERNET O DISPONER DE DISTINTAS INTERFACES PARA CADA DIRECCIÓN IP (TARJETAS ETHERNET ADICIONALES).
GLOSARIO: 
 
 - SOAP:
"SIMPLE OBJECT ACCESS PROTOCOL" , ES UN PROTOCOLO DE MENSAJERÍA CONSTRUIDO EN XML QUE SE USA PARA CODIFICAR INFORMACIÓN DE LOS REQUERIMIENTOS DE LOS WEB SERVICES Y PARA RESPONDER LOS MENSAJES ANTES DE ENVIARLOS POR LA RED. LOS MENSAJES SOAP SON INDEPENDIENTES DE LOS SISTEMAS OPERATIVOS Y PUEDEN SER TRANSPORTADOS POR LOS PROTOCOLOS QUE FUNCIONAN EN LA INTERNET, COMO SER: SMTP, MIME Y HTTP.
-MTOM:
TECNOLOGÍA COMPLEMENTARIA A SOAP, QUE AGILIZA EL ENVÍO DE LOS MENSAJES.
-SOAP RRSHB:
TECNOLOGÍA COMPLEMENTARIA A SOAP, QUE AGILIZA EL ENVÍO DE LOS MENSAJES  Y LOS RECURSOS QUE SE TRANSMITEN EN ESOS MENSAJES
-WSDL:
"LENGUAJE DE DESCRIPCIÓN DE SERVICIOS WEB", PERMITE QUE UN SERVICIO Y UN CLIENTE ESTABLEZCAN UN ACUERDO EN LO QUE SE REFIERE A LOS DETALLES DE TRANSPORTE DE MENSAJES Y SU CONTENIDO, A TRAVÉS DE UN DOCUMENTO PROCESABLE POR DISPOSITIVOS. WSDL REPRESENTA UNA ESPECIE DE CONTRATO ENTRE EL PROVEEDOR Y EL QUE SOLICITA. WSDL ESPECIFICA LA SINTAXIS Y LOS MECANISMOS DE INTERCAMBIO DE MENSAJES.
-UDDI: 
"UNIVERSAL DESCRIPTION, DISCOVERY AND INTEGRATION". ES UN DIRECTORIO DISTRIBUIDO QUE OPERA EN LA WEB  QUE PERMITE A LAS EMPRESAS PUBLICAR SUS WEB SERVICES, PARA QUE OTRAS EMPRESAS CONOZCAN Y UTILICEN LOS WEB SERVICES QUE PUBLICAN, OPERA DE MANERA ANÁLOGA A LAS PÁGINAS AMARILLAS.
-XML:
  "EXTENSIBLE MARKUP LANGUAGE". EL XML ES UNA ESPECIFICACIÓN DESARROLLADA POR W3C. PERMITE A LOS DESARROLLADORES CREAR SUS PROPIOS TAGS, QUE LES PERMITEN HABILITAR DEFINICIONES, TRANSMICIONES, VALIDACIONES, E INTERPRETACIÓN DE LOS DATOS ENTRE APLICACIONES Y ENTRE ORGANIZACIONES
-WAMP:FAMP: MAMP: LAMP:
(LINUX-APACHE-MYSQL- PHP/PYTHON/PERL). EL TÉRMINO HACE REFERENCIA AL SISTEMA CREADO POR LA CONJUNCIÓN DE ESAS APLICACIONES LIBRES (DE CÓDIGO ABIERTO). ESTE GRUPO DE APLICACIONES GENERALMENTE SON USADOS PARA CREAR SERVIDORES WEB.
PROVEE A LOS DESARROLLADOES DE CUATRO ELEMENTOS NECESARIOS PARA UN SERVIDOR WEB: UN SISTEMA OPERATIVO, UN MANEJADOR DE BASE DE DATOS  (MYSQL), UN SOFTWARE PARA SERVIDOR WEB (APACHE) Y UN SOFTWARE DE PROGRAMACIÓN SCRIPT WEB.





SERVIDOR FTP



"FILE TRANSFER PROTOCOL"


Protocolo de Transferencia de Archivos') en informática, 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. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos.

PUERTOS QUE UTILIZA FTP:20 Y 21
PUERTO 20: Utilizado para el flujo de datos entre el cliente y el servidor (Por donde pasan los datos)
PUERTO 21:Para el flujo de control, es decir para enviar órdenes o comandos ejecutados por el cliente e interpretados por el shell.
Mientras se transfieren datos a través del flujo de datos, el flujo de control permanece a la espera trabajando  en una arquitectura cliente -servidor.






ACCESO ANONIMO


Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USER ID' o una cuenta de usuario. Es la manera más cómoda fuera del servicio web 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.
Si un servidor posee servicio 'FTP anonymous' solamente con teclear la palabra «anonymous», cuando pregunte por tu usuario tendrás acceso a ese sistema. No se necesita ninguna contraseña preestablecida, aunque tendrás que introducir una sólo para ese momento, normalmente se suele utilizar la dirección de correo electrónico propia.


ACCESO DE USUARIO LOCAL

Si se desea 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 una autentificación (en inglés: login) y una contraseña (en inglés: password) que nos identifica unívocamente.


 CLIENTE FTP BASADO EN WEB

Un «cliente FTP basado en Web» no es más que un cliente FTP al cual podemos acceder a través de nuestro navegador web sin necesidad de tener otra aplicación para ello. El usuario accede a un servidor web (HTTP) que lista los contenidos de un servidor FTP. El usuario se conecta mediante HTTP a un servidor web, y el servidor web se conecta mediante FTP al servidor FTP. El servidor web actúa de intermediario haciendo pasar la información desde el servidor FTP en los puertos 20 y 21 hacia el puerto 80 HTTP que ve el usuario.
Siempre hay momentos en que nos encontramos fuera de casa, no llevamos el ordenador portátil encima y necesitamos realizar alguna tarea urgente desde un ordenador de acceso público, de un amigo, del trabajo, la universidad, etc. Lo más común es que no estén instaladas las aplicaciones que necesitamos y en muchos casos hasta carecemos de los permisos necesarios para realizar su instalación. Otras veces estamos detrás de un proxy o cortafuegos que no nos permite acceder a servidores FTP externos



ACCESO INVITADO 

El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP denominado invitado (guest), que 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 conecte a la máquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de esta forma accederá a un entorno restringido, algo muy similar a lo que sucede en los accesos anónimos, pero con más privilegios.



MODOS DE CONEXIÓN CLIENTE FTP  

FTP admite dos modos de conexión del cliente. Estos modos se denominan 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) y 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.

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. Para ello, 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.
Lo anterior tiene un grave problema de seguridad, y 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.






MODO PASIVO

Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal de control, el puerto (mayor a 1023 del servidor. Ejemplo:2040) al que debe conectarse el cliente. El cliente inicia una conexión desde el puerto siguiente al puerto de control (Ejemplo: 1036) hacia el puerto del servidor especificado anteriormente (Ejemplo: 2040).1
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), y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en modo pasivo) o por el puerto 20 (si está en modo activo). En el protocolo FTP existen 2 tipos de transferencia en ASCII y en binarios.






 LINEA DE COMANDOS SERVIDOR FTP


COMANDO                            FUNCIÓN

open servidor Inicia una conexión con un servidor FTP.
close disconnect Finaliza una conexión FTP sin cerrar el programa cliente.
bye o quit Finaliza una conexión FTP y la sesión de trabajo con el programa cliente.
cd directorio Cambia el directorio de trabajo en el servidor.
delete archivo Borra un archivo en el servidor
mdelete patrón Borra múltiples archivos basado en un patrón que se aplica al nombre.
dir Muestra el contenido del directorio en el que estamos en el servidor.
get archivo Obtiene un archivo
noop No Operation Se le comunica al servidor que el cliente está en modo de no operación, el servidor usualmente responde con un «ZZZ» y refresca el contador de tiempo inactivo del usuario.
mget archivos Obtiene múltiples archivos
lcd directorio Cambia el directorio de trabajo local.
ls Muestra el contenido del directorio en el servidor.
prompt Activa/desactiva la confirmación por parte del usuario de la ejecución de comandos. Por ejemplo al borrar múltiples archivos.
put archivo Envía un archivo al directorio activo del servidor.
mput archivos Envía múltiples archivos.
pwd Muestra el directorio activo en el servidor.
rename archivo Cambia el nombre a un archivo en el servidor.
rmdir directorio Elimina un directorio en el servidor si ese directorio está vacío.
status Muestra el estado actual de la conexión.
bin- binary Activa el modo de transferencia binario.
ascii Activa el modo de transferencia en modo texto ASCII.
! Permite salir a línea de comandos temporalmente sin cortar la conexión. Para volver, teclear exit en la línea de comandos.
? nombre de comando Muestra la información relativa al comando.
? o help Muestra una lista de los comandos disponibles.
append nombre del archivo Continua una descarga que se ha cortado previamente.
bell Activa/desactiva la reproducción de un sonido cuando ha terminado cualquier proceso de transferencia de archivos.
glob Activa/desactiva la visualización de nombres largos de nuestro PC.
literal Con esta orden se pueden ejecutar comandos del servidor de forma remota. Para saber los disponibles se utiliza: literal help.
mkdir Crea el directorio indicado de forma remota.
quote Hace la misma función que literal.
send nombre del archivo Envía el archivo indicado al directorio activo del servidor.
user Para cambiar nuestro nombre de usuario y contraseña sin necesidad de salir de la sesión ftp.



CONFIGURACIÓN SERVIDOR FTP



ARCHIVO DE CONFIGURACIÓN FTP "VSFTPD"

"VSFTPD" Es denominado como el archivo de configuración global del ftp, en el cual se pueden configurar las lineas respectivas para obtener el buen funcionamiento del servidor ftp. Se deberán configurar las siguientes lineas.

NOTA: Recordemos que al quitarle el carácter # lo cual se llama " descomentar" de esta forma activamos su funcionamiento.


 Anonymous_enable=NO: Se utiliza para definir si se permitirán los accesos anónimos delservidor. Establezca como valor YES - NO de acuerdo al resultado que se requiera. e utiliza para definir si se permitirán los accesos 
 
Local_enable=YES: Para habilitar o denegar los accesos autenticados de los usuarios locales del
servidor FTP.
  
ftpd_banner=Bienvenido al Servidor FTP Linux : Este parámetro sirve para establecer un
mensaje de bienvenida el cual será mostrado cada vez que un usuario acceda al servidor de archivos.
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar 
esta función.
 
chroot_list_enable=YES |NO: Para limitar a los usuarios a trabajar en su propia carpeta 
trabajo.
 chroot_list_file=/etc/vsftpd/chroot_list:  Habilitar este parámetro indicara al servidor 
 que el usuario solo podrá trabajar dentro de su carpeta de trabajo, para
 ello solo habrá que teclear la palabra YES, en caso contrario use la palabra NO El siguiente parámetro se encuentra en función del anterior, de forma que si usted lo habilito también tendrá que habilitar este ultimo, para ello solo deberá borrar el carácter de numero (#).


  EN LA LISTA "USER_LIST" AGREGAMOS LOS USUARIOS QUE QUEREMOS ENJAULAR.





EN LA LISTA CHROOT_LIST AGREGAREMOS LOS USUARIOS QUE NO QUERAMOS ENJAULAR




EN EL ARCHIVO "etc/passwd" ESPECIFICAMOS LA RUTA DE LOS USUARIOS


DE ESTA MANERA COMPROBAMOS SI LOS USUARIOS HAN SIDO ENJAULADOS CORRECTAMENTE