lunes, 16 de mayo de 2011

Ebtables, herramienta de filtrado capa 2. [Parte 2]

Una vez que ya tenemos instalado, configurado y corriendo ebtables e iptables, vamos a configurar ebtables y analizar los resultados:

Un ejemplo de configuración ebtables sería:

# Permitimos frames desde equipos con una <MAC_ORIGEN> desde la interface br0 o br1, según queramos permitirlo desde la lan o desde la wan.
ebtables -t filter -A INPUT --logical-in br0 -s <MAC_ORIGEN> -j ACCEPT
ebtables -t filter -A INPUT --logical-in br1 -s
<MAC_ORIGEN> -j ACCEPT 
#Evitamos frames que no tengan como origen una <MAC_ORIGEN>. Puedes ser la mac del Router ADSL y así evitar el ARPSPOOF.
ebtables -t filter -A INPUT -s ! <MAC_ORIGEN> -j DROP
# Resto de reglas
ebtables -t filter -A INPUT -p IPv4 -j ACCEPT
ebtables -t filter -A INPUT -p ARP -j LOG
ebtables -t filter -A INPUT -p ARP -j ACCEPT
ebtables -t filter -A INPUT -p Length -j ACCEPT
ebtables -t filter -A INPUT --log-level info --log-prefix "EBFW" --log-ip

# Drop el resto. 
ebtables -t filter -A INPUT -j DROP

Si queremos evitar el arp spoofing :

ebtables -t filter -A INPUT -p IPv4 --ip-src 192.168.1.1 -s ! 00:11:22:33:44:55 -j DROP

Ahora ¿como vemos los frames que están pasando por las diferentes reglas?

# ebtables -t filter -L --Lc
Al ejecutar el comando nos dará una salida como esta.
Bridge table: filter 

Bridge chain: INPUT, entries: 5, policy: ACCEPT 
-p IPv4 -j ACCEPT , pcnt = 2531 -- bcnt = 457577
-p ARP -j ACCEPT , pcnt = 9 -- bcnt = 414 
-p Length -j ACCEPT , pcnt = 0 -- bcnt = 0 
--log-level info --log-prefix "EBFW" --log-ip -j CONTINUE , pcnt = 0 -- bcnt = 0 
-j DROP , pcnt = 0 -- bcnt = 0  


Bridge chain: FORWARD, entrie: 1, policy: DROP 
-j ACCEPT , pcnt = 0 -- bcnt = 0  


Bridge chain: OUTPUT, entries: 1, policy: ACCEPT 
-j ACCEPT , pcnt = 2107 -- bcnt = 287193


Como podemos observar hay dos contadores, pcnt y bcnt:

pcnt muestra, normalmente, el numero de tramas que pasan por la regla 
mientras que bcnt muestra el numero de bytes que pasan por esa regla.

domingo, 15 de mayo de 2011

Ebtables, herramienta de filtrado de capa 2. [Parte 1]

Ebtables es una herramienta utilizado para filtrar trafico en sistemas usados como "Bridge". Esta herramienta, a diferencia de iptables, tiene ciertas cualidades que la hacen una herramienta idónea para filtrar trafico en sistemas puentes.
Por ejemplo si disponemos de un PC Linux el cual queremos transformarlo en un bridge , esta herramienta nos permitirá filtrar el trafico que atraviese dicho bridge.
Si queremos saber como crear un bridge usando un PC y una distro Linux como debian, podemos ir aqui. Dicha web nos explicará de una forma sencilla como crear un bridge.


Características:

* Uso similar a iptables pero menos complicado.
* Filtrado Ethernet, (Inspecciona las tramas Ethernet para ,posteriormente, poder descartar o permitir dichas tramas)
* Capacidad de enrutar trafico utilizando como fuente de información , únicamente, la dirección MAC de origen y destino.
* Capacidad de filtrar o enrutar trafico basado en direcciones Unicast, Multicast, Broadcast or BGA (Bridge Group Address).

¿De que nos protege EBTABLES?

Ebtables es capaz de protegernos de los siguientes ataques (con algún ejemplo): 

* Ataques basados en MAC y ARP
  • ARP Spoofing
* Ataques basados en VLAN
  • VLAN Hopping Attack.
* Ataques basados en STP