RPKI: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 45: | Linha 45: | ||
[[Arquivo:Krill01.png|nenhum|miniaturadaimagem|1023x1023px]]Na caixa de diálogo você entrará com o nome da CA, por exemplo vou entrar com o nome: '''ISPUP''' e clicar em '''Create CA'''. | [[Arquivo:Krill01.png|nenhum|miniaturadaimagem|1023x1023px]]Na caixa de diálogo você entrará com o nome da CA, por exemplo vou entrar com o nome: '''ISPUP''' e clicar em '''Create CA'''. | ||
Após criar o CA, o primeiro item que vamos configurar será o '''Parents''' com o '''Registro.br''' e nesse caso você precisará acessar com o '''ID administrativo do AS''' para poder fazer essa configuração. | Após criar o CA, o primeiro item que vamos configurar será o '''Parents''' com o '''Registro.br''' e nesse caso você precisará acessar o '''Registro.br''' com o '''ID administrativo do AS''' para poder fazer essa configuração. | ||
[[Arquivo:Krill02.png|nenhum|miniaturadaimagem|1029x1029px]] | [[Arquivo:Krill02.png|nenhum|miniaturadaimagem|1029x1029px]] | ||
Na tela acima temos o '''Child Request''' e clicaremos no botão abaixo para copiar as instruções para o clipboard: | Na tela acima temos o '''Child Request''' e clicaremos no botão abaixo para copiar as instruções para o clipboard: | ||
Linha 68: | Linha 68: | ||
== Configurando as ROAs == | == Configurando as ROAs == | ||
Depois que completar o processo acima, voltaremos no nosso krill mas agora na aba '''ROAs'''. Precisamos que aguardar os recursos serem liberados e aparecerem nessa tela. Temos que ter muito cuidado ao criar uma '''ROA''' porque se dissermos uma coisa e anunciarmos outra, isso pode '''invalidar''' nosso prefixo e ele ser descartado em diversos equipamentos pela Internet, te causando uma indisponibilidade de acesso. | |||
Um exemplo se você cadastrar uma '''ROA''' informando apenas o prefixo '''198.18.0.0/22''' e fizer anúncios como: '''198.18.0.0/23''', '''198.18.0.0/24''', esse dois últimos serão vistos como anúncios inválidos porque não existe uma '''ROA''' que inclua eles. Nesse caso você deveria criar uma '''ROA''' assim: '''198.18.0.0/22-24''' onde você está dizendo que terá anúncios de '''/22''' até prefixos mais específicos como os '''/24'''. | |||
Quando for adicionar uma '''ROA''' aparecerá uma janela conforme abaixo e nosso exemplo acima ficaria assim. Em '''1''' temos o nosso '''ASN''', em '''2''' o prefixo cheio e em '''3''' o máximo de tamanho que iremos anunciar. Nesse caso todos até os '''/24''', ou seja, o '''/22''', os '''2 /23''' e os '''4 /24''' deste prefixo. Na dúvida não configure de qualquer jeito, procure um profissional. Porque isso pode realmente parar a sua Operação de Internet se for feito errado e gerar prefixos inválidos. | |||
[[Arquivo:Krill13.png|nenhum|commoldura]] |
Edição das 18h46min de 4 de março de 2023
Introdução
É uma tecnologia discutida e proposta pelo IETF (Internet Engeenering Task Force), definida na RFC6480 e que serve para validar anúncios de rotas recebidas através do protocolo BGP. O RPKI pode ser separado em duas partes independentes: a parte que faz os anúncios das ROAs (Route Origin Authorization) e a parte que faz a validação das ROAs através do protocolo RtR (RPKI to Router). Esta última requer que o equipamento possua suporte a esse protocolo para funcionar. Juniper, Cisco, Huawei e até FRR possuem suporte a RtR. Os softwares utilizados e recomendados pelo NIC.br para o RPKI são: Krill e Routinator, ambos desenvolvidos pela NLNET Labs, a mesma empresa que desenvolve o Unbound e o NSD.
Um servidor virtualizado e com pouco recurso, pode hospedar tanto o Krill quanto o Routinator não só para atender um ASN, mas para diversos. Mais informações sobre RPKI podem ser encontradas aqui: https://registro.br/tecnologia/numeracao/rpki/
Requisitos
Embora não seja obrigatório você pode instalar no mesmo sistema o seu krill e o routinator. O krill não necessita de acesso entrante vindo da Internet e por isso pode estar atrás de qualquer NAT, que irá funcionar e o routinator também pode estar com um IP privado para se comunicar com o seu router de borda e fazer as validações das ROAs. Nesse artigo vamos usar o mesmo sistema para ambos e como de costume usaremos nosso querido Debian. Quem ainda não viu esse artigo sobre Template de Servidor Debian GNU/Linux dê uma olhada antes de começar, que pode ser interessante. Vamos precisar para o nosso sistema:
CPU | Memória | Disco | Sistema |
---|---|---|---|
2.4Ghz 4 cores | 2G | 30G | Debian 11 amd64 |
Instalação krill
Existem alguns pacotes que precisamos instalar além do repositório oficial do RPKI para o Debian. Então façamos conforme abaixo:
# apt install ca-certificates curl gnupg lsb-release # curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg # echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null # apt update # apt install krill
Vamos adicionar dentro de /etc/krill.conf a variável abaixo:
ip = "0.0.0.0"
Dentro deste mesmo arquivo de configuração, será gerado durante a instalação um token e é com ele que faremos todas as nossas configurações e acesso à interface web do krill. Você pode facilmente descobrir o seu token olhando o arquivo ou fazendo isso na linha de comando:
# grep admin_token /etc/krill.conf admin_token = "bd7b942dxxxxxxxxxxxxxxx69f2194ed" # "admin-token" admin_token role = "admin" id = "admin-token"
Reinicie o processo do krill:
# systemctl restart krill
Configurando sua primeira CA no Krill
Quando instalamos o krill precisamos configurar nossa primeira CA (Certificate Authority) que na maioria dos casos será apenas uma, mas se você tiver fazendo a gerência de outros ASNs em diferentes CNPJ(s), pode ser necessário criar mais de uma CA e mostrarei depois como fazê-lo. Como exemplo você vai acessar a interface web assim:
https://<IP>:3000
Na caixa de diálogo você entrará com o nome da CA, por exemplo vou entrar com o nome: ISPUP e clicar em Create CA.
Após criar o CA, o primeiro item que vamos configurar será o Parents com o Registro.br e nesse caso você precisará acessar o Registro.br com o ID administrativo do AS para poder fazer essa configuração.
Na tela acima temos o Child Request e clicaremos no botão abaixo para copiar as instruções para o clipboard:
Enquanto isso lá no Registro.br precisamos ir nas configurações do ASN e acessar as configurações do RPKI:
Aquele Child Request que você copiou no krill, vai colar ele na caixa de diálogo abaixo em 1 e clicar em 2 para habilitar o RPKI.
Na sequência você vai copiar todo o conteúdo abaixo em 1 de Parent response no Registro.br, para o nosso krill, na próxima tela.
Após copiar o conteúdo do Parent response do Registro.br, cole na caixa de diálogo 1, clique em Confirm no 2.
Feito a configuração do Parents, faremos a configuração para que você possa fazer a publicação das suas ROAs no Registro.br. Para isso vamos na aba do krill chamada de Repository e faremos o mesmo processo que fizemos no Parents. Vamos copiar para o Registro.br o item 1 (Publisher Request) e depois colar a reposta do Registro.br (Repository response), na caixa de diálogo 2 e por fim confirmar em 3.
No Registro.br precisamos clicar em Configurar publicação remota conforme tela abaixo:
Como podemos ver abaixo, é só seguir o mesmo processo que fizemos com o Parents. Colamos o Publisher request na caixa de diálogo 1 e clicamos em 2 para habilitar a publicação remota.
Na sequência copiamos a resposta abaixo Repository response para o nosso krill e finalizamos a nossa configuração.
Após toda a configuração no Registro.br se você voltar na configuração do RPKI encontrará uma mensagem assim para confirmar que está tudo OK
Configurando as ROAs
Depois que completar o processo acima, voltaremos no nosso krill mas agora na aba ROAs. Precisamos que aguardar os recursos serem liberados e aparecerem nessa tela. Temos que ter muito cuidado ao criar uma ROA porque se dissermos uma coisa e anunciarmos outra, isso pode invalidar nosso prefixo e ele ser descartado em diversos equipamentos pela Internet, te causando uma indisponibilidade de acesso.
Um exemplo se você cadastrar uma ROA informando apenas o prefixo 198.18.0.0/22 e fizer anúncios como: 198.18.0.0/23, 198.18.0.0/24, esse dois últimos serão vistos como anúncios inválidos porque não existe uma ROA que inclua eles. Nesse caso você deveria criar uma ROA assim: 198.18.0.0/22-24 onde você está dizendo que terá anúncios de /22 até prefixos mais específicos como os /24.
Quando for adicionar uma ROA aparecerá uma janela conforme abaixo e nosso exemplo acima ficaria assim. Em 1 temos o nosso ASN, em 2 o prefixo cheio e em 3 o máximo de tamanho que iremos anunciar. Nesse caso todos até os /24, ou seja, o /22, os 2 /23 e os 4 /24 deste prefixo. Na dúvida não configure de qualquer jeito, procure um profissional. Porque isso pode realmente parar a sua Operação de Internet se for feito errado e gerar prefixos inválidos.