teora-filtrado-3: (0.01)
	Nociones de filtrado de paquetes (III) -Estrategias de filtrado-


Cambios:
0.02 5.11.00 +Hacer ver que nuestros puertos UDP estn cerrados



Resumen de contenido:
--------------------
Estrategias de filtrado
  Principios generales
    No confiar ciegamente en el cortafuegos
    Redundancia
    Prohibir por defecto, solo permitir el trfico conocido
    IP esttica / IP dinmica
  Estrategias
    Ser invisible (o al menos todo lo posible)
    Camuflaje
      Limitar nuestros servicios a nuestros interfaces locales
      Hacer ver que nuestros puertos UDP estn cerrados
      Tcnicas de cambio de "fingerprint" (no lo he probado)
  Puntos importantes
    Aplicar reglas "de Internet" a todos los interfaces no definidos antes
    Manipular el campo TOS IP para cambiar la prioridad de los paquetes
    Las reglas se pueden usar como contadores de paquetes/bytes
    Forwarding activo para enmascarar IP
    No retransmitir enmascarando para todo el mundo
    Impedir conexiones iniciadas desde Internet hacia nosotros
    Cerrar los puertos TCP abiertos expresamente adems de con SYN
    Restringir UDP solamente a nuestros servidores cuando sea posible
    Prohibir los fragmentos IP
    Cerrar/no abrir el puerto "cero"
    Cerrar/no abrir los puertos 1-1023
    MAS INFO




Estrategias de filtrado

  Principios generales

    No confiar ciegamente en el cortafuegos

	El cortafuegos debe ser una proteccin adicional y no la nica,
	asegura tu sistema todo lo que puedas


    Redundancia

	Es mejor prohibir lo mismo de varias formas, que confiar solo en una


    Prohibir por defecto, solo permitir el trfico conocido

	La poltica ms segura es DENY/DROP


    IP esttica / IP dinmica

	Si cada vez que nos conectamos a Internet tenemos una IP diferente
	le estamos "complicando la vida" a alguien que nos quiera "seguir la
	pista"


  Estrategias

    Ser invisible (o al menos todo lo posible)

	Si no eres visible no se sabe que estas y no eres atacado. Esta
	estrategia implica no dar ningn servicio a Internet, y funciona
	mejor si tienes una IP variable

	- No contestar nada (PING, etc...)
	- Usar DENY/DROP para ignorar silenciosamente todo intento de conexin,
	 esto hace muchsimo mas lento el escaneo de puertos y dems tests de
	 vulnerabilidades ya que obliga a esperar un TIMEOUT para cada puerto


    Camuflaje

	En lugar de hacernos invisibles podemos hacernos pasar por clientes
	sin servicios, o incluso hacernos pasar por otro Sistema Operativo


      Limitar nuestros servicios a nuestros interfaces locales

	De esta forma no son visibles en Internet, parece efectivamente que no
	tenemos servicios

      Hacer ver que nuestros puertos UDP estn cerrados

	Podemos hacer un REJECT a los intentos de acceso a puertos UDP cuando
	intentan ser accedidos por IPs no permitidas
	Esto devuelve un ICMP port unreachable igual que un intento de conexin
	si no hay servicio y da la impresin de puerto cerrado/sin servicio

      Tcnicas de cambio de "fingerprint" (no lo he probado)

	Cada Sistema Operativo puede caracterizarse por algunos valores o
	rangos de valores en algunos campos de las cabeceras IP, TCP, UDP e
	ICMP

	Podemos "hacernos pasar" por otro Sistema Operativo jugando con esto,
	esto es hacking avanzado

	Mira http://www.enteract.com/~lspitz/finger.html


  Puntos importantes

    Aplicar reglas "de Internet" a todos los interfaces no definidos antes

	No especificar el interface hace que las reglas se apliquen a todos los
	interfaces no especificados previamente (ppp0, ppp1, eth1, ...)


    Manipular el campo TOS IP para cambiar la prioridad de los paquetes

	Es buena idea dar ms prioridad a HTTP y menos al FTP para que la
	descarga masiva no afecte (o afecte poco) a la navegacin


    Las reglas se pueden usar como contadores de paquetes/bytes

	Las reglas pueden usarse como contadores, se pueden contar los intento
	de conexin pero sin saber quien (que IP), as no necesitamos el log
	de paquetes


    Forwarding activo para enmascarar IP

	En ipfwadm e ipchains hay que activar el forwarding para que el
	enmascaramiento de IP funcione


    No retransmitir enmascarando para todo el mundo

	Enmascara solamente paquetes de tu red interna

	Alguien puede querer utilizarnos como retransmisor enmascarando su
	identidad IP (tunneling) con nuestro masquerade

	Es un error comn activar el enmascaramiento de paquetes para permitir
	a todos los PC de una red interna acceder a Internet sin impedir que
	lo aprovechen desde fuera para obtener anonimato


    Impedir conexiones iniciadas desde Internet hacia nosotros

	En los kernel 2.0 y 2.2 se puede prohibir toda conexin TCP a nuestro
	sistema desde Internet permitindonos a conectar nosotros y recibir las
	respuestas, esto puede hacer de dos formas:
	
	a) prohibiendo expresamente la entrada de paquetes SYN desde los
	 interfaces de Internet

	b) permitiendo solo entradas "NO-SYN" (ACK, ! SYN) desde Internet


	En los kernel 2.3-2.4 (gracias a iptables) aparece la nocin de control
	de conexin, con lo que parece que se podr impedir conexiones no
	iniciadas por nosotros con UDP	(al fin... :-)


    Cerrar los puertos TCP abiertos expresamente adems de con SYN

	El prohibir los paquetes SYN de entrada desde los interfaces de
	Internet no impide que nos puedan enviar paquetes "NO-SYN"

	Cierra expresamente todo puerto abierto que no puedas restringir a tus
	interfaces locales adems de prohibir los paquetes SYN de entrada desde
	Internet


    Restringir UDP solamente a nuestros servidores cuando sea posible

	Como con el kernel 2.2 no podemos impedir las conexiones UDP iniciadas
	desde Internet tenemos que hacer algo para limitar el acceso a los
	puertos UDP de nuestro sistema

	Restringe el acceso UDP de cada servicio para que solamente ciertas
	IP puedan comunicarse con nosotros

	El ejemplo ms evidente es bind (y su largo historial de fallos de
	seguridad) y los servidores DNS


    Prohibir los fragmentos IP

	Acuerdate de configurar el kernel para desfragmentar los paquetes
	y prohibe los fragmentos, para evitar ataques con "fragmentos IP"


    Cerrar/no abrir el puerto "cero"

	Parece que se puede emplear para determinar el Sistema Operativo


    Cerrar/no abrir los puertos 1-1023

	Puede ser til cerrar/no abrir los puertos privilegiados del 1-1023,
	esto protege muchos de los servicios locales


    MAS INFO

	FAQ: Firewalls: What am I seeing? (en ingls, me parece muy bueno)

	http://www.robertgraham.com/pubs/firewall-seen.html
	- Explicaciones de todo lo que puedes ver en los log del cortafuegos, y
	 el porque, con explicaciones claras y concisas.
	- Tambin explica los puertos escaneados con frecuencia, el uso de los
	 paquetes ICMP... , que es "source routed", como funcionan traceroute y
	 sscan...
			   

