Crear un filtro de firewall JunOS basado en propiedades de enrutamiento dinámico

7

Uno de mis clientes de tránsito de BGP me ha pedido una solución para que le resulte más fácil bloquear el tráfico dentro de nuestra red cuando sufre ataques DDoS. Por lo general, el ennegrecimiento de BGP se realiza al ennegrecer el objetivo , sin embargo, mi cliente está buscando una solución para el agujero negro basado en la dirección de origen para que el objetivo del ataque no se desconecte.

Construir una solución de agujero negro basada en la dirección del objetivo no es tan difícil: solo haga que el cliente anuncie el objetivo como una ruta más específica a través de una sesión BGP separada o haga que lo etiquete con una comunidad específica, luego use una política de enrutamiento para establecer el siguiente salto a alguna interfaz de descarte.

La construcción de una solución de agujero negro donde las fuentes del ataque (que no están dentro del espacio IP del cliente) están bloqueadas parece ser un poco más difícil. Si usara la misma solución que para filtrar destinos, mi problema es que solo quiero descartar el tráfico de fuentes específicas hacia este cliente específico, por lo que insertar rutas de descarte en mi tabla de enrutamiento ya no es aceptable ya que afectaría a otros clientes como bien. Así que necesito alguna forma de crear un filtro que solo se aplique a este cliente específico.

La primera solución en la que estaba pensando era usar BGPFlowspec. Desafortunadamente, esto no funcionará para este cliente específico ya que su equipo no lo admite.

Entonces, lo que he estado buscando es una forma de crear un filtro de firewall dinámico basado en alguna propiedad de enrutamiento, muy probablemente una comunidad establecida por nuestro cliente o por nosotros cuando recibimos una ruta específica a través de una sesión de agujero negro BGP dedicada. Este filtro se puede aplicar en las interfaces del cliente para bloquear el tráfico no deseado. Desafortunadamente, no he encontrado una manera fácil de crear un filtro de firewall (o lista de prefijos) de esta manera.

Encontré http://thomas.mangin.com/posts/bgp-firewall.html , que 'usa mal' la SCU / DCU para lograr más o menos lo que estoy buscando, pero suena como un truco .

Una de las otras soluciones que puedo pensar es crear un filtro estático en nuestras rutas y crear una interfaz que permita a nuestro cliente modificar la lista de prefijos utilizada por este filtro. Sin embargo, empujar los cambios de configuración en mis enrutadores cada vez que el cliente desea agregar un agujero negro no es realmente lo que quiero. Se preferiría alguna solución con BGP.

Por nuestro lado, el enrutamiento se realiza en Juniper, para una solución, preferiría tener algo que se pueda usar en una variedad de plataformas, por lo que básicamente debería usar BGP a través de una sesión separada o etiquetar rutas a través de una comunidad específica. De esta manera, también puedo usarlo para otros clientes.

Estoy realmente interesado si alguien tiene una buena solución para esto (aparte de la SCU / DCU).

Teun Vink
fuente
¿Alguna vez te diste cuenta de esto, sé que esto es muy viejo, pensé que valdría la pena comprobarlo? ¿Qué plataforma estás usando?
Jordan Head
@JordanHead desafortunadamente no, más o menos me di por vencido en esto. Ejecutamos una plataforma de varios enrutadores Juniper MX (5/80/104 en su mayoría).
Teun Vink
¿Cuántas direcciones de origen están atacando?
Jordan Head
Eso dependería del cliente y debería ser dinámico, pero al menos decenas o cientos deberían ser posibles. Estoy buscando algo que permita a mi cliente insertar fuentes para las cuales el tráfico no se entrega a su red a través de BGP. Quizás es más fácil ofrecer acceso a través de un portal a una caja dedicada que inserta rutas de agujeros negros (especificación de flujo).
Teun Vink
Examine ExaBGP, escrito por Thomas Mangin (autor de pirateo de SCU / DCU): demonio BGP totalmente programable, que admite Flowspec. Poner una interfaz de portal en esto para su cliente sería una buena solución
Benjamin Dale

Respuestas:

1

GRNET (la red griega de Investigación y Educación) ha desarrollado una aplicación web para que los clientes hagan esto con Flowspec. El portal web tiene un backend BGP Flowspec que inyecta flowpec en su red. Altamente configurable y en uso en el backbone GEANT paneuropeo de 500-1,000 Gbps: https://www.noc.grnet.gr/en/fod

usuario3866265
fuente
1

Para (finalmente) responder mi propia pregunta:

Esta no es la forma en que quiero implementar esto con las versiones actualmente compatibles de JunOS. Sí, hay otras formas de alcanzar el objetivo, como se mencionó en la otra respuesta y en los comentarios, pero mi pregunta específica era poder señalar el blackholing mediante una sesión de BGP.

Teun Vink
fuente
1

La creación dinámica de reglas de firewall no es solo para redirigir el tráfico para un blachole sino también para permitir que el tráfico entre centros de datos, entre empresas e intranet se distribuya geográficamente, para tener políticas de firewall definidas con abstracción de IP, utilizando algunas etiquetas en el enrutamiento dinámico para poblar cortafuegos y luego permitir el control del tráfico. Hace unos años busqué una solución como esa con Juniper, pero no recibí ningún comentario. Hay algunas secuencias de comandos en Junos que pueden ayudar en el tema, pero luego la población de objetos no se realizó por completo en respuesta a los eventos de intercambio de enrutamiento. Tampoco había posibilidad de etiquetar rutas directas para clasificarlas según las necesidades:

  • Si hubiera una red para backends en un centro de datos, entonces esto podría etiquetarse usando una "etiqueta de backend" directamente en la interfaz
  • En el enrutamiento dinámico, esta "etiqueta de fondo" podría traducirse a una comunidad (por ejemplo, BGP SoO) y anunciarse con eso
  • El centro de datos remoto recibiría la red anunciada y poblaría un grupo de direcciones de objetos que podrían acceder directamente a otros servidores.

FlowSpec podría ser una ayuda y un firewall que podría conectarse directamente al núcleo de mpls como PE también sería una ayuda. ¿Alguien sabe acerca de tal solución?

Alexandre Melo Damas
fuente