TABLA COMPARATIVA

 

DE SERVIDORES DE WEB

 

 

 

 

Autor : Diego Massaldi

Tutor :  Lic. Juan Carlos Benia

                                                                                                Universidad Tecnológica Nacional

 


 

INDICE TEMÁTICO

I. INTRODUCCION

Definición de servidores de Web.. 8

Cualidades.8

Niveles de sistema. 9

Criterio utilizado. 9

Windows 2000 Server Vs Linux Redhat 6.2. 11

II.  TABLA COMPARATIVA 12

1        DISPONIBILIDAD.. 12

1.1            Tolerancia a fallo de zona ( cluster remoto o multisitio) 12

1.2            Tolerancia a fallo de Servidor. 13

1.2.1                Replicación de servidores con balance de carga. 13

1.2.2                Replicación de almacenamiento. 14

1.2.3                Recursos compartidos ( cluster ) 15

1.3            Tolerancia a fallos de disco  15

1.3.1                RAID por hardware  15

1.3.2                RAID por software  16

1.4            Tolerancia a fallos de conexión de red 16

1.5       Fallas de software. 16

1.5.1                Estabilidad  16

1.5.2                Monitoreo  17

1.5.3                Reasignación de prioridades  17

1.5.4                Cuotas de disco  18

1.5.5                Migración de datos  18

1.6            Interrupciones Programadas. 19

1.6.1                Interrupción por actualización. 19

1.6.2                Por reconfiguración  19

1.7            Ataques externos. 19

2        ESCALABILIDAD.. 21

2.1            Plataformas de 64 bits  21

2.2       SMP. 22

2.3       RAM... 22

2.3.1                Máximo direccionable. 22

2.3.2                NUMA   23

2.4            Gigaethernet 23

2.5       Canal de fibra ( Fiber Chanel) 23

2.6            Tarjeta de SSL.. 23

2.7            Firewire ( IEEE 1394) 24

2.8       I2O.. 24

2.9            Filesystems  24

2.9.1                Soporte para 64 bits  24

2.9.2                Data Stripping. 24

2.10            Archivos  24

2.10.1                Nombre de archivo  24

2.10.2                Tamaño máximo de archivo  25

2.11            Reverse Proxy. 25

3        SEGURIDAD   26

3.1            Autenticación  por SO   26

3.1.1                Control de password de usuario  27

3.1.2                Base de datos de passwords  27

3.1.3                Encriptación de password  27

3.1.4                Acceso de superusuario. 27

3.2            Autenticación por red  28

3.3            Encriptación de Filesystem.. 28

3.4            Autorización  29

3.5            Confidencialidad. 29

3.5.1                SSL 3.0  29

3.5.2                Certificados digitales  30

3.5.3                VPN   30

3.6            Seguridad Perimetral 31

3.7            Detección de Intrusos. 31

3.8            Auditoria  32

3.8.1                De accesos de usuario  32

3.8.2                De archivos accedidos / modificados. 32

3.8.3                Configuración de nivel de auditoria  33

3.9       Código Abierto vs. Propietario. 33

3.10     Virus. 33

3.11            Trusted System y clases de Seguridad. 34

4        VERSATILIDAD.. 35

4.1            Plataformas  35

4.1.1                Requerimientos mínimos  35

4.1.2                Variedad  35

4.2            Periféricos  35

4.3            Servidor virtual 36

4.4            Instalación del SO.. 37

4.4.1                Plug&Play  37

4.4.2                Instalación por red  37

4.4.3                Booteo por red  37

4.5       Kernel 37

4.5.1                Configuración. 37

4.5.2                Modificación (código abierto) 38

4.6            Actualizaciones y parches del SO   38

4.7            Administración de Software. 38

4.7.1                Instalación de software  38

4.7.2                Presentación de sofware instalado  39

4.8            Interfase de administrador en consola. 39

4.8.1                CLI 39

4.8.2                GUI 39

4.8.3                BROWSER   40

4.9            Interfase de administrador remoto  40

4.9.1                CLI 40

4.9.2                GUI 40

4.9.3                Browser 41

4.10            Configuraciones ASCII vs. binario  41

4.11     Shell scripts  41

4.12            Ejecución automática por tiempo. 42

4.13            backups  42

4.14     Web browser / editor incluido. 43

4.15     Ayuda en línea  43

4.16            Estructuras de archivos. 43

4.16.1                Compresión  43

4.16.2                Manejo de volúmenes lógicos  44

4.16.3                De fragmentación  44

4.16.4                Filesystems  44

4.16.4.1                Jornalización (Journaling) 44

4.16.4.2                Sub-Alocacion de Bloques  45

4.16.4.3                Discos Autodescriptivos  45

4.16.4.4                Puntos de montaje  45

4.17            Soporte de WAN.. 45

4.17.1                FDDI 45

4.17.2                ISDN   46

4.17.3                ATM    46

4.17.4                Frame Relay  46

4.18            TCP/IP  46

4.18.1                Tunneling  46

4.18.2                IPv6  47

4.18.3                Enmascaramiento de IP  47

4.18.4                Enrutamiento  47

4.18.5      IP Multiplexing. 48

4.18.6      IP Multicast 48

4.18.7                TCP Large Windows  48

4.19            Servidor de Acceso Remoto  48

4.20            Servicios de red. 49

4.20.1                NNTP  49

4.20.2                NTP  49

4.20.3                DHCP  49

4.20.4                FTP  49

4.20.5                DNS  50

4.20.6                SNMP  50

4.20.7                BOOTP  50

4.21            Servidor de Email 50

4.21.1                Email saliente. 50

4.21.2                Email entrante. 51

4.22            Servicios de Directorio : 51

4.22.1                LDAP  51

4.22.2                NIS/NIS+  51

4.22.3                Directorios en Internet 52

4.23            Servidor de archivos. 52

4.23.1                SMB/CIFS  52

4.23.2                NFS  52

5        SERVIDOR DE WWW    53

5.1            Disponibilidad  53

5.2            Recuperación de sesión  53

5.3            Escalabilidad. 53

5.3.1                Páginas estáticas  54

5.3.2                Páginas dinámicas  54

5.3.3                Páginas  e-commerce  55

5.4       Virtual hosting  55

5.5            Seguridad  55

5.5.1                Integración con SSL  55

5.5.2                Certificados criptográficos  55

5.6            Variedad de terceros. 56

5.7            Multithreads  56

5.8            Integración  56

 5.9            Servidor de búsqueda. 57

5.10            Análisis del Sitio. 57

5.11     HTTP 1.2  57

5.12     XML.. 57

6        APLICACIONES.. 59

6.1            Publicación de contenido. 60

6.2            Ambiente de aplicaciones. 60

6.2.1                Java  61

6.2.1.1                Optimización JVM    62

6.2.1.2                Soporte de JDK   62

6.2.1.3                EJB/J2EE  62

6.2.2                COM+  62

6.2.3                Independiente : CORBA/COS, CGI 63

6.2.4                Scripts embebidos en HTML  63

6.3            Paquetes  64

6.3.1                Software de Servidor de Aplicaciones. 64

6.3.2                Software de E-Commerce  65

6.4       Bases de Datos. 66

6.5       Apoyo de comunicaciones  67

6.5.1                Comunicaciones Sincrónicas  67

6.5.2                Comunicaciones Asincrónicas. 67

6.6            Escritorio  68

7        RECURSOS HUMANOS.. 69

7.1            Licencias por usuario. 69

7.2            Capacitación interna. 69

7.3       RRHH Externos. 70

7.3.1                Mercado de RRHH   70

7.3.2                Soporte Técnico  70

7.3.3                Servicios tercerizados. 70

III.  CONCLUSIONES.... 72

Bibliografía. 74

GLOSARIO.. 75

 

 


 

                    I. INTRODUCCION

 

Las comparaciones son odiosas porque suelen ser injustas, porque al comparar se dejan de lado causas, circunstancias o aspectos que de ser considerados podrían modificar el resultado de la comparación.

Este trabajo seguramente no es una excepción, pero ambiciona ser una guía para decidir el tipo de servidor de web que una organización dada requiera.  Supone la existencia de una red lan y/o wan interna a la que se quiere agregar un servidor de web para internet junto con acceso a un ISP ( proveedor de servicio de internet ).   La información provista también es muchas veces aplicable a servicios de servidor virtual  ( donde se posee un sistema operativo virtual completo con acceso a archivos de configuración en una máquina remota ) o virtual hosting ( más limitado y más común, donde se posee un espacio de disco para instalar las páginas de web, archivos de ftp, etc. )

El relevamiento del las características de un servidor de web es una carrera contra el tiempo, ya que a medida que se escribe las tendencias de servidores de web se van modificando.   En este caso, en medio surgió Windows 2000, que soluciona muchos problemas de NT, lo cual seguramente lo hará muy popular en el mundo el uso de servidores de aplicaciones.   Es por esto que esta tabla debe considerarse dinámica y probablemente se desactualice con el tiempo.  Pero ofrece una estructura general a la cual sólo habría que agregarle las nuevas tecnologías que vayan surgiendo.

El software para servidor de web tiende a converger en las mismas tecnologías,  diluyendo las diferencias, de modo que es posible combinar los diversos protocolos, métodos y tecnologías y lograr que funcionen conjuntamente.  Otra cuestión son las ventajas y desventajas de estas combinaciones, lo cual este trabajo también espera ayudar a dilucidar.  Por ejemplo, los distribuidores de linux Turbolinux y Redhat  afirman que permiten hacer un cluster de linux, Solaris y NT que actúen como un solo servidor virtual, dando escalabilidad, disponibilidad y redundancia a muy bajo costo.  Existe software de terceros que proveen de interfases CORBA a servidores de Microsoft, el cual usa COM en forma nativa en lugar de CORBA, con el cual se puede hacer cualquier combinación de componentes y de aplicaciones.  Se está desarrollando en la comunidad linux la capacidad de soporte de ASP en Apache, lo cual permitiría migrar desde IIS a Apache.

Además, muchas de las limitaciones de cada servidor de web puede solucionarse mediante desarrollos en C u otro lenguaje más simple como los de scripting,  así como adquiriendo productos de terceros.

La tabla de pesos relativos es una poderosa herramienta para dar objetividad a una evaluación de alternativas;   este trabajo puede tomarse como base.  Basta con  asignar un  peso relativo cero a los items que no se consideren y crear una entrada en la columna de pesos y otra en la de calificaciones a cada item final, es decir, que no tenga subitems.

También este trabajo puede servir como guía para una migración de un servidor a otro, y como una visión global de las posibilidades de un servidor de web.

Se intentó que esta tabla fuera aplicable para cualquier clase de sitio, desde un sitio simple con una sola máquina hasta uno de “ecommerce” con una “granja” de servidores con tolerancia a fallos.


 

Definición de servidores de Web

 

Los servidores de web son básicamente lo mismo desde que comenzaron a existir a principios de los 90,  y probablemente estén aquí para quedarse, ya que son el soporte de internet.  Su función es enviar páginas ( HTML, DHTML, XML, etc., aunque también imágenes de audio y video) a través de todo tipo de redes ( LAN, WAN,  inalámbricas, etc.) a un browser en una estación remota,  que suele ser una PC, pero puede ser desde otro servidor hasta un teléfono celular.   Esta función aparentemente sencilla puede esconder una enorme complejidad.

Un servidor de web se define por su función,  ya que su naturaleza concreta puede ser bastante difusa.  Se puede llamar servidor de web , según la el nivel a que se lo vea,  a un conjunto de máquinas (complementarias, clonadas o clusters )  , a una máquina física,  al software que presta el servicio http ( por ejemplo Apache o IIS) ,  o  a  una aplicación que interactúa con el software mencionado y con bases de datos ( “web aplication servers”).   Este trabajo hace referencia a todas estas opciones.

El advenimiento de internet y de los servidores de web acabó con la tendencia del modelo cliente-servidor tal como se entendía, volviendo al servidor que centraliza datos y procesamiento y al cliente “fino”, que antes eran terminales y ahora son browsers en las más diversas plataformas.

Cualidades

Las cualidades deseables de los servidores de web son:

a)      disponibilidad :  Prestación de servicios sin interrupción.

b)      Seguridad :  Impedimento del acceso no autorizado a datos.

c)      escalabilidad :  mantenimiento de tiempo de respuesta ante mayores requerimientos.

d)      versatilidad  : variedad de tecnologías, servicios e interfases soportados

Estas cualidades se relacionan de la siguiente manera:

 

                                                                            ß

Seguridad              à        Disponibilidad                                        Escalabilidad                  

                                                            à  Balance de carga à

 

La versatilidad de servicios puede influir o no en cada cualidad según el servicio.

La mayor seguridad aumenta la disponibilidad, ya que disminuye el riesgo de ataques de hackers.

La mayor escalabilidad aumenta la  disponibilidad, ya que disminuye el riesgo de que  el  sistema colapse por un exceso de requerimientos.

A su vez, la disponibilidad implementada como duplicación con balance de carga, permite mejorar el rendimiento, y por lo tanto la escalabilidad. 

Al hacer un análisis de este tipo se puede presentar como cualidad deseable la facilidad de administración. En este trabajo se considera que la facilidad no sólo es un concepto muy subjetivo sino también engañoso.   Se supone que  una interfaz gráfica es más fácil que una de comandos, pero a la vez la interfaz de comandos puede ser según los casos más rápida ( por ejemplo en una conexión lenta por modem ) y sobre todo es automatizable.  Por lo tanto se considera que lo realmente deseable es tener ambas opciones, lo cual incrementa la versatilidad, en este caso de la interfaz del SO.  Para analizar la facilidad de administración según un criterio en particular, se pueden analizar las opciones de configuración y monitoreo de cada item

Niveles de sistema.

Por  otro lado tenemos distintos niveles o capas de sistema en los que considerar las cualidades mencionadas: hardware soportado, sistema operativo, estructura de almacenamiento,  comunicaciones y servicios de redes,  servidor de web del SO y  aplicaciones y bases de datos soportadas:

 

HARDWARE               SISTEMA OPERATIVO                               APLICACIONES

Plataforma                   kernel / shell

    Memoria

    Procesador

Periféricos

DISCO             RAID   Volúmenes   Filesystems      Archivos

NIC                 red            enrutamiento            transporte            Servicios

                                                                                    http                  Servidor de Web

                                                                                                            Servidor de Aplicaciones

                                                                                                            Base de Datos

Criterio utilizado

Cada cualidad puede estudiarse para uno de los niveles de un sistema, desde el hardware hasta las aplicaciones.  Por ejemplo, escalabilidad de hardware, versatilidad de servicios de red, etc.

Resumiendo tenemos :

Niveles                                                Cualidades         

Hardware                                            Disponibilidad 

SO / Almacenamiento                      Seguridad                   

Redes                                                  Escalabilidad

Servidor de Web                            Versatilidad

Aplicaciones               

 

Nos interesan todas las combinaciones, o sea,  la disponibilidad, seguridad, escalabilidad y versatilidad a cada nivel.                   

El análisis de un sistema puede hacerse por niveles y dentro de cada uno por cualidades, o viceversa. 

Este trabajo es un híbrido entre ambos enfoques.  El criterio es que este trabajo se concentra en el sistema operativo, y muestra un panorama de las opciones de aplicaciones.  El sistema operativo es un bloque más bien monolítico incluyendo sus servicios de red, pero hay más posibilidades de cambiar al servidor de web o las aplicaciones, por haber más variedad. Por lo tanto estos últimos se ven por separado y las cualidades se ven en particular, segregadas por nivel desde el hardware hasta las distintas capas de redes y almacenamiento. 

También de esta manera resulta más útil para estudiar las distintas opciones a nivel aplicación.

Por último,  se consideran los recursos humanos necesarios para  la administración.

Así es que la tabla comparativa queda definida con 7 grupos :

 

Disponibilidad    de hardware,  Sistema Operativo, estructuras de archivos y redes

Escalabilidad    de hardware,  Sistema Operativo, estructuras de archivos y redes

Seguridad    de hardware,  Sistema Operativo, estructuras de archivos y redes

Versatilidad de hardware,  Sistema Operativo, estructuras de archivos y redes

Servidor de Web  : disponibilidad, escalabilidad, seguridad y versatilidad

Aplicaciones : disponibilidad, escalabilidad, seguridad y versatilidad

Recursos Humanos

 

La clasificación de items puede ser un tanto subjetiva porque puede estar incluido en más de  una categoría.  La capacidad de clustering, mejora la disponibilidad, pero también la escalabilidad.  La versatilidad de una interfaz de administración se puede analizar en forma general, pero también puede dividirse entre los demás rubros como seguridad, escalabilidad, servidor de WWW.  Los certificados digitales son un item de seguridad  de servicios de redes, del servidor de WWW y de aplicaciones a la vez..

 


Windows 2000 Server Vs Linux Redhat 6.2

Como ejemplo práctico de comparación de servidor de web, se evalúan Windows 2000  y linux Redhat 6.2.  

Esta elección descarta otras posibilidades que se mencionan sólo para tener un panorama global: 

Windows NT: El SO anterior de Microsoft desde el cual evolucionó al Windows 2000, que incluye todas las capacidades de su antecesor.

Unix corporativos: HPUX de HP, AIX de IBM, Solaris de SUN, ( el más usado en internet)

Unix Open Source: Otras distribuciones  o “sabores” de linux ( Suse, Turbolinux, Corel, etc.), freebsd, etc.

Novell 5.0: El servidor de web de Novell

También existen “boxes”, o sea máquinas con sistema incluido que se compran llave en mano para usarse como servidores de web, generalmente basados en linux, pero de configuración sencilla.

Las 2 propuestas a evaluar son representativas de las 2 filosofías  predominantes y más opuestas entre sí entre los servidores de web, y ambas parecen tener un futuro promisorio tanto sobre plataforma Intel como otras que surjan.

Windows 2000 parece ser el “acuse de recibo” de Microsoft a las numerosas críticas recibidas por el NT.  Casi todos los aspectos en que el  NT  adolece de  capacidades acordes a unix,  que deben ser suplidos por software de terceros, vienen incluidos en el Windows 2000, tales como cuotas de disco,  lenguaje de shell ( script ) o acceso remoto en modo caracter por telnet

NT había  incluido algunos agregados para suplir algunas carencias.  Estos son: un Option Pack, varios Service Packs, y 2 versiones especializadas: NT Server 4.0 Enterprise Edition ( Sep.1997) y NT Server 4.0 Terminal Server ( Junio 1998).

También  surgió el  Site Server para e-commerce, que actualmente se llama simplemente MS ECommerce.

La mayoría de estos productos vienen incorporados en el Windows 2000.

Redhat 6.2 viene con el kernel 2.2 de linux. Casi todo el análisis de Redhat es aplicable a otros ¨sabores¨ o distribuciones de linux.

Linux es el principal sistema operartivo de código abierto (open-source) y gratuito, no pertenece a ninguna empresa en particular, pero ya tiene apoyo de empresas como CA, Compaq, HP, IBM, Lotus, Novell y Oracle.

El kernel 2.4 de linux fue anunciado en febrero para setiembre del 2000, pero lleva retraso, aunque a la fecha existe una versión beta.

Según Survey.com hay un 17 % de empresas que planean instalar linux como servidores primarios de e-commerce en los próximos 2 años.


                II.  TABLA COMPARATIVA

1         DISPONIBILIDAD

 

Es el porcentaje de tiempo en que el sistema brinda los servicios.  En el caso de servidores de WWW, la exigencia suele ser “24x7x365”, o sea  idealmente no debería dejar de funcionar nunca.

Disponibilidad se refiere a la no-interrupción de ningún servicio, mientras seguridad se refiere al control de acceso a la información.  Desde ya que una violación severa en la seguridad puede devenir en interrupción de servicio, por ej. un hacker puede tener acceso privilegiado a un servicio y anularlo.

La mayor disponibilidad de un servicio se busca por medio duplicación de hardware y software,  lo cual redunda en  tolerancia a fallos, aunque también suele mejorar la performance haciéndolo más escalable en los casos de balance de carga de red, de cluster y SMP.

Como algo básico, la fuente eléctrica debe ser asegurada por lo cual el sistema debe estar soportado por al menos una UPS. Esto se da por descontado.

Como ejemplo de los valores que se manejan en cuanto a disponibilidad,  se muestra la siguiente clasificación.

Según la disponibilidad requerida, los servidores se clasifican en:

 

       Tiempo de caída anual     Tiempo máximo de caída

 

HAL 2   4 días                          4 hs   

HAL 3   8 hs                            1 hora                     

HAL 4   1 hora                          10 minutos

HAL 5   5 minutos                       30 segundos

HAL 6   30 segundos                     10 segundos

 

HAL significa High Availability Level, o sea Nivel de Alta Disponibilidad.

El nivel HAL 2 se aplica para comercio no critico en general.

HAL 3 se aplica para servidores de email.

HAL 4 para fabricas, servidores de e-commerce.

HAL 5 para telecomunicaciones, satélites, servicios de bancos, sistemas de salud.

HAL 6 para el Depto. de Defensa de EEUU

 

Para una mayor disponibilidad, el sistema debe ser configurable para permitir errores de hardware y reasignar recursos de las unidades falladas a las que no lo están,  estar protegido contra ataques externos y requerir su apagado solo para recambio de hardware interno.

1.1         Tolerancia a fallo de zona ( cluster remoto o multisitio)

Para casos muy específicos, de tolerancia a fallos absoluta, requiere de dos sitios geográficamente distintos, con acceso a distintos ISP.   Para páginas estáticas, se puede configurar para que sea actualizado en forma automática en forma periódica.

Es muy difícil de mantener para sitios de páginas dinámicas.

Entorno Windows

Posee servicios de replicación por los cuales se podrían replicar estructuras de directorio de un servidor a otro a través de una red, incluyendo internet

Las aplicaciones pueden implementarse a través de sitios conectados por MSMQ

Entorno Linux

No tiene soporte en particular de replicación a distancia.

El soporte a las aplicaciones teóricamente  puede implementarse a través de ipcs.

1.2         Tolerancia a fallo de Servidor

La tolerancia a fallos de servidor, ya sea por fallo de hardware o software, se implementa mediante clonación o clusters.  Los datos se pueden tener en un servidor aparte o replicados.

Incluye la capacidad para reemplazar un servidor que deje de funcionar con otro que está funcionando en paralelo.

Es también una forma de aumentar la performance, o sea la escalabilidad.

Una forma sencilla de duplicación es simplemente duplicar el software y el hardware, lo cual puede hacerse en forma manual o con algún servicio de replicación.   A esto se llama clonación.  Debe existir un servidor que administra la distribución de carga de red, que además pueda detectar un servidor que dejó de funcionar para quitarlo del tráfico de red y enviar una alarma.  La clonación se suele usar en servidores de web de páginas estáticas.

Si los servidores incluyen datos modificados ( como por ejemplo el estado de sesión de internet de un usuario), se puede implementar un cluster.    Un  cluster permite usar varias maquinas como si fueran una maquina poderosa, pero su implementación es más compleja que la clonación.  Se suelen usar para servidores de aplicación y base de datos.  En un cluster ell balance de carga no es sólo a nivel red sino a nivel de recursos internos: memoria y procesador.

1.2.1      Replicación de servidores con balance de carga.

Es la forma más sencilla de aumentar la disponibilidad, creando “clones” de servidores, o sea duplicando el harware y el software.  Los pedidos pueden ir a uno o a otro, según un conmutador de paquetes.  Este conmutador puede ser un servidor o un dispositivo de hardware, en cuyo caso el SO es indistinto.  Esta solución es más rápida pero más cara.

El conmutador debe proveer de balance de carga de red y detección de fallos de servidor.

Así como SMP consiste en un balance de carga de procesadores, ( escalabilidad vertical),  el balance de carga se puede aplicar a paquetes de red en una granja de servidores ( escalabilidad horizontal)

Esta capacidad permite aumentar la performance de todo el sistema en general, y además suele proveer de tolerancia a fallos de servidor, ya que al detectar la caída de un servidor el conmutador redirecciona los paquetes a los demás.

Una forma más sencilla y menos efectiva de balance de carga de red es por distribución de DNS, en la cual por cada solicitud al DNS se le asigna un servidor distinto.

Una forma extrema de balance de red es distribuir imágenes en servidores del mundo, o sea es un balanceo de carga a nivel mundial, servicio ofrecido a través de algunos ISP como SandPiper y Akamai.  Esta solución también es independiente del SO.

Entorno Windows

En Windows 2000 " la combinación de Clustering Services, component load balancing y el Windows Load Balancing Service provee de una solución integrada para alta disponibilidad / balance de carga".

Terceros que ofrecen Load Balancing:

Resonate Inc :Central Dispatch 3.0 SOFT para NT $10.000

Webspective Software

Entorno Linux

Redhat 6.2 incluye el paquete Piranha, aunque su uso no es muy común.

La versión Redhat high Availability Server ofrece para un cluster de 2 nodos FOS, (Failover Services) el cual provee de disponibilidad solamente, y para 3 o más ofrece LVS (Linux Virtual Server) el cual provee de balance de carga entre los nodos, con 4 políticas de asignación distintas.

Existen varios paquetes de terceros.

Redhat 6 incluye además traffic shaping, para controlar el ancho de banda para cada dispositivo de red y puerto.

Terceros que ofrecen Load Balancing:

Resonate Inc :Central Dispatch 3.0 SOFT para Linux  $10.000

Webspective Software

 

1.2.2      Replicación de almacenamiento.

En los casos donde los servidores hacen algún tipo de escritura ( se dice que las sesiones tienen estado)  no se puede utilizar clones tan fácilmente.

Antes que un cluster, pueden  instalarse  varios servidores accediendo al mismo disco, aunque el nivel de disponibilidad es menor, ya que no contempla al servidor de los discos en sí.

Existe hardware que se implementa como servidor de almacenamiento, siendo un nodo mas en la red, con todo tipo de protocolos de servidores de archivos.  Esta opción hace irrelevante el SO que se utilice, y hace más veloz los accesos, pero por supuesto es más caro.

La caída de un servidor no afecta la disponibilidad de los datos, ya que estos se hallan en otro servidor cuando estén replicados en discos de distintos servidores.

 

Entorno Windows

Incluye “Replication Services”

 

Entorno Linux

La replicación debe implementarse manualmente.

Una forma manual de replicación de datos con balance de carga está descripta en

“ The NBD, Network Block Device, linux journal, 20 de marzo de 2000 “

1.2.3      Recursos compartidos ( cluster )

En un cluster, los servidores comparten su memoria y sus procesadores.  Esto exige una implementación por hardware adicional para que los accesos a memoria de otro servidor sean veloces. Caso contrario el cluster pierde sentido al hacerse más lento que si cada servidor se utilizara su propia memoria.

La cantidad de nodos físicos máximos hace también a la escalabilidad,  ya que los cluster implementan una suerte de balance de carga a nivel de memoria y procesador entre servidores, a diferencia del balance de carga de red y de SMP.

 

Entorno Windows

NT Enterprise Edition tiene un sistema de clustering y TCP-IP load balancing, que en general se usa solamente para 2 nodos.

Windows 2000 Advanced Server es la versión de Windows 2000 para clusters, y la de Data Center es  aún más potente.

 

Entorno Linux

Redhat 6.2 incluye el sistema Beowful desarrollado por la NASA en 1997, que permite clusters de servidores.

No tiene límite en cuanto a la cantidad de nodos en un cluster.

 

1.3         Tolerancia a fallos de disco

La tolerancia a fallos de disco se logra mediante los niveles de RAID mayores de cero.

Un RAID puede implementarse por hardware o software, y en este ultimo caso es conveniente que sea por kernel , para mayor velocidad.

El sistema debería reconocer los arreglos de disco al bootear.

Por performance, es conveniente la implementación de RAID por hardware, de manera que el SO vea solo un disco donde hay un RAID, para abstraer del SO esta tarea. En este caso es importante que exista una variedad de drivers para RAID.  En caso de decidirse por software, es de esperar que el sistema pueda hacerse cargo de la mayor cantidad de los distintos niveles de RAID y verificar su influencia en el rendimiento

Los dispositivos Hot Swap permiten el recambio de hardware sin apagar el equipo. En general se aplican a discos, pero en ciertos casos, como Solaris, puede incluir hasta procesadores.

1.3.1      RAID por hardware

Entorno Windows

Windows tiene como siempre un soporte casi absoluto de hardware de RAID.

Entorno Linux

Soporta los principales controladores  para  dispositivos RAID como AMI MegaRaid,  DAC 960 y Compaq SmartArray.

 

1.3.2      RAID por software

Entorno Windows

Windows 2000 tiene un soporte de RAID muy rico heredado del NT.

 

Entorno Linux

Desde Redhat 6.0 incluye  soporte  RAID completo, de niveles 0,1,4 y 5, y “Hot Swap”.  Es manejado y configurado por el kernel.  Tiene soporte lineal y  proceso de reconstrucción por “threads”

 

1.4         Tolerancia a fallos de conexión de red

 

Se pueden tener NIC ( tarjeta de red ) redundantes, si el sistema tiene capacidad de ruteo redundante, por si falla una conexión.

También existen NIC con hot swap y  tolerantes a fallos de hardware.

 

Entorno Windows

Permite el uso de dos placas de red con la misma IP, con soporte hot swap

 

Entorno Linux

Permite el uso de dos placas de red con la misma IP.

1.5         Fallas de software

1.5.1      Estabilidad

Este es un item muy relativo de considerar, pero de enorme importancia para un servidor de web.

Se refiere a que el sistema no deje de funcionar parcial o totalmente por razones inesperadas o desconocidas.

Lamentablemente la única manera de juzgar este item es con la experiencia propia y ajena.

Entorno Windows

NT  ejecuta las aplicaciones en modo protegido, o sea impidiendo que un programa acceda a memoria de otro programa o del mismo SO.

NT adquirió fama de inestable e inmaduro, pero con el tiempo y los parches que fue librando Microsoft, se fue consolidando como servidor.

Windows 2000, según Microsoft, es 3 veces más confiable que NT.

 

Entorno Linux

Linux, al igual que los unix en general, goza de reputación como sistema estable incluso en hardware viejo como 386.   Las aplicaciones pueden fallar y  el sistema se puede hacer lento pero continúa prestando servicios.

 

1.5.2      Monitoreo

Es necesario el monitoreo con registro permanente de la disponibilidad y calidad de las actividades del sistema en forma manual y sobre todo automática.

El monitoreo debe registrar el estado de los distintos recursos y servicios del sistema, que pueden incluir todos lo niveles de sistema detallados en la introducción desde el hardware hasta las aplicaciones, tales como tráfico de red, espacio libre en discos, uso de base de datos, etc.

El estandar para esto es SNMP, aunque existen otras posibilidades.  Algunos de estos servicios no requieren ser clientes de SNMP sino que  pueden tener alguna aplicación intermedia como un script que las monitorea e interactúa con SNMP y envía alarmas.

El monitoreo con registro permanente permite :

a)      Analizar lo que ocurre en el momento, cuando  se percibe un deterioro.

b)      Después de una baja de algún problema o servicio, poder determinar  las causas y sus horarios.

c)      Emitir alarmas automáticas según los distintos grados de gravedad, que por ejemplo, puede enviar un mensaje de email o pager al administrador cuando algún recurso o servicio del sistema tiene problemas.

d)      Proyectar las necesidades futuras según  el crecimiento del último tiempo.  De esta manera se puede escalar el sistema con anticipación antes que el servicio se deteriore.

e)      Disparar procesos de recuperación automática para determinados casos.

Entorno Windows

El sistema Event Logging de NT y Windows 2000 permite interacción con SNMP.

Entorno Linux

Linux, al igual que unix, utiliza el servicio syslogd para registrar eventos.   Este es configurable y puede generar varios logs (además del /etc/syslog) según el nivel de criticidad y de la aplicación.

Así mismo, el comando sar  lleva un registro de las actividades de sistema tales como uso de discos, memoria, procesador, espacio de swap, etc.

Algunos utilitarios gratis y open source que se encuentran en internet para monitoreo a través de SNMP son: 

Swatch, el cual escanea los archivos de logs y permite tomar acciones.

MRTG, el cual tiene una interfaz de web, fácil de instalar y configurar..

Netsaint, el cual tiene una variedad de plug-ins, para  monitorear  no sólo el sistema sino también aplicaciones como email y la base de datos Oracle.

 

1.5.3      Reasignación de prioridades

Ante falta de recursos,  el sistema debe reasignarlos en forma automática.  El sistema debería disminuir la performance pero mantener en funcionamiento los servicios definidos como principales. 

Para estos casos es importante que se pueda configurar las prioridades de los servicios, por ejemplo para favorecer el servicio de web en detrimento del email.

Entorno Windows

Windows 2000 tiene un administrador de procesos que permite asignar prioridades.

Además dispone de “Quality of Services”, según Microsoft una solución para garantizar ancho de banda y disponibilidad a determinados servicios.

 

Entorno Linux

Los comandos de shell top ( para ver los procesos que más consumen procesador ) y nice ( para cambiar prioridad de procesos) permiten ver y asignar prioridades, pero no en forma automática.

Esto se podría programar en scripts o lenguaje C según los casos.

Linux soporta SNMP que combinado con traffic shaping, verifica el ancho de banda para cada dispositivo de red y puerto, y permite su reasignación.

1.5.4      Cuotas de disco

Asignando cuotas de disco (Disk quota) a un usuario, el sistema operativo controla que este no ocupe mas disco que el estipulado.

Asignar cuotas de disco a todos los usuarios del servidor, evita que se llene un filesystem generando un colapso de algún servicio o del servidor mismo.

En mayo del 2000 muchos servidores colapsaron por el virus “I love you”, el cual reenvia email automáticamente, llenando los discos.  Claro que esto puede evitarse creando un filesystem especifico para los emails.  Pero es un ejemplo de la importancia del uso de  disk quotas.

Entorno Windows

NT no tenia cuotas de disco.  Debía comprarse de terceros, como el Quota Manager.

Windows 2000 si tiene

Entorno Linux

Linux , como los unix , tiene el comando quota para fijar cuotas de discos

1.5.5      Migración de datos

Implementación del concepto de "Manejo de almacenamiento jerárquico", mediante la cual los datos poco accedidos se guardan en medios más lentos pero más baratos, como cintas o discos ópticos.

Cuando se necesita espacio en disco, el sistema puede automáticamente mover archivos a estos otros medios, evitando que este se quede sin espacio.

Entorno Windows

Si, lo incluye.

Entorno Linux

No. Debe implementarse manualmente.

1.6         Interrupciones Programadas

Necesidad de reinicio por actualizaciones de software o  reconfiguraciones.

1.6.1      Interrupción por actualización

Algunos SO requieren reiniciarlo al instalar software nuevo, actualizaciones, parches del SO o de aplicaciones.

 

Entorno Windows

NT debía ser rebooteado por cada modificación o instalación de software del sistema, o de aplicación.

Windows 2000 ha mejorado hasta casi no requerir rebooteo.

 

Entorno Linux

Linux permite la configuración mediante la  recopilación de su kernel, lo cual hasta el kernel 2.0 implicaba el rebooteo. El kernel 2.2 permite configurar al kernel a través del virtual file system sin detener el funcionamiento, en la mayoría de los casos.

1.6.2      Por reconfiguración

Es  deseable que el kernel soporte  “Loadable modules”.  Esto permite que se instale un dispositivo de hardware, por ejemplo una tarjeta SCSI, se encienda el servidor y se configure el driver sin necesidad de un  nuevo rebooteo.

Existen dispositivos de hardware que soportan “dynamic configuration” si el sistema también lo soporta. Esto permite cambios de configuración sin dejar de funcionar,  tales como el cambio de un tipo de transceiver.

Entorno Windows

NT es famoso por la necesidad de rebooteo por cualquier instalación de hardware, además de la baja de servicio por apertura de la máquina. O por cambio de IP por ejemplo.

Windows 2000 no requiere rebootear para configurar hardware casi en ningún caso.

Entorno Linux

Linux no requiere rebooteos por cambios de configuración de software o hardware

1.7         Ataques externos

Todos los sistemas con algún contacto con internet son susceptibles de ser atacados. 

Existen diversos tipos de ataque externo que producen la interrupción de servicio, el más común es “Denial of Service”, el cual no requiere el ingreso del hacker al sistema sino que consiste en un bombardeo de paquetes de red desde internet.

Por ejemplo,  ejecutando automáticamente desde  linux el comando netcat se puede anular el servicio telnet de windows, si éste tiene recomienzo automático:  

nc  host 23 < /dev/zero

 

Para disminuir el efecto de estos ataques, es importante tener actualizados los parches del SO, y anular los servicios innecesarios, que pueden ofrecer una puerta de acceso.  Los SO suelen tener todos los servicios sin protección por defecto al ser instalados.

Existe software especializado que permite detectar “backdoors” ( puertas traseras, o sea puntos débiles de la seguridad) y diversas vulnerabilidades, e incluso indican la solución precisa, por ejemplo, la instalación de un parche disponible en tal sitio de internet.  

Entorno Windows

Microsoft mantiene en internet información sobre seguridad y parches.

Terceros que ofrecen detección de vulnerabilidades:

           Webtrends

              Network associates

Entorno Linux

Redhat y la comunidad linux y de seguridad mantienen información y parches de seguridad disponibles en internet.

A fines del año 1999 hubo cientos de servidores de DNS con Redhat 5.2 caídos por ataques de hackers por “overflow”. Pero estos se debieron a que los servidores estaban configurados por defecto, a pesar de que Redhat aconseja cambiar estos parámetros, y que la versión 6.0 estaba disponible desde hacia un año y que había parches para esas vulnerabilidades.  El error fue de los administradores de esos sistemas

Terceros que ofrecen detección de vulnerabilidades:

            Internet Security Systems Inc: Internet Scanner 

              Network Associates


 

2         ESCALABILIDAD

 

Es la capacidad de mejorar el tiempo de respuesta del SO en la actualidad, y en el futuro inmediato mediante nuevas tecnologías

En particular interesa la escalabilidad de hardware, que es la capacidad de aumentar el rendimiento ( o performance) del sistema mediante agregado de hardware (memoria, procesadores, o servidores).  Es un concepto distinto al de escalabilidad de software, el cual considera la performance del sistema bajo distintas exigencias sin cambiar la configuración de hardware. Cuando se habla de escalabilidad de software, lo que varía es la exigencia externa al SO, mientras que la escalabilidad de hardware lo que varía es el hardware sobre el que se ejecuta el SO.

Se excluye en este item todos aquellos que se ven en el de Disponibilidad.

La escalabilidad es la noción de los limites al crecimiento que nos impone un sistema debido al hardware.

La performance esta muy ligada al hardware, a la configuración y a los parámetros de medición.

Tanto por performance como por seguridad, los servicios que no se usen deben ser desactivados.

La performance medida en throughput (bytes / segundo) debe considerar items como numero de clientes, cantidad de procesos en memoria, cantidad de “hits” por segundo y por cliente.

La escalabilidad es importante para : aumentar la performance para prestar mejor servicio, o mantener la performance cuando el equipo resulta más exigido  ( recibe más visitas de internet, crece mucho su base de datos, etc.)

2.1         Plataformas de 64 bits

El soporte de plataformas poderosas permite el escalamiento de más alto nivel.

Las plataformas a considerar pueden ser muchas pero nos concentraremos las  siguientes por ser las más populares, excluyendo las mainframe.

X86 :  Máquinas compatibles con PC, de arquitectura Intel.  Intel esta a punto de lanzar su procesador McKinley ( Merced  de segunda generación) de 64 bits de Intel que se va a usar en los próximos años.  Actualmente Intel tiene como prueba chips Itanium (de primera generación)

Alpha : Máquinas de Compaq, Hay modelos de 64 bits.

Sparc:  de Sun. Sun produce software y hardware, y  utiliza las Sparc para instalaciones de Solaris.  Hay modelos de Sparc con 64 bits.

SGI :  La máquina de Silicon  Graphics

Apple: La máquina de Macintosh

Power PC: Fue abandonado por IBM.

Entorno Windows

Windows 2000 soporta los procesadores Intel de 32 bits y Alpha y el próximo procesador Itanium de Intel, de 64 bits.

Microsoft esta trabajando en un NT que aprovechara las ventajas del Merced. 

Entorno Linux

Linux  se puede instalar sobre las Ultra Sparc de 64 bits.

La comunidad linux está trabajando para soportar los próximos procesadores Intel.

La versión 2.4 del kernel de linux, con fecha de lanzamiento para setiembre del 2000, incluye soporte al nuevo procesador de 64 bits de Intel. 

Linux desde hace años soporta procesadores Sparc y Alpha de 64 bits.

No debería tener problemas con ninguna plataforma de 64 bits a futuro

2.2         SMP

El multiprocesamiento mejora dramáticamente la performance.

El permitir varios procesadores implica seleccionar como usarlos. El modo más eficiente es SMP, permite un mejor uso de los recursos, evitando que se sature un procesador mientras otro esta en desuso. Esto se conoce como balance de carga (load balancing) de procesador.

Es importante que el SMP sea configurable, permitiendo el manejo de interrupciones y de como los bloqueos son llamados y ejecutados.

También es deseable que las interrupciones sean ruteadas a todas las CPU, y que los interrupt handlers sean "fully threaded".

Entorno Windows

NT  permite 32 procesadores, pero a partir de los 4  no escala tanto.

Windows 2000, en sus diversas versiones, incluye soporte hasta 64 procesadores, según Microsoft.

Entorno Linux

Permite hasta 16 procesadores, aunque después de los 4 su eficacia va disminuyendo.

El kernel 2.4 incluye varias mejoras para SMP.

2.3         RAM

Los discos están llegando a un límite físico de velocidad.

Debido a esto, la memoria RAM va tomando aún más importancia.

2.3.1      Máximo direccionable

El límite máximo direccionable de memoria

Entorno Windows

NT : 2 GB , 3 GB para Enterprise Edition

Windows 2000 Server: 2 GB , Advanced Server : 8 Gb, DataCenter Server: 64 Gb

Entorno Linux

INTEL o Alpha : 1 GB, hasta 2 reconfigurando el kernel.

SPARC32,  3.5 GB.  

SPARC64 64Gb

Además, permite partición SWAP de 2 GB

El kernel 2.4 podrá acceder a 64 Gb en hardware Intel.

2.3.2      NUMA

En una arquitectura SMP, NUMA es muy importante ya que crea un nivel intermedio de memoria que es rápidamente accesible. 

Entorno Windows

No incluye soporte de NUMA

Entorno Linux

No incluye soporte de NUMA           

2.4         Gigaethernet

Para alto trafico de redes, puede llegar a requerirse placas de red de un gigabit/segundo

Entorno Windows

Windows  lo soporta

Entorno Linux

Linux lo soporta

2.5         Canal de fibra ( Fiber Chanel) 

Es una tecnología para transferencias de datos de  1 gigabit por segundo que mapea protocolos comunes como SCSI e IP

Entorno Windows

Windows 2000 lo soporta.

Entorno Linux

Linux no parece soportarlo

 

2.6         Tarjeta de SSL

La encriptación de transacciones SSL puede ser un cuello de botella para el procesador.  Existen tarjetas de aceleración de SSL que pueden realizar esta tarea, y que pueden incluir claves, con lo cual mejoran a la vez la seguridad y la velocidad.  Pero son caras.

 

Entorno Windows

Windows 2000 lo Soporta

 

Entorno Linux

No parece soportarlo aún.

2.7         Firewire ( IEEE 1394)

Standard para interconexiones entre dispositivos de alta velocidad.

Combina conectividad simple con gran ancho de banda.

Entorno Windows

Windows 2000 lo incluye.

Entorno Linux

Linux no lo soporta, pero lo hará con el kernel 2.4

2.8         I2O

(Intelligent Input/Output) Permite que  tarjetas compatibles con I2O procesen el almacenamiento en lugar del  CPU, mejorando la performance.  Incluye a las PCI, y permite escribir drivers independientes de los SO.

Así, un CPU sobrecargado por pedidos de disco pueden pasarlos  a microprocesadores  inteligentes de hardware

Entorno Windows

Windows 2000 lo incluye.

Entorno Linux

Linux no lo soporta, pero lo hará con el kernel 2.4.  A la comunidad linux le interesa esta tecnología por su independencia de plataforma.

2.9         Filesystems

2.9.1      Soporte para 64 bits

Es importante tener en cuenta si un cambio de procesador a 64 bits seria aprovechado por el filesystem.

 

Entorno Windows

Posee soporte de 64 bits en su filesystem

Entorno Linux

Posee soporte de 64 bits en su filesystem

2.9.2      Data Stripping

Distribución de volúmenes de discos en 2 o más discos físicos, en forma pareja,  mejorando la performance de I/O y ejerciendo un balanceo de carga de disco. También conocido como RAID 0

 

2.10    Archivos

2.10.1 Nombre de archivo

Es preferible que no haya limitaciones (de caracteres y longitud) a los nombres de archivos que se puedan utilizar.

Entorno Windows

Permite archivos de hasta 256 caracteres de cualquier tipo

Entorno Linux

Permite archivos de hasta 256 caracteres de cualquier tipo

2.10.2 Tamaño máximo de archivo

Limitación de tamaño de archivo

Entorno Windows

Windows 2000 no tiene limitación de tamaño de archivo.

Entorno Linux

Máximo 2 Gb.  Se eliminará la restricción en el kernel 2.4

 

2.11    Reverse Proxy

Usando “Reverse proxy”, se logra el mismo efecto de cache de proxy (incrementa la velocidad de respuesta ) pero para clientes desde internet, aunque obviamente sólo para páginas estáticas. 

Entorno Windows

Windows 2000 no incluye Reverse Proxy, pero se puede incorporar con el MS Proxy Server

Entorno Linux

Esta capacidad viene incluida.


 

3         SEGURIDAD

Seguridad es el control de Acceso a datos de lectura o escritura.

En décadas pasadas, la seguridad informática consistía en dejar acceder a los datos a solo unos pocos usuarios “confiables”.

Hoy no se trata de impedir el ingreso a los datos sino de determinar los niveles y el tipo de acceso de cada usuario.  Esta concepción cobra plena vigencia a partir de internet y particularmente del e-commerce, que transforma a internet en un mercado electrónico.  Las empresas comienzan usando Internet para intercambiar información, y terminan usando a internet como mercado.

En todo mercado, el comprador y el vendedor se contactan, ( lo cual ha sido muy agilizado por internet ) y realizan transacciones ( lo cual internet ya permite, mediante SSL, y servicios provistos por tarjetas de crédito.  En el medio de los 2 procesos, los mercados deben proveer de calificaciones a los miembros, para establecer relaciones de confianza, y es aquí donde cobra mayor importancia la seguridad.

Existe un amplio soporte de terceros para Seguridad. Además hay mucho software open source para seguridad, incluso para NT 4.0.  Últimamente hay paquetes que integran todo  aspecto de seguridad con otros de administración, aunque todavía están en desarrollo.

La seguridad debe implementarse a todos los niveles, ya que la seguridad es tan fuerte como el más débil de sus puntos.

A nivel SO,  la seguridad ha perdido importancia frente a la seguridad de red, y ésta  frente a la de aplicaciones.  La seguridad debe verse como una serie de “líneas de defensa” donde la línea exterior es la aplicación y la última el sistema operativo.

A nivel hardware, existen tarjetas SSL para encriptación.  Ver escalabilidad.

A nivel de paquetes de red lo da el firewall.

A nivel de objetos de red ( archivos, servidores) lo da la red a través de Kerberos o PKI.

A nivel aplicación se da en certificados digitales y a través de Java.

 

3.1         Autenticación  por SO

El control de acceso al sistema es tarea básica en seguridad. Consiste en determinar si un usuario tiene acceso al sistema, a la aplicación que llama, y  si es realmente quien pretende ser.

Esto se implementa en todos los sistemas con un usuario y con una clave de acceso o password. Este nivel de seguridad pierde importancia frente al acceso desde internet, en el cual se implementa de otra manera, generalmente a nivel aplicación.

El nivel de seguridad puede ser distinto para los distintos servicios. Por ejemplo en unix en general el servicio telnet suele ser muy seguro y el ftp no, ya que suele permitir infinitos intentos de password incorrecto.

Existen varias maneras de evadir la seguridad de los sistemas. En general, basta conseguir un passwd de usuario para acceder a información delicada, en lo que se conoce como apersonamiento.

 

Un estándar  para autenticación distribuida es Kerberos.

3.1.1      Control de password de usuario

Algunos controles de password habituales son envejecimiento, largo, inclusión de números, historia,  horarios,  número de intentos, días mínimos de uso.

 

Entorno Windows

Incluye todos los controles

 

Entorno Linux

Incluye todos los controles

3.1.2      Base de datos de passwords

Los passwords siempre se guardan encriptados.

Los archivos de password deben ser leídos sólo por el SO, ya que aunque estén encriptados,  podrían ser copiados por un hacker  a su propia máquina para tener tiempo de decodificarlo.

 

Entorno Windows

Tiene opción de encriptar el archivo de passwords completo.

 

Entorno Linux

Tiene opción de ocultar el archivo de passwords.

Redhat pregunta al instalar si se utilizará “hidden passwords”.

Esta opción es altamente deseable ya que si no es relativamente fácil copiarse el archivo de passwords en unix a un disco local y así desencriptarlo con tiempo.

3.1.3      Encriptación de password

Los passwords pueden ser leídos por la red si viajan sin encriptación.

Este item en realidad se relaciona con la confidencialidad.

 

Entorno Windows

Los password viajan encriptados

 

Entorno Linux

Los password viajan sin encriptar por default al ejecutar telnet o ftp, pero se puede implementar Kerberos.

También existe ssh ( Secure Shell ) que se puede conseguir de terceros, el cual ejecuta las sesiones de telnet y ftp por red en forma encriptada.  Requiere un cliente.

3.1.4      Acceso de superusuario

Debe restingirse el acceso al superusuario.

Un caballo de troya es un programa que simula ser una pantalla de login, para que el usuario ingrese sus datos en él.

El acceso de superusuario debe tener seguridad adicional en cuanto al lugar desde el cual se accede.

 

Entorno Windows

El acceso de superusuario puede controlarse según desde donde es la conexión.

 

Entorno Linux

Se puede configurar para que el ingreso de root sea solamente desde consola mediante el archivo securetty. Permite el ingreso al sistema como usuario común y la posterior ejecución del comando “su”, el cual pide el passwd de root.  Para acceder a root, un hacker debe acceder primero a otro password.

3.2         Autenticación por red

La autenticación puede realizarse a varios niveles.  Es preferible que éstos estén integrados para lograr un solo login , es decir, que el usuario no requiera de una clave de acceso para cada servidor, servicio, o archivo.  Si bien la autenticación de este tipo se puede hacer también en el  web server o en las aplicaciones, es conveniente la integración del SO a estos servicios.

De esta manera puede usarse PKI para internet y certificados digitales para conecciones de LAN, aunque lo clásico es a la inversa.

PKI requiere de un servidor central que actúa como un tercer integrante de la conección entre un usuario y la red, y certifica ante cada uno las respectivas identidades.

La autenticación segura se logra mediante la encriptación y la certificación a través de un servidor de certificados.  A nivel interno en la LAN puede usarse Kerberos o un servidor de PKI.

El manejo de usuarios en forma distribuida implica modificar una vez  la base de datos de usuario y actualizar en varios servidores.   Kerberos es un estándar  ampliamente aceptado, se está convirtiendo en el estándar de facto de la web.

Permite entre otras cosas un acceso único para servidores múltiples

 

Entorno Windows

NT tiene un protocolo propio.

Windows 2000 usa Kerberos 5.0 como su principal protocolo de autenticación.  Esto le permitiría compatibilidad con otros servidores que utilicen Kerberos e integración absoluta a PKI

 

Entorno Linux

Se puede implementar PAM (Plugable Authentication Module).

También se puede implementar Kerberos.

Además existen paquetes de terceros.

3.3         Encriptación de Filesystem

Como seguridad adicional, puede ser útil poder encriptar en forma automática las estructuras de archivo

 

Entorno Windows

Windows 2000 provee granularidad en sus  servicios de encriptación, ya que puede incluir desde archivos y directorios hasta filesystem

Entorno Linux

No tiene el método específico de Windows, pero se puede simular por ejemplo con los comando tar y crypt.

3.4         Autorización

Las autorizaciones de usuario se implementan a través de las ACL.

Las ACL o listas de control de acceso especifican el tipo de acceso que cada  usuario tiene a directorios, archivos, aplicaciones, etc. una  vez ingresado al sistema. 

Debe existir la posibilidad de impedir que los usuarios otorguen permisos ni siquiera de sus propios archivos.

Entorno Windows

El manejo de ACL es muy completo

En total tiene 27 derechos de usuario para asignar.

Entorno Linux

Implementa el mecanismo que funciona en unix desde hace décadas.

Consiste en asignar derechos de lectura, escritura y ejecución a cada archivo según usuario, grupo y otros. Mediante el comando suid, es posible permitir a un usuario que ejecuta una aplicación adquirir la personalidad del dueño de la aplicación. Este comando es muy poderoso, pero es responsable de muchos de los problemas de seguridad de los sistemas unix y linux.

Un usuario puede pertenecer a varios grupos pero solo uno por vez. 

Un usuario puede hacer que un archivo propio pase a pertenecer a otro usuario.

Existen implementaciones de ACL de terceros.

3.5         Confidencialidad

Así como los password deben viajar encriptados, los datos también son vitales, especialmente desde el uso de tarjetas de crédito por internet.

La confidencialidad de datos es un tema muy delicado en general, y especialmente en transacciones B2B.

La confidencialidad se protege con encriptación por VPN y certificados digitales, los que a su vez requieren SSL.

La seguridad de internet fue evolucionando de firewalls a las VPN:

1)  Los firewalls filtran paquetes yendo y viniendo de internet.

2)  a) Los datos (“payload”) de cada paquete son encriptados, pero la información de origen y destino ( en el “packet header”) no.

2)  b) Todo el paquete incluyendo las direcciones es encapsulado.

 

3.5.1      SSL 3.0

Secure Socket Layer es una capa de red entre TCP y las aplicaciones.

Está soportado por los 2 principales browsers

Entorno Windows

Incluido, con wizard

Entorno Linux

Incluido, con wizard

3.5.2      Certificados digitales

Si bien la privacidad de datos suele proveerse a nivel aplicación, el SO puede ofrecer soporte para manejo de certificados y claves u otros tipos de autenticación y encriptación para  sitios web, especialmente en e-commerce.

Entorno Windows

Incluye CAPI, utilizable por terceros.

NT 4.0 y Windows 2000 incluyen un servidor de certificados para certificados digitales X.509, mapeables a cuentas de usuarios ,  y permite encriptación de 128 bits.

 

Terceros que ofrecen también servidores de encriptación y claves de acceso :

CheckPoint Software :  VPN-1 Certificate Manager

Entrust Technologies  (Entrust PKI )

Sun-Netscape Alliance :  iPlanet Certificate Management System

 

Entorno Linux           

Se puede implementar mediante productos gratuitos.

Redhat ofrece CCVS, un producto para verificación de tarjetas de crédito, que incluye el código fuente en C, tcl, perl,  Java,  PHP y otros.

3.5.3      VPN

Las VPN requieren de tunneling, el cual suele implementarse por SSL en un firewall o router.

La implementación de VPNs requiere determinar quien es el dueño de los equipos y servicios y quien los administra y mantiene, ya que tanto la empresa, sus clientes que acceden a la extranet, o el proveedor de red publica pueden tener distintos niveles de responsabilidad. Es importante definir los requerimientos y responsables de :

a)      Administración de usuarios

b)      Administración integrada del servicio sobre internet y la intranet y

c)      la calidad de los servicios.

Entorno Windows

Incluye un soporte excelente a VPN, a través de IPSec o PPTP

Entorno Linux

Incluye IPSec y SSL a través del cual se puede implementar VPN, en combinación con FreeS/WAN.

3.6         Seguridad Perimetral

Se refiere al acceso o no de usuarios según el paquete de IP y del tipo de servicio / puerto, y se implementa a través de firewall o de routers que funcionan como tales.

Suele asignarse una máquina independiente  para implementar un servidor de firewall y proxy, el cual hace de lazo entre internet y el resto de la organización.  Pero también puede ser el mismo servidor que el servidor de web.

Por todo lo antedicho respecto de la seguridad, la seguridad de un servidor de web ya no recae tanto en el firewall sino en sus aplicaciones.

Los firewalls pueden implementar VPN, haciéndose muy flexibles.

Los firewall suelen implementarse con el proxy server, el cual mantiene páginas en cache optimizando el ancho de banda, para usuarios dentro de la organización, y también permite restringir el acceso por usuario a determinados sitios de internet.

Los proxy son un servicio hacia la red interna de la organización.  Mejoran la performance de los browser desde el interior de la organización para acceso ( exterior) a internet ya que mantienen en cache gran cantidad de páginas accedidas, evitando ir a buscarlas a través de internet, y por otro lado permiten controlar y llevar un registro de quienes la actividad en internet de las personas dentro de la organización.

Entorno Windows

NT no incluye servicio de firewall ni de proxy

Terceros que ofrecen Firewall/Proxy

CSM :  CSM Proxy Server

IBM: Web Traffic Express

Inktomi : Traffic Server

Network Appliance : Netcache Proxy Server

Sun-Netscape Alliance : Netscape Proxy Server

MicroSoft Proxy Server  para NT $995 (1997)

Secure Computing Firewall para NT

Entorno Linux

Existen varios software de “código abierto” para linux.

Redhat 6.2 incluye  Squid Object Cache  gratis.

Además el comando ipchains tiene capacidad de configurar un firewall con mucha versatilidad.

3.7         Detección de Intrusos

Hay una serie de eventos que pueden detectar el intento de ingreso no autorizado desde la red, tales como el “escaneo de puertos” con una innumerable cantidad de programas tales como nmap, que están  disponibles en internet y permiten detectar puertos disponibles.

Por otra parte, estas inspecciones externas pueden ser detectadas por un software interno que verifique una cantidad anormal de intentos de conexión, o de paquetes de  red sospechosos y dispare una alarma a la vez que cierre el puerto si no está en uso. 

El problema que suelen tener es diferenciar un intento hostil de un simple error de comunicaciones.

Son paquetes de detección de intrusos, que están teniendo auge en la actualidad.

Existen diversos métodos de control de puertos, para verificar que “port Sniffers” y otros programas de hackers no estén husmeando.

Estos paquetes se complementan con los de  detección de vulnerabilidades.

 

Entorno Windows

Terceros que ofrecen  sistemas de detección de intrusos:

Intrusion.com : Kane Secure Enterprise

Network Flight Recorder IDA Suite

Network ICEpac Suite

Tripwire Security Systems: Tripwire

 

Entorno Linux

Entre los productos gratuitos :

Snort, el cual es popular y gratuito.

PortSentry  monitorea actividad en los puertos de TCP www.psionic.com/abacus/portsentry

Por otra parte, en el último nivel de defensa, el kernel se puede recompilar con LIDS, el cual impide que el mismo root cambie los archivos del sistema 

www.redhat.com/support/docs/howto/kernel-upgrade/kernel-upgrade

O también Open Wall en  www.openwall.com/linux

Existe  una variedad de productos de seguridad de terceros para linux, por ejemplo:

Network Security Wizards´s Dragon para Linux.

 

3.8         Auditoria

 

El monitoreo de las actividades de los usuarios, y su registro, es para verificar si las restricciones a los accesos de usuario especificados se están cumpliendo. También debe incluir alertas y capacidad de configuración.

3.8.1      De accesos de usuario

Como mínimo debe registrarse cada sesión de cada usuario

Entorno Windows

Incluido  en el event monitor

Entorno Linux

Incluido en los archivos btmp, wtmp, sulog y syslog, y visibles con comandos de shell como last y lastb, ya que algunos son binarios.

3.8.2      De archivos accedidos / modificados

Registro de la hora en que cada usuario accedió, creó, borró o modificó  cuáles archivos.

Entorno Windows

Tiene esta capacidad.

Entorno Linux

No la tiene pero se puede implementar manualmente con el comando dic.

Por otra parte existe software gratuito, como :

LogCheck que compara los archivos de logs, www.psionic.com/abacus/logcheck

 

3.8.3      Configuración de nivel de auditoria

Para no padecer de exceso o falta de detalle, es útil poder configurar el nivel de auditoria requerido.

Entorno Windows

Posee un completo conjunto de posibilidades de auditoria.

Entorno Linux

Sus posibilidades de configuración son limitadas.

3.9         Código Abierto vs. Propietario

 

Los sistemas de “código abierto” pueden ser considerados menos seguros que los sistemas propietarios de código propietario (o sea conocido sólo para los programadores de la compañía desarrolladora)  ya que sus vulnerabilidades están disponibles para ser detectadas por hackers de todo el mundo.  Por otro lado, el código también es verificado por miles de programadores de todo el mundo, los cuales suelen proveer rápidamente de una solución cuando se detecta un “agujero de seguridad”.  Los Software propietarios tienen la ventaja de que nadie conoce el código para detectar sus falencias, pero al existir falencias nadie puede detectarlas y corregirlas excepto el mismo proveedor.  Este es un debate que se desarrolla actualmente, especialmente después de numerosos ataques “Denial of Service” a principios del 2000.

Entorno Windows

Windows NT tiene 16 millones de líneas de código.

Windows 2000 tiene 40 millones  de líneas de código.

MS revela 1 bug por semana.

A los 6 meses de salir el Windows 2000 salió el Service Pack 1.

Entorno Linux

Sus problemas de seguridad son rápidamente resueltos por la comunidad Linux, pero suelen encontrarlos primero los hackers.

3.10    Virus

 

Programas que pueden tomar control total o parcial del sistema operativo y ejecutar comandos no permitidos, para leer información o destruirla.

Entorno Windows

Es vulnerable a ataques de virus si el operador usa el sistema desde consola. Especialmente si usa el Outlook.  Pero existe gran cantidad de sofware antivirus de terceros.  En general es muy raro que esto ocurra, pero depende de las políticas de seguridad y de la disciplina del administrador.

Un virus en Windows 2000 puede ejecutarse por booteo de diskette o por ejecución de un programa infectado. 

Microsoft provee información en

www.microsoft.com/WINDOWS2000/library/resources/reskit/samplechapters/fncb/fncb_dis_ezvo.asp

Entorno Linux

No existen virus propiamente dichos en linux, porque éstos están diseñados particularmente para ambientes Windows.

3.11    Trusted System y clases de Seguridad

 

Una forma de medir el nivel de seguridad de un SO es por el standard de Clases de seguridad de EEUU que se clasifican en  B1,B2, C1,C2,D, donde B1 es el máximo nivel de seguridad.

Entorno Windows

Cumple con el standard C2

NT 4.0 fue declarado “C2 compatible” el 2/12/1999 por el Depto. de Defensa de Estados Unidos.  Este es un nivel por encima del nivel más bajo, que es C1, pero que es considerado suficiente para la enorme mayoría de los usos posibles.

El NT es sistema operativo que compra el estado en Estados Unidos.  NT tiene capacidades de Auditing de acuerdo también con el estándar C2

Entorno Linux

Redhat 6.2  cumple con las principales normas de seguridad, comprendidas por el nivel C2

 


 

4         VERSATILIDAD

Evaluación de la variedad de servicios y tecnologías que el sistema le ofrece al administrador del servidor, así como al conjunto de los usuarios de la organización (LAN) y de internet.

4.1         Plataformas

Las plataformas ya fueron mencionadas en el item de escalabilidad.

4.1.1      Requerimientos mínimos

Aunque el costo de hardware siempre se reduce rápidamente,  es bueno tener en cuenta los requerimientos mínimos ya que dan una idea de la robustez del sistema.

Entorno Windows

Windows 2000 requiere como mínimo 128 megabytes de RAM y una Pentium II

Entorno Linux

Linux puede ejecutarse en una máquina X386 con 32 megabytes de RAM.

4.1.2      Variedad

El soporte de diversas plataformas permite mayor flexibilidad, permitiendo combinar modelos poderosos con otros de bajo costo, según la función asignada,  y no crea una dependencia con un solo proveedor.

Entorno Windows

NT soporta SGI Virtual Workstation, PC compatibles Pentium y Alpha Servers.

Windows 2000, está orientado a Intel, a la espera de Merced.

Microsoft decidió no soportar más el procesador  Alpha.

Entorno Linux

La diversidad de plataformas es uno de los puntos sobresalientes de linux con respecto a cualquier sistema operativo.

Además de X86 ( incluyendo 386), Linux  se puede instalar sobre las Sparc y Ultra Sparc de 64 bits también.

También se puede ejecutar en  SGI Virtual Workstation, Apple 68, Alpha Servers y Power PC

Linux se está desarrollando para todo tipo de hardware, desde palmtop ( ya hay versiones disponibles) hasta AS400.

 

4.2         Periféricos

Considerar la existencia y variedad de drivers para usos de:

CD-ROM

3D Accelerators               

ZIP OMEGA 

DVD

USB

Scanners

TV tuner

Audio

Captura de Video

Infrarrojo

Voz

Etc.

Entorno Windows

Windows 2000 soporta el mismo hardware que las versiones de Windows para escritorio, como Windows 98, lo cual lo hace inmejorable respecto a soporte de periféricos.

Entorno Linux

Linux tiene la desventaja de que mucho fabricantes de hardware producen primero los controladores para productos Microsoft, y postergan o ignoran otros ambientes.

Esto implica que la comunidad linux suele encargarse de hacer estos controladores, lo cual no siempre es tan rápido como sería necesario.

Por ejemplo, linux tardó más de un año en tener controlador para DVD.

De todos modos actualmente linux cuenta con  soporte para la gran mayoría de periféricos, muchos de cuyos controladores pueden bajarse de sitios de internet.

No encontré soporte de  ZIP OMEGA o TV Tuner, 

Para video tiene un nuevo driver : BTTV que permite  a la tarjeta escribir directamente a memoria salteando al CPU, mejorando la imagen.

El soporte USB para teclado y mouse recién será posible con el kernel 2.4

El kernel 2.4 tendrá la capacidad de enviar el output de linux por sonido de voz, ya que tendrá un driver como componente  de kernel.

 

4.3         Servidor virtual

Es la capacidad de generar múltiples instancias del SO, cada una ocupando un espacio de disco distinto.  Esto permite crear ambientes de desarrollo en el mismo server de producción.  Y mejor aun, permite crear varios servidores http, con lo cual se puede tener varios dominios sobre un solo servidor físico.

Entorno Windows

No tiene

Entorno Linux

No tiene

4.4         Instalación del SO

Facilidad para instalación del sistema y actualización de hardware y software

4.4.1      Plug&Play

El soporte PnP facilita la instalación del hardware.

Implica auto-detección y auto-configuración de hardware en tiempo de instalación del SO y en cualquier momento posterior.

El modelo ideal de PnP es el de Macintosh, que se llama de otra manera.

Entorno Windows

W2k cumple con todos los requisitos de PnP, ya que su soporte de hardware es el mismo que el de Windows 98.

Entorno Linux

Linux los cumple parcialmente. En particular suele tener problemas con las tarjetas de video.

4.4.2      Instalación por red

Algunos sistemas permiten instalar un sistema booteando por diskette y accediendo a otro servidor de instalación

Entorno Windows

No posee esta capacidad

Entorno Linux

Se puede generar un diskette que permita su instalación a través de otro bootserver.

4.4.3      Booteo por red

Puede ser útil el booteo sin disco desde bootserver de red si se usa una unidad de disco externa en un cluster.

Entorno Windows

No posee esta capacidad

Entorno Linux

Puede bootear sin disco desde un bootserver.

4.5         Kernel

El kernel es el elemento más básico del sistema operativo.

Su  configuración y funcionamiento afecta absolutamente todos los niveles.

4.5.1      Configuración

 

Muchos de los parámetros del kernel pueden ser afinados para un mejor funcionamiento del conjunto.

Por ejemplo, dado que el kernel incorpora muchos más servicios de lo necesario, es deseable la posibilidad de quitarlos.

 

Entorno Windows

Microsoft implementa un modelo de micro kernel, con distintas capas asociadas, que son las que se modifican con interfases estándar.  No requiere la modificación de un kernel en sí ya que no posee un kernel monolítico sino que está dividido según funciones.

Entorno Linux

Tiene la capacidad de agregarle o quitarle componentes, sin rebootear.

Esto es muy apreciado por la comunidad linux, aunque requiere un alto grado de conocimientos.

4.5.2      Modificación (código abierto)

La modificación del kernel requiere un alto grado de conocimiento interno del SO.

Obviamente es posible sólo en sistemas de código abierto.

Pero esta facilidad  puede permitir la incorporación de productos de terceros que requieren pequeños cambios.

 

Entorno Windows

No tiene posibilidad de modificar el kernel.

 

Entorno Linux

Tiene la capacidad de agregarle o quitarle componentes, recompilando el kernel.

Esto es muy apreciado por la comunidad linux, aunque requiere un alto grado de conocimientos.

 

4.6         Actualizaciones y parches del SO

Mantener la última versión del sistema operativo es imprescindible, sobre todo por razones de seguridad.  Muchos ataques de hackers desde internet son exitosos por tratarse de ser sistemas con versiones anteriores de vulnerabilidad conocida. 

En la actualidad todos los parches de SO pueden bajarse de internet, y tienen listas de mailing para informar sobre parches.

Tan importante como la facilidad de instalación de actualizaciones, es llevar un registro y control del estado actual del sistema

 

Entorno Windows

Windows 2000 tiene un registro detallado de los parches y versiones del SO.

 

Entorno Linux

Para conocer los parches instalados del sistema no existe una herramienta genérica.  Los subsistemas deben ser verificados uno por uno.

4.7         Administración de Software

4.7.1      Instalación de software

Facilidad de instalación de software

Entorno Windows

Windows 2000 tiene la interfase estándar de Windows

Entorno Linux

Redhat es el creador del formato de paquetes de software RPM (Redhat Packet Manager) que se extendió a otras distribuciones de linux.  Hace que la instalación sea trivial.

4.7.2      Presentación de sofware instalado

Registro de los archivos que ocupa cada software, la versión, etc.

Entorno Windows

Windows 2000 lleva un registro de los archivos que se instalaron en cada aplicación

Entorno Linux

RPM guarda información completa de las instalaciones realizadas.

4.8         Interfase de administrador en consola.

4.8.1      CLI

La interfase por líneas de comando es en modo caracter.

 

Entorno Linux

La interfase CLI en unix se conoce como shell.

Este es el modo estándar de unix en general desde hace décadas.  Por esto el shell de unix es muy rico.

Permite múltiples accesos por consola con distintos usuarios, y acceder al login de otro usuario con el comando “su” desde una sesión de shell

Requiere amplio conocimiento de shell ya que la ayuda en línea asume que el administrador tiene experiencia.

 

Entorno Windows

Permite acceso a un shell similar a  DOS, con varios agregados.  El shell de NT era pobre pero mejoró mucho.

Está orientado a ejecutar comandos pero no a visualizar estados del sistema.

Aunque Microsoft continúa criticando las CLI, Windows 2000 incluye un lenguaje de script muy rico, el Windows Scripting Host, versión 2.

4.8.2      GUI

El modo gráfico permite administrar el sistema con una serie de opciones que nos da la pantalla, a menudo mediante el uso de mouse,  en vez de requerir al administrador el conocimiento de los comandos y sus opciones.

 

Entorno Windows

Es el modo estándar de Microsoft por excelencia, desde que se impuso el Windows 3.0 sobre el DOS.

Su interfase además es unificada para todas las tareas, y similar en los distintos productos Microsoft y del mercado en general. Todos sabemos qué significa la cruz arriba a la derecha, por ejemplo.

Toda tarea administrativa de Windows 2000 puede hacerse por GUI.

Su interfaz es única pero existen productos de terceros para agregarle capacidades y cambiar su aspecto, aunque difícilmente esto sea necesario.  La interface tiene “tab filename completion” ( recuerda nombres de archivo y los completa al tabular), entiende “UNC pathname” ( o sea la dirección absoluta de un archivo al estilo “\\dir\file”) y otras facilidades típicas de Windows.

Entorno Linux

El protocolo X Windows para unix acepta distintos tipos de interfases gráficas.

Se puede usar idénticamente para acceso local o remoto.

Redhat incluye  Gnome y  KDE entre otros X-Windows.

Las interfases de administración son independientes entre sí, y su aspecto varía según el programador que la diseñó ya que las aplicaciones de linux son desarrolladas independientemente.

4.8.3      BROWSER

Idéntico para acceso remoto.

4.9         Interfase de administrador remoto

 

Dado que los servidores de web requieren disponibilidad permanente,  el acceso remoto del administrador resulta fundamental, a menos que haya un administrador en forma permanente en el lugar del servidor.

4.9.1      CLI

El acceso por  pantalla de caracteres es el más rápido, por ser más liviano para las comunicaciones y el servidor, y sólo requiere de un software simple que emule terminal.  El cliente Telnet es un servicio usable desde casi cualquier plataforma.

 

Entorno Windows

NT no posee capacidad de acceso remoto en modo caracter.

Para acceder por telnet al NT existe un producto : 

SLNet (4 licencias,  $300, dato de 1998)

Windows 2000 si tiene acceso en modo carácter a través de telnet.

 

Entorno Linux

Su acceso remoto por telnet tiene las mismas características que el acceso por  consola.  Además que se pueden realizar múltiples conexiones.

4.9.2      GUI

El acceso en modo gráfico es más pesado para las comunicaciones ( más lento) pero es más fácil para quien esta acostumbrado a esta interfase.

 

Entorno Windows

Para el NT, utilitarios como PCAnywhere permiten usar una consola remotamente, aunque permiten solo una conexión y por lo tanto una sesión que controla la consola.

El Terminal Server de Microsoft es un producto aparte para el NT.

Windows 2000 incluye el Terminal Server que ofrece una interfaz gráfica en el cliente de Terminal Server como si fuera una consola, integrado con el MMC, Microsoft Management Center.

 

Entorno Linux

Linux implementa el protocolo X-Windows, en el que se ejecutan comandos en el server con display local, o sea que lo que viaja no es la imagen de pantalla sino comandos para el cliente local de X-Windows.

Permite múltiples sesiones.

4.9.3      Browser

El acceso por browser es probablemente el más versátil, permite el acceso desde cualquier browser, que es a la vez liviano, universal y gráfico.

Entorno Windows

NT : Service Pack tiene un comienzo de Administración de Red vía browser, y existe el SMS (System Management Server) NT: Web Administrator 2.0 ?

En Windows 2000 mediante el MMC (Microsoft Management Center) se puede administrar en forma remota todo aspecto del SO.

 

Entorno Linux

Tiene acceso por browser a algunas funciones.

Existe software de código abierto que permite configurar las tareas a administrar mediante plug-ins.

Por ejemplo Webmin permite configurar DNS, Samba, NFS, filesystems   www.webmin.com

4.10    Configuraciones ASCII vs. binario

Así como existen las interfases CLI  y GUI,  se considera que la configuración por medio de  archivos de texto  es más compleja y peligrosa pero puede ser más versátil que por herramientas GUI

 

Entorno Windows

NT y Windows 2000 implementan los registros clásicos de Windows, una base de datos binaria: el registry.

En él figura toda la información de configuración del sistema. 

No se accede al registry excepto para casos muy puntuales, a través del comando regedit.

La edición de archivos de texto como win.ini y system.ini sigue siendo soportada pero Microsoft recomienda no usarlos

Entorno Linux

Linux se puede configurar en su totalidad editando archivos de texto.   Estos archivos están desperdigados por el sistema, aunque la mayoría está en el directorio /etc.  Algunos de estos archivos pueden modificarse desde herramientas gráficas, aunque rara vez son completas.

4.11    Shell scripts

Los shell scripts son pequeños programas que usa el administrador del sistema para programar tareas, escribiéndolas en un archivo. Se ejecutan en modo intérprete, es decir,  línea por línea,  no requieren compilación.

De esta manera, el administrador se evita de tener que escribir los mismos comandos para las mismas situaciones, y también permite ejecutar tareas por tiempo en forma automática si no requieren intervención del administrador.

Los shell scripts están necesariamente asociados a la interfaz de línea de comandos.  En general los comandos que se pueden ejecutar por línea de comando pueden ser ejecutados desde un shell script.

Las diferencias entre los lenguajes de programación y los de scripts tiende a difuminarse, ya que los scripts tienden a tener acceso a bases de datos (como Perl) y los lenguajes de programación se pueden ejecutar en forma interpretada (Perlscript, JavaScript, Vbscript).

Entorno Windows

NT ejecuta comandos BAT al estilo DOS.  

Hay productos de terceros para shell script en NT:

   Cygnus  zshell  es un producto que emula los comandos unix

   Active State provee Perl para NT.

   MKS ofrece un shell UNIX para NT

Windows 2000 también ejecuta archivos bat pero incluye un lenguaje de script propio: el Windows Sripting Host  que puede ejecutar comandos tanto de Vbscript como  JavaScript.

Entorno Linux

Como en todo unix, las capacidades de script en linux son tan amplias como su shell, salvo excepciones como el comando “top”.

Redhat 6.2 incluye además los lenguajes de script Perl, TLC, Python.

4.12    Ejecución automática por tiempo

Es la capacidad de  ejecutar periódicamente tareas, generalmente shellscripts, sin intervención del administrador

Entorno Windows

El NT usa el comando AT, el cual es limitado y poco confiable por experiencia personal.  Curiosamente no existe una interfaz gráfica para las tareas programas.

Windows 2000 tiene una interfaz tradicional de windows.

Entorno Linux

El Linux usa los comandos de unix at y el cron, los cuales son versátiles y confiables

4.13    backups

Tan viejo como el uso de computadoras es la necesidad de mantener backups.

Existe una enorme variedad de utilitarios de terceros para backup, pero los SO suelen venir con una forma de backup propia.

Entorno Windows

NT  incluye un sistema de backup que casi no se usa en ninguna instalación, por no ser confiable.

Existe infinidad de software de terceros.

Windows 2000 incluye un sistema de backup mucho más robusto.

Entorno Linux

Redhat incluye el utilitario BRU para backup.

El backup de terceros es escaso y poco estable.  Ver “The linux challenge”, www.networkcomputing.com

 

4.14    Web browser / editor incluido

 

Entorno Windows

Incluye el MS Explorer integrado a la interfaz de usuario.

Permite la instalación de Netscape

Entorno Linux

Incluye Netscape.  No existe MS Explorer para otra plataforma que no sea Microsoft.

4.15    Ayuda en línea

El sistema debe estar bien documentado y ofrecer asistencia por contexto, para evitar en lo posible que el administrador deba abandonar su tarea específica en búsqueda de apoyo en  manuales,  grupos de soporte en internet, etc.

Entorno Windows

La ayuda en línea de NT es pobre pero en Windows 2000 es mucho más detallada.

Entorno Linux

La ayuda en línea es más que pobre, caótica.  Existen varias formas de acceder a ayuda, como el comando “man” de unix, o los famosos mini-howto que no vienen incluidos pero están ampliamente disponibles en internet, y por lo tanto no toma en cuenta el contexto.

Algunas cosas están muy documentadas y otras nada.

En KDE existe un sistema de ayuda unificado, pero se aclara que está en etapa de desarrollo y de hecho se cuelga.

4.16    Estructuras de archivos

La disposición de los datos en los discos afecta la performance y disponibilidad del sistema.

Items como espejamiento y filesystems con ACL se ven como items de disponibilidad y seguridad respectivamente

4.16.1 Compresión

Puede ser deseable la compresión automática por medio del sistema, de volumen,  filesystem o archivos, para ahorrar espacio, aunque con probable deterioro de performance. 

 

Entorno Windows

Los filesystem NTFS pueden ser comprimidos

Entorno Linux

No tiene filesystem comprimibles.

4.16.2 Manejo de volúmenes lógicos

A veces llamado LVM (Logical Volume Manager), es una capa que se agrega entre el SO y  los volúmenes.

Esta capacidad permite crear  volúmenes que agrupan varios discos, permitiendo verlos como uno solo.  Por ejemplo, se puede usar un volumen para espejado (RAID 1), o para striping, ( RAID 0) que abarque múltiples discos.

Pero también permite aumentar el tamaño de los filesystem.

Entorno Windows

Permite todas las combinaciones entre volúmenes y discos.

Entorno Linux

No tiene aún LVM. Está planeado para el kernel 2.4 .

Pero algunas funciones se pueden lograr a través del driver md (múltiple device) u otra herramienta.

4.16.3 De fragmentación

Reorganización de clusters de modo que los que pertenecen a un mismo archivo, así como los vacíos, queden contiguos.  Esto aumenta la performance en caso de fragmentación extrema y disminuye el tamaño ocupado

Entorno Windows

NT no tenía el comando defrag. Windows 2000 sí.

Entorno Linux

No posee defragmentación. Debe implementarse manualmente copiando los archivos.

4.16.4 Filesystems

Algunos filesystem son más rápidos, otros están orientados a la seguridad, otros son portables a otros SO, otros permiten mayor flexibilidad de administración.  Debe analizarse si ya existe un filesystem específico al que se necesite acceder.

Según el ambiente del servidor pueden requerirse distintos filesystems específicos.

El estándar para compartimiento de archivos entre unix distintos es NFS (ver Servicios de red)

Otros comunes son :

UFS (Unix File System, de Solaris ), NTFS ( NT File System), DFS(Distributed FS para MS Active Directory, Windows 2000 )

 

4.16.4.1   Jornalización (Journaling)

 

Mantenimiento de versiones de archivos a medida que se va modificando.  Útil por ejemplo para recuperar estados de una aplicación, o simplemente archivos borrados.  Suele ser costoso en términos de  performance y disco.

Entorno Windows

Incorpora esta capacidad.

Entorno Linux

No la tiene aún.  Aunque hay en desarrollo 4 filesystem con journaling:  XFS ( SGI Iris), JFS ( de IBM AIX), ext3 ( de linux nativo) y uno llamado Reiser filesystem de origen ruso, que ya está disponible.

4.16.4.2   Sub-Alocacion de Bloques

Permite que el sistema operativo use el espacio libre dentro de los bloques físicos, que de lo contrario se desperdiciaría.  Es útil en caso de definir un tamaño de bloque demasiado grande y quedarse sin espacio. 

 

Entorno Windows

Permite sub-alocación de bloques.

Entorno Linux

No permite.

4.16.4.3   Discos Autodescriptivos

Soporte de discos que contienen la configuración de los discos dentro del mismo disco ( como “metadatos” ).  Son útiles al manejar muchos discos y sobre todo en el uso de clusters, ya que las controladoras de disco no tienen errores al acceder a nuevos discos en forma automática.

 

Entorno Windows

Posee soporte de discos autodescriptivos

Entorno Linux

No posee soporte de discos autodescriptivos

4.16.4.4   Puntos de montaje

Permite que una estructura de directorios de un filesystem pueda verse como parte de otro.

Esto permite ver cualquier combinación de árboles de directorio  independientemente del volumen en que estén como un solo árbol.

 

Entorno Windows

 

Windows 2000 permite combinaciones de directorios de distintos filesystem

Entorno Linux

 

Es una capacidad de unix desde hace décadas.

4.17    Soporte de WAN

Las comunicaciones de WAN para internet se suelen implementar en un dispositivo aparte, por razones de rendimiento. 

Este item analiza el posible reemplazo del router por el servidor, aunque no es recomendable.

4.17.1 FDDI

 

FDI es un nuevo sistema de comunicaciones.

4.17.2 ISDN

 

Entorno Windows

Incluye ISDN

Entorno Linux

Incluye ISDN

 

4.17.3 ATM

 

Es el nuevo protocolo de comunicaciones

Entorno Windows

Tiene soporte

Entorno Linux

No lo incluye pero lo incluirá el kernel 2.4    

4.17.4 Frame Relay          

Entorno Windows

No incluye.

Entorno Linux

No incluye.

 

4.18    TCP/IP

 

Las capacidades de TCP/IP  pueden mejorar las comunicaciones.

4.18.1 Tunneling

El método de “IP tunneling”, o sea encapsulamiento de  paquetes de IP dentro de otro con alguna capa intermedia para su administración, permite entre otras cosas, la implementación de VPN.

Hay 2 tecnologías  principales:  L2TP  e IPSec

L2TP no provee seguridad, ésta se debe implementar sobre PPP, aunque PPP no es muy seguro. Pero permite soportar múltiples protocolos (incluyendo IP ) sobre una red IP, como IPX o AppleTalk.  No es común en Firewalls por su falta de seguridad.

IPSec provee seguridad de IP a nivel red.

Su protocolo de administración, el ISAKMP/Oakley, también es un protocolo de seguridad y protege contra el ataque “Man in the middle”.

La diferencia entre IPSec y L2TP es que L2TP permite conexiones a demanda que pueden hacerse seguras, mientras que IPSec provee seguridad que permite conexiones a demanda.

Una VPN debe transmitir trafico de red, agregar encripcion al trafico, identificar cada usuario, filtrar los paquetes, y aplicar las restricciones de usuario.

 Esto a veces va en detrimento de la performance.

Entorno Windows

NT soporta PPTP  y  también IPSec a través de Cisco.

NT permite usar una conexión IP para transportar protocolos como IPX y NetBEUI además de IP dentro de IP

Entorno Linux

Linux permite solo IP dentro de IP , aunque se está desarrollando para otros protocolos que Linux si soporta como servidor de archivos.

Mediante el paquete FreeS/WAN pueden implementarse múltiples VPN estables. Ver “The linux challenge”, www.networkcomputing.com

4.18.2 IPv6

La nueva versión de TCP/IP que será implementada en internet.

 

Entorno Windows

Microsoft dice Windows 2000 soporta el estándar IPv6, pero aún está en desarrollo.

Entorno Linux

Linux  soporta el estándar IPv6 desde el kernel 2.0

4.18.3 Enmascaramiento de IP

Conocido como NAT o IP masquerading, puede ser necesario en caso de requerir mas clientes salientes a  internet que la cantidad de direcciones IP disponibles.  Puede hacer salir una red entera  a internet con una única dirección IP

Entorno Windows

Windows 2000 tiene el Network Address Traslator

Entorno Linux

Puede configurarse el IP masquerading en el kernel  2.2 , a través de ipchains.

4.18.4 Enrutamiento

 

Es para reemplazar el uso de router, o complementarlo.

Existen 2 protocolos de enrutamiento:

Entorno Windows

Con el comando route se puede configurar

Entorno Linux

Se usa el comando route

Al configurar la interfase de red en linux 2.2 establece rutas en forma automática para la red local. Permite programar el comportamiento del ruteo  para problemas de congestión específicos y los datos pueden ser ruteados según criterios diversos tales como la IP de origen.

 

4.18.5 IP Multiplexing

Para casos específicos.

Entorno Windows

No encontrado

Entorno Linux

No encontrado

4.18.6 IP Multicast 

Permite enviar el mismo paquete a varias direcciones a la vez.  El modo común es enviar una copia a cada dirección. Programas como Netmeeting pueden funcionar como clientes multicast.

Entorno Windows

Windows 2000 no tiene soporte de multicast, pero lo implementa a través del servicio DHCP.

Entorno Linux 

Linux si tiene,  permitiendo  su uso como servidor de videoconferencia Mbone y otros eventos en vivo sobre la red.  Como Ipv6 mejora las capacidades de Mbone , linux tiene ventaja en este aspecto.

4.18.7 TCP Large Windows

Las ventanas son la cantidad de paquetes que se envían hasta esperar confirmación de llegada.

En redes lentas , puede ser ventajoso usar ventanas grandes.  Esta opción es conveniente que sea configurada en forma dinámica automáticamente.

Entorno Windows

Si

Entorno Linux

Si

4.19    Servidor de Acceso Remoto

También conocido por su sigla en inglés RAS,   un servidor de acceso remoto permite conectarse remotamente con un modem desde una PC como si estuviese en la red, generalmente asignándole una IP por DHCP.  Existen dispositivos de red específicos para esta tarea tales como el Shiva Lanrover, pero se pueden implementar directamente en el SO.

Algunas capacidades a considerar son : soporte PPP, callback, encriptación,  soporte a modems y ISDN, VPN, RADIUS y conexión lógica por medio de múltiples conexiones físicas (conexiones multienlace para aumentar el ancho de banda)

 

Entorno Windows

Su RAS es completo.  Soporta PPTP, L2TP e IPSec y conexiones multienlace

Entorno Linux

Su RAS es completo.

El  kernel 2.2 ofrece balance de carga para líneas seriales de una conexión multienlace.

 

4.20    Servicios de red

Además del servicio de servidor de web, que se ve aparte, los servicios de red son en general los servicios que dan utilidad al SO, ya que es difícil hoy día imaginar un servidor aislado sin conexión a red.

Los servicios de red incluyen una gran variedad, de los cuales generalmente se usa una pequeña parte.

4.20.1 NNTP

(Network News Transfer Protocol)

El protocolo usado para publicar notas en newsgroups

 

Entorno Windows

Incluido servidor y cliente

 

Entorno Linux

Incluido servidor y cliente

4.20.2 NTP 

(Network Time Protocol)

El cliente de NTP es importante para mantener la hora del equipo.

Los servidores NTP abundan en internet. En caso de poseer varios servidores,  se puede usar uno como servidor NTP para sincronizar a todos los demás.

 

Entorno Windows

NT no tenía NTP. Windows 2000 sí

 

Entorno Linux

Tiene cliente y servidor NTP

4.20.3 DHCP

Cliente y servidor

 

Entorno Windows

SI.

En NT es muy inestable.

En Windows 2000, incluye alertas por límites de IP disponibles y estadísticas.

 

Entorno Linux

SI

4.20.4 FTP

Cliente y Servidor, puede incluir tftp, aunque éste se puede simular mediante ftp

Entorno Windows

Incluido

Entorno Linux

Incluye  WU-FTP SERVER

4.20.5 DNS

(Domain Name Service)

Servicio que traduce nombres de dominio a direcciones IP.  El DNS dinámico permite registrar servidores configurados por DHCP, siempre que posean también DNS dinámico

 

Entorno Windows

El DNS de NT era poco confiable e inestable.

Se supone que el Windows 2000 mejoró su DNS.

El tiempo dirá si es así.

Posee DNS dinámico

 

Entorno Linux

El DNS de linux es confiable y veloz .

4.20.6 SNMP

Simple Network Management Protocol. Permite el uso de herramientas como CA Unicenter, HP OpenView, y Tivoli TME.

Entorno Windows

Si

Entorno Linux

Si

4.20.7 BOOTP

Cliente y Servidor

 

Entorno Windows

NT no tiene bootp. Windows 2000 sí.

 

Entorno Linux

Booteo sin disco desde bootserver de red

 

4.21    Servidor de Email

El servicio de email es el más usado en internet junto al de WWW.

Es deseable que el servidor incluya la capacidad de enviar como de recibir.

4.21.1 Email saliente

Es deseable que se permita un control de los emails salientes.

 

Entorno Windows

Incluye SMTP. No valida usuarios

Entorno Linux

Incluye SMTP y sendmail. No valida usuarios

4.21.2 Email entrante

Entorno Windows

Para el NT existe SLMailNT (de Seattle Labs , dato de 1997)

No incluido. Requiere compra de otros productos como el MS Exchange Server.

Entorno Linux

Linux incluye   Sendmail, (completo y de difícil configuración),  y POP3.

IMAP se consigue gratis ,  por ejemplo Cyres impad o uWashington impafd.

Productos de terceros disponibles son Lotus Notes y OpenMail.

 

4.22    Servicios de Directorio :

Los servicios de directorio están tendiendo a unificar la visión del usuario independientemente de la ubicación de los archivos en los servidores ,  redes LAN, WAN o incluso internet.

4.22.1 LDAP

 ( Light Weight  Directory Access Protocol)

Se usa para directorios, pero también para otras estructuras similares como direcciones de email.  Este protocolo se usa también como base de servicios de directorios más complejos.

 

Entorno Windows

Windows 2000 implementa  Active Directory, el cual se basa en MS Directory Services,  que a su vez se basa en LDAP.  Posee integración con NDS

 

Entorno Linux 

En linux se puede implementar NDS ( Novell Directory Services ), en el cual se baso MicroSoft para Active Directory, el cual combinado con SAMBA da una gran flexibilidad.  La instalación y configuración de NDS en linux es sumamente compleja, pero una vez realizada funciona a la perfección. Permite a los administradores dar de alta a los usuarios a través de NDS en vez de ingresarlos en el /etc/passwd. Ver “The linux challenge”, en www.networkcomputing.com

También de Netscape se ofrece el Netscape Directory Server.

4.22.2 NIS/NIS+

El protocolo de Sun para administración de redes, incluyendo archivos y usuarios.  Permite una única autenticación para todos los servidores que soporten NIS.  Funciona en redes heterogéneas de PC, servidores  unix, etc.  Este protocolo cuenta con numerosos detractores, siendo más pesado y menos versátil que los directorios basados en LDAP.

Entorno Windows

Windows 2000 incluye soporte NIS

Entorno Linux

Linux soporta NIS+

4.22.3 Directorios en Internet

Los servicios de directorio pueden expandirse a internet

Productos de Terceros :

Critical Path : Global Directory Server

Novell : NDS eDirectory

Sun-Netscape Alliance :  iPlanet  Directory Server

 

Entorno Windows

Active Directory tiene capacidad de acceder a internet.

Win2K  provee de  file system distribuido, el DFS.

 

Entorno Linux

No tiene esta capacidad nativa. Hay que implementar productos de terceros, como NDS (ver LDAP).   O también WebNFS, producto de Sun propuesto como standard, basado en NFS y soportado por el browser de Netscape.

 

4.23    Servidor de archivos

4.23.1 SMB/CIFS

 ( Server Message Block)

El protocolo usado por Microsoft para compartir archivos e impresoras entre sistemas operativos Windows.  A pesar de que está indocumentado por ser propietario de Microsoft, existen implementaciones en Open Source.  El protocolo SMB/CIFS parece tener problemas de seguridad.

Entorno Windows                    

Es nativo

Entorno Linux

Incluye SAMBA, ampliamente usado en los servidores linux.

4.23.2 NFS

Es el filesystem standard de unix para compartir archivos.  Puede usarse desde Windows instalando el cliente.  Corre sobre TCP

Entorno Windows

No incluye soporte nativo NFS.

Microsoft ofrece aparte de Windows 2000 el paquete Unix Services v.2 que sí lo incluye.

También  por terceros, por ejemplo Intergraph Corp.

Entorno Linux

En Redhat se paso al kernel, lo que lo hace mas eficiente,  soporta NFS v3.


 

5         SERVIDOR DE WWW

En general los SO incluyen un servidor de Web integrado, aunque existe una variedad de servidores de web de terceros que se pueden instalar.

Su finalidad es enviar páginas HTML, aunque también hay nuevos formatos como DHTML, XML, etc.  Las páginas incluyen imágenes multimedia.  En este caso se dice que un servidor de web provee de “contenido” en vez de páginas.  El browser recibe páginas del servidor de web, y determina como mostrarlas, según el encabezamiento MIME.

El tipo y subtipo MIME de encabezado indica si es una página de texto, de sonido, de imagen o de video.

Aquí se analizan los servidores de web incluidos,  con algunos comentarios sobre otros servidores de web posibles.  Todos los servidores hoy soportan HTTP1.1,  el cual soporta “conexiones persistentes”.

 

5.1         Disponibilidad

Si el SO soporta clusters, el servidor de web también debe soportarlo.

El balanceo de carga debe ser soportado en los niveles de servidor de web para mejor performance.

 

Entorno Windows

IIS : No soporta Fault Tolerance ni clustering

NT tiene Load Balancing al nivel Servidor de web Layer

Windows 2000  soporta balance de carga  en Aplication Ayer.

 

Entorno Linux

Posee balance de carga.

 

5.2         Recuperación de sesión

Dado que las conexiones de internet pueden ser precarias en algún punto, es importante que la pérdida de contacto por tiempo breve no haga perder la sesión de un usuario ( un posible cliente en caso de ecommerce)

 

Entorno Windows

Está incluido y es  configurable

 

Entorno Linux

No es configurable.

5.3         Escalabilidad.

Es la capacidad de mantener el tiempo de respuesta del servidor ante un aumento de la cantidad de solicitudes de servicios. ( hits/segundo, páginas/segundo, GETs de http/ segundo )

Puede ocurrir que un servidor que es muy veloz para una cantidad pequeña de clientes , sea demasiado lento para una cantidad esperada de clientes en la realidad.  Es por eso que se habla de performance en lugar de velocidad, ya que considerar la performance es considerar la velocidad bajo ciertas condiciones, preferentemente las reales. 

Por eso se habla de la escalabilidad del software, o sea de la capacidad de seguir prestando servicio, ante un aumento de solicitudes , sin modificar el sistema. Todo sistema tiene un punto crítico alrededor del cual los tiempos de respuesta se degradan rápidamente.  Para servidores de web, éstos suelen medirse en hits/segundo.

A partir del punto crítico, que en caso de alcanzar significa que el site es muy exitoso,  se puede mejorar la performance escalando por hardware.

Las pruebas de benchmark requieren de un ambiente adecuado que reproduzca las condiciones reales.  Por tal motivo, la única forma de juzgar la performance es leer los benchmark realizados por fuentes conocidas, teniendo en cuenta que los resultados son siempre relativos a las condiciones del benchmark.

Los benchmark considerados son :

PC Magazine de mayo de 2000

MindCraft , julio de 1999

5.3.1      Páginas estáticas

Son las más comunes.  Incluso los sitios más complejos suelen tener una combinación de páginas estáticas y dinámicas.  Son las más rápidas, pueden mantenerse en memoria ya que son iguales para todos los clientes.

La performance puede no ser la misma según el tipo de página.

Solaris , gracias a su SNCA, es el más rápido para las estáticas.

 

Entorno Windows

Tanto NT como Windows 2000 superan a Linux y Novell para servicio de páginas estáticas.

 

Entorno Linux

Linux/Apache es muy lento según benchmarks realizados por PC Magazine .

Pero usando kHTTPd, la velocidad era 3 veces mayor para páginas estáticas con un solo procesador.  Esta capacidad estará disponible en el kernel 2.4.       

5.3.2      Páginas dinámicas

Son generadas al momento como respuesta al cliente, por lo tanto son mucho más lentas ya que suelen significar la lectura desde una base de datos y la composición del HTML junto con los datos obtenidos.

Entorno Windows

Tiene una performance superior al promedio

Entorno Linux

Tiene una performance inferior al promedio

 

5.3.3      Páginas  e-commerce

Se refiere a las páginas dinámicas que son encriptadas antes de enviarse al cliente.  La encriptación requiere un tiempo de procesamiento no despreciable.

Entorno Windows

Windows tiene una buena performance en este caso

Es notorio que casi duplica a los demás en el benchmark de 4 CPUs.

Entorno Linux

No encontré benchmark de este tipo. 

 

5.4         Virtual hosting

Capacidad de dar servicio a múltiples sitios con nombres distintos.

 

Entorno Windows

IIS tiene capacidad de miles de dominios.

 

Entorno Linux

Apache tiene capacidad de cientos de miles de dominios

5.5         Seguridad

5.5.1      Integración con SSL

Los datos que se protegen son los datos enviados por el cliente desde un brower, ( ejemplo típico: datos de tarjeta de crédito)  y el contenido devuelto por el browser.

Si una URL comienza con https en vez de http, usan SSL (ahora llamado TLS) en toda su conexión.

El soporte de SSL es ahora casi universal.

 

Entorno Windows

IIS lo tiene integrado.

 

Entorno Linux

El secure Apache incluye ahora SSL como módulo interno.

5.5.2      Certificados criptográficos

Las facilidades para ecommerce , que consisten básicamente en encriptación para verificación de tarjetas de crédito, pueden estar disponibles a nivel SO, servidor de web o aplicación.

 

Entorno Windows

Incluye Servidor de certificados digitales criptográficos en el mismo SO

Además puede generar certificados propios para autenticación de Intranet/VPN.

 

Entorno Linux

No incluye soporte de certificados en forma integrada pero sí a través de plug-ins.

No incluido en Apache, pero sí en otros como Zeus, Stronghold y Roxen

El SO de Redhat si tiene un servidor

5.6         Variedad de terceros

En caso de surgir necesidad de una capacidad no disponible en los servidores de web incluidos, puede optarse por uno alternativo

Entorno Windows

Incluido :  Microsoft IIS

Apache

O’Reilly Software : Website Pro

Sun-Netscape Alliance:  iPlanet Web Server, ex Netscape Enterprise Server.

Lotus Domino

Entorno Linux

Incluido : Secure Apache,

Gratis:

Stronghold, basado en Apache, incorpora mayor seguridad

Roxen Challenger Web Server : Particularmente adaptado para ecommerce, www.roxen.com

Comercial:

Zeus Technology :Zeus Web Server , www.zeus.co.uk

5.7         Multithreads

Al usar varios procesadores, los procesos del servidor de web pueden dividirse en hilos o thread . De nada sirve que el SO sea multithreaded si el servidor no lo utiliza.

Entorno Windows

IIS si tiene

Entorno Linux

Apache e incluso Stronghold  no son multithreaded

En benchmarks realizados por PC Magazine se asume que baja performance de un linux con Stronghold  respecto de un Solaris y un NT es la no capacidad de multithread, lo cual hace a Apache mucho más lento. 

5.8         Integración

El nivel de integración con el SO con el servidor de web, facilita la administración y lo hace más veloz..

Entorno Windows

ISS  esta integrado a

Win NT Directory Services,

Active X para IIS : Soporte Transaccional

Active X para NT : Active Server Pages (ASP)

FrontPage, MS Transaction Server, Message Queue,

Visual InterDev, Site Server.

Entorno Linux

Secure Apache incluye mod_perl incorporado, lo cual lo hace más veloz

5.9         Servidor de búsqueda

El servidor de búsqueda permite buscar en documentos HTML o de otro tipo  en  varios sitios web.  Provee de una interfase de búsqueda para los visitantes del sitio. Puede no estar en el mismo servidor web con el que interactúan.

-W

Incluido en IIS

-L

No incluido en Apache.

5.10    Análisis del Sitio

Las estadísticas de uso de un sitio web interesa no sólo a los administradores del sitio sino al sector de marketing, el sitio debería distribuir la información a las partes apropiadas.

 

-W

NT incluye análisis de sitio en su MS Site Server

Windows 2000 incluye también análisis de sitio

Además , existe software de terceros como:

Avesta: eWatcher

HP: Firehunter

Lucent: VitalSuite

Network Associates : Distributed Sniffer

WebTrends : ERS

Entorno Linux

Apache lleva log de hits y páginas accedidas

Linux no tiene un monitoreo específico para Servidor de web incluido.

Terceros : ERS (de WebTrends )

5.11    HTTP 1.2

Soporte de HTTP1.2 , la versión actual es HTTP1.1

Entorno Windows

No

Entorno Linux

No

 

5.12    XML

XML está diluyendo un poco la diferenciación entre páginas estáticas y dinámicas ya que se genera durante el desarrollo , pero la página que llega al browser del usuario es variable.

Un servidor de Web que provee XML que accede a datos , está enviando páginas dinámicas.

 

Entorno Windows

IIS 5 lo soporta

 

Entorno Linux

Apache lo soporta mediante plug-ins.

 


 

6         APLICACIONES

Productos de software incluidos en el SO o disponibles en el mercado que funcionan complementando  el servidor web,   para diseño, desarrollo y producción de páginas HTML, DHTML, XML, etc. en forma estática o dinámica.

El término servidor es confuso porque puede referirse a hardware (servidores físicos,  o sea máquinas) o software.  De este modo, podemos tener  un servidor de software de aplicaciones y otro de base de datos en un mismo servidor físico.  De aquí en más usaremos el término servidor para designar el software, teniendo en cuenta que varios servidores pueden residir en una misma máquina física, ( incluso en caso de replicación o cluster, un mismo servidor-software puede utilizar dos servidores-hardware ).

Estas aplicaciones pueden usarse para generar paginas estáticas o dinámicas, según las paginas se generen en tiempo de diseño o ejecución.

Pueden estar integradas al SO , aunque también pueden residir en otra máquina  y no necesariamente bajo el mismo SO que el del  servidor de web.  Pero en general es conveniente mantener el mismo SO por razones de mantenimiento, integración, y porque en organizaciones pequeñas pueden estar en el mismo servidor físico que el servidor de web. Por todo lo anterior es que se analizan en este trabajo, ya que el SO condiciona en cierta medida las aplicaciones disponibles, a pesar de las especificaciones y protocolos estándar.

Las páginas dinámicas son paginas generadas en el momento como respuesta a un pedido de un usuario desde su browser personal.  Y su generación está a cargo de un conjunto de aplicaciones  que  generalmente se instalan en un servidor físico aparte llamado servidor de aplicaciones que a su vez consulta un servidor de base de datos.

Siguiendo el modelo de 3 niveles de las aplicaciones, se pueden distinguir los 3 servidores respectivos :

1)      de web, maneja la capa de presentación enviando la página al browser y recibiendo input del usuario

2)      de aplicación ,  ejecuta la lógica , interactuando con los otros 2.

Pueden estar basados en  COM+, Java, CGI o CORBA/COS

a)      Desarrollo propio de la organización.

b)     Paquete integrado de desarrollo

c)      Paquete configurable

3)      de base de datos,  administra los datos.

El servidor de aplicación es el más complejo y que más variantes tiene. Puede consistir en aplicaciones desarrolladas “artesanalmente”, que es lo más común, o  en un software de desarrollo de aplicaciones de web, que están en auge actualmente y que facilita la integración con los servidores de web, de bases de datos y de las mismas aplicaciones, o incluso en paquetes de e-commerce “enlatados”.   De todos modos, en los 3 casos siempre subyace uno de los  modelos siguientes :  COM+ (de Microsoft), Java ( de  Sun y la comunidad Java, generalmente unix) , o CGI, CORBA,COS ( mayormente en linux). 

La diferencia entre servidor de web y de aplicación se está diluyendo ya que existen servidores de aplicaciones que además reemplazan al de web enviando las páginas HTML dinámicas,  pero a la vez un servidor de web de páginas XML puede acceder a datos por sí mismo y generar sus propias páginas dinámicas.   En teoría, una de las ventajas de tener los servidores de aplicaciones y de web en distintas máquinas es la configuración del SO, uno orientado a la velocidad de procesador y el otro al del entrada y salida, y con mayor seguridad  a mayor cercanía con la base de datos.

6.1         Publicación de contenido

Si bien el diseño se puede hacer en un ambiente distinto del  servidor, incluso desde la mayoría de las aplicaciones de escritorio,  el diseño en forma grupal requiere de una forma de control centralizada, que sí puede implementarse en el servidor de web.

La administración de las páginas estáticas puede ser complicada si como es la tendencia, cada sector de una organización diseña una parte del sitio. Para ello hay sofware de “manejo y publicación de contenido”, ( Content Management and Publishing)

Entorno Windows

Existe, como de costumbre, gran cantidad de soporte :

Allaire: Spectra

INSO : Dynabase

Interwoven : Teamsite

Netobjects : Authoring Server Suite

Vignette : Storyserver

MicroSoft : FrontPage, utiliza FPSE, FrontPage Sever Extensions

También soporta WebDav.

Entorno Linux

Gratis :

Frontpage :

Frontpage FPSE permite la ejecución de CGI en unix/linux.

Existe una implementación gratuita para FrontPage Server Extensions en http://www.nimh.org/fpse.shtml.

Existe software de terceros para Frontpage como por ejemplo CiliSoft que permite interactuar con la base de datos MySQL.

Además se puede implementar el protocolo WebDav, que es estándar en Internet , que define las extensiones de http para herramientas distribuidas de colaboración en desarrollo de páginas, en  www.webdav.org

6.2         Ambiente de aplicaciones

Las aplicaciones distribuidas de un servidor de web deben ser capaces de ejecutar código ya desarrollado para aplicaciones de uso interno de la organización.  El modelo elegido es decisivo en cuanto a las posibilidades futuras de incorporar paquetes de terceros. En general estos modelos incluyen lenguajes orientados a objetos con clases, propiedades, métodos y eventos.  También pueden incluir integración con el SO, con otros modelos, y con algunos servidores de web y base de datos.

Cada modelo tiene una fuerte correspondencia con un SO en particular, aunque existen muchos productos de terceros que permiten cualquier combinación de modelo y SO.

Si bien el standard es CORBA, MS desarrollo COM mientras las demás empresas se ponían de acuerdo en los detalles de CORBA.

El siguiente esquema muestra las tecnologías estándar según el ambiente.   La realidad no es tan rígida como el esquema, ya que numerosas combinaciones son posibles.

           

 

 

MicroSoft

OMG

Java

Open  Source: CGI, PHP

Modelo de Componentes

 

COM+

CORBA

EJB/J2EE

 

 

    Protocolo

COM

IIOP

RMI

FastCGI

 

Intermediario

 

ORB

 

 

 

Componentes

ActiveX

APIs con IDL

JavaBeans

 

Server-side

Includes

 

ASP

 

JSP( Servlet API )

CGI script, PHP

 

Desarrollo

Vinterdev

 

JDK, java SDK

 

 

Client-Side

Scripts

Vbscript

Javascript

 

Applets

 

 

Scripts embebidos en HTML

Vbscript

Javascript

Perlscript

IDLScript

Javascript

PHP

Ejecutado por

 

Intérprete

Intérprete

JVM

Intérprete o shell

Script ejecuta

 

API, ActiveX, applet

 

Servlet / objetos Java serializados

perl, java, C, python, tcl (Sun), rexx (IBM)

API Integrada al servidor de web (persistencia)

 

ISAPI – IIS

 

Java Applets, NSAPI - Sun-Netscape)

Mod_perl (Apache), FastCGI

Conectividad base de datos

 

ADO, ODBC

OQL

JDBC

ODBC

Transacciones

 

MTS

COS

JTS

-

 

 

 

 

 

 

 

6.2.1      Java

 

Si Java es el lenguaje de desarrollo elegido, puede ser muy útil tener algunas optimizaciones del SO para Java.  Actualmente se está desarrollando la versión Java 2  ( J2EE) , previamente conocida como Java 1.2.

Java provee un mecanismo para establecer relaciones de confianza entre el usuario y el servidor en forma natural, ya que permite autorizar o no a un usuario a ejecutar una acción en un determinado contexto, lo cual permite implementar seguridad a nivel aplicación.

6.2.1.1                Optimización JVM

Java Virtual Machine es una especificación de Sun para servidores de Java. En NT , existe el Microsoft Java 1.1 Virtual Machine.

El otro es el  Sun VM , pero no son compatibles.

Entorno Windows

Windows 2000 incluye soporte completo a JVM

Entorno Linux

Hay amplio soporte de JVM para linux, si bien no viene incluido. 

Apache tiene una versión especialmente para JVM, en www.java-apache.org

6.2.1.2                 Soporte de JDK

El Java Development kit  conviene que soporte Java 2 Enterprise Edition, que es la nueva especificación de Sun.

 

Terceros que ofrecen Java IDE ( Ambiente de desarrollo Java)

IBM : VisualAge

Inprise : Jbuilder

Metrowerks : CodeWarrior

MicroSoft : Visual J++

Sybase :  PowerJ

Symantec :  VisualCafe

 

Entorno Windows

Incluye soporte JDK.

Entorno Linux

No está incluido pero se pueden bajar gratuitamente de internet, por ejemplo, el Jbuilder.

6.2.1.3       EJB/J2EE

Enterprise Java Beans.  Últimamente puede ejecutar tanto Java servlets como JSP, el cual tradicionalmente se ejecuta en el servidor de web.

Entorno Windows

Windows no soporta EJB, sí a través de terceros.

Entorno Linux

Soportado, se puede bajar gratis de internet.

6.2.2      COM+

El modelo de componentes distribuidos de Microsoft.

 

Entorno Windows

Obviamente ,  Windows 2000 posee una integración absoluta con todos los productos COM+ de  Visual Studio (Visual Interdev, Visual Basic, Visual C, Visual J) , componentes ActiveX, y ASP.

Por otro lado, COM+ en Windows 2000 integra manejo transaccional, colas de mensajes y “object pooling”, los cuales en NT eran productos separados (MTS y MSMQ). 

Visual J++ se ejecuta a través de Microsoft JVM.

 

Entorno Linux

Existe software de terceros para ciertas implementaciones de COM+, pero no parecen recomendables. No puede utilizarse Visual Interdev para servidores de web linux.  

6.2.3      Independiente : CORBA/COS, CGI

Existen modelos que son independientes del lenguaje, y pretenden ser estándar .

El modelo CORBA es independiente del lenguaje.

La ejecución de programas CGI consiste en que el servidor de web llama a una aplicación externa en una variedad de lenguajes como C, java, perl y muchos otros.  Esta era la primera forma de páginas dinámicas pero muy ineficiente ya que ejecutaba un nuevo proceso por cada llamada.  Luego se implementaron tecnologías con “persistencia” donde  los procesos quedan en “cache”.  Tales modelos son FastCGI y mod_perl, que requieren el agregado de un módulo al servidor de web.

 

Entorno Windows

FastCGI puede implementarse en IIS, pero no mod_perl.

Sí incluye ORB.

Existen productos de terceros para implementar CORBA.

 

Entorno Linux

Sí incluye ORB.

Existen productos de terceros para implementar CORBA.

Mod_perl es propio de Apache.  FastCGI se puede implementar en cualquier servidor de web de linux.

6.2.4      Scripts embebidos en HTML

Scripts de web son scripts (programas de lenguaje interpretado) que pueden ejecutar  acciones propias y llamando a otras API.  Se relacionaban con el shell del SO, pero ahora se le llama también así a versiones interpretadas de lenguajes de desarrollo, como Java y VisualBasic, que se ejecutan del lado del cliente.  También Perl tiene una versión script, si bien comenzó siendo un lenguaje de script de SO más que de aplicación.

 

Entorno Windows

IIS permite ejecutar componentes de software en cualquier servidor de red desde lenguajes de script como JavaScript , PerlScript y  VBScript a través de ASP, así como puede ejecutar CGI scripts de unix.

Soporta ISAPI en forma nativa.

También soporta JSP,  NSAPI,  JSP servlets

 

Entorno Linux

CGI es el modelo elegido por excelencia, desde el cual se puede ejecutar lenguajes como C, perl , tcl, python, C++

Apache incluye soporte de ASP, aunque no puede ejecutar Vbscript

Apache soporta ISAPI, JSP, JSP servlets y NSAPI

6.3         Paquetes

Son productos que aceleran la creación de sitios de páginas dinámicas.

6.3.1      Software de Servidor de Aplicaciones

(Web Application Server Development Software )

 Los servidores de aplicaciones proporcionan una plataforma de diseño, desarrollo, y testeo de aplicaciones de web interactivas y de alto tráfico para integrar la lógica de presentación, negocio y conectividad.

Es decir, que operan en los 3 niveles : de interfase con usuario desde un browser , de lógica de negocio ejecutando diversos aplicaciones o componentes, y  de conexión a datos a un servidor de base de datos por ejecución de comandos SQL.

Incluyen un ambiente RAD , o sea de diseño rápido, generalmente visual, que genera código en Java u otro lenguaje para web,  permitiendo concentrarse en la lógica y disminuyendo los errores.

Algunas consideraciones para este tipo de soft son similares a las del sistema operativo y servidor de web :  tolerancia a fallos, escalabilidad y performance, seguridad

Otros temas a tener en cuenta son :

Facilidades de administración

Soporte XML

Soporte a COM+,  CORBA y Java

CLI o GUI

Conectividad a otros servidores y a las distintas bases de datos

Soporte de Ecomerce

Monitoreo

Administración de recursos y objetos compartidos

Usuarios concurrentes soportados

 

Entorno Windows

Como siempre, amplia variedad de terceros :

Allaire :ColdFusion Application Server 4.5.1 (2000)

(fault tolerant/cluster enabled )

SUN/Netscape/AOL  :iPlanete App Server 6.0

Apple Computer :Webobjects

BEA : WebXpress  Weblogic 4.51

Bluestone : Sapphire / Web 6.1

IBM : Websphere

NetDynamics

Oracle Application Enterprise Edition

 

Entorno Linux

Allaire ColdFusion Application Server 4.5.1 (2000)

Oracle : Oracle Application Server 4.0

BEA: Tuxido.

 

Gratis :

Enhydra Appl. Server (www.lutris.com)

  (25.000 downloads, usado por Telecom Francia), basado en Java

ZOPE

6.3.2      Software de E-Commerce

A diferencia del software de aplicaciones, existen paquetes que casi no requieren desarrollo sino sólo parametrización, para implementar un servidor de web con capacidad de e-commerce

Son “enlatados” que permiten implementar  “storefronts” en  la web rápidamente.

Si bien la capacidad de  e-commerce consiste básicamente en transacciones de dinero electrónico,  existen  varias características comunes, que vienen semi-listas.

Típicamente incluyen interfases de usuario predefinidas, administración de catálogos,  capacidades de transacciones con tarjetas de crédito y hasta cierta funcionalidad de marketing.  También  pueden abarcar servicios muy diversos, en colaboración con el SO, como email, directorios,  inventarios, entrega a domicilio, contabilidad, estadísticas, etc.

Suelen estar basados en un servidor de aplicaciones que fue desarrollado con fines específicos como los mencionados

Se pueden clasificar en

 

a) Simples y de instalación rápida

b) Complejos y Configurables

También algunos están más orientados a comercio entre empresas (B2B) o a consumidores (B2C)

Los complejos suelen incluir también una opción simple para una implementación inmediata.

Entorno Windows

Como de costumbre, Windows es la primer plataforma en que los proveedores ofrecen sus productos.

E-Commerce :

Configurables y complejos :

Broadvision One-to-one commerce

NetComerce de IBM

Site Server de MS, ahora MS E-Commerce

            Catalog International, de Catalog

            Intershop Communications de Intershop

 

b) Simples y de instalación rápida :

Entorno Linux

No parece haber este tipo de paquetes para linux aún.

6.4         Bases de Datos

Es común que el servidor de bases de datos estén en un servidor físico aparte.  Existe una casi total independencia entre la base de datos y el servidor de web, debido a los protocolos de conectividad  como ODBC y JDBC.

Algunos items a tener en cuenta para las bases de datos son :

 

Replicación  ( Disponibilidad )

Recuperación Automática ( Disponibilidad )

Soporte de Transacciones ( Disponibilidad )

Cantidad de registro / espacio máximo  ( escalabilidad )

Si son Open Source

Backups

SQL92 Compatible

Conectividad ODBC,JDBC

 

El soporte a una variedad de base de datos da una mayor capacidad de elección

Entorno Windows

Windows 2000 es compatible  con todas las principales bases de datos, como Oracle, Sybase e  Informix

Pero por supuesto está integrado a MS SQL Server y MTS

 

Entorno Linux

Hay una variedad de bases de datos para linux, incluyendo algunas de código abierto

Redhat incluye con PostgresSQL

Redhat también ofrece una versión “Enterprise Edition” optimizada para Oracle8i, y certificada por Oracle, con algunas capacidades extra tales como archivos mayores a 2 Gb,  acceso a 4 Gb de RAM, y refinamiento de drivers de hardware.

Open Source :

PostgreSQL 6.5 (www.pgsql.com,www.postgresql.org),

MySQL ,

db.linux(www.centaurasoftware.com,      download en  www.openavenue.com/db.linux)

     Interbase (www.interbase.com, www.synectis.co.za)( será open source)

 

Gratis :

    Informix SE

 

DBMS comerciales:    

    Oracle 8 ($5000 / licencia),

    Informix Dynamic Server,

    IBM DB2

    Sybase

    Texpress

 

Si bien SQL Server usa un protocolo poco documentado para ODBC/TDS, existe una implementación libre de este protocolo para linux en www.freeds.org, con el cual se podría llegar a acceder desde linux al SQL Server. Otro sitio es odbc.linuxbox.com odbc.linuxbox.com

6.5         Apoyo de comunicaciones

Las transacciones de aplicaciones en una red son complejas.

Algunos sistemas pueden ofrecer apoyo

Estas capacidades se maneja en niveles por debajo del sistema operativo, pero pueden estar integrados con él. 

6.5.1      Comunicaciones Sincrónicas

Para soporte transaccional

 

Entorno Windows

NT tiene en el Enterprise Edition  built-in Transaction Processing

El MTS está incluido en Windows 2000  garantiza  la integridad transaccional de la ejecución de componentes COM, además de mejorar la performance al realizar un pool de conexiones e hilos ( threads ), ya que está integrado al SO.

 

Entorno Linux

 

No está incluido pero se puede implementar a través de terceros, como el Transaction Server de IBM que se usa para e-commerce.( ex -  CICS )

6.5.2      Comunicaciones Asincrónicas

Permite escribir programas que se comunican sobre líneas lentas o poco confiables o intermitentes.

 

Entorno Windows

Microsoft tiene el MSMQ

Permite por ejemplo , manejar las conexiones a un proveedor creando una cola de pedidos que  serán enviados por e-mail , cuyos resultados son enviados a la aplicación cuando las comunicaciones son completadas.

 

Entorno Linux

En linux, las colas forman parte , junto con semáforos y memoria compartida, de IPCS ( InterProcess Communications Services ) a los cuales se accede por programas en lenguaje C.

 

6.6         Escritorio

Aunque es poco probable y poco recomendable, puede requerirse que SO deba ejecutar aplicaciones de escritorio , aunque sea como componente.  Es de suponer que este debe ser compatible con MS-Office, que es usado en un 98% de las PCs del mundo.  Estas aplicaciones puede utilizarse para generar páginas estáticas.

 

Entorno Windows

Windows 2000 obviamente soporta  MS Office.

Entorno Linux

Existen emuladores de windows en linux (Virtual Windows Manager) , tales como  WINE o WABI,  que permiten el uso de aplicaciones de MS Office sobre linux.

Por otro lado , existen aplicaciones sobre X-Windows compatibles con MS Office tales como Star Office, WordPerfect o  Applixware (1997), que además son gratuitas.

También el Lotus Notes tiene una versión linux.


 

7         RECURSOS HUMANOS

Análisis de los costos de recursos humanos requeridos, separados como disponibles dentro de la empresa y en el mercado, y de las licencias requeridas.

7.1         Licencias por usuario

Además del costo base del servidor,  puede haber un costo oculto en la cantidad de usuarios del sistema.

Entorno Windows

Las licencias de uso de NT pueden ser por usuario o por servidor.

Según los casos conviene uno u otro.

Entorno Linux

Es ilimitado ya que es gratis.

 

7.2         Capacitación interna

 

A menos que se trate de una organización creada recientemente, existe un capital de conocimientos en el sector de sistemas que está orientado a alguna plataforma. Estos conocimientos son fundamentales para la decisión de un nuevo servidor. Es importante medir el impacto que tendrá usar una nueva plataforma como servidor de web, por los costos de entrenamiento que implica.  Lo lógico es adoptar una plataforma similar a las ya conocidas.

Entorno Windows

Es un lugar común que NT es fácil de aprender aún para quienes vienen de una plataforma distinta, dada su interfaz gráfica y similar a la de Windows 95/98.  Otra cuestión es que sea fácil de administrar, lo cual se ve en el item de administración de este trabajo.

Es notable que Windows 2000 incluye numerosos cambios, además de novedades, sobre NT.  Microsoft alienta a sus clientes a mudarse rápidamente al Windows 2000.  Esto implica para sus clientes un nuevo plan de capacitación para los administradores de NT.   Los detractores de Microsoft dicen que Microsoft fuerza a un costoso reaprendizaje a sus clientes.

Microsoft tiene numerosos agentes que dan todo tipo de cursos sobre sus productos.

Entorno Linux

Sin duda que la adopción de linux es costosa para aquellos que no conocen unix.  Su administración por interfaz gráfica es incompleta e inconsistente.

Por otra parte puede considerarse una inversión, ya que al aprender linux se aprende también unix, un SO que se puede usar en todo tipo de plataformas, desde las Ultra Sparc de SUN hasta X386 y computadoras de bolsillo, y además está basado en una misma filosofía desde hace 3 décadas.  Los cambios de linux son permanentes pero muy graduales.

En USA hay cursos de seguridad certificados para LX como los hay para NT, dados por Caldera y Redhat.

Gradualmente se ven cada vez más ofertas de cursos de administración de linux, aunque mi impresión personal es que poca gente se anota.

7.3          RRHH Externos

7.3.1      Mercado de RRHH

Análisis de costo y disponibilidad de personal en el mercado para administrar y desarrollar en un SO dado.

Se puede requerir de certificados para comprobar el grado de conocimientos.

 

Entorno Windows

Debido a su facilidad de uso , los SO de Microsoft cuentan con una mayor base de profesionales.

Numerosos representantes de Microsoft otorgan diversos grados de certificados.

Entorno Linux

Linux, como cualquier unix, requiere de un nivel de conocimientos elevados , lo cual disminuye la cantidad de administradores y aumenta su costo.

Redhat otorga el RHCE a ingenieros certificados, el cual tiene la particularidad de requerir un examen práctico además del teórico, a diferencia de otros como Microsoft y Novell.

7.3.2       Soporte Técnico

Soporte en persona , telefónico ,  por email, en grupos de internet.

Entorno Windows

El soporte de SO de Microsoft se hace a través de agentes, con distintos niveles de soporte, desde el envío de un técnico al lugar físico del servidor hasta la consulta por Email o telefónica.

La información puede encontrarse en  sitios relacionados con  www.microsoft.com, como por ejemplo MSDN.

Un buen lugar para configurar la seguridad de NT es: www.trustedsystems.com/downloads.htm

 

También existen numerosos sitios de comunidades de usuarios.

 

Entorno Linux

Para linux, existe soporte desde 1999 de las principales empresas de software ( excepto Microsoft por supuesto).  Pero gran parte de la comunidad linux utiliza sitios abiertos a todos para intercambiar soluciones, como ser :

 www.slashdot.org, www.freshmeat.net, www.osnews.com, www.questionexchange.com

7.3.3       Servicios tercerizados

Estudio de la posibilidad de encomendar tareas de mantenimiento y desarrollo a terceros.

Entorno Windows

Al igual que en lo que respecta a Soporte, casi todas las empresas grandes o pequeñas prestan servicios de mantenimiento desarrollo para el entorno Windows

Entorno Linux

Linux , por su semejanza a unix,  goza de un amplio espectro de empresas a las que se puede tercerizar  soporte o desarrollo, que en general son las mismas que prestan soporte.

Sin embargo no existe una base conocimiento basado en la experiencia, debido a su menor uso , al menos en Argentina.

En USA hay empresas muy importantes como  SGI, Mission Critical, Andover (dueños de Freshmeat.net ) que realizan estas tareas.


 

                   III.  CONCLUSIONES

 

 

La siguiente tabla muestra las capacidades de hardware y su incidencia en la disponibilidad y escalabilidad.  

El balance de carga es un adicional de la duplicación, que aumenta la performance y por lo tanto la escalabilidad.

Las X mayúsculas indican el item en el que se analizan.

 

Hardware

Capacidad Soportada de

Disponibilidad

Escalabilidad

Balance de Carga

Máquina

Plataforma

 

x

 

 

Replicados

X

x

De red

 

Cluster

X

x

De red y recursos

Memoria

Máxima

 

X

 

 

NUMA

 

X

 

Procesador

SMP

 

X

De procesadores

 

64 bits

 

X

 

Disco

RAID

X

x

De disco (stripping)

 

Hot Swap

X

 

 

Red

NIC duplicada

X

 

 

 

Gigaethernet

 

X

 

 

De esta tabla se obtienen los principales puntos para analizar el hardware para un sitio de web.


 

La seguridad tiende a trasladarse de los sistemas operativos a los servicios de redes y  aplicaciones, estableciendo varias capas correspondientes a cada nivel. 

Al sistema operativo le queda reservado el  lugar de último eslabón de la defensa. 

La administración de seguridad es aún muy compleja por la cantidad de niveles.   Mediante software de redes se intenta unificar los accesos, pero el monitoreo está aún disperso en los distintos logs generados por firewalls,  certificados,  detección de intrusos,  escaneo de puertos, y no se han implementado mecanismos de reacción efectivos ante ataques.  Cada vendedor implementa una solución parcial y aislada del resto.  Es de esperar que los proveedores de soluciones de software y los mismos SO  puedan ofrecer soluciones integrales a  la seguridad, su monitoreo y  la reacción ante ataques e intentos de penetración no autorizados.

 

A pesar de la popularidad de arquitecturas cliente servidor, esta tendencia se está revirtiendo.  El servidor va a seguir requiriendo mayor poder para los proyectos de Network Computers, Net-PC y estaciones Java en desarrollo así como para el uso cada vez más extendido de browsers  que son clientes finos ( “thin clients” ).   De esta manera, tanto los datos como el procesamiento vuelve a estar centralizado,  devolviendo el control a los departamentos de sistemas de las organizaciones.

Esta concentración era absolutamente necesaria para un ambiente distribuido como lo es internet, por razones de administración, costo y seguridad.

Por otra parte parece que http es el único estandar que fue aceptado universalmente en forma inmediata.  Ahora nuevas tecnologías como XML lo pueden dejar de lado junto al HTML y nuevamente impulsar  una renovación de tecnología en la que muchos intentan imponer sus propios estándares.

A la vez que surgen nuevas tecnologías que tienden a dividir las aguas, después de un tiempo las tecnologías tienden a confluir en todo sentido :  las aplicaciones y bases de datos tienden a tener comunicación ilimitada, también se diluyen las diferencias entre los servidores de web y los de aplicaciones , y entre éstos y los servicios de red y del sistema operativo.  Esto se ve especialmente con la aparición de los servidores de aplicaciones de web, que ejecutan tareas reemplazando los sistemas de seguridad, servidores de transacciones, servidores de web y a la vez  integran todo un IDE, o sea un ambiente de programación amigable, independizándolo relativamente del entorno de programación elegido.

La elección entre un sistema de código abierto y uno propietario es casi filosófica, además de económica.  La comunidad de Open Source tiende a producir  sofware similar , o sea con una alta capacidad de elección ,  incluyendo la capacidad de hacer todo por uno mismo, retocando los fuentes.  Por otro lado los sistemas propietarios ofrecen soluciones integrales para que las organizaciones se concentren en las aplicaciones, pero muchas veces al costo de perder la independencia.  Hoy día , excepto para casos muy específicos se puede hacer un sitio web con las cualidades descriptas en cualquier plataforma con un costo aceptable para organizaciones medianas.


Bibliografía.

 

Seguridad

www.securityportal.com

www.securityfocus.com

Generales

www.osnews.com

www.mindcraft.com  (benchmark)

www.serverwach.com (novedades)

www.survey.com ( Estadísticas de servidores de web)

www.infoworld.com

www.infomagic.com

Windows 2000

www.microsoft.com

linux :

www.cosmoseng.com/LUG.htm 

www.linuxexpo.org/tech.html 

www.ssc.com./lj/index.html

www.linux.org

www.linuxos.org

www.redhat.com

www.samba.anu.edu.au/samba

www.slashdot.org

www.freshmeat.net

www.questionexchange.com

 


 

  GLOSARIO

 

ACL: Access Control List.  Implementación de seguridad que asocia cada archivo y cada usuario con un nivel de acceso ( lectura, escritura, etc)

Active Directory : Servicio de Windows 2000 que permite acceder a recursos de una red lan o wan a través de TCP en forma semejante a DNS, como si estuvieran en el Desktop . También permite la administración central de la red y la configuración automática del desktop del usuario, no importa en que maquina este En cuanto a seguridad, permite tener acceso a recursos de toda la red con una solo passwd ?

ASP : (Active Server Pages) : Especificación de Microsoft para crear páginas dinámicas utilizando componentes ActiveX, generalmente a través de VBScript o PerlScript.  Es una capacidad del IIS.

ASP : Aplication Service Provider: Proveedor de servicios de diversas aplicaciones a través de internet, que pueden ser desde “storefront” de e-commerce a bases de datos.  La idea de este modelo es que un ASP mantiene la aplicación fuera de una compañía , la cual solo accede a su aplicación y datos a través de la web.  Para una compañía tiene la ventaja de no mantener el software ni hardware pero pierde el control absoluto de la seguridad, hace mas lento el acceso, y pasa de poseer el sistema a “alquilarlo”.

Ataque por Denial of Service : El hacker envía grandes cantidades de paquetes de IP ilegales que confunden al servidor anulando algún servicio.

Ataque Man in the Middle : El hacker intercepta una transacción y asume la identidad de uno de los miembros de la conexión para copiar email, números de tarjeta de crédito, etc.

Ataque por IP Spoofing : El hacker obtiene y se asigna un numero de IP confiable para el servidor y evita los filtros por IP.

Ataque por Network snooping: El hacker usa un analizador de protocolos para leer el tráfico de red y obtener datos no autorizados.

Ataque por Apersonamiento: Conociendo una IP valida , un nombre de usuario y un passwd, el hacker puede hacerse pasar por el usuario y obtener toda su información.

CA/PKI : Certificate Authority/ Public Key Infrastructure

CLUSTER: Agrupación de terminales o servidores, uno de los cuales actúa como coordinador, que comparten tareas y recursos y ofrecen servicios como si fuera uno solo, lo que permite emular una maquina poderosa con varias que no lo sean.  Se puede implementar como servidores de backup mutuo, donde la caída de uno de ellos es reemplazada por los demás.  Se puede referir a equipos que comparten disco solamente, aunque el termino suele referirse a compartir recursos de memoria y procesador.

Los clusters se usan para mejorar el rendimiento, la escalabilidad  y la disponibilidad.

CGI (Common Gateway Interface):  Método standard que usa un Servidor de web para comunicarse con un programa de aplicación en C, Perl, Java u otros.  Más información en www.w3.org/CGI

CIFS: Common Internet Filesystem.  Filesystem.  Sistema de archivos que evolucionó de SMB, compatible con los protocolos de archivos de Windows 98.

CLI : Command Line Interface : Interfase de comandos (shell) en modo caracter , o sea sin mouse.

Tiene la ventaja de ser mas liviano en una red, pero implica conocer los comandos del shell.

Permite la ejecución de programas sin interactuar con un usuario. 

COMERCIO ELECTRÓNICO ( e-commerce ) : Protocolos y servicios para manejar marketing a demanda y ventas a demanda en internet a través de un sitio web.

CORBA: (Common Object Request Broker Architecture).  Arquitectura no propietaria para aplicaciones distribuidas, utiliza el protocolo IIOP, y las definiciones ORB y IDL para comunicar lenguajes como C, C++, Java, COBOL, Smalltalk, Ada, Lisp, Pitón e incluso un IDLscript propio

E-COMERCE :Es la posibilidad de realizar transacciones comerciales por WWW.

ECC : Embeded Error Checking. Capacidad de algunos sistemas de detectar error de hardware

EJB: Enterprise Java Beans. Componentes de Java.  Funciona como capa intermedia en los servidores de aplicación.

email :  Correo electronic

Cuota de disco : Límite del espacio de disco asignado a un usuario.

HTML: Hyper Text Markup Language

Hit: Cada una de las solicitudes de página enviadas desde un browser al  servidor de web.

IIS : Internet Information Server. El Servidor de Web incluido en el NT.

IKE : Internet Key Exchange .Nueva versión de ISAKMP/Oakley. Existe una versión freeware de Cisco ?

IAB : Internet Architecture Board

IETF : Internet Engineering Task Force

IPCS: Inter Process Communication Services.  Servicios propios de ambiente unix para comunicación entre programas, tales como colas, semáforos y memoria compartida.

IPv6 : El ultimo nivel de IP especificado por IETF.  Es compatible con IPv4,( el IP actual) por lo cual un servidor puede hacer un upgrade a IPv6 y seguir comunicado con servidores IPv4.  Su mejora mas obvia es la implementación de 128 bits en vez de los 32 de IPv4, previendo la falta de IPs en internet.  IPv6 establece reglas para 3 direccionamientos :unicast (host a host), anycast (host al mas próximo de un grupo de hosts ) y multihost ( de un host a varios hosts) Esta y otras reglas permitirán aumentar la performance y seguridad de las redes.

ISAKMP/Oakley : Internet Security Association Key Management Protocol.  Protocolo de administración y seguridad sobre IPSec. Permite autenticación de ambos miembros de una comunicación, negocia la política de seguridad, y maneja el intercambio de claves de sesión.

IPSec : IP Security Protocol .Protocolo usado para “IP tunneling”, el cual se usa para VPN Es el standard de IETF.En realidad son 2 protocolos : AH (Authentication Header, IETF RFC  1826) se trata de confidencialidad y autenticidad de payload y ESP (Encapsulated Security Payload, IETF RFC 1827) se trata de tunneling punto a punto para transmisiones seguras. Ambos permiten la autenticación del remitente de paquetes, pero ESP también encripta los datos. AH es mas rápido pero menos seguro y su enrutamiento es menos eficiente.  También permite protocolos como el ISAKMP/Oakley

J2EE : Java 2 Enterprise Edition : el nuevo standard de Java

Java :  Lenguaje de compilación desarrollado por Sun , basado en C++, ampliamente usado en ambientes distribuidos, tanto para generar páginas dinámicas como para integrar el servidor de web con otros ambientes, como mainframes.  Actualmente la versión es 1.1.6.

JavaScript: lenguaje interpretado de Netscape basado en Java, similar a Vbscript, Tcl, Rexx y Perl.  Puede estar embebido en HTML para ejecutarse en el browser cliente, o puede ser ejecutado en el server desde ASP.

JDK: Java Development Kit

JSP: Java Server Pages:  Implementa acceso del lado del servidor a capacidades de web en java, así como programas CGI. En general ejecuta java servlets.  Es similar a ASP de Windows.

JVM : Java Virtual Machine.  Software que ejecuta bytecode, o sea código Java compilado.  Un bytecode puede ejecutarse en cualquier plataforma con JVM, sin siquiera recompilarse.  JVM puede interpretar bytecode o compilarlo en el momento de ejecución ( JIT).

L2F : Layer 2 Forwarding. Similar al PPTP pero propuesto por Cisco Systems

L2TP :Layer 2 Tunneling Protocol.

Protocolo usado para “IP tunneling”, el cual se usa para VPN Es una iniciativa independiente de IETF que combina el L2F de Cisco con el PPTP de Microsoft. Cisco también implemento IPSec, el cual es compatible con L2TP.

MTS :MicroSoft Transaction Server , producto para de NT  para transacciones entre redes.

NAT : Network Address Translation ( RFC 1631 ) Traduce IP de una red interna a otra externa, también llamado enmascaramiento de IP. Se usa para mapear sus IP internas a una o varias IP globales.  Se utiliza como una manera de economizar IP en internet, además de permitir mayor seguridad y control de ruteo.  Se implementa en routers y firewalls.

NDS : Novell Directory Services

NFS : Network File Service

NIC : (Network Interface Card) Tarjeta de red

NTP : Network Time Protocol

NUMA (Non uniform memory access) : Es una técnica de clustering de procesadores en que cada procesador puede compartir memoria localmente.  Así agrega un nivel de memoria intermedia antes de que un procesador busque una dirección de memoria remota, mejorando la performance y escalabilidad.

Merced : El código de un nuevo procesador de Intel de 64 bits que se empezara a usar en workstations y servidores de los próximos años. Debido a su gran ancho de banda, será muy apropiado para aplicaciones visuales y mejora de performance en general, comparado con los procesadores actuales de 32 bits.

OLTP ( Online Transaction Processing ): Procesamiento interactivo de datos, opuesto al procesamiento batch ( por lotes ).

ORB: Object Request Broker ,  componente de CORBA que permite la interacción entre una IDL con otra o con el protocolo IIOP.

PPTP: (Point to Point Tunneling Protocol) Extensión de PPP que permite tunneling. Cualquier usuario de una PC con acceso PPP puede usar PPTP para acceder a una VPN.  Propuesto por MicroSoft e incluido en Windows 98

RAID (Redundant Array of Independant Disks) : Técnica de almacenamiento de datos lógicamente contiguos en varios discos ( STRIPING ) en forma redundante, mejorando el performance y/o la tolerancia a fallos según el nivel de implementación.  RAID 0: Striping sin datos redundantes. Ofrece la mejor performance sin tolerancia a fallos.

RAID 1: Disco Espejado. Mejora la performance al leer ( puede elegir de donde lee). Es la mejor opción de tolerancia a fallos y performance en un sistema multiusuario.

RAID 3 : Uso de un drive para guardar paridad. Al detectar errores con ECC, recupera los datos a partir de la paridad y los datos de los otros discos. No sirve para sistemas multiusuarios porque todos los discos ejecutan la misma operación al mismo tiempo.  RAID 5 : Usa un striping extenso, permitiendo accesos a distintos discos a la vez para distintos datos.  La paridad se graba en varios discos en forma rotativa. Así, permite también la escritura simultanea de distintos bloques de datos. Los datos no son redundantes , pero pueden reconstruirse a partir de los bloques de paridad.

Hay algunos otros niveles de RAID, pero prácticamente no se usan.

SMP (Simmetric Multi Processing o Shared Memory Multi Processing) : Procesamiento con mas de un procesador que comparten un sistema operativo y memoria. Por ser simétrico, ( o altamente acoplado) los procesadores comparten la memoria y el I/O bus o data path.  Pueden estar o no en la misma maquina. Si no lo están, se trata de un “cluster”.  El multiprocesamiento simétrico es mas eficiente que el común (MPP) para OLTP ya que balancea dinámicamente la tarea de los servidores, o sea que evita que un procesador este demasiado activo mientras otro esta en desuso.  Esto hace que el tiempo de respuesta sea menor.

SMB: Server message Block,  protocolo para compartir archivos de red, originalmente de Microsoft pero soportado casi universalmente.

Tunneling: Es la técnica de enrutar paquetes a través de una red de paquetes , no necesariamente del mismo protocolo, encriptando la información, incluso su dirección de red.

VMW: Virtual Windows Manager. Emulador de Windows en linux, ejemplos : WABI

VPN: ( Virtual Private Network ) Red Privada Virtual. Una VPN es una red privada que usa la infraestructura de telecomunicaciones publica, manteniendo la privacidad por medio de tunneling. Una red puede ser segura (o sea privada, con datos legibles solo para determinados niveles de autorización ) o publica.  Y puede ser a demanda ( conexión temporal) o dedicada ( conexión permanente ).  El término VPN se suele usar para redes seguras a demanda, que se implementan sobre redes publicas. Y en particular, a conexiones PPP sobre internet, con información encapsulada por seguridad.  La VPN reemplaza las “líneas dedicadas”, abaratando costos por menor tiempo de conexión y menor infraestructura necesaria, a la vez que permite mayor flexibilidad y seguridad.  Se utilizan tanto para extranet ( conexión con proveedores y clientes ) como para intranet de WAN (Redes de Área Amplia ) Las VPN deben manejar la seguridad de sus usuarios , y  en el caso de las extranet , también de sus clientes, por lo cual su implementación es un tema delicado. Puede ser implementada sobre un firewall o sobre un router.

X.509 : Protocolo de certificados digitales.  Muy usado en VPN y e-commerce para autenticar usuarios y dispositivos.

XML : Extensible Markup Language.  Sucesor probable del HTML, es mas flexible y mas orientado a estructura de datos que al aspecto de estos.