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.

# su - 
# apt update ; apt upgrade 
# 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

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

Debian 11

# 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:

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

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

# apt search routinator

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

# apt install routinator
# systemctl enable routinator
# routinator-init --accept-arin-rpa

Terá o seguinte retorno:

Running command as user routinator: routinator --config /etc/routinator/routinator.conf init --accept-arin-rpa
Created local repository directory /var/lib/routinator/rpki-cache
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.

# vim /etc/routinator/routinator.conf

Altere rtr-listen e http-listen:

#rtr-listen = ["127.0.0.1:3323"]
#http-listen = ["127.0.0.1:8323"]
rtr-listen = [ "[::]:3323" ]
http-listen = [ "[::]:8323" ]

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

# systemctl start routinator

Verifique se o mesmo não teve nenhum erro.

# 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

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

# apt install nftables 
# systemctl enable nftables

Criando as regras:

# vim /etc/nftables.conf 

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

#!/usr/sbin/nft -f
  
flush ruleset
 
table inet filter {
 
    # IPs que serão permitidos ter acesso ao routinator
    set acesso-routinator-v4 {
        type ipv4_addr
        flags interval
        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 }
    }
    set acesso-routinator-v6 {
        type ipv6_addr
        flags interval
        elements = { ::1,  2804:bebe:bebe::/48 }
    }
  
    chain input {
        type filter hook input priority 0;
 
        # RTR
        ip saddr  @acesso-routinator-v4 udp dport 3323 counter accept
        ip6 saddr @acesso-routinator-v6 udp dport 3323 counter accept
        udp dport 3323 counter drop
        
        # HTTP
        ip saddr  @acesso-routinator-v4 udp dport 8323 counter accept
        ip6 saddr @acesso-routinator-v6 udp dport 8323 counter accept
        udp dport 8323 counter drop
 
        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}

Reinicie o serviço

# systemctl restart nftables

Verificar as regras com o comando:

# 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 *