|
|
|
|
|
TEMA 3: SEGURIDAD EN REDES
3.1 Criptografía en las redes
3.1.1. SMIME
3.1.2. SSL
3.2.Vulnerabilidades,amenazas
y contramedidas en las redes de computadores : FIREWALLS.
3.1 Criptografía
en las redes.
Esta sección va a tratar de explicar cuales son las formas de aplicar a las redes los conceptos teóricos vistos con anterioridad acerca de la criptografía. En cuanto a lo que se refiere a la transmisión de información confidencial a través de la red ( cifrado en red ) , existen dos formas fundamentales de llevarlo a cabo:
-Cifrado extremo a extremo: Este tipo de implementación del cifrado en red desvincula totalmente al sistema operativo de realizar cualquier función adicional a la de mandar información. Así pues, serán las aplicaciones las que se encarguen de cifrar información, y enviarselo a los protocolos de red del S.O. Aplicaciones fundamentales que emplean esta forma de cifrado en red , son el correo seguro y auténtico (SMIME) , el SSL/TLS (empleado para la web) , y el PGP.
-Cifrado de enlace: A diferencia del cifrado de extremo a extremo, el S.O deberá disponer de un software específico que se encargue de cifrar la información que recibe de las aplicaciones.El problema de esta forma de cifrado en red es fundamentalmente que la seguridad ( confidencialidad ) de los datos que enviamos esta supeditada a la seguridad del S.O. ya que al recibir los datos cifrados dispondrá de un buzón donde almacene dichos datos. Violando la seguridad del S.O violamos la seguridad de la información que viaja a través de la red. La aplicación por excelencia que emplea esta forma de cifrado en red es el IPSEC. La ventaja de esta aplicación será la posibilidad de extender el cifrado de enlace a toda la red.
3.1.1. SMIME3.2.Vulnerabilidades,amenazas y contramedidas en las redes de computadores : FIREWALLS.Antes de explicar directamente en que consiste el correo seguro es necesario realizar una introducción breve acerca de cuales son las partes fundamentales de un correo electrónico, y de que forma se envía información que no sea exclusivamente ASCII (MIME), ya que la implementación del envío de información segura se va a fundamentar en el envío de objetos criptográficos que como se vió en secciones anteriores se encuentran especificados en formato DER.
El formato base de un correo electrónico especifica que este debe estar formado por una cabecera , un cuerpo y una línea en blanco que separa ambas partes. La cabecera es una parte con fines de control de la información que se envía.Se compone de una serie de lineas y se separa del cuerpo por un líne a en blanco.Cada una de sus lineas tiene las siguiente estructura:Campo:Valor ; otra cosa=valor
El problema de esta especificación es que en los mensajes sencillos el cuerpo está formado por texto simple que contiene información ASCII dentro del rango (rango 32..126) . El problema por tanto se nos plantea en como enviar a través del correo información binaria , no imprimible por pantalla ( rango 0..31 ), o caracteres de ASCII extendido como "¿", o "ñ". Como es deseable enviar cualquier tipo de información a través del correo electrónico se utiliza el standard MIME , que nos va a abastecer de una serie de formatos de codificación ( base64 subconjunto ASCII) que nos permitan transformar información binaria en información ASCII , que si que va a ser susceptible de ser enviada.
Así pues , un mensaje MIME añade a la cabecera del mensaje el campo MIME-Version ,en la actualidad 1.0., además del campo Content-Type, cuyo valor indica el tipo de información que se va a enviar.(tipo MIME).Cada tipo MIME consta de dos partes, para mayor simplicidad los llamaremos general y particular. La parte general indica el tipo de medio del que se trata como video, imagen, audio, etc. La parte particular indica de qué clase de ese medio se trata. Por ejemplo , el valor adecuado para un campo Content-Type sería:
Image / gif
La parte general especifica por tanto el medio que en este caso es Imagen y la particular el tipo de medio , en este caso formato gif.
Los tipos MIME se especifican en una lista que contienen cual son los más extendidos. En el caso de que la lista de tipos reconocidos no englobe el que deseamos enviar , añadiremos "x" delante del valor de la parte particular.En el caso de que no especiquemos el tipo MIME, el contenido del cuerpo se interpretará como text/plane.
Si la información que se va a enviar debe convertirse en caracteres legibles , debe codificarse. La codificación empleada se especifica en el campo Content-Transfer-Encoding.Existen 4 formas fundamentales de codificar la información , ASCII 7 bits, ASCII 8 bits , base 64 , quoted-printable. Las dos primeras formas de codificación se presuponen , base64 se utiliza para información binaria , y la última de las formas de codificación para la impresión de texto.
Así pues un ejemplo de mensaje MIME podría ser el siguiente:
(CABECERA)
To: al051588@alumail.uji.es
From: alberto@nisu.org
Subject: Prueba
MIME VERSION 1.0
Content-Type : application / x-shockwave-flash2-preview ;name="O_bibbird.swf"
Content-Transfer-Encoding:base64
(ESPACIO EN BLANCO)
(CUERPO)
Información binaria codificada en base64
Así pues el ejemplo de un correo básico MIME como se puede observar en la descripción de la cabecera , solo nos permite enviar un único objeto MIME-> ¿Que pasa entonces si deseamos enviar más de un objeto MIME?Para ello el standard MIME dispone de una serie de tipos reservados MIME que nos van a permitir incluir en un correo electrónico más de un objeto MIME. Nos va a interesar Multipart/mixed , para el envío de varios tipos mime, y Multipart/signed para el envío de mensajes firmados.
De esta forma si deseamos enviar más de un objeto , especificaremos en el campo Content-Type, que se trata de un objeto Multipart/mixed . Además, de especificar , es necesario establecer un criterio que nos permita la separación de unos objetos con otros , este criterio se especifica en el campo boundary, en la misma linea que la especificación del tipo mixto.De esta forma, si queremos indicar que ya ha terminado o que empieza un nuevo objeto MIME , utilizaremos _ _boundary.Indicar que entre la especificacion del tipo MIME y su contenido se emplea un espacio en blanco. Para señalizar la finalización completa del tipo MIME se empleará _ _boundary_. Así pues, un ejemplo de un mensaje mixto que contiene una imagen jpeg y un texto podría ser el siguiente:
MIME VERSION 1.0.
Content-Type: multipart/mixed ; boundary="ejemplo"
_ _ejemplo
Content Type : text / plane
(linea en blanco)
ESTO ES UN EJEMPLO
_ _ejemplo
Content-Type: image / jpeg
Content-Transfer-Encoding: base 64
(linea en blanco)
IMAGEN EN BASE64
_ _ejemplo_
Así pues, esta forma de definir la inclusión de más de un objeto MIME en un mensaje , nos puede permitir definir una recursividad entre multipart/mixed, de tal forma que algunos de los objetos MIME que se encuentran en un multipart / mixed sea otro multipart / mixed.En este caso habrá un boundary para cada uno de los multipart mixed. Un ejemplo de esta recursividad la podemos observar en el siguiente mensaje mime:
MIME VERSION 1.0.
Content-Type: multipart/mixed;boundary="ejemplo"
_ _ejemplo
Content-Type: multipart/mixed;boundary="ejemplo1"
(linea en blanco)
_ _ejemplo1
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
(linea en blanco)
IMAGEN EN BASE64
_ _ejemplo1_
_ _ejemplo
Content-Type: image / jpeg
Content-Transfer-Encoding: base 64
(linea en blanco)
IMAGEN EN BASE64
_ _ejemplo_
El SMIME es una ampliación del MIME, que nos va a permitir mantener toda la funcionalidad del MIME, además de poder enviar mensajes seguros. Para realizar dicha labor dispone de unos objetos criptográficos denominados pkcs7 ,que nos van a permitir almacenar información relativa a la seguridad. Existen principalmente cuatro modos distintos, que se diferencian por el tipo de información que contienen. Estos modos son :- Data : En este caso el objeto criptográfico contiene únicamente datos.Como dichos objetos criptográficos están definidos en formato DER ( información binaria ) a la hora de ser enviados , serán especificados como objetos mime , y serán codificados en base64.
-Signed data: Contiene la firma del emisor del mensaje.
-Enveloped data: Contiene datos cifrados.
-Signed and enveloped data:Contiene datos cifrados y firmados.Así pues la estructura de un mensaje cifrado, consistirá únicamente en enviar el objeto pkcs7 en modo enveloped data. Por tanto en la cabecera del mensaje será necesario incluir un tipo mime en el campo Content-Type y deberá ser codificado en base64. A continuación se muestra un ejemplo de un mail cifrado:
MIME VERSION 1.0
Content-Type : application / x-pkcs7-mime
Content-Transfer-Encoding: base64
(linea en blanco)
(objeto pkcs7 en modo enveloped data codificado en base64)
Con respecto a los mensajes cifrados , indicar que los agentes de correo , habitualmente no muestran el mensaje , de la forma anterior, sino que descifran los datos que contiene el pkcs7 , y construyen un nuevo mensaje con los datos descifrados y con el resto de la cabecera del mensaje inicial, que no se refería al cifrado de la información. Esto permite , evitar que el usuario de Smime descifrar toda la información, escondiendo así la complejidad de los métodos criptográficos empleados.
Para el envío de mensajes firmados se emplea el tipo reservado multipart/signed, que permite enviar dos objetos mime , el primer objeto es el propio mensaje, y el segundo el objeto pkcs7, en modo signed data. Como el receptor del mensaje debe comprobar la firma , para observar si realmente viene de A, y para saber que el canal de comunicación no ha sido interceptado , se envía en el mensaje el certificado del emisor, para que el receptor del mensaje pueda disponer de la clave pública del emisor, y así poder comprobar la firma.En la especificación del tipo mime también deben hacerse referencias acerca del algoritmo empleado para firmar.A continuación se muestra un ejemplo de un mensaje firmado:
MIME VERSION 1.0Con respecto a dicho mensaje , el agente de correo deberá , comprobar que la firma es correcta , para ello aplicará con el algoritmo de cifrado sha1, el resumen de nuestro mensaje, y comprobará que es correcto,comparandolo con el resultado de descifrar con la clave pública del certificado el contenido del objeto pkcs7.
Content-Type: multipart/signed protocol "application / x-pkcs7-signature"; micodg=sha1 ; boundary="ejemplo"
_ _ejemplo
NUESTRO MAIL
_ _ejemplo
Content-Type:application/x-pkcs7-signature
Content-Transfer-Encoding:base64
(linea en blanco)
(objeto pkcs7 codificado en base64)
El SSL es otro standard de cifrado de extremo a extremo, que se emplea para enviar información confidencial a través de la red. Su uso está más extendido para la aplicaciones web, pero se puede emplear en cualquier aplicacion en el que se establezcan sesiones y transferencias inmediatas entre un emisor y un receptor( telnet,ftp ...). Indicar que el SSL fue desarrollado por la empresa Netscape , pero existen otros estandares como el TLS , que son libres y realizan la misma función que el SSL.
El SSL, es un standard pensado en primer lugar para la protección de los clientes en un modelo cliente-servidor, aunque de forma opcional también puede establecer fases que permitan autentificar al cliente.Sus funciones fundamentales van a consistir:
-Confidencialidad: La informacion que se establece entre el cliente y el servidor no sea legible por usuarios ajenos.
-Autenticidad del servidor: Asegurar al cliente que establece contactos con el servidor, que realmente es el servidor quien esta recibiendo la información
-Autenticidad del cliente: Esta premisa es opcional,y permite asegurar al servidor que la información que recibe proviene realmente del cliente.
Así pues , en la conexión entre un cliente y un servidor , según el standard SSL , se establece según una serie de fases , que van a ser descritas ahora:
-El cliente y el servidor se ponen en contacto , para establecer convenios acerca de los algoritmos a utilizar para la transmisión de información ( algoritmo de firma , algoritmo de clave privada, algoritmo de clave pública...). Normalmente ambos tenderán a elegir la tecnología más eficiente y la más segura. En el caso de que no puedan ponerse de acuerdo , la conexión finaliza.-En una segunda fase, se produce la autentificación del certificado del servidor. Para ello el servidor envía al cliente su certificado y el cliente comprueba la firma del certificado. Para ello le hará falta el certificado de la autoridad certificadora, para disponer de la clave pública de la autoridad certificadora y así poder comprobar la firma.
(foto)-En esta segunda fase , hemos comprobado que el certificado del servidor es correcto, pero no hemos comprobado realmente , que el servidor se encuentre al otro lado de la comunicación.Esto se realiza , en esta fase, y consiste en que el cliente le envía al servidor un reto. Un reto consiste en enviar una información cifrada y ver si el servidor es capaz de descifrarla. Como después, del reto se va a establecer el envío de información cifrada, para aprovechar dicha circunstancia, el reto consistirá en enviar la clave de sesión s cifrada con la clave pública del servidor. Si el servidor es realmente quien dice ser, podrá descifrar con su llave privada la llave de sesión y así poder descifrar toda la información que el cliente le envíe con s. El envío de s como reto nos permite, no tener que añadir una fase en la que el servidor le indica al cliente que ha podido descifrar el reto. Si el servidor puede descifrar la información que le llega del cliente , aseguraremos al cliente que al otro lado de la comunicación se encuentra realmente el servidor.
(foto)- La última fase, que es opcional en el standard SSL , consiste en realizar la autentificación del cliente. Para ello, el cliente le envía su certificado, el servidor lo valida, y con la clave pública del emisor el servidor envía un reto al cliente. Posteriormente el cliente le dira al servidor cual ha sido la información que ha descifrado.Indicar que a diferencia de la fase anterior todas las comunicaciones que se establecen entre cliente y servidor son confidenciales.
En las redes de computadores existen fundamentalmente cuatro tipos de amenazas.Para cada una de las amenazas introduciremos cuales son las contramedidas que se pueden emplear para reducir el riesgo de corrupción de la información que circula a través de la red:
-Escuchar-Sniffing: Esta amenaza consiste en la posibilidad de que un individuo C ,ajeno a un individuo A y a un individuo B, que establecen comunicaciones, intercepte y pueda observar la información que viaja a través de la red. Una forma, la más rudimentaria, de interceptar la información , consistiría en pinchar el medio físico e interpretar la información que viaja a través de dicho medio físico. No debemos olvidar, que el atacante a la hora de valorar su ataque, tendrá que ponderar cuales son las consecuencias (el coste) que va a implicar realizar dicho ataque. Pinchar medios fisicos es un acto que esta penado por la ley ,e involucra en muchos casos cumplas de condena. Eso reduce al máximo la efectividad de este ataque, solo será eficiente cuando la información a la que se accede disponga de mucho valor. Además no olvidemos, que con los protocolos criptográficos de envio de información segura ( SMIME, SSL,TLS) , la posibilidad de que el ataque de escuchar la información tenga éxito, va a ser prácticamente nulo. Una contramedida física , para detectar alteraciones del medio físico , consitiría en mantener el medio ( cables ) por donde viaja la información, al vacío a un determinado nivel de presión .En caso de que alguien pinchara dicho medio , la situación de vacío del medio cambiaría y sería detectada. Lógicamente dicha contramedida , no es ni mucho menos eficiente ya que implica un coste adicional muy elevado para evitar una amenaza que no va implicar una situación muy comprometida para nuestra información.
Debido a la forma de conexión en las redes locales ( LAN ) , en la que todos los ordenadores están conectados con todos, otra forma de sniffing , consistiría en que un individuo C, obtuviera los paquetes TCP/IP , que A y B se están enviando. Como existe un único camino para todos los sistemas , no resulta complicado interceptar las comunicaciones. Indicar que tanto el esquema de conexión clásico , como la conexión con dispositivos HUB o concentradores, son equivalentes y que vulneran esta posibilidad. A continuación , se intenta expresar con un dibujo com se llevaría a cabo dicho ataque sobre la información:
Así pues, si C quisiera realizar un ataque sniffing, únicamente debería captar los paquetes que se envían A y B, por el único canal de comunicación donde también se encuentra conectado C.
Una contramedida física para solucionar este problema , consiste en utilizar dispositivos físicos de red que nos permitan solucionar esta vulnerabilidad de las redes locales y de los HUB. Estos dispositivos reciben el nombre de SWITCH, y se encargan de que cuando A y B establecen comunicaciones , el camino por el que se envían los paquetes TCP/IP,sea común a ellos dos y no se accesible a otros usuarios. Para ello crean caminos virtuales distintos para cada uno de los emisores y para cada uno de los receptores. El siguiente gráfico ilustra la incorporación de uno de estas unidades lógicas a una red local:
En el dibujo 1 es el camino virtual entre A y B , 2 entre A y C , y 3 entre B y C. De esta forma si A y B necesitan establecer comunicaciones , el switch correspondiente se encargará de que los paquetes se envíen a través de 1, y que por lo tanto C no pueda hacer un sniffing de la información que ambos intercambian.
-Spoofing-Suplantación de identidad: Esta amenaza implica una violación de autenticidad de la información y consiste en que un individuo B se hace pasar por A en un determinado canal de comunicación. De esta forma , B podrá disponer de todos los privilegios de A sin ser A. La forma más común de realizar un spoofing , consite en averiguar la password de acceso a una determinada información. Así pues , al utilizar esta password estaremos identificandonos como el poseedor de dicha password sin serlo. Las contramedidas fundamentales que permiten evitar este tipo de amenzas son :
-En caso de que deseemos evitar spoofing en las comunicaciones , utilizaremos los protocolos criptográficos que nos permiten autentificarnos ante el resto de individuos.( certificados, firmas electónicas...).Indicar con respecto a esta amenaza que es más el receptor de la información, quien tiene que encargarse de establacer métodos para solucionar los problemas correspondientes.
-En caso de que hablemos de una identificación ante un servidor-computador, realizar una buena gestión con las passwords que nos permiten dichas identificaciones.-Hijacking-Suplantación de conexión. Se establece una conexión entre A y B con una autentificación previa de A y de B, y un tercer interlocutor suplanta a A o a B sin necesidad de autentificarse. Indicar que esta amenaza tendrá éxito si y solo si solo se produce una única autentificación de inicio de sesión entre A y B.Así pues como veremos a continuación la forma de evitar esta amenaza es la de realizar peridiocamente la autentificación entre A y B minimizando el tiempo en el que C suplanta a A o a B . Las dos contramedidas fundamentales ( ambas lógicas ) que nos van a permitir neutralizar este tipo de amenazas son :
-Además de producirse autentificación inicial, se establece una conversación cifrada entre A y B , mediante uno de los protocolos criptográficos de cifrado de estremo a extremo estudiados(SSL ,TLS), de tal forma que será considerablemente fácil , saber cuando un tercer interlocutor C suplanta a A o B. Si por ejemplo C suplanta a A, en el momento que B envía información a C cifrada , y C nos responde con información que no guarda relación alguna con lo enviado, nos daremos cuenta que C no está siendo capaz de descifrar la información que B le envía , detectando su incorporación no autorizada al canal de comunicación.-DOS:Denial of service.( Denegación de servicio). Consiste en atacar a la red de tal forma que los servicios que esta aporta dejan de estar disponibles. Se trata de la amenaza más problemática de entre todas las amenazas a las que se encuentran expuestas las redes exteriores ( como Internet ). Se encuentra altamente relacionado con la intrusión, que consiste en la entrada sin autorización a una determinda información para obervarla o realizar modificaciones.-Usando el protocolo PPP ( point to point protocol ) . Se trata del protocolo que empleamos habitualmente para la transmisión de información , y se caracteriza por emplear lo que se conoce como "autentificación chap", que consiste en no sólo realizar una autentificación inicial, sino en realizar una autentificación periódica (cada x segundos) , de los correspondientes emisores y receptores de información. La autentificación consiste en enviar retos y observar si el individuo que esta en el otro canal de comunicación es realmente quien dice ser, de tal forma que si alguno de estos retos fallan , nos indica que ha habido algun error , o que un tercer usuario a suplantado al usuario con el que estabamos estableciendo intercambio de información.Como consecuencia de ese fallo o de esa suplantación la conversación se corta.
Las causas fundamentales por las que se produce un DOS son principalmente dos:-Fallos del diseño del software o un mal mantenimiento de este.
-Mal diseño en la política de seguridad por parte del administrador.
La segunda de las causas es fácil de evitar revisando exhaustivamente cada uno de los puntos que establecen principios para establecer la politica de seguridad acerca del sistema correspondiente. Un posible ejemplo, nos lo encontramos por ejemplo en un servidor que bloquee el acceso a la información cuando se emplean varios intentos con password falsas. De esta forma, usuarios externos podrían bloquear la cuenta correspondiente, provocando un Denial of Service para el usuario poseedor de dicha cuenta.Los errores de software permiten abrir puertas en el sistema a los atacantes, que se encargarám de realizar una intrusión a la información. Los ataques a los fallos o bugs de software se conocen como nukes: su función va a consistir en que el sistema deje de funcionar(provocar DOS). Indicar con respecto a los nukes que no solo van orientados a las aplicaciones concretas sino que también existen nukes que atacan al sistema en general.
Como posibles ejemplos a fallos de sotware nos encontramos con un fallo del software de red del que disponía Linux. En este caso , el nuke , que generaba una paralización del sistema, enviaba paquetes TCP/IP con ciertas características. Este paquete, provocaba una paralización del sistema que lo recibía provocando una Denegación de servicio.
Otro ejemplo de nuke nos lo encontramos en lo que se conoce como STACK OVERFLOW. Este nuke , no provoca en sí una paralización del sistema sino más bien una intrusión a este. Este nuke consistía en añadir código dentro del bloque de activación de una subrutina fuente que se ejecuta con cierta frecuencia. El éxito de la introdución de este código consiste en que la dirección de retorno de la subrutina en la pila, se corresponde con el inicio del código que se va a encargar de realizar la intrusión(por ejemplo shell en modo root).La contramedida básica que se va a encargar de solucionar el problema del denial of service va a ser el mantenimiento del software. El problema es que existen redes en las que un control exhaustivo sobre el software implantado es en la práctica imposible.Piénsese en un edificio corporativo con un acceso no muy restringido , por ejemplo , el aulario de la universidad , que posee conexiones ethernet en todas sus dependencias.
Así pues la contramedida fundamental, para evitar DOS, va a consistir en establecer barreras entre dos puntos de red que transmiten información. Existen dos formas fundamentales:-Denegación de servicio ( PROXY ).El filtrado de paquetes se realiza empleando una red local ( LAN ) , conectada al exterior mediante un cortafuegos, router o computadora que filtra el tráfico de paquetes TCP/IP entre la red interna y el exterior.De tal forma que todos los paquetes que se envían al exterior pasan un control de filtrado en el cortafuegos, al igual que todos los paquetes que recibe la red local desde el exterior. El cortafuegos , analiza los paquetes TCP/IP , y en función de cuales sean sus características, ( a que puerto van dirigidos a nivel TCP y origen y destino a nivel Ip), permitirá el paso a la red interior de dichos paquetes o les denegará el acceso. En el caso de que el análisis sea negativo , y filtre el paquete , podrá realizar dos acciones:
-Filtrado de paquetes.-Discard: no se comunica nada el emisor del paquete, se desprecia como si la red local no estuviera operativa.
-Reget: Se devuelve una respuesta al emisor del paquete indicandole que no tiene permiso para introducirse en el interior de la red local.Existen fundamentalmente 3 tipos de filtrado, dependiendo de las caracteristicas de la máquina que se encargue de gestionar el control de los paquetes..Son los siguientes: ![]()
Gráfico que muestra la conexión correcta de una red local a un cortafuegos. Como se puede observar en el gráfico , este esquema de conexión implica que el cortafuegos disponga de dos tarjetas de red, una que se encargue de sus operaciones de E/S con la red externa ( internet ) y otra que se encargue de gestionar las correspondientes transacciones con la red local
-Forwarding: es el tipo de filtrado básico , y es el que se encarga de controlar la entrada y salida de paquetes desde o hacia el interior de la red local.El diseño de la política de filtrado del cortafuegos, puede realizarse según dos patrones fundamentales:-Input (Entradas): tanto dicho modo de filtrado como el posterior, son modos de filtrado que se emplean cuando el cortafuegos además de controlar los paquetes , ofrece una serie de servicios en la red. En ese caso , también le interesará tener un control de los paquetes para proteger a los usuarios y al sistema que implementa. Así pues, las reglas del tipo de filtrado Input , controlan el acceso de paquetes TCP/IP al interior del cortafuegos o no al interior de la red local.
-Output(Salidas)de forma análoga,, también interesa tener un control de los paquetes que salen desde el cortafuegos-servidor a internet. Las reglas del tipo Output, nos van a permitir gestionar dicho control.
-Políticas abiertas: Se permite el acceso a todos los paquetes y se denega el acceso a ciertos paquetes con ciertas caracteristicas.La primera de las politicas , será empleada para redes locales con muchos usuarios, y en la que no es necesario tener un control muy estricto sobre la información que entra y sale tanto a las redes locales como al propio cortafuegos. La segunda, se empleará para redes locales con un menor número de usuarios , y donde si que será necesario tener un control muy estricto sobre los paquetes que entran y salen a la red local o al cortafuegos. Por ultimo , indicar con respecto a los modos o tipos de filtrado, y con respecto al diseño de políticas de filtrado, que será necesario establecer para cada uno de los tipos de filtrado ( forwarding, input, output) politicas de seguridad (abiertas o cerradas) que más se adecuen a nuestras necesidades y que nos permitan reducir la probabilidad de que se produzcan ataques D.O.S o intrusiones con éxito a los sistemas que nos interesa proteger.
-Politicas cerradas: Se denega el acceso a todos los paquetes y se aceptan paquetes de ciertas caracteristicas.Como herramienta Standard para la configuración de firewalls disponemos de una aplicación llamada ipchains , que se ejecuta en entornos Unix altamente versatil, y que nos permite trabajar con los tres tipos fundamentales de filtrado de paquetes. Para usarla no tenemos nada más que abrir una consola , e introducir comandos en el intérprete de comandos correspondiente, mediante los cuales podremos establecer reglas acerca de lo que deseamos hacer con los paquetes que intentan penetrar en la red interior-firewall o salir de la misma hacia el exterior.. Algunas de las opciones fundamentales son:
- ipchains -F tipo_de_filtrado : comando que nos permite eliminar-vaciar todas las reglas establecidas hasta el momento, en el tipo de filtrado correspondiente.
- ipchains -P tipo_de_filtrado : comando que nos va a permitir establecer una politica , con el tipo de filtrado especificado en el comando.Para especificar si se trata de una politica por defecto de aceptar o una politica por defecto de rechazar , se emplea el comando -j seguido de la palabra ACCEPT, o DENAY respectivamente.
- ipchains -p protocolo: permite establecer sobre que identificador de puerto se van a aplicar las reglas, especificadas en la linea que lo contiene.
- ipchains -s dirección/es_ip: para especificar las ips origen sobre las que se van aplicar las reglas correspondientes.Si se quiere especificar un conjunto o rango de ips, para no tener que especificar todas una a a una , se puede emplear "/n" despues del identificador , donde n es el numero de bits de la ip a los cuales se deseará hacer caso. Si se quieren especificar todas las direcciones se empleará 0/0 en el campo de la ip.
- ipchains -d dirección/es_ip: para especificar las ips destino sobre las que se van a aplicar las reglas correspondientes.
- ipchains -Y : para que se permita entrar o salir aquello paquetes que son respuesta a un envío anterior.Así pues, si por ejemplo quisieramos configurar una red local que dispone de ip's en el rango 192.168.49.x, conectada a un cortafuegos, con las siguientes características o reglas:
1. Vaciar las reglas del cortafuegos.Bastaría con editar un código-script para el intérprete de comandos que dispusiera de las siguientes directivas ipchains :
2. Establecer políticas por defecto de denegar.
3. Autorizar el acceso exterior al puerto 23 del cortafuegos.ipchains -F input #vaciamos reglas para los tres tipos de filtrado
ipchains -F output
ipchains -F forward
ipchains -P input DENY #establecemos politicas de denegar por defecto para los tres tipos de filtrado
ipchains -P output DENY
ipchains -P forward DENY #fin de establecimiento de políticas para el cortafuegos
ipchains -A input -p TCP -s 0/0 -d 192.168.49.0 / 24 23 -j ACCEPT #permitimos la entrada aquellos paquetes que se introducen por el puerto 23
ipchains -A output -p TCP -s 192.168.49.0/24 23 -d 0/0 -Y ACCEPT #permitimos la salida de respuestas a los paquetes que han entrado , ya que utilizamos una politica por defecto de denegar