A localização do arquivo keytab pode ser configurada no OpenSSH?

1

Estamos executando o servidor OpenSSH no Debian jessie. Nós usamos o Kerberos como um dos nossos métodos de autenticação. O local padrão para colocar o arquivo keytab do Kerberos no servidor OpenSSH é em /etc/krb5.keytab . Existe alguma opção de configuração OpenSSH que nos permita colocar o arquivo keytab em outro lugar, ou esse local está codificado no executável do servidor OpenSSH?

    
por rlandster 21.01.2017 / 17:19

2 respostas

1

A base de código do OpenSSH (portátil) não tem referência a "keytab", então vamos direto para a configuração do kerberos em krb5.conf que encontramos:

LIBDEFAULTS SECTION
       The following relations are defined in the [libdefaults] section:

       default_keytab_name
              This  relation  specifies  the default keytab name to be used by
              application severs such as telnetd and rlogind.  The default  is
              "/etc/krb5.keytab".  This formerly defaulted to "/etc/v5srvtab",
              but was changed to the current value.

Qual pode ou não ser um valor global demais para sua necessidade, dependendo.

    
por 21.01.2017 / 18:00
1

Eu sei que esta é uma pergunta antiga, mas queria postar minha resposta enquanto procurava por isso por um tempo:

Existe uma variável de ambiente kerberos que aponta para a localização do arquivo keytab do kerberos, KRB5_KTNAME. E você certamente pode configurar isso globalmente, mas, então, todos os aplicativos examinarão esse arquivo keytab.

Mas finalmente encontrei uma ótima maneira de defini-lo em uma base específica do aplicativo quando a configuração do aplicativo não permitir isso explicitamente. Eu adicionei a variável de ambiente kerberos keytab KRB5_KTNAME para / etc / default / ssh (o restante do arquivo abaixo já estava lá por padrão):

/etc/default/ssh
# Default settings for openssh-server. This file is sourced by /bin/sh from
# /etc/init.d/ssh.

# Options to pass to sshd
SSHD_OPTS=

KRB5_KTNAME=/etc/krb/host.keytab

O arquivo acima especifica init.d, mas muitos dos arquivos de serviço systemd também fazem referência ao mesmo arquivo. Na minha instalação do Ubuntu 16.04, aqui está a seção relevante do arquivo sshd.service padrão:

/lib/systemd/system/sshd.service
[...]
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
[...]

É claro que, se o seu arquivo de serviço não contiver a linha "EnvironmentFile", você poderá adicioná-lo como descrito acima ou editar o arquivo de serviço para apontar para qualquer arquivo com a variável env KRB5_KTNAME definida.

    
por 02.08.2018 / 22:59