SEGURIDAD EN LA RED

AUTOR: Sergio Cabezuelo López
MAIL: al024361@alumail.uji.es
ASIGNATURA: Seguridad y protección de la información (F39)
CURSO:2002/2003

Introducción
Ataques pasivos. Sniffers
        Definición
        Utilización
        Sniffing en una red local de difusión
        Sniffing a nivel global. Carnivore
        Modos de protección
                Recursos hardware
                Recursos software. Criptografía.
                        Cifrado de enlace
                        Cifrado extremo a extremo
                        Soluciones intermedias. IPSec
         Algunos Sniffers
Spoofing
        User Spoofing
                Protección
        IP Spoofing
                Protección
        Web Spoofing
                Protección
        DNS Spoofing
                Protección
        SMTP Spoofing
                Protección
        Denegación de servicio
                Ejemplo de ataque de denegación de servicio
                Protección
Mecanismos de protección a adoptar en sistemas abiertos
        TCP Wrapper
        Firewall
                Firewall en Linux. El comando ipchains

            Introducción

La red, a nivel de seguridad, se ha convertido en un arma de doble filo para sus usuarios. Por una parte la conectividad y la cantidad ingente de información disponible en la red, proporciona una herramienta muy poderosa a la hora de adquirir conocimientos y poder reforzar la seguridad de los sistemas. Por otra parte la zona que se debe asegurar en un equipo conectado a Internet crece casi infinitamente ya que se amplían los puntos de acceso al sistema, quedando expuesto a posibles ataques que violen la seguridad. El número de atacantes potenciales también aumenta, apareciendo nuevas vulnerabilidades a las que se deben de hacer frente.
En el presente trabajo se describirán vulnerabilidades a la que se ve expuesto un sistema conectado a una red y mecanismos o estrategias a adoptar para protegerlo de estas amenazas.
 

     Ataques pasivos. Sniffers

  Definición

Los Sniffers son dispositivos de monitorización que recogen información de una red. Al hecho de capturar información de la red se denomina Sniffing. Este tipo de ataques son los llamados ataques pasivos, ya no realizan ninguna modificación sobre la información.

La forma más habitual de sniffing es la que podríamos llamar sniffing por software, utilizando un programa que captura la información de la red.

También es posible hacer lo que podríamos llamar sniffing hardware, que pasaría por pinchar en un cable de red un dispositivo que permita capturar el tráfico.

  Utilización

Los usos típicos de un sniffer incluyen los siguientes: 
 
  · Captura automática de contraseñas enviadas en claro y nombres de usuario de la red. Esta capacidad es utilizada en muchas ocasiones para atacar sistemas a posteriori. 
· Conversión del tráfico de red en un formato entendible por los humanos. 
· Análisis de fallos para descubrir problemas en la red, tales como: ¿por qué el ordenador A no puede establecer una comunicación con el ordenador B? 
· Medición del tráfico, mediante el cual es posible descubrir cuellos de botella en algún lugar de la red.
· Detección de intrusos. Aunque para ello existen programas específicos llamados IDS (Sistema de Detección de intrusos), que son prácticamente sniffers con funcionalidades específicas. 
· Creación de registros de red, de modo que los intrusos no puedan detectar que están siendo investigados.

  Sniffing en una red local de difusión

Una red de difusión es aquella en la que la información se envía a todos los equipos (red en bus). Éste es el caso de una red Ethernet. En una red Ethernet la cabecera de cada paquete de datos contiene la dirección del equipo destino. Cuando un paquete llega a un equipo la tarjeta de red comprueba si el paquete va dirigido a este ordenador. Si el paquete contiene la dirección del equipo, la tarjeta lo acepta, rechazándolo en caso contrario. 

Para realizar el Sniffing en este caso, previamente se debe haber obtenido acceso al sistema como Root. Posteriormente se configura la tarjeta de red en estado promiscuo. En este estado la tarjeta recogerá todos los paquetes que circulen por la red.

  Sniffing a nivel global. Carnivore

En este modo de sniffing se captura la información que pasa por un determinado equipo. De este modo se puede "espiar", por ejemplo, el tráfico de Internet de una determinada empresa o usuario. El proyecto Carnivore realiza un sniffing de este tipo.

Carnivore es un software, principalmente para la plataforma windows, que utiliza el FBI, el cual se instala en servidores de internet y espía cada comunicación que pasa por el servidor en el que está instalado.

El funcionamiento de este programa es el siguiente:
 
  - Filtra el e-mail en busca de palabras clave 
- Elimina la información que no le interesa 
- Valora si el tipo de información restante es sospechosa de violar la ley

Cuando un ordenador es sospechoso de llevar cualquier tipo de actividad ilegal, Carnivore se introduce en su disco duro buscando cualquier tipo de información que confirme las sospechas de que este pc esta cometiendo un delito. Archiva cualquier tipo de información a la espera de que los agentes del FBI tome cualquier tipo de decisión.

A partir del descubrimiento de Carnivore, este software tuvo muchas criticas por lo que el FBI decidió cambiarle el nombre por uno que fuera un poco menos "agresivo", a partir de ese momento el software pasa a llamarse DCS1000.

El atentado contra las torres gemelas el famoso 11 de Septiembre del año 2001, supuso un punto de inflexión en las leyes antiterroristas, y con ello Carnivore salió ganado. Anteriormente a este suceso para tener acceso a cualquier tipo de comunicación privada había que estar en posesión de un permiso del tribunal, pero después del atentado, con una simple orden de allanamiento se podía hacer esto.

La aparición de la ley Patriot act, supuso que cualquier fiscal federal o de EE.UU. pueda ordenar la instalación de DCS1000 y registrar entero a un usuario de internet sin necesidad de una orden judicial.

  Modos de protección

 Recursos hardware

Diseño de la red. Para evitar el Sniffing se puede segmentar la red mediante el uso de Switches. Mediante la segmentación de la red el único tráfico que será capaz de ver un equipo será el que tenga a ese equipo por destino, ya que el Switch se encarga de enrutar hacia el segmento correspondiente únicamente los paquetes destinados al equipo en cuestión.

Utilización de fibra óptica en las líneas de comunicación. Aunque no es imposible "pinchar" una fibra óptica, esto es más difícil que en otros soportes y normalmente se puede detectar la intervención.

Encapsulación de la línea de comunicación en una tubería con gas a presión. De este modo al "pinchar" la tubería se produce un cambio de presión que podría ser detectado mediante un sensor de presión.

 Recursos software. Criptografía.

Mediante la utilización de algoritmos matemáticos, podemos modificar los datos de tal forma que solamente las personas que intervienen en la comunicación tengan acceso a la versión original de los mismos. En redes la criptografía se puede realizar a distintos niveles: 

Cifrado de enlace
El cifrado se realiza en la capa física. Para ello se utiliza una unidad de cifrado entre cada ordenador, participante de la comunicación, y el medio físico, de manera que cada bit que sale de la máquina emisora sufre un proceso de cifrado, y a cada bit que entra en la máquina receptora se le practica el proceso inverso. 

Como ventajas de este sistema encontramos que toda la información que parte de la máquina origen está cifrada por lo que todas las aplicaciones se benefician. Además el cifrado se puede realizar por hardware (por ejemplo en la propia tarjeta de red), incrementando la velocidad del proceso.

 Por otra parte la principal desventaja de este modo de cifrado es que no podemos estar seguros de que la información permanezca cifrada en todos los tramos. El proceso de cifrado y descifrado se produce entre dos nodos consecutivos y la información irá de nodo en nodo hasta el destino, pudiéndose dar el caso de que alguno de estos nodos no realice el cifrado de la información. 

Cifrado extremo a extremo
Este cifrado se produce a nivel de aplicación. El usuario de la aplicación decide si desea o no aplicar el cifrado a los datos.

La principal ventaja de este modo de cifrado es que la información permanece cifrada en todo el proceso de comunicación, es decir desde el origen hasta el destino. 

Por otra parte este sistema tiene la desventaja de que precisa de un "acuerdo" entre emisor y receptor para realizar el cifrado, además de que parte de la información, las cabeceras de los paquetes, no se cifran por lo que un posible atacante podría detectar el origen y el destino de la comunicación pudiendo actuar en consecuencia.

Algunas aplicaciones que aplican este tipo de cifrado son SSL (páginas web) y SMIME (correo electrónico).

 Soluciones intermedias. IPSec
El cifrado de la información se puede realizar a otros niveles. IPSec es un grupo de extensiones de la familia del protocolo IP que provee servicios criptográficos de seguridad (autenticación, integridad, control de acceso, y confidencialidad) . IPSec provee servicios similares a SSL, pero a nivel de red, de un modo que es completamente transparente para sus aplicaciones y mucho más robusto. Es transparente porque sus aplicaciones no necesitan tener ningún conocimiento de IPSec para poder usarlo. Se puede usar cualquier protocolo IP sobre IPSec.

  Algunos Sniffers

El sistema GNU/Linux dispone de un enorme número de herramientas de este tipo, la mayoría de ellas incluidas en la práctica totalidad de las distribuciones:

El tcpdump es uno de los sniffers más conocido y probablemente uno de los primeros disponibles para los sistemas UNIX. Este programa, una vez lanzado, captura todos los paquetes que llegan a nuestra máquina y muestra por pantalla información relativa a los mismos. Se trata de una herramienta de línea de comandos con una gran cantidad de opciones que permiten mostrar los datos de muy diversas formas.

Sniffit es una herramienta de línea de comandos que ofrece un modo de ejecución interactivo en el que se muestran las conexiones accesibles desde la máquina en la que se encuentra instalado y permite seleccionar cualquiera de ellas para la captura de paquetes, a través de una interfaz muy sencilla. Este sniffer es referenciado en varios documentos de seguridad.

Ethereal es un sniffer o analizador de protocolo que ofrece una interfaz sencilla de utilizar y permite visualizar los contenidos de las cabeceras de los protocolos involucrados en una comunicación de una forma muy cómoda. Este sniffer es considerado como el mejor sniffer freeware y está disponible en otros sistemas operativos como Windows. 

Para el sistema operativo Windows también hay gran cantidad de software para realizar sniffing, a continuación describimos algunos de ellos:

Network Monitor es una aplicación incorporada en el sistema operativo Microsoft Windows NT Server que proporciona características limitadas de sniffing.

SpyNet es un software muy potente que permite reensamblar sesiones completas. Sobre este producto se construyó Iris, uno de los analizadores de red más potentes de la actualidad.

BlackICE es un sistema de detección de intrusos que permite escribir un registro del tráfico de red para su posterior análisis.

Analyzer es un programa que captura paquetes utilizando la librería WinPCAP. Pero la principal utilidad de esta aplicación es que permite analizar la información monitorizada.


     Spoofing

El Spoofing consiste en la suplantación de identidad. En redes esta suplantación se puede realizar en distintos ámbitos: usuario, ip, web, dns y smtp.

  User Spoofing

Este modo de Spoofing consiste en la suplantación de un usuario en una red para obtener ciertos privilegios. Una forma de lograr este objetivo es mediante la obtención de la dupla de user y password del usuario en cuestión. Para ello se pueden utilizar técnicas de Sniffing (comentadas en el apartado correspondiente) o métodos de cracking. 

La obtención de passwords mediante cracking comprende la obtención "por fuerza bruta" de aquellas claves que permiten el acceso a servidores, aplicaciones, cuentas, etc. Muchas passwords son obtenidas fácilmente porque involucran el nombre u otro dato familiar del usuario, que además nunca la cambia. En esta caso el ataque se simplifica e involucra algún tiempo de prueba y error. Otras veces se realizan ataques sistemáticos (incluso con varios ordenadores a la vez) con la ayuda de programas especiales y "diccionarios" que prueban millones de posibles claves hasta encontrar la password correcta.

  Protección

Para la protección ante la posibilidad de suplantación a nivel de usuario se deben de seguir las recomendaciones indicadas para los ataques de sniffing, además de seguir las siguientes recomendaciones en la elección del password:
 
  - Nunca poner fechas relevantes, palabras que significan algo para nosotros o cualquier termino relacionado con nuestra persona: nombres, apellidos, nombres de familiares, fecha de nacimiento, etc... 
- Nunca poner expresiones conocidas: "abretesesamo", "abracadabra". 
Es conveniente que la clave vaya acompañado de signos de puntuación, números, etc... : "yo2./er" , "io2,,er." 
- Derivado directamente del modo de ataques a passwords, es conveniente no poner como clave ninguna palabra que tenga significado o se encuentre en el diccionario de ninguna lengua (evitando así una gran parte del peligro que entrañan los ataques por diccionario). 
- Nunca apuntar la clave en un papel, o en cualquier lugar ya que si bien puede ser muy segura cualquier persona que tenga acceso a este lugar donde está escrita en claro, no tendrá ni que molestarse en desencriptarla. 
- Es muy aconsejable utilizar reglas nemotécnicas de las cuales salgan passwords que únicamente tienen sentido para nosotros de manera que no se encuentren en ningún diccionario pero sin embargo sean faciles de recordar para nosotros. 
- Cambiar el password periódicamente.

  IP Spoofing

El IP Spoofing consiste en la asignación de una IP de origen ilegítima a nuestro equipo. Para ello basta con cambiar la dirección de origen de los paquetes que parten del equipo. Hay que tener en cuenta que al realizar esta acción los paquetes de retorno no irán dirigidos a nuestro equipo, sino a la IP asignada a los paquetes de origen.

El IP Spoofing puede utilizarse para los siguientes fines:
 
  - obtener privilegios en un determinado sistema que realice autenticación por IP.
- ocultar la identidad de un atacante, sobre todo cuando la denegación de servicios es la meta del ataque.
- simular que un equipo es otro como forma de convencer a la víctima, por ejemplo, que un ataque llega desde una Universidad, cuando de hecho llega de un enemigo.
- crear la impresión que un sitio particular está actuando malévolamente con la intención de crear fricciones o llevar a que un defensor acuse falsamente a una tercera parte inocente. 
- para apoyar otra actividad que desarrolle el atacante, y necesite ganar la confianza del atacado. Por ejemplo, un vendedor de productos de seguridad de información podría hacer ataques con dirección IP falsa para convencer a un cliente de la necesidad de sus servicios.
- convencer a la víctima de que muchos sitios están participando en un ataque cuando sólo un número pequeño de individuos es responsable, de forma que la víctima considera imposible el localizar a los atacantes.
- observar cómo una víctima reacciona y para determinar qué respuestas es posible obtener ante un determinado ataque.

 Protección

Con la actual tecnología IP es imposible eliminar los paquetes falsificados, pero sí se puede evitar que circulen. Para ello en los routers o gateways se debe proceder al filtrado de paquetes. Así pues, por ejemplo paquetes con una IP de origen privada deben de ser desechados.
Otra forma de autentificar la IP de origen es comprobar el identificador de la tarjeta de red del paquete de origen. Aunque también existen técnicas para modificar el identificador de la tarjeta, con este método se requieren más conocimientos del sistema por parte del atacante.

  Web Spoofing

El web Spoofing consiste en la suplantación de un sitio web. Esta técnica permite a un atacante crear una "copia oculta" del World Wide Web entero. Los accesos a la Web oculta están canalizados a través de la máquina del atacante, permitiéndole monitorizar todas las actividades de las víctimas incluyendo contraseñas y números de cuenta. El atacante puede también enviar datos falsos o engañosos a los servidores Web en nombre de la víctima o a la víctima en nombre de cualquier servidor Web. En pocas palabras, el atacante observa y controla todo lo que la víctima hace en el Web. Esta técnica es conocida como "the man in the middle".

Una vez que el atacante puede observar y modificar cualquier dato que va de la víctima a los servidores Web, así como controlar todo el tráfico de retorno de los servidores Web a la víctima, el atacante tiene muchas posibilidades, incluyendo la vigilancia y la adulteración.

- Vigilancia. El atacante puede mirar el tráfico pasivamente, grabando qué páginas visita la víctima y los contenidos de esas páginas. Cuando la víctima rellena un formulario, los datos introducidos se transmiten a un servidor Web que el atacante puede grabar también, junto con la contestación devuelta por el servidor. El comercio electrónico se realiza a través de formularios, esto significa que el atacante puede observar cualquier número de cuenta o contraseña que la víctima introduzca. El atacante pude llevar a cabo la vigilancia aún cuando la víctima tiene una conexión "segura" (normalmente vía Secure Sockets Layer) al servidor, es decir, aún cuando el navegador de la víctima muestra el icono de conexión segura (normalmente una imagen con una cerradura o una llave) 

- Adulteración. El atacante también es libre de modificar cualquiera de los datos que viajan en cualquier dirección entre la víctima y el Web. El atacante puede modificar datos del formulario enviado por la víctima. Por ejemplo, si la víctima está comprando un producto on-line, el atacante puede cambiar el número de producto, la cantidad o la dirección de envío. El atacante puede también modificar los datos devueltos por un servidor Web, por ejemplo insertando material ofensivo causando malos entendidos
entre la víctima y el servidor.

  Protección

Realmente no hay un método para impedir ataques de este tipo, pero si para descubrirlos. Estos ataques pueden dejar evidencias en la barra de estado, en la linea de dirección... etc que pueden ser "borradas" utilizando scripts. 
Siguiendo las siguientes recomendaciones podemos defendernos ante ataques de web Spoofing:
 
  - Desactivar JavaScript en el navegador para que el atacante sea incapaz de esconder las evidencias del ataque.
- Asegúrarse de que la línea de dirección del navegador siempre es visible.
- Prestar atención a las URLs desplegadas en la línea de dirección del navegador, asegurándose de que siempre apunta al servidor al que se piensa que se conecta.

  DNS Spoofing

La función mas conocida de los protocolos DNS es convertir nombres a direcciones IP. Cuando un equipo desea conectar con una dirección de internet, envía el nombre a un servidor DNS el cual devuelve al equipo la dirección IP correspondiente. Entre los modos de funcionamiento del servidor se encuentra el modo recursivo, en el que si el servidor no tiene la información en su caché, se encarga de buscarla haciendo consultas a otros servidores y almacenando la información en su caché en caso de que el resultado de la consulta sea satisfactorio.

El DNS Spoofing consiste en que un servidor DNS acepte y use información incorrecta que obtuvo de un equipo que no posee autoridad para ofrecerla. Persigue, entonces, inyectar información falsificada en la caché del servidor de nombres. Esto puede causar serios problemas de seguridad, por ejemplo, que los usuarios del servidor DNS atacado se dirijan a sitios erróneos en Internet (puede dirigir todas las solicitudes a un servidor en particular). También los mensajes de correo pueden ser dirigidos a servidores no autorizados donde pueden ser procesados, cambiados, eliminados o ser víctima de cualquier otra actividad maligna.

La única forma que el servidor DNS tiene de reconocer las diferentes encuestas es a través del ID (identificador) de los paquetes. Por tanto, para engañar a un cliente hay que robar la dirección IP de un servidor DNS real y responder con información falsa, empleando un ID adecuado y antes de que el verdadero servidor DNS lo haga. En la práctica, para poder responder al cliente y realizar el engaño, debe conseguirse el ID de la encuesta DNS. En el caso de una LAN puede emplearse un sniffer para obtener el ID. Sin embargo, desde un sitio remoto no existen muchas posibilidades, las empleadas usualmente son:
 
  - Probar aleatoriamente todos los posibles valores del ID (método obsoleto).
- Enviar algunas encuestas DNS (200 ó 300) para aumentar la oportunidad de alcanzar el ID correcto a partir de alguna predicción anterior.
- Invadir (inundar) el DNS para interrumpir su trabajo.
- Emplear vulnerabilidades conocidas de predicción de ID.

Protección

Para proteger un servidor DNS del Spoofing la técnica más recomendada es restringir las encuestas recursivas a unos usuarios determinados, para tener una mayor seguridad de que la petición de servicio no se realiza para posteriormente infiltrar información falsa en la caché del servidor.

  SMTP Spoofing

El SMTP Spoofing consiste en falsificar el origen de mensajes de correo electrónico. Esta tarea resulta muy sencilla porque el protocolo SMTP carece totalmente de autenticación. Dondequiera que exista un servidor configurado para aceptar conexiones SMTP en el puerto 25, este se expone al riesgo de que alguna persona se conecte y, empleando los comandos propios del protocolo, envíe mensajes que aparenten tener un origen escogido por el atacante cuando realmente tiene otro.

Protección

Para proteger el servidor SMPTP al igual que en los casos anteriores se opta por restringir el acceso al servicio, es decir, al puerto 25.
Para tener una mayor seguridad de que un mail pertenece al propietario de la cuenta origen se pueden utilizar certificados de autenticación.



 

    Denegación de servicio

En general, estos ataques se basan en utilizar la mayor cantidad posible de recursos del sistema objetivo, de manera que nadie más pueda usarlos, perjudicando así seriamente la actuación del sistema, especialmente si debe dar servicio a mucho usuarios.
Ejemplos típicos de este ataque son: 
 
  - El consumo de memoria de la máquina víctima, hasta que se produce un error general en el sistema por falta de memoria, lo que la deja fuera de servicio. 
- El consumo de ciclos de CPU, de forma que el resto de procesos que corren en la misma máquina apenas dispongan de tiempo de ejecución, por lo que su rendimiento decae rápidamente. 
- La apertura de cientos o miles de ventanas, con el fin de que se pierda el foco del ratón y del teclado, de manera que la máquina ya no responde a pulsaciones de teclas o de los botones del ratón, siendo así totalmente inutilizada.
- El monopolio de algún periférico, de manera que nadie más pueda acceder a él, obligando así a desconectarlo o a terminar con alguno de los procesos que corren en la máquina. 

En condiciones normales, un servidor tiene un caudal de tráfico mayor y más recursos que el ordenador del atacante, por lo que es complicado que desde una sola máquina cliente pueda desbordarse el límite de un servidor. Es en este contexto donde surgen los ataques distribuidos de denegación de servicio (DDoS), que se basan en coordinar agresiones desde varias máquinas clientes hacia un servidor, en un intento de desbordar su capacidad de respuesta.

 Los ataques DDoS pueden ser realizados por un grupo de personas que se coordinan para dirigir el tráfico de sus respectivas máquinas a los objetivos fijados, aunque lo más habitual es que sea obra de una sola persona. 

Ejemplo de ataque de denegación de servicio

Un reciente ataque que causa denegación de servicios se realiza enviando un paquete al puerto de eco de un host poniendo como dirección origen 127.0.0.1 y el puerto
de origen como el propio puerto de eco. La función del puerto de eco es
devolver cualquier paquete que llegue a su origen. Si el paquete proviene del
propio host, y de su propio puerto de eco, se crea un bucle infinito que, en
muchos casos, termina desactivando el equipo.

Protección

Para proteger a nuestro sistema de ataques de denegación de servicio e impedir que nuestro sistema sea la fuente de ataques de este tipo una medida a adoptar es el filtrado de paquetes. Se aconseja seguir las siguientes reglas:
Deben filtrarse todos los paquetes entrantes cuya dirección de origen o remitente: 
 
  - Sea inválida por pertenecer a los rangos asignados a redes privadas. 
- Pertenezca a nuestra propia red. 
- También deben filtrarse los paquetes entrantes cuyo destinatario sea la dirección "broadcast" de nuestra red. 

No debe permitirse que ningún paquete malicioso abandone nuestra red, de forma que pueda atacar otras. Para ello: 
 
  - No debemos dejar salir ningún paquete cuya dirección IP fuente pertenezca al rango de IPs reservadas para redes privadas. 
- No debemos dejar salir ningún paquete cuya dirección IP fuente no pertenezca a nuestra red. 



 

Mecanismos de protección a adoptar en sistemas abiertos

El principal sistema de protección es mantener el software actualizado. Los fallos de seguridad en los programas se hacen públicos por los hackers a fin de que los programadores puedan corregirlos. Los puntos de distribución de estos errores suelen ser páginas web y listas de correo:
    En la web www.securityfocus.com se pueden hacer búsquedas sobre problemas de seguridad detectados en software. También dispone de una lista de correo que remite información sobre estos temas: bugtraq@securityfocus.com

Existen organismos, los CERTS (centro de emergencia y recuperación), que se encargan de realizar advertencias de seguridad. Uno de estos organismos es el Rediris-Cert que tiene como finalidad la detección de problemas que afecten a la seguridad de las redes de centros de RedIRIS, así como la actuación coordinada con dichos centros para poner solución a estos problemas. También realiza una labor preventiva, avisando con tiempo de problemas potenciales, ofreciendo asesoramiento a los centros, organizando actividades de acuerdo con los mismos, y ofreciendo servicios complementarios.

Una correcta configuración del sistema es un buen mecanismo de seguridad. Uno de los principios que debe cumplir nuestro sistema al conectarse a la red es que solo proporcione aquellos servicios que tiene que prestar. Por ejemplo si un equipo va a ser utilizado como servidor web debemos configurarlo para que solo atienda peticiones en el puerto 80.
Otra recomendación es restringir el acceso al sistema a unos determinados usuarios. Para ello contamos con herramientas como el wrapper y el Firewall.

  TCP Wrapper

Un Wrapper es un programa para controlar el acceso a un segundo programa. El Wrapper literalmente cubre la identidad del segundo programa, obteniendo con esto un nivel más alto de seguridad. Mediante el TCP Wrapper podemos controlar quién tiene acceso a nuestra máquina y a qué servicios, así como registrar las conexiones. También ofrece detección básica de impostores. 

A continuación se muestran los inconvenientes del TCP Wrapper:
 
  - Para utilizarlo se tiene que estar directamente conectado a la Internet, es decir, se tiene que tener una dirección IP. 
- Sólo controla la máquina en la que está instalado, y por lo tanto no sirve para una red. Los cortafuegos pueden proteger todas las máquinas cualquiera que sea su arquitectura. 

  Firewall

Un firewall (cortafuegos) es un mecanismo que combina software y hardware para aislar una red local de una red externa. Para ello el firewall se coloca entre la red local y la red externa como muestra la siguiente figura:

De esta manera se pretende "aislar" la red local de la red externa siendo el cortafuegos el que deba de lidiar con las amenazas externas.

Inicialmente debemos de definir una política de actuación para el cortafuegos. Existen dos posibilidades:
 
  - Denegar. El cortafuegos obstruirá todo el tráfico por defecto. El administrador seleccionará las características de los paquetes que desea que circulen por el cortafuegos, además de habilitar los servicios que considere oportunos. 
-.Permitir. Por defecto se indica al cortafuegos que permita realizar todas las operaciones y el administrador indicará explícitamente las operaciones que no desea que se permitan realizar, por suponer una amenaza para la seguridad de la red o bien atendiendo a otro tipo de intereses.

Las reglas son los modos de actuación del cortafuegos dependiendo de los eventos que se produzcan. Estos son los eventos básicos que gestiona un cortafuegos:
 
  - INPUT: La regla se aplicará a los paquetes que entren en el cortafuegos.
- OUTPUT: La regla se aplicará a los paquetes que salgan del cortafuegos.
- FORWARD: La regla se aplicará a los paquetes que atraviesen del cortafuegos.

Funciones

A continuación se muestra una lista con la principales funciones que puede realizar un cortafuegos:
 
  - Filtrado de paquetes
- Control del acceso a la red Externa. En el caso de Internet se puede indicar, por ejemplo, que páginas web podrán ser visitadas desde la red local.
- Monitorización del tráfico. De esta forma se puede llevar un control del acceso a la red externa por parte de los usuarios de la red local, además de controlar el acceso externo a la red.
- Cifrado de las comunicaciones.

Firewall en Linux. El comando ipchains.

Linux proporciona un comando denominado ipchains, que permite realizar funciones de firewall además de permitir otras muchas posibilidades (NAT, control de ancho de banda...).
El funcionamiento del comando como cortafuegos se basa en la definición de reglas. A continuación se muestra un ejemplo de la sintaxis seguida por el comando:

ipchains -A INPUT -p tcp -s 192.168.0.0/24 -destination-port 80 REJECT

Mediante la opción -A se indica que se va a añadir una nueva regla. Para borrar una regla se utiliza la opción -D y para reemplazarlas -R.

En la regla se debe de indicar al evento que debe responder, en este caso a los paquetes que entren, INPUT. Otras opciones son OUTPUT para los paquetes de salida, y FORWARD para los paquetes que entren y salgan.

Mediante la opción -p tcp se indica que el protocolo que utiliza la regla es el tcp. Esto es necesario porque en la regla definida se hace referencia al puerto 80 (generalmente utilizado para el servicio web).

Con la opción -s <IP> se indica que la regla se aplicará a los paquetes que provengan de la dirección IP indicada. Mediante la opción -d <IP> se hará referencia a la dirección de destino del paquete.

Mediante la etiqueta REJECT se indica que el paquete sea rechazado y que se le envie un mensaje ICMP al emisor indicándole esta situación. Otras opciones pueden ser ACCEPT que indica que el paquete sea aceptado, y DENY que indica que el mensaje sea desechado.

De este modo en la regla definida anteriormente se indica que los paquetes con una ip de origen 192.168.0.0/24 (privada), que tengan como destino al servicio web (puerto 80) sean rechazados, enviando un mensaje ICMP al emisor indicándole este suceso.