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
Protocolos de capa 2 que ebtables es capaz de filtrar:
ebtables analiza la trama ethernet para posteriormente aplicar las reglas que hayamos configurado previamente. Para esto debemos saber que protocolos reconoce y por tanto saber que reglas podemos aplicar (esta información la podemos encontrar en /etc/ethertypes):
PROCOLO Nº HEX. ALIAS DESCRIPCION
IPv4 0800 ip ip4 # Internet IP (IPv4)
X25 0805
ARP 0806 ether-arp #
FR_ARP 0808 # Frame Relay ARP [RFC1701]
BPQ 08FF # G8BPQ AX.25 Ethernet Packet
DEC 6000 # DEC Assigned proto
DNA_DL 6001 # DEC DNA Dump/Load
DNA_RC 6002 # DEC DNA Remote Console
DNA_RT 6003 # DEC DNA Routing
LAT 6004 # DEC LAT
DIAG 6005 # DEC Diagnostics
CUST 6006 # DEC Customer use
SCA 6007 # DEC Systems Comms Arch
TEB 6558 # Trans Ether Bridging [RFC1701]
RAW_FR 6559 # Raw Frame Relay [RFC1701]
AARP 80F3 # Appletalk AARP
ATALK 809B # Appletalk
802_1Q 8100 8021q 1q 802.1q dot1q # 802.1Q Virtual LAN tagged frame
IPX 8137 # Novell IPX
NetBEUI 8191 # NetBEUI
IPv6 86DD ip6 # IP version 6
PPP 880B # PPP
ATMMPOA 884C # MultiProtocol over ATM
PPP_DISC 8863 # PPPoE discovery messages
PPP_SES 8864 # PPPoE session messages
ATMFATE 8884 # Frame-based ATM Transport over Ethernet
LOOP 9000 loopback # loop proto
Funcionamiento de ebtables
Antes de explicar como funciona ebtables hay que tener muy en cuenta que esta herramienta funciona a nivel de Capa 2, para esto debemos conocer "Modelo OSI" o modelo de interconexión de sistemas abiertos.
Primeramente debemos conocer que hace un packete destinado a una computadora local, el cual atraviesa un PC (en este caso):
Como podemos ver, el trafico puede ser enrutado mediante "Routing" o bien mediante "bridging". En el gráfico podemos ver que la trama tiene una dirección de origen (SRC), dirección de destino (DST) y el campo que define el tipo de trama.
A continuación podemos ver un gráfico de como trabaja
Como podemos observar en la grafica, una vez que la trama entra el equipo , ebtables usa 3 tablas para manejar esa trama y enrutarla por otra interface, descartarla o pasarla a un protocolo de capa superior y ser enrutada. Las 3 tablas son:
* La tabla BROUTE que tiene las reglas BROUTING.
* La tabla FILTER, que tiene las reglas FORWARD, INPUT y OUTPUT.
* La tabla NAT, que tiene las reglas PREROUTING, OUTPUT y POSTROUTING.
Iptables y ebtables:
Si vamos a trabajar con ebtables y con iptables al mismo tiempo debemos saber que las decisiones de routing son tomadas antes que las decisiones de IPTABLES. Es decir, si tenemos configurado alguna regla iptables nat OUTPUT, esta estará situada después de la decisión de Routing, por tanto no podremos enrutar trafico usando iptables si ya tenemos configurado ebtables para hacer bridgin.
Imaginemos que queremos proteger una lan de los ataques típicos de capa 2 explicados anteriormente mediante el uso de ebtables. Para esto debemos seguir los siguientes pasos:
Instalar las herramientas adecuadas de bridgin que enviaran el trafico de ebtables a iptables:
apt-get install bridge-utils
Ahora debemos configurar una interface bridge y relacionarla con las interfaces fisicas como eth0 y eth1:brctl addbr br0
brctl addif br0 eth0
A continuación tenemos que dejar sin ip la interface que esté conectada al router ADSL, en mi caso la eth0. ifconfig eth0 0.0.0.0
Y ahora asignamos la ip que teníamos en la interface eth0 a la interface br0, además debemos añadir la ruta para decirle cual es la ip default gateway , es decir la ip del router ADSL: ifconfig br0 192.168.1.2 netmask 255.255.255.0 up
route add default gw 192.168.1.1 dev br0
Si usáis MASQUERADE en IPTABLES debéis modificar la interface de salida, es decir, debéis poner algo como esto: /sbin/iptables -t nat -I POSTROUTING -s 192.168.0.1/24 -o br0 -j MASQUERADE
Ahora vamos a configurar la LAN, seria exactamente igual:
Fuente: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
http://wiki.freaks-unidos.net/debian-bridge-es#introducci-n
brctl addbr br1
brctl addif br1 eth1
ifconfig eth1 0.0.0.0
ifconfig br1 192.168.0.2 netmask 255.255.255.0 up
Con esto ya estaría todo para poder configurar nuestro firewall iptables y ebtables para filtrar paquetes y tramas. Fuente: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
http://wiki.freaks-unidos.net/debian-bridge-es#introducci-n
No hay comentarios:
Publicar un comentario