lunes, 4 de marzo de 2013

1.4 Seguridad


La seguridad informática, es el área de la informática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con esta (incluyendo la información contenida). Para ello existen una serie de estándares, protocolos, métodos, reglas, herramientas y leyes concebidas para minimizar los posibles riesgos a la infraestructura o a la información. La seguridad informática comprende software, bases de datos, metadatos, archivos y todo lo que la organización valore (activo) y signifique un riesgo si ésta llega a manos de otras personas. Este tipo de información se conoce como información privilegiada o confidencial.
El concepto de seguridad de la información no debe ser confundido con el de seguridad informática, ya que este último sólo se encarga de la seguridad en el medio informático, pudiendo encontrar información en diferentes medios o formas.



1.4.-INSTALACION Y CONFIGURACION DE LA PLATAFORMA WEB EN MULTIPLATAFORMA


SISTEMA OPERATIVO

-Instalacion y configuracion del S:O Linux:

Para las pruebas con Apache, partiremos de un entorno formado por un cliente XP con Firefox eInternet Explorer instalado, el mismo que para el caso de Windows y un servidor Ubuntu 10.04 LTS Server.  Si decidiésemos no instalar interfaz gráfico en dicho servidor, incluso podrían reducirse algo más, aunque en este caso no lo haremos. Debido a que la instalación de Ubuntu Server es también muy guiada y automatizada tampoco la describiremos en esta sección, sobre todo porque para las pruebas que vamos a hacer nos vale la configuración por defecto de dicho sistema operativo sin necesidad de instalar ningún servicio adicional a los de por defecto cuando el programa de instalación requiera hacer esta selección.
La configuración de los interfaces de red de esta infraestructura de máquinas será una réplica de la que hemos usado en el caso de Windows:


·                     Una conexión a Internet vía NAT sobre el host (máquinas Vmware y host comparten pues la conexión a Internet). Esta primera conexión la usaremos para actualizaciones e instalar software descargado de Internet. Su configuración de IP la dejamos por defecto (con lo que usará el servicio DHCP proporcionado por el software de virtualización para conexiones NAT).
·                     Otra conexión de red entre las máquinas de manera que se forme una red local interna entre ellas, para que ambas se vean correctamente. Nuestro ejemplo concreto usará la red virtual de Vmware Vmnet5, con IPs 5.0.0.1 (cliente XP) y 5.0.0.3 (Ubuntu 10.04). Ambas tienen una máscara de subred 255.255.255.0. Las IPs de la red interna son puestas como ejemplo simplemente, pero se mantendrán durante todo el curso para referirse a las máquinas cliente y servidor respectivamente.

Configuración de Linux
Configurar la red y el servidor web en Ubuntu LTS 10.04 es algo más complejo que en el caso deWindows , dado que la configuración manual disponible en el escritorio (si lo instalamos) podría no aceptar correctamente determinados parámetros. La forma más segura de hacerlo es de forma manual via consola de la siguiente manera: 

·                     Abrir o entrar la consola/terminal y ejecutar el comando su para tomar la identidad del usuario root. Otra alternativa válida es ejecutar las siguientes órdenes con anteponiendo el comando sudo.
·                     Editar el archivo /etc/network/interfaces con nano /etc/network/interfaces
·                     Editar dicho archivo para que quede como lo siguiente. La configuración de red que vamos a plantear con esta infraestructura es la misma que en el caso de Windows (una red privada interna (interfaz eth3) y una red pública que de acceso a Internet (interfaz eth2)):

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). 
# The loopback network interface 
auto lo 
iface lo inet loopback 
address 127.0.0.1 
netmask 255.0.0.0 

# The primary network interface (internet) 
auto eth2 
iface eth2 inet dhcp 

# The secondary network interface (lan) 
auto eth3 
iface eth3 
inet static address 5.0.0.3 
netmask 255.255.255.0 
network 5.0.0.0 
broadcast 5.0.0.255 
#gateway 5.0.0.1


·                     Reiniciar el sistema de red ejecutando /etc/init.d/networking restart
·                     Es importante no colocar un gateway a eth3 para que el sistema sólo intente usar eth2para salir a Internet. En caso contrario, podríamos tener problemas para acceder correctamente a Internet.
Una vez hechas todas estas operaciones, el siguiente paso a dar es actualizar el Ubuntu recién instalado con las últimas actualizaciones disponibles, para eliminar todos los posibles problemas, errores y agujeros de seguridad que se hayan detectado hasta la fecha. En el caso de haber instalado interfaz gráfico al servidor es muy probable que el propio sistema nos avise de la existencia de actualizaciones. En caso contrario (o si por alguna razón desactivamos estos avisos automáticos), podemos actualizar el sistema mediante estos dos comandos de consola:

·                     sudo apt-get update (actualiza los paquetes del sistema operativo a la última versión)
·                     sudo apt-get upgrade (actualiza los paquetes instalados a la última versión)

SERVIDOR WEB
Los servidores web son aquellos cuya tarea es alojar sitios y/o aplicaciones, las cuales son accedidas por los clientes utilizando un navegador que se comunica con el servidor utilizando elprotocolo HTTP (hypertext markup language).
Básicamente un servidor WEB consta de un interprete HTTP el cual se mantiene a la espera de peticiones de clientes y le responde con el contenido según sea solicitado. El cliente, una vez recibido el código, lo interpreta y lo exhibe en pantalla.
Además los servidores pueden disponer de un intérprete de otros lenguajes de programación que ejecutan código embebido dentro del código HTML de las páginas que contiene el sitio antes de enviar el resultado al cliente. Esto se conoce como programación de lado del servidor y utiliza lenguajes como ASPPHPPerl y Ajax. Las ventajas de utilizar estos lenguajes radica en lapotencia de los mismos ejecutando tareas mas complejas como, por ejemplo acceder a bases de datos abstrayendo al cliente de toda la operación.
1.4.3.-LENGUAJES DE PROGRAMACION

Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.

ALGUNOS LENGUAJES DE PROGRAMACIÓN:
·                     ABAP
·                     ABC
·                     Ada
·                     ActionScript
·                     Afnix
·                     ALGOL
·                     APL
·                     ASP
·                     ASP.NET
·                     AWK
·                     B
·                     BASIC
·                     BCPL
·                     Befunge
·                     Boo
·                     C
·                     C++
·                     C#
·                     Caml
·                     Clipper
·                     CLIPS
·                     CLU
·                     COBOL
·                     CORAL
·                     D
·                     Delphi
·                     DIV
·                     Dylan
·                     Eiffel
·                     Erlang
·                     Ensamblador
·                     Extended ML
·                     Euphoria
·                     Fénix
·                     Flow-Matic
·                     Forth
·                     FORTRAN
·                     Gambas
·                     GML
·                     GRAFCET
·                     FP
·                     Haskell
·                     Icon
·                     Inform
·                     INTERCAL
·                     ISWIM
·                     J
·                     Java
·                     JavaScript
·                     Joy
·                     KWC
·                     LADDER
·                     Lexico
·                     Lingo
·                     Lisp
·                     Logo
·                     Lua
·                     MAGIC
·                     Mainsail
·                     Mesa
·                     Miranda
·                     ML
·                     Modula
·                     Modula-2
·                     Modula-3
·                     Natural
·                     NetREXX
·                     Oberon
·                     Object REXX
·                     Objective-C
·                     Ocaml
·                     Occam
·                     Oz
·                     Pascal
·                     Parlog
·                     Perl
·                     PHP
·                     PL/1
·                     Plankalkül
·                     PostScript
·                     PowerBuilder
·                     Prolog
·                     Python
·                     Rapid
·                     REXX
·                     RPN
·                     RPG
·                     Ruby
·                     Sail
·                     Sather
·                     Scheme
·                     Scriptol
·                     Seed7
·                     Self
·                     Sh
·                     Simula
·                     Smalltalk
·                     Snobol
·                     SPARK
·                     Squeak
·                     SR
·                     Standard ML
·                     TI-Basic
·                     TCL
·                     VBA
·                     Visual Basic
·                     Visual C++
·                     Visual DialogScript
·                     Visual Foxpro
·                     Yurix
·                     ZPL
 WEB 

Web es un vocablo inglés que significa “red”“telaraña” o “malla”. El concepto se utiliza en el ámbito tecnológico para nombrar a una red informática y, en general, a Internet (en este caso, suele escribirse como Web, con la W mayúscula).

El término, de todas formas, tiene varios usos. Además de nombrar a Internet en general, la palabra web puede servir hacer mención a una página web, un sitio web o hasta un servidor web.
Una página web es un documento que incluye un archivo HTML  con texto, imágenes, videos, animaciones Flash, etc. Al conjunto de páginas web que suelen formar parte del mismo dominio o subdominio de Internet se lo conoce como sitio web. Dentro del sitio web, todas las páginas guardan alguna relación entre sí y están vinculadas mediante vínculos (también conocidos como enlaces, hipervínculos, hiperenlaces o links).
DBMS

Significa "Sistema de Gestión de Base de Datos". En resumen, un DBMS es un programa de base de datos. Técnicamente hablando, se trata de un sistema de software que utiliza un método estándar de catalogación, recuperación y ejecutar consultas sobre datos. El DBMS gestiona los datos de entrada, lo organiza, y proporciona formas para que los datos que se extraen o modificados por los usuarios u otros programas.

Algunos ejemplos de DBMS incluyen MySQL, PostgreSQL, Microsoft Access, SQL Server, FileMaker, Oracle, RDBMS, dBASE, Clipper, y FoxPro. Puesto que hay sistemas de bases detantas gestión disponibles, es importante que exista un camino para que puedan comunicarse entre sí. Por esta razón, la mayoría del software de base de datos viene con un Open Database Connectivity (ODBC) que permite a la base de datos para la integración con otras bases de datos.Por ejemplo, las sentencias SQL comunes, tales como SELECT y INSERT se traducen de la sintaxis propia de un programa en una sintaxis de otras bases de datos puedan entender.