Instalação do Routinator 3000, um software para validação RPKI


O Routinator 3000 é um software RPKI Relying Party gratuito e de código aberto desenvolvido pela NLnet Labs na linguagem de programação Rust. O aplicativo foi desenvolvido para ser seguro e ter ótima portabilidade. É uma implementação leve que pode ser executada sem esforço em quase qualquer sistema operacional usando hardware minimalista.

O Routinator se conecta às âncoras de confiança dos cinco Registros Regionais da Internet (RIRs) – APNIC, AFRINIC, ARIN, LACNIC e RIPE NCC – baixa todos os certificados e ROAs nos vários repositórios, verifica as assinaturas e disponibiliza o resultado para uso em seu fluxo de trabalho BGP.

É um pacote de software completo que pode realizar a validação RPKI como uma operação única e armazenar o resultado no disco em formatos como CSV e JSON, ou executar como um serviço que faz download e verifica periodicamente os dados RPKI. Os roteadores podem se conectar ao Routinator para buscar dados verificados por meio do protocolo RPKI-RTR. O servidor HTTP embutido oferece uma interface de usuário e terminais para os vários formatos de arquivo, bem como registro, status e monitoramento do Prometheus.

Mas antes de você querer validar, você já tem seus prefixos validado??? Leia:
Como configurar o RPKI de forma simples

Para essa instalação irei usar o Debian 10 ou Debian 11

Acesse seu servidor, e não esqueça de virar root da forma correta. Irei atualizar os pacotes e em seguida instalar alguns pacotes que serão necessários para a instalação do Routinator.

1 # su - 
2 # apt update ; apt upgrade 
3 # apt install wget gnupg2 apt-transport-https software-properties-common net-tools

Agora adicione ao repositório do Debian os pacotes da nlnetlabs. Para outras distribuição leia a documentação 😛

Debian 10

1 # echo 'deb [arch=amd64] https://packages.nlnetlabs.nl/linux/debian/ buster main' >  /etc/apt/sources.list.d/nlnetlabs.list

Debian 11

1 # echo 'deb [arch=amd64] https://packages.nlnetlabs.nl/linux/debian/ bullseye main' >  /etc/apt/sources.list.d/nlnetlabs.list

Em seguida, execute os seguintes comandos para adicionar a chave pública e atualizar a lista de repositórios:

1 # wget -qO- https://packages.nlnetlabs.nl/aptkey.asc | apt-key add -
2 # apt update

Procure o pacote para ver se o mesmo se encontra em seu repositório.

1 # apt search routinator

Você pode então instala-lo e habilita-lo para iniciar o Routinator com o sistema.

1 # apt install routinator
2 # systemctl enable routinator
3 # routinator-init --accept-arin-rpa

Terá o seguinte retorno:

1 Running command as user routinator: routinator --config /etc/routinator/routinator.conf init --accept-arin-rpa
2 Created local repository directory /var/lib/routinator/rpki-cache
3 Installed 5 TALs in /var/lib/routinator/tal

Por padrão, o Routinator escuta apenas em seu serviço em localhost (tcp/127.0.0.1). Se você quiser que outros dispositivos possam ter acesso o serviço (e vamos querer é claro!) precisamos ajustar para ter acesso de qualquer local, fica tranquilo que já já vamos realizar um firewall para resolver as questões de segurança.

1 # vim /etc/routinator/routinator.conf

Altere rtr-listen e http-listen:

1 #rtr-listen = ["127.0.0.1:3323"]
2 #http-listen = ["127.0.0.1:8323"]
3 rtr-listen = [ "[::]:3323" ]
4 http-listen = [ "[::]:8323" ]

Inicie o serviço (Ele leva alguns minutos para fazer a sincronização)

1 # systemctl start routinator

Verifique se o mesmo não teve nenhum erro.

1 # systemctl status routinator

Você pode consultar se as portas 8323 e 3323 estão rodando, e se o servidor estebeleceu conexões com os servidores

1 # netstat -putan |grep routinator
1 tcp        0      0 192.168.254.121:58014   170.39.226.189:443      ESTABELECIDA 354/routinator      
2 tcp        0     84 192.168.254.121:47658   103.235.88.190:443      ESTABELECIDA 354/routinator      
3 tcp        0      0 192.168.254.121:53364   149.56.154.148:443      ESTABELECIDA 354/routinator      
4 tcp        0      0 192.168.254.121:42862   218.241.105.61:443      ESTABELECIDA 354/routinator      
5 tcp        0      0 192.168.254.121:58334   141.98.88.107:443       ESTABELECIDA 354/routinator      
6 tcp        0      0 192.168.254.121:60420   45.89.251.100:443       ESTABELECIDA 354/routinator      
7 tcp        0      0 192.168.254.121:43290   44.242.33.211:443       ESTABELECIDA 354/routinator      
8 tcp        0      0 192.168.254.121:57370   35.205.101.187:443      ESTABELECIDA 354/routinator      
9 tcp6       0      0 9999:bebe:bebe:f0d:51314 2602:feda:4:dead:21:443 ESTABELECIDA 354/routinator      
10 tcp6       0      0 9999:bebe:bebe:f0d:55342 2406:6cc0:a100:4622:443 ESTABELECIDA 354/routinator      
11 tcp6       0      0 9999:bebe:bebe:f0d:60814 2a01:4f9:c010:206e::443 ESTABELECIDA 354/routinator      
12 tcp6       0      0 9999:bebe:bebe:f0d:43562 2001:12ff:0:2::50:443   ESTABELECIDA 354/routinator      
13 tcp6       0      0 9999:bebe:bebe:f0d:58358 2a0e:1cc1:1::1:7:443    ESTABELECIDA 354/routinator      
14 tcp6       0      0 9999:bebe:bebe:f0d:40998 2a01:6f0:101:17::1:443  ESTABELECIDA 354/routinator      
15 tcp6       0      0 9999:bebe:bebe:f0d:52372 2001:dd8:9:2::101:1:443 ESTABELECIDA 354/routinator      
16 tcp6       0      0 9999:bebe:bebe:f0d:55418 2001:67c:2e8:22::c1:443 ESTABELECIDA 354/routinator      
17 tcp6       0      0 9999:bebe:bebe:f0d:50044 2a04:4e42:5c::729:443   ESTABELECIDA 354/routinator      
18 tcp6       0      0 9999:bebe:bebe:f0d:50292 2401:2000:6660::14:443  ESTABELECIDA 354/routinator      
19 tcp6       0      0 9999:bebe:bebe:f0d:56746 2600:6ce4:0:202::7:443  ESTABELECIDA 354/routinator      
20 tcp6       0      0 9999:bebe:bebe:f0d:39656 2001:13c7:7002:4128:443 ESTABELECIDA 354/routinator      
21 tcp6       0      0 9999:bebe:bebe:f0d:59412 2001:500:13::149:443    ESTABELECIDA 354/routinator      
22 tcp6       0      0 9999:bebe:bebe:f0d:50094 2001:dd8:9:2::101:9:443 ESTABELECIDA 354/routinator      
23 tcp6       0      0 9999:bebe:bebe:f0d:36894 2a09:0:8::21:443        ESTABELECIDA 354/routinator      
24 tcp6       0      0 9999:bebe:bebe:f0d:50128 2600:9000:20bb:ae00:443 ESTABELECIDA 354/routinator 
25 tcp6       0      0 :::8080                 :::*                    OUÇA       354/routinator      
26 tcp6       0      0 :::3323                 :::*                    OUÇA       354/routinator      

Acesse serviço HTTP (http://IP:8323) do Routinator, o mesmo fornece uma interface de usuário, uma API, monitoramento e log de endpoints. para ter

Não podemos esquecer o firewall para proteger nosso Routinator, usarei o nftables para fechar as portas 3323 e 8323 permitindo apenas as listas de IPs acesso-routinator-v4/acesso-routinator-v6.

Instale o nftables e ative-o para iniciar com o sistema.

1 # apt install nftables 
2 # systemctl enable nftables

Criando as regras:

1 # vim /etc/nftables.conf 

Ajustes para os ips da sua rede que terão acesso ao routinator.

1 #!/usr/sbin/nft -f
2   
3 flush ruleset
4  
5 table inet filter {
6  
7     # IPs que serão permitidos ter acesso ao routinator
8     set acesso-routinator-v4 {
9         type ipv4_addr
10         flags interval
11         elements = { 127.0.0.1, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 100.64.0.0/10, 200.200.200.0/22 }
12     }
13     set acesso-routinator-v6 {
14         type ipv6_addr
15         flags interval
16         elements = { ::1,  2804:bebe:bebe::/48 }
17     }
18   
19     chain input {
20         type filter hook input priority 0;
21  
22         # RTR
23         ip saddr  @acesso-routinator-v4 udp dport 3323 counter accept
24         ip6 saddr @acesso-routinator-v6 udp dport 3323 counter accept
25         udp dport 3323 counter drop
26         
27         # HTTP
28         ip saddr  @acesso-routinator-v4 udp dport 8323 counter accept
29         ip6 saddr @acesso-routinator-v6 udp dport 8323 counter accept
30         udp dport 8323 counter drop
31  
32         type filter hook input priority 0;
33     }
34     chain forward {
35         type filter hook forward priority 0;
36     }
37     chain output {
38         type filter hook output priority 0;
39     }
40 }

Reinicie o serviço

1 # systemctl restart nftables

Verificar as regras com o comando:

1 # nft list ruleset

Seu Routinator está pronto para receber a conexão de seu roteador.

Soluções de Hardware

As versões listadas aqui são as primeiras em que o suporte RPKI foi disponibilizado. No entanto, uma versão mais recente pode ser necessária para obter melhorias recomendadas e correções de bugs.
├── Juniper – Junos versão 12.2 e mais recente. Leia PR1461602 e PR1309944 antes de implantar.
├── Cisco – IOS versão 15.2 e mais recente, bem como Cisco IOS / XR desde a versão 4.3.2.
├── Nokia – SR OS 12.0.R4 e mais recente, rodando no 7210 SAS, 7250 IXR, 7750 SR, 7950 XRS e no VSR.
├── Huawei – VRP 8.150 and newer.
└── Mikrotik RouterOSv7 – 7.0beta7 and newer

Soluções de software

Várias soluções de software têm suporte para validação de origem:
├── BIRD
├── OpenBGPD
├── FRRouting
├── GoBGP
└── VyOS

Curtiu o conteúdo? Quer me ajudar manter essa p*** ? 🙂

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Participe do canal no telegram para ficar atualizado sempre que publicar um novo tutorial.

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Abraço!

Fontes:
https://routinator.docs.nlnetlabs.nl/en/stable/
https://nlnetlabs.nl/projects/rpki/about/
https://github.com/NLnetLabs/routinator
https://docs.ixpmanager.org/features/rpki/routinator/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

4 Resultados

  1. Mayk disse:

    da pra rodar ele junto com o krill?

  1. 23 de julho de 2021

    […] Instalação do Routinator 3000, um software para validação RPKI […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *