Tutorial Enrutamiento Seguro Lacnic33
Tutorial Enrutamiento Seguro Lacnic33
Tutorial Enrutamiento Seguro Lacnic33
ASN 65501
2001:db8:FF00::/48
Route leaks – fuga de rutas
• Prefijos aprendidos del
ASN 65511
proveedor no deben Leak!
anunciarse a otro peer o a otro 2001:db8:10:/40
proveedor
2001:db8:10:/40
• Prefijos aprendidos de un peer 2001:db8:20:/40
tampoco se anuncian a otros 2001:db8:20::/40
peers ni al proveedor
2001:db8:10:/40
• Esos prefijos solo deberían ASN 65536
ASN 65537
anunciarse a clientes
Si no hay filtros configurados, esto
trae problemas
Seguridad en BGP
Tecnologías que facilitan la prevención de incidentes de seguridad
IRRs vs RPKI
• Cómo chequear que la información que recibimos por BGP es
correcta?
• BGP no tiene mecanismos intrínsecos que permitan verificar esto
• Se deben contrastar los anuncios recibidos por BGP contra fuentes externas
route: 201.221.32.0/19
descr: ANTEL
origin: AS6057
notify: [email protected]
mnt-by: MAINT-AS6057
changed: [email protected] 20080903
changed: [email protected] 20080903 #19:20:32Z
source: RADB
Certificado
ISPs/End-Users digital
Prueba
LACNIC Organizaciones (X.509 v3, verificable de su
poseedoras de extensiones para posesión
recursos representar IPv4,
IPv6 y ASNs)
¿Qué compone la solución RPKI?
• ROA: Objetos firmados digitalmente para soportar seguridad del
enrutamiento
• Equivalentes a route o route6 objects de un IRR
• Los ISPs u organizaciones pueden definir y certificar los anuncios de rutas
que autorizan realizar
• Los ROAs permiten definir el AS de origen para nuestros prefijos
• Firmados con la clave privada del certificado
• Toda la información es copiada en un repositorio públicamente accesible
Sistema de Gestión de
RPKI
Repositorio
Firma
ResCert #1
192.168.0.0/20 Clave pública
10.1.0.0/16 para ResCert #1 Firma
ResCert #3
192.168.3.0/24 Clave pública
10.3.0.0/16 para ResCert #3
Firma
ResCert #2
192.168.1.0/24 Clave pública
10.1.2.0/24 para ResCert #2
Modelos de implementación de RPKI
• Modo hosted:
• Mantenimiento basado en el RIR , gestionado a través del portal (MI LACNIC)
• Todas las operaciones criptográficas, rollovers, etc, son automáticas
• Los certificados y ROAs son publicados en el repositorio del RIR
• El usuario sólo debe ocuparse de crear y mantener los ROAs
• Modo delegado:
• Una organización puede optar por tener su propia CA, que dependerá jerárquicamente del RIR
• La organización debe mantener las claves privadas y la firma de los objetos
• Útil para
• Organizaciones que poseen espacio de direcciones de diferentes RIRs
• Organizaciones grandes que quieren integración con sus sistemas de manejo de IP
• Registros Nacionales de Internet - NIRs (ej: NIC Brasil)
• Protocolo UP DOWN para comunicarse con la CA superior y para la emisión, revocación y reporte
de estado de certificados (RFC 6492)
• Software disponible: Krill (NLNet Labs), rpki.net toolkit (Dragon Research Labs)
¿Qué podemos hacer para
mitigar los incidentes?
Acciones acordadas para promover la seguridad del ruteo
MANRS – Mejores prácticas
MANRS es un conjunto de ”Normas Mutuamente Acordadas para la
Seguridad del Enrutamiento”
Acciones propuestas por MANRS para operadores:
• Filtrado
• Anti-spoofing Veremos estas acciones en
• Coordinación más detalle a continuación
• Validación global
Hay también un programa específico para IXPs y para CDNs
https://www.manrs.org
¿Preguntas hasta acá?
Filtrado de anuncios BGP
Cómo trabaja BGP?
23
Ejemplo de peering
Filtros por prefijos (prefix-list)
• Permiten filtrar según los prefijos que se aprenden o se anuncian de o hacia
un peer
• Se aplica según lo que se que se quiere filtrar (entrada o salida de la sesión
BGP):
IN à Aprende
OUT à Enseña
Filtros con prefix-list router bgp 65501
network 2001:db8:20::/48
network 203.0.113.0/24
neighbor 2001:db8:AAAA::2 remote-as 65502
neighbor 198.51.100.2 remote-as 65502
neighbor 2001:db8:AAAA::2 prefix-list PEER-IPv6-IN in
2001:db8:AAAA::2/64
198.51.100.2/30 neighbor 2001:db8:AAAA::2 prefix-list PEER-IPv6-OUT out
neighbor 198.51.100.2 prefix-list PEER-IPv4-IN in
2001:db8:AAAA::1/64
198.51.100.1/30 neighbor 198.51.100.2 prefix-list PEER-IPv4-OUT out
!
ip prefix-list PEER-IPv6-IN permit 2001:db8:10::/48
ip prefix-list PEER-IPv6-OUT permit 2001:db8:20::/48
ip prefix-list PEER-IPv4-IN permit 192.0.2.0/24
ip prefix-list PEER-IPv4-OUT permit 203.0.113.0/24
Ejemplo de tránsito
Filtros con AS-PATH
Tránsito router bgp 65502
...
neighbor 198.51.100.22 filter-list 11 out
...
198.51.100.22 198.51.100.21
ip as-path access-list 11 permit 65511$
ip as-path access-list 11 permit 65509$
ip as-path access-list 11 permit ^$
...
Comunidades
• Recursos que permiten agrupar destinos según mismas características en
los prefijos que se aprenden
• Dos tipos: COMMUNITY y LARGE COMMUNITY
• Formato para ASN de 16 bits: <AS>:[0-65536]
• Formato para ASN de 32 bits: <ASN>:<function>:<parameter>
Definición: https://tools.ietf.org/html/rfc8092
Casos de uso: https://tools.ietf.org/html/rfc8195
Análisis con • El AS65502 puede definir una comunidad
Comunidades para clientes a los que da tránsito, por
ejemplo:
65502:1000
• El AS65502 aplicará esa comunidad a las
rutas que RECIBE del AS65509 y del
AS65511 (estos AS comparten la
característica de ser los sistemas
autónomos a los que se le dará tránsito).
• En el enlace AS65501 sólo permitirá
publicar las rutas que tienen la
comunidad 65502:1000 ya seteada
Ejemplo de tránsito con comunidades
2001:db8:bbbb::1/64
198.51.100.22 198.51.100.21
2001:db8:bbbb::2/64
match 65502:1000
set 65502:1000
se
t6
55
02
198.51.100.1 :1
00
0
198.51.100.2
Ejemplo de configuración:
router bgp 65502
...
neighbor 198.51.100.22 remote-as 65501
neighbor 198.51.100.2 remote-as 65509
neighbor 2001:db8:bbbb::2 remote-as 65511
…
neighbor 198.51.100.2 route-map transito in
neighbor 2001:db8:bbbb::2 route-map transito in
neighbor 198.51.100.22 route-map Anuncio-a-65501 out
ASN 65501
203.0.113.0/22
203.0.113.0/24
2001:db8:20::/48
ROAs que se necesita crear
ROAs que se necesita crear
ASN 65502
192.0.2.0/22
192.0.2.0/24
2001:db8:10::/48
ROAs que se necesita crear
Ejemplo de tránsito
ROAs que se necesita crear
2001:db8:ABCD::/48
2001:db8:10::/48
AS-PATH:65502 65511
AS-PATH:65502 19
198.51.100.0/24 AS 8.51
-PA .1
AS-PATH:65502
192.0.2.0/24 65509 TH 00.
AS-PATH:65502 :65 0/2
50 4
9
Qué recibe el ASN 65501?
Tabla BGP Simplificada
200.7.85.0/24
Qué recibe el ASN 65501?
Tabla BGP Simplificada
200.7.85.0/24
Qué recibe el ASN 65501?
Tabla BGP Simplificada
Network Next Hop Estado de PATH
RPKI – Cache Validador validez
2001:db8:10::/48 2001:db8:bbbb::2 VALIDA 65502
Prefijo MAX ASN
2001:db8:10::/48 48 65502
192.0.2.0/24 2001:db8:bbbb::2 VALIDA 65502
192.0.2.0/24 22 65502
2001:db8:ABCD::/48 48 65511
2001:db8:ABCD::/48 2001:db8:bbbb::2 VALIDA 65502 65511
2001:db8:fff0::/48 48 65510
2001:db8:fff0::/48 2001:db8:bbbb::2 VALIDA 65502 65510
200.7.85.0/24 24 65509
ASN 6660
200.7.85.0/24
200.7.85.0/24
Qué recibe el ASN 65501?
Tabla BGP Simplificada
Network Next Hop Estado de PATH
RPKI – Cache Validador validez
2001:db8:10::/48 2001:db8:bbbb::2 VALIDA 65502
Prefijo MAX ASN
2001:db8:10::/48 48 65502
192.0.2.0/24 2001:db8:bbbb::2 VALIDA 65502
192.0.2.0/24 22 65502
2001:db8:ABCD::/48 48 65511
2001:db8:ABCD::/48 2001:db8:bbbb::2 VALIDA 65502 65511
2001:db8:fff0::/48 48 65510
2001:db8:fff0::/48 2001:db8:bbbb::2 VALIDA 65502 65510
200.7.85.0/24 24 65509
Objetivos:
• Contribuir al despliegue de RPKI para aumentar la seguridad y la resiliencia de los
sistemas de enrutamiento.
• Desarrollar una herramienta de monitoreo para estudiar incidentes de
enrutamiento en la región y exponer secuestros intencionales.
Documentación
• Documentación general: https://nicmx.github.io/FORT-validator/
• Descargar el validador: https://github.com/NICMx/FORT-validator/releases
Validador FORT
Permite a los operadores de red validar la información de enrutamiento
BGP contra el repositorio RPKI para usarla en su configuración y
resolución de rutas.
¿Preguntas hasta acá?
IRR de LACNIC
Algunas decisiones de diseño
• La mayoría de la información requerida ya existe en alguna base de
datos de LACNIC
• WHOIS, RPKI
• Reutiliza la información ya disponible:
• route(6) generados a partir de RPKI
• autnum y maintainers del whois
• No se hará una implementación completa de RPSL:
• Los operadores utilizan solo una pequeña parte de las facilidades
• Lo principal que estaría faltando en RPKI es el objeto AS-SET
• AS-SET debe puede ser definido por el usuario
ROAs vs route(6)
• Un ROA es semánticamente equivalente a un route(6) object:
• Asocia un prefijo a un ASN de origen
• Con esta información es posible hacer chequeo de un anuncio BGP
• Los ROAs están firmados criptográficamente, los objetos en un IRR no
• Los ROAs no pueden ser alterados por un tercero
• El repositorio es seguro
• RPKI sólo implementa un subconjunto de lo que un IRR puede definir
Cómo usar la información
Ejemplo de peering
Utilizar la información del IRR
• Obtenemos todos los prefijos IPv6 del ASN 65502:
$ whois -h irr.lacnic.net '!6AS65502’
A…
2001:db8:10::/48
C
• Obtenemos todos los prefijos IPv4 del ASN 65502:
$ whois -h irr.lacnic.net '!gAS65502’
A…
192.0.2.0/24
C
• Más info en: https://irrd4.readthedocs.io/en/master/users/queries.html
Ejemplo de tránsito
as-set: AS65502:AS-Transito
descr: ...
members: AS65509,AS65510,AS65511
mnt-by: ...
changed: ...
source: LACNIC
Utilizando bgpq3/bgpq4
• En este caso, usamos el as-set:
• Prefijos IPv4
$ bgpq4 -h irr.lacnic.net -l clientes-as65502 AS65502:AS-Transito
no ip prefix-list clientes-as65502
ip prefix-list clientes-as65502 permit 198.51.100.0/24
• Prefijos IPv6
$ bgpq4 -h irr.lacnic.net -6 -l clientes-as65502 AS65502:AS-Transito
no ipv6 prefix-list clientes-as65502
ipv6 prefix-list clientes-as65502 permit 2001:db8:FFF0:/48
ipv6 prefix-list clientes-as65502 permit 2001:db8:ABCD:/48
Muchas gracias…