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/
da pra rodar ele junto com o krill?
Sim, inclusive são dos mesmo Dev.
Top Top Top