jueves, 27 de marzo de 2008

Ejercicio Squid

Tenemos el siguiente ejercicio a realizar implementando Squid:

Ejercicio

Poli­ticas de seguridad

Restringir el uso de Internet

1. Crear listas negras (archivos) para bloquear los siguientes contenidos.

Porno ---> para cada categori­a se debe crear una lista negra. Cada archivo tendra
Chat al menos dos registros
Correos
Deportes
Descargas
Juegos

2. Bloquear a todos los usuarios en la red la negacion de los usuarios en las listas negras.
3. Bloquear a todos los usuarios las descargas y reproduccion de archivos .exe .mp3 .mpg .wav .iso .zip .rar.
4. La negacion debe restringirse a horarios locales de lunes a viernes de 8 a 12 am y de 1 a 4:30 pm.
5. Existe un usuario sin ninguna sin ninguna restriccion 10.3.6.208.
6. Los usuarios de la red pueden acceder a paginas de correo gratuito y chat solamente solamente en el horario del almuerzo --> 12:00-13:00.
7. Configurar su maquina para que trabaje como proxy-transparente.

Solucion

Este es el archivo de configuracion final de este ejercicio:

http_port 10.3.6.216:3128 transparent
icp_port 0
cache_mem 32 MB
cache_dir ufs /var/spool/squid 800 16 256
cache_peer proxylan.sena.edu.co parent 8080 0 default
acl usuario src 10.3.6.248
acl manana time MTWHF 8:00-12:00
acl almuerzo time MTWHF 12:00-13:00
acl tarde time MTWHF 13:00-16:30
acl chat dstdomain "/etc/squid/acl/chat_correo.acl"
acl paginasporno dstdomain "/etc/squid/acl/paginasporno.acl"
acl porno url_regex "/etc/squid/acl/porno.acl"
acl formatos urlpath_regex "/etc/squid/acl/formatos.acl"
acl deportes url_regex "/etc/squid/acl/deportes.acl"
acl descargas url_regex "/etc/squid/acl/descargas.acl"
acl juegos url_regex "/etc/squid/acl/juegos.acl"
acl all src 0.0.0.0/0.0.0.0
acl mired src 10.3.6.128/255.255.255.128

visible_hostname localhost
http_access deny paginasporno
http_access deny porno
http_access deny descargas
http_access deny formatos
http_access deny juegos
http_access deny deportes
http_access allow mired almuerzo chat
http_access deny chat
http_access allow usuario
http_access allow manana
http_access allow tarde
http_access allow mired
http_access deny all

#Para que el proxy sea transparente hay que agregar la siguiente regla de iptables

#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
#REDIRECT --to-port 3128

Examinemos las lineas

http_port es el parametro donde debemos indicar por que puerto va a escuchar el servidor Proxy (Squid), es posible poner solo el numero del puerto o tambien la direccion IP y el numero del puerto (como es nuestro caso) cuando el equipo utiliza dos interfaces de red.

icp_port, en este parametro debemos especificar el puerto que va a utilizar el protocolo ICP (Internet Cache Protocol) que es el protocolo por el cual se comunican los proxies hermanos poara intercambiar sus caches.

cache_mem, este parámetro establece la cantidad de memoria principal para lo siguiente:

● Objetos en tránsito.
● Objetos Hot.
● Objetos negativamente almacenados en el caché.

cache_dir es el parametro que especifica el tama;o de la cache en el disco duro.

cache_peer se utiliza para decirle al proxy que hay otro servidor proxy en la misma red.

Las acl's especifican las redes, maquinas en particular, acciones o caracteristicas.

http_access, estas son las reglas de control de acceso que permiten o deniegan el acceso a Squid de el trafico especificado en las listas de control de acceso. (A cada acl se le debe asignar una regla de control de acceso).



viernes, 14 de marzo de 2008

Squid

Squid

El SQUID, es un programa que sirve de proxy-caché para una red local. Cuando un usuario accede a una página, ésta se almacena en el disco duro de dicho proxy. La siguiente vez que un usuario intente acceder a la misma página, el proxy la buscará en su caché de disco; si la encuentra, la entregará
directamente, accediendo a Internet sólo en el caso de que dicha página no residiera en su caché. Esto acelera la navegación con Internet y nos permite aplicar políticas de seguridad como impedir acceder a todos lo usuarios a ciertas páginas, impedir el acceso total a determinados usuarios en determinadas horas, etc, pues, en principio, el proxy también actuará como gateway de nuestra LAN hacia Internet.

Entre otras cosas, SQUID puede actuar de proxy y de caché con los protocolos HTTP, FTP, GOPHER y WAIS, proxy de SSL, caché transparente, WWCP, aceleración HTTP, caché de consultas DNS y otras muchas más como filtración de contenido y control de acceso por IP y por usuario.

miércoles, 12 de marzo de 2008

Ejercicio Fwbuilder

Tuvimos que realizar un ejercicio con Fwbuilder que consistia en lo siguiente:



Las interfaces conectadas al firewall son las siguientes:
WAN: eth0--- Direccion IP 200.13.247.253/29
LAN: eth1---- Direccion IP 10.0.10.1/24
DMZ: eth2--- Direccion IP 10.0.20.1/24

Estos son los puntos a resolver:

  • Lo que no esta explicitamente autorizado esta denegado.
  • Los usuarios en la red LAN podran ingresar a servicios Web y FTP en la red publica.
  • Los usuarios de la LAN podran ingresar a todos los servicios en la DMZ.
  • No esta autorizado el trafico "nuevo" o "que se inicia" desde la DMZ hacia la LAN.
  • Se publicaran los servicios FTP y Web de la DMZ.
  • Solo el servidor DNS podra hacer consultas DNS desde las redes locales hacia la WAN (INET).
Parece dificil verdad????

Pues la verdad no lo es tanto simplemente hay que pensar un poco... Veamos

En el primer punto simplemente nos hablan de la politica por defecto que debe estar en DENY, de esta forma todo lo que no se autorize en reglas explicitas se denegara.



Ahora veamos las politicas creadas para la interfaz Wan del firewall:

En estas estamos definiendo que solo el servidor DNS de la LAN puede hacer peticiones DNS a las redes externas; y en la segunda regla le estamos dicienso que acepte todo el trafico FTP y HTTP proveniente de la LAN.

Veamos las reglas definidas en la interfaz LAN del firewall:

En esta solo definimos la regla para que no acepte conexiones nuevas provenientes de la DMZ, esto se hace por que un atacante puede utilizar uno de los servidores de la DMZ y desde alli ingresar a la LAN. En el firewall por defecto esta definido que acepte conexiones establecidas entonces no va a haber problema con las conexiones iniciadas desde la LAN hacia la DMZ por que el firewall aceptara las respuestas de la DMZ a las peticiones generadas desde la LAN.

Estas son las reglas creadas a la interfaz DMZ del firewall:

En la primer regla definida aqui se acepta cualquier conexion proveniente de la LAN y en la segunda que acepte conexiones FTP y HTTP provenientes de cualquier red hacia el servidor FTP y HTTP.

Configuracion de NAT

Aqui vemos en la primera regla que todas las conexiones que vayan de la LAN a Internet traduzaca la direccion a la de la interfaz eth0 la cual tiene una direccion IP publica. En la seguna definimos que a las peticiones FTP y HTTP provenientes de cualquier red se les traduzaca la direccion destino a la del servidor FTP y HTTP.

Al terminar esto compilamos y ejecutamos el script generado por Fwbuilder.

jueves, 6 de marzo de 2008

Fwbuilder


La aplicacion Fwbuilder es un gui para Iptables mediante el cual se generan las reglas en un entorno mas amigable y de una manera mas facil.
Para instalar la aplicacion desde un repositorio es tan sencillo como esto:
#apt-get install fwbuilder (En una plataforma Unix); o para instalarlo en Windows simplemente descargan el archivo ejecutable aqui.
Me imagino que se preguntaran ¿si Iptables es el firewall de Unix por que Fwbuilder se puede instalar en Windows?, la respuesta a esta pregunta es que Fwbuilder cuenta con una opcion que envia las reglas creadas a un equipo remoto mediante SSH.
Para crear las reglas en este programa es necesario conocer muy bien las caracteristicas de la red o redes en las que se va a aplicar el firewall (interfaces, servicios que corren en cada equipo, etc...), esto se puede conocer mediante SNMP o se pueden ingresar los valores manualmente.
Cuando ya las reglas estan creadas hay que compilarlas, Fwbuilder las compila en un script de Bash que se crea en el mismo directorio donde se creo todo el proyecto.
Mas adelante publicare ejercicios realizados con Fwbuilder y algunos ejemplos de scripts creados por la aplicacion.


Pagina oficial de la aplicacion:
http://www.fwbuilder.org

miércoles, 5 de marzo de 2008

Iptables

Qué es iptables?

iptables es un conjunto de herramientas (comandos) que le permiten al usuario enviar mensajes al kernel del s.o.. El kernel tiene todo el manejo de paquetes TCP/IP metido dentro de él, no es algo aparte como lo es en otros sistemas operativos, por lo tanto todos los paquetes que van destinados a un Linux o lo atraviesan son manejados por el mismo kernel. Esto tiene sus ventajas y desventajas,

Entonces, iptables es una forma de indicarle al kernel algunas cosas que debe hacer con cada paquete, esto se hace en base a las características de un paquete en particular. Los paquetes de red tienen muchas características, algunas pueden ser los valores que tienen en sus encabezados (a donde se dirigen, de donde vienen, números de puertos, etc., etc.), otra puede ser el contenido de dicho paquete (la parte de datos), y existen otras características que no tienen que ver con un paquete en particular sino con una sumatoria de ellos. La idea es lograr identificar un paquete y hacer algo con el mismo.

Por lo tanto, siguiendo con el arduo trabajo de llegar a una definición de lo que es iptables, podríamos decir que ``iptables es un conjunto de comandos que permiten decirle al kernel qué hacer con ciertos paquetes que cumplan con ciertas características''.

Ahora bien, las acciones que podemos indicar con iptables no son tan amplias, con iptables vamos a poder decirle al kernel que acepte un paquete (lo deje pasar), lo deniegue (lo descarte), lo rechace, lo marque o lo modifique. Hay ciertas cosas que no vamos a poder indicarle, por ejemplo que lo ``reenvie'' por alguna ruta estática TCP/IP definida. Con lo cual, con iptables vamos a poder filtrar o modificar paquetes, nada más.

Seguridad Perimetral

Cuando hablamos de seguridad perimetral, nos estamos refiriendo a asegurar la frontera entre
nuestra red interna y el resto de Internet. El objetivo es restringir o controlar qué datos entran a nuestra
organización o salen de ella. La principal ventaja de este tipo de seguridad es que permite al
administrador concentrarse en los puntos de entrada. No es necesario, por tanto, que se preocupe de
todos y cada uno de los sistemas del interior.
Su principal inconveniente es que da una falsa sensación de seguridad total y conduce, a menudo, a
descuidar otros aspectos que también son importantes.
El ejemplo más destacable de seguridad perimetral lo constituyen los cortafuegos. Aunque los hay
de muchos tipos, básicamente lo que hacen es un filtrado de paquetes y/o contenidos.

¿Por que Iceweasel y no Mozilla en Debian?



Debido a una demanda de mozilla hacia la comunidad de debian la cual exigia que se acogieran a sus terminos y condiciones (inaceptables para las politicas de la comunidad) o cambiaran el nombre de este producto de Mozilla Firefox por Icewasel y Thunderbird por Icedove (hielo no es fuego y comadreja no es zorro) de esta forma se eliminaron los elementos NO LIBRES de firefox "logos, nombres y otras cosas".

por eso firefox en debian se llama iceweasel.