La idea del bridge es que funcione bajo nivel dos (enlace), analice el
encabezado, y sepa donde enviarlo, osea necesitas la resolucion de las
direcciones de internet a la red local (arp)

Hola Felipe.

Tienes razón, pero para que eso pase se usa la tabla ARP del
kernel, y no es necesario que el kernel desarme los paquetes
para que lleguen a ser procesados en la capa de IP.

# arp -an
? (192.168.1.1) at 02:00:F5:41:EB:91 [ether] on eth0
? (192.168.10.214) at 00:07:95:32:DB:C2 [ether] on eth2
? (192.168.10.216) at 00:E0:4C:8F:11:EC [ether] on eth2
? (192.168.10.229) at 00:03:CE:88:C8:73 [ether] on eth2
? (192.168.10.222) at 00:13:8F:1A:EB:80 [ether] on eth2
? (192.168.10.205) at 00:16:76:0B:1B:0A [ether] on eth2


Con esta tabla, ya el kernel tiene información suficiente para
enviar los paquetes a donde toque. Cuando el kernel recibe un
arp request (digamos en eth0) y no tiene la ARP en su tabla, entonces
el bridge debe re-transmitir ese request a las otras interfaces.

Ahora lo que seria bueno es que yo vea como me funciona mi dmz y toda la red
sin el proxy_arp (cosa que desgraciadamente no puedo hacer ya q son
servidores de produccion, pero yo creo q el sabado en la madrugada lo hare )
y asi podriamos intercambiar nuestras "experiencias de trafico". Vi tu wiki y

Ah, veo. Trata de hacer funcionar primero el bridge, sin snort-inline.
Consulté con un amigo y también piensa que no es necesario activar
ip_forward ni proxy arp para tener un bridge.

Si lo que tienes es un brouter, en ese caso si toca hacerlo
(por lo menos poner ip_forward). No tengo como hacer pruebas
ahora para probar las combinaciones.

mira habiamos pensado hacerlo con ebtables pero al final nos decidimos por
snort-inline+iptables para un mejor control de la dmz
aca te mando partes del script de iptables

iptables -F
modprobe ip_queue

iptables -P FORWARD DROP
iptables -A FORWARD -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -m state --state
INVAL ID -j DROP

Por lo que veo, toca usr iptables para usar ip_queue, ¿no? No sé
si eso se pueda con ebtables, supongo que no, pero no estoy seguro.

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j QUEUE

Creo que esto no se puede hacer en ebtables.

iptables -A FORWARD -p tcp -s 0/0 -d IP_SERVER --dport 1:65301 -j DROP

Esta regla también la podrías hacer con ebtables, usando
--ip-destination-port

Leyendo ebtables vi algo interesante que te puede servir, y es la tabla
broute. Si uno hace un DROP a un paquete en esa tabla, el paquete
es enrutado, lo que quiere decir que lo puedes procesar con iptables.
Si uno le da ACCEPT a un paquete acá, entonces es puenteado (bridged).
Creo que puedes usar eso.

Y tienes razón en cuanto al interfaces(5), tal vez valga la pena
poner algo como (esto no está probado, me lo recomendó un amigo):

  iface br0 inet manual
          pre-up brctl addbr br0
          pre-up brctl addif br0 eth0
          pre-up brctl addif br0 eth1
          pre-up brctl addif br0 eth2
          pre-up ifconfig eth0 up
          pre-up ifconfig eth1 up
          pre-up ifconfig eth2 up
          up ifconfig br0 up
          up ifconfig br0 192.168.1.2
          down ifconfig br0 down
          post-down ifconfig eth0 down
          post-down ifconfig eth1 down
          post-down ifconfig eth2 down
          post-down brctl delif br0 eth0
          post-down brctl delif br0 eth1
          post-down brctl delif br0 eth2
          post-down brctl delbr br0

Cordialmente,
Nelson.-

--
http://arhuaco.org
http://emQbit.com

Responder a