Tutorial Krill
Preparo
1. IMPORTANTE: para utilizar o RPKI, é necessário que o servidor Krill esteja
sempre ligado. Evite desligar o equipamento.
2. Criar máquina Ubuntu
3. Instalar compilador C
a. # sudo apt-get install build-essentials
4. Instalar OpenSSL
a. # sudo apt-get install libssl-dev openssl pkg-config
5. Instalar Rust mais recente
a. # curl [Link] -sSf | sh
b. # source $HOME/.cargo/env
Instalação Krill
1. # cd <path>
2. # git clone [Link]
3. # cd krill
4. # cargo build --release
Obs: o krill será instalado no diretório onde foi executado o git clone
Para executar o krill, existem dois comandos:
<path>/krill/target/release/krill -> Servidor Krill
<path>/krill/target/release/krillc -> Cliente Krill
Para torná-los acessíveis ao sistema
1. # sudo ln -s < path>/krill/target/release/krill /usr/bin
2. # sudo ln -s <path>/krill/target/release/krillc /usr/bin
Testar com os comandos
1. # krill --help
2. # krillc --help
Configurando Servidor Krill
Existe um arquivo de configuração localizado em:
<path>/krill/defaults/[Link]
Faça uma cópia para alterar suas configurações
1. # cd < path>
2. # cp < path>/krill/defaults/[Link] <path>
Crie um diretório de dados para o krill
1. # cd <path>
2. # mkdir data
Alterar arquivo [Link]
auth_token = "SouUmaSenhaSegura"
Subir Servidor Krill
# krill -c ./[Link]
Utilizando o Cliente Krill
Criando uma CA
# krillc add --server [Link] --token SouUmaSenhaSegura
--ca minha_ca
Verificando a CA criada
# krillc show --server [Link] --token SouUmaSenhaSegura
--ca minha_ca
Gerando uma Child Request
Após gerar a CA, é necessário gerar uma Child Request
# krillc parents myid --server [Link] --token
SouUmaSenhaSegura --ca minha_ca
Obs: o child request em formato de XML será mostrado no terminal. No entanto é
necessário copiar e colar esse XML no site do registro, então é recomendado utilizar
esse comando em algum terminal em que se possa selecionar e copiar o texto.
Habilitando RPKI no seu AS
Com a chave gerada, acessar o site do [Link]
1. Acesse [Link]
2. Faça o login
3. Entre em "Titularidade"
4. Escolha seu ASN
5. Entre em "Configurar RPKI"
6. Em "Child Request" colar o XML gerado no passo anterior
7. Clicar em "Habilitar RPKI"
8. Copiar o XML "Parent Response"
9. Criar o arquivo parent response no krill
a. # touch parent_response.xml
b. colar o XML de resposta nesse arquivo
10. Adicionar o parent response no krill
a. # krillc parents add --server [Link] --token
SouUmaSenhaSegura --ca minha_ca --parent nicbr_ca --rfc8183
parent_response.xml
Ao fazer isso, o seu servidor Krill passa a ser parte do sistema RPKI do [Link]
Gerando ROAs do seu AS
Crie o arquivo de ROAs:
# touch [Link]
A sintaxe do arquivo deve ser a seguinte:
A: [Link]/22-24 => 1234 (adiciona roa)
R: [Link]/8 => 1234 (remove roa)
A: 2001:db8::/32 => 1234
Publicar as ROAs
# krillc roas update --server [Link] --token
SouUmaSenhaSegura --ca minha_ca --delta [Link]
Para consultar as ROAs
# krillc roas list --server [Link] --token
SouUmaSenhaSegura --ca minha_ca
Publicando ROAs no sistema do [Link]
Ao gerar as ROAs no Krill, os usuários que quiserem consultar esse informação
terão que acessar o seu servidor Krill para confirmar esses dados. Uma forma mais
simples de se fazer isso é publicar essas ROAs no sistema do [Link], dessa
forma não há a necessidade de manter o seu servidor Krill em alta disponibilidade.
Gerando uma Publisher Request
Para gerar o publisher request no krill:
# krillc repo request --server [Link] --token
SouUmaSenhaSegura --ca minha_ca
Copie esse XML e coloque no campo "Publisher Request" no sistema de RPKI do
[Link]. Feito isso, será mostrado um "Repository Response"
Adicionando Repository Response
# krillc repo update rfc8183 repository_response.xml --server
[Link] --token SouUmaSenhaSegura --ca minha_ca