AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 777234
Accepted
user84207
user84207
Asked: 2024-05-28 07:17:50 +0800 CST2024-05-28 07:17:50 +0800 CST 2024-05-28 07:17:50 +0800 CST

Ajude a importar a chave Kerberos para openafs

  • 772

Estou tendo problemas para exportar e importar chaves Kerberos para openafs.

Meu primeiro problema é que ao usar comandos addprince ktaddem kadmin.local, a opção de tipo de chave de criptografia -eparece ser ignorada. Por exemplo, quando tento adicionar uma chave do tipo des-cbc-crc:v4, uma chave do tipo aes256-cts-hmac-sha1-96parece ser adicionada:

kadmin.local:  ktadd -e des-cbc-crc:v4 -k /tmp/afs.ktab afs
Entry for principal afs with kvno 4, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/afs.ktab.
Entry for principal afs with kvno 4, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/afs.ktab.

O mesmo acontece com addprinc, tento especificar -e DES-CBC-CRC:md5o tipo de chave, mas isso parece ser ignorado e acabo com uma aes128-cts-hmac-sha1-96chave:

$ kadmin.local
Authenticating as principal root/[email protected] with password.
kadmin.local:  addprinc -policy service -randkey -e DES-CBC-CRC:md5 afs
WARNING: policy "service" does not exist
Principal "[email protected]" created.
kadmin.local:  getprinc afs
Principal: [email protected]
Expiration date: [never]
Last password change: Mon May 27 18:22:21 EDT 2024
Password expiration date: [never]
Maximum ticket life: 0 days 10:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Mon May 27 18:22:21 EDT 2024 (root/[email protected])
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 2
Key: vno 1, aes256-cts-hmac-sha1-96
Key: vno 1, aes128-cts-hmac-sha1-96
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH
Policy: service [does not exist]
kadmin.local:  

Além disso, quando tento importar essa chave usando asetkey, recebo uma mensagem de erro ilegível:

sudo asetkey add 4 /tmp/afs.ktab afs
asetkey: unknown RPC error (-1765328203) for keytab entry with Principal [email protected], kvno 4, DES-CBC-CRC/MD5/MD4

Lendo a asetkeypágina de manual, vejo uma forte recomendação contra o uso do des-cbc-crctipo de chave e a rxkad-k5extensão:

A modern AFS cell should be using the rxkad-k5 extension, or risks terribly insecure operation (complete cell compromise for $100 in 1 day).  The
       keys used for rxkad-k5 operation are stored in the KeyFileExt.  Cells not using the rxkad-k5 extension (i.e., stock rxkad) use keys of the des-cbc-
       crc encryption type, which are stored in the KeyFile.

Lendo mais, a KeyFileExtpágina de manual diz que tentar adicionar rxkad-k5chaves requer a especificação de a krb5 encryption type number, que é distinto de um identificador de string:

Using asetkey(8) to add rxkad-k5 keys to the KeyFileExt also requires specifying a krb5 encryption type number.
       Since the encryption type must be specified by its number (not a symbolic or string name), care must be taken to determine the correct encryption
       type to add.

Estou preso com muitas questões relacionadas:

  1. Por que kadminparece ignorar meu tipo de criptografia especificado?

  2. Como posso determinar se meu openafs está usando a rxkad-k5extensão? Eu procurei pacotes debian via apt-cache search rxkad-k5e rxkadnão encontrei nada.

  3. Como aes256-cts-hmac-sha1-96se parece com um identificador de string, como posso determinar o "número do tipo de criptografia krb5" para esta criptografia para importá-la via asetkey?

  4. Percebi openafs-krb5que é um pacote separado do openafs-{fileserver,dbserver,client}. Existe uma maneira recomendada de gerenciar a autenticação openafs no debian sem configurar o kerberos?

  5. Descobri que akeyconvertafirma ajudar na importação de chaves from the krb5 keytab format to the KeyFileExt format. Devo usar akeyconvertpara converter minha afs.keytabchave em openafs?

kerberos
  • 2 2 respostas
  • 14 Views

2 respostas

  • Voted
  1. user84207
    2024-05-28T08:02:02+08:002024-05-28T08:02:02+08:00

    Depois de ler mais sobre akeyconvert, parece que é a ferramenta que eu precisava para importar chaves openafs. A ferramenta espera encontrar a krb5chave de entrada /etc/openafs/server/rxkad.keytabe gerar a chave compatível com openafs em /etc/openafs/server/KeyFileExt:

    sudo cp /tmp/afs.ktab /etc/openafs/server/rxkad.keytab
    sudo akeyconvert -all
    
    $ sudo asetkey list
    rxkad_krb5      kvno    ? enctype ?; key is: ????????????????????????????????
    rxkad_krb5      kvno    ? enctype ?; key is: ????????????????????????????????????????????????????????????????
    All done.
    
    • 1
  2. Best Answer
    u1686_grawity
    2024-06-09T01:00:46+08:002024-06-09T01:00:46+08:00

    Por que o kadmin parece ignorar meu tipo de criptografia especificado?

    O MIT Kerberos desativou o DES único por padrão no Krb5 1.17 (com a allow_weak_cryptoopção de reativá-lo) e removeu completamente o suporte ao DES único no Krb5 versão 1.18.

    Muito provavelmente, porém, você não precisa disso; todas as versões recentes do OpenAFS ( 1.6.5 ou posterior , com backport para 1.4.15+) suportam chaves de serviço não-DES – se você tinha uma rxkad.keytabantes, então já estava executando uma versão do OpenAFS que tinha suporte para rxkad-k5.

    Como determino se meu openafs está usando a extensão rxkad-k5? Pesquisei pacotes debian via apt-cache search rxkad-k5 e rxkad e não encontrei nada.

    rxkad-k5 e rxkad-kdf foram adicionados no OpenAFS 1.6.5 (e portados para 1.4.15 para a série 1.4).

    Todas as versões do OpenAFS usadas KeyFileExt(ou seja, 1.8.x) já suportam rxkad-k5 e rxkad-kdf.

    Mesmo o rxkad-k5 original já está obsoleto, pois ainda espera que o KDC retorne chaves de sessão DES no ticket Kerberos (devido ao formato de token rxkad do AFS ter espaço apenas para uma chave de sessão de 56 bits). Como isso não acontecerá mais com um KDC moderno, você aklogusará uma variante chamada rxkad-kdf , que deriva a chave de sessão AFS de 56 bits de qualquer chave forte fornecida pelo ticket Kerberos.

    (De qualquer forma, ainda é uma chave de sessão de 56 bits... mas pelo menos tem uma vida útil muito limitada - ainda muito melhor do que ter uma chave de serviço de 56 bits que ninguém gira há séculos.)

    Supõe-se que o OpenAFS 1.9 tenha suporte adequado ao Kerberos 5 via rxgk , mas isso levará mais uma ou duas décadas para ser lançado.

    Como aes256-cts-hmac-sha1-96 parece um identificador de string, como posso determinar o "número do tipo de criptografia krb5" para esta criptografia para importá-la via asetkey?

    Você pode pesquisar no registro de parâmetros Kerberos da IANA .

    Percebi que openafs-krb5 é um pacote separado de openafs-{fileserver,dbserver,client}. Existe uma maneira recomendada de gerenciar a autenticação openafs no debian sem configurar o kerberos?

    Este pacote provavelmente existe por motivos de dependência de empacotamento (o Debian gosta de dividir as coisas) e/ou como uma relíquia da era kaserver do OpenAFS.

    A autenticação AFS sempre foi baseada em Kerberos, mas originalmente tinha um kaservercomponente que implementava um tipo AFS ligeiramente incompatível de Kerberos  IV (ou seja, o "rxkad" original). O kaserver era essencialmente um KDC Kerberos IV com ferramentas de administração estilo AFS (o comando 'kas' semelhante a 'pts') e, claro, com replicação de banco de dados Ubik.

    (A propósito, é daí que vem a limitação "somente DES" do AFS - Kerberos IV suportava apenas DES e o kaserver AFS também, portanto, os tokens rxkad são dimensionados para caber apenas em chaves de 56 bits até hoje.)

    Então, do ponto de vista do empacotamento Debian, alguns lançamentos atrás, você teria a opção de instalar um aklogque obtivesse tokens rxkad diretamente de um kaserver e um aklogque obtivesse tickets Krb5 e os convertesse em tokens rxkad.

    Mas como o Krb4 está completamente obsoleto hoje em dia (ele tinha alguns problemas críticos além de ser limitado ao DES único), o kaserver foi removido do OpenAFS e você deve executar um KDC Kerberos 5 padrão ao lado.

    Descobri que akeyconvert afirma ajudar a importar chaves do formato krb5 keytab para o formato KeyFileExt. Devo usar o akeyconvert para converter minha chave afs.keytab em openafs?

    Sim, você deveria usar akeyconvert, mas se quisesse usar asetkey, poderia ser feito assim:

    #!/usr/bin/env bash
    
    # https://www.iana.org/assignments/kerberos-parameters/kerberos-parameters.xhtml
    declare -A etypes=(
        ["aes256-cts-hmac-sha1-96"]=18
        ["aes128-cts-hmac-sha1-96"]=17
        ["des3-cbc-sha1"]=16
        ["arcfour-hmac"]=23
    )
    
    declare keytab="/etc/openafs/server/rxkad.keytab"
    declare ThisCell=$(< /etc/openafs/ThisCell)
    
    # NOTE: This expects the MIT flavor of `klist`.
    klist -ekt "$keytab" | while read -r kvno _ _ princ etype; do
        princ=${princ%%@*}
        if [[ "$princ" == "afs/$ThisCell" ]]; then
            etype=${etype//[()]}
            etype_id=${etypes[$etype]}
            if [[ "$etype_id" ]]; then
                (set -x; asetkey add rxkad_krb5 "$kvno" "$etype_id" "$keytab" "$princ")
            else
                echo "$0: unknown etype $etype" >&2
            fi
        fi
    done
    
    • 0

relate perguntas

  • As entradas krb5.keytab precisam ter o tipo de serviço em letras maiúsculas

  • Samba 4.11 e des-cbc-md5

  • centos e nfs kerberizado funcionam bem, mas apenas para nfs3

  • Quais são os requisitos para um nome de domínio Kerberos?

  • host/[email protected] não encontrado no banco de dados Kerberos

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve