Problema com a autenticação mount e kerberos

0

Eu não sou um administrador de sistemas, mas um engenheiro de software, mas para o meu projeto atual precisamos usar a autenticação Kerberos entre um servidor Linux e um cliente Linux e estou tendo alguns problemas, então espero que vocês possam ajudar. Meu principal problema com o kerberos é que ele existe e que eu preciso lidar com isso.

Mas, para ser mais preciso, fiz o seguinte:

Criei uma máquina virtual do Windows server 2012 que é meu Active directory. Eu configurei o diretório ativo e deixei.

Em seguida, no meu servidor e cliente, instalei o krb5 e o samba e configurei os arquivos de configuração da seguinte forma:

krb5.conf:

includedir /var/lib/sss/pubconf/krb5.include.d/ [logging] default = FILE:/caringo/ganesha/bin/logs/krb5libs.log kdc = FILE:/caringo/ganesha/bin/logs/krb5kdc.log admin_server = FILE:/caringo/ganesha/bin/logs/kadmind.log [libdefaults] default_tkt_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc default_tgs_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc permitted_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc allow_weak_crypto = 1 default_realm = CAR.LOCAL dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false [realms] CAR.LOCAL = { kdc = caringo_ad.car.local admin_server = caringo_ad.car.local } [domain_realm] .car.local = CAR.LOCAL car.local = CAR.LOCAL [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }

samba.conf:

server string = Samba Server Version %v security = ads realm = CAR.LOCAL workgroup = CAR passdb backend = tdbsam kerberos method = dedicated keytab create krb5 conf = no dedicated keytab file = /etc/krb5.keytab preferred master = no local master = no domain master = no

Então, depois de configurar o samba e o krb5 no meu cliente e no servidor com as mesmas informações, adicionei as duas máquinas ao diretório ativo com o uso de:

[root@optimusprime]# net ads join -k CAR.LOCAL Using short domain name -- CAR Joined 'OPTIMUSPRIME' to dns domain 'car.local' [root@optimusprime]# net ads testjoin Join is OK

Agora, ambas as minhas máquinas estão visíveis no centro administrativo do domínio ativo.

Então, em seguida, gerei um arquivo keytab na minha máquina com:

[root@optimusprime]# net ads keytab create [root@optimusprime]# net ads keytab list Vno Type Principal 5 DES cbc mode with CRC-32 host/[email protected] 5 DES cbc mode with RSA-MD5 host/[email protected] 5 AES-128 CTS mode with 96-bit SHA-1 HMAC host/[email protected] 5 AES-256 CTS mode with 96-bit SHA-1 HMAC host/[email protected] 5 ArcFour with HMAC/md5 host/[email protected] 5 DES cbc mode with CRC-32 host/[email protected] 5 DES cbc mode with RSA-MD5 host/[email protected] 5 AES-128 CTS mode with 96-bit SHA-1 HMAC host/[email protected] 5 AES-256 CTS mode with 96-bit SHA-1 HMAC host/[email protected] 5 ArcFour with HMAC/md5 host/[email protected] 5 DES cbc mode with CRC-32 [email protected] 5 DES cbc mode with RSA-MD5 [email protected] 5 AES-128 CTS mode with 96-bit SHA-1 HMAC [email protected] 5 AES-256 CTS mode with 96-bit SHA-1 HMAC [email protected] 5 ArcFour with HMAC/md5 [email protected]

Então, como meu servidor e clientes usarão o mount nfs4, adicionei o princípio nfs ao arquivo keytab no servidor.

[root@optimusprime]# net ads keytab add nfs [root@optimusprime]# net ads keytab list | grep -i nfs 7 DES cbc mode with CRC-32 nfs/[email protected] 7 DES cbc mode with RSA-MD5 nfs/[email protected] 7 AES-128 CTS mode with 96-bit SHA-1 HMAC nfs/[email protected] 7 AES-256 CTS mode with 96-bit SHA-1 HMAC nfs/[email protected] 7 ArcFour with HMAC/md5 nfs/[email protected] 7 DES cbc mode with CRC-32 nfs/[email protected] 7 DES cbc mode with RSA-MD5 nfs/[email protected] 7 AES-128 CTS mode with 96-bit SHA-1 HMAC nfs/[email protected] 7 AES-256 CTS mode with 96-bit SHA-1 HMAC nfs/[email protected] 7 ArcFour with HMAC/md5 nfs/[email protected]

Em seguida, executei o comando setspn para adicionar o protocolo nfs para computadores e usuários (o código abaixo é de quando executei o comando setspn como um segundo comando para que os princípios já existam).

C:\Users\Administrator>setspn -a nfs/centos72.car.local centos72 Checking domain DC=car,DC=local CN=centos72,CN=Computers,DC=car,DC=local nfs/centos72.car.local nfs/centos72 HOST/centos72.car.local HOST/CENTOS72 Duplicate SPN found, aborting operation! C:\Users\Administrator>setspn -a nfs/optimusprime.car.local optimusprime Checking domain DC=car,DC=local CN=optimusprime,CN=Computers,DC=car,DC=local nfs/optimusprime.car.local nfs/optimusprime HOST/optimusprime.car.local HOST/OPTIMUSPRIME Duplicate SPN found, aborting operation!

Então agora eu tenho meu keytab pronto, ambas as máquinas foram adicionadas ao diretório ativo, e meu comando mount deve funcionar.

Eu inicio meu servidor e testo o comando mount, primeiro sem a autenticação do kerberos:

[root@centos72]# mount -t nfs4 -o sec=sys SERVERIP:/ /mnt -v mount.nfs4: timeout set for Wed Feb 17 09:47:24 2016 mount.nfs4: trying text-based options 'sec=sys,addr=SERVERIP,clientaddr=CLIENTIP' [root@centos72]# cd /mnt [root@centos72 mnt]# ls MOUNTEDFOLDER

Isso funciona, eu sou todo-poderoso.

Vou parar o servidor e iniciá-lo com sec = krb5 e, em seguida, tentar montar o mesmo do cliente:

[root@centos72 /]# mount -t nfs4 -o sec=krb5 SERVERIP:/ /mnt -v mount.nfs4: timeout set for Wed Feb 17 09:52:46 2016 mount.nfs4: trying text-based options 'sec=krb5,addr=SERVERIP,clientaddr=CLIENTIP' mount.nfs4: mount(2): Invalid argument mount.nfs4: an incorrect mount option was specified

Eu amaldiçoo os deuses e vou para os meus registros.

Dentro de / var / log / message, vejo a seguinte mensagem:

Feb 17 09:09:55 centos72 [sssd[ldap_child[17108]]]: Failed to initialize credentials using keytab [MEMORY:/etc/krb5.keytab]: Preauthentication failed. Unable to create GSSAPI-encrypted LDAP connection. Feb 17 09:09:55 centos72 [sssd[ldap_child[17108]]]: Preauthentication failed

E isso é onde eu estou preso, eu não sei se há algo adicional que eu preciso fazer no diretório ativo ou o keytab ou qualquer outra coisa para fazer isso funcionar.

Alguém tem alguma ideia?

    
por Adilicious 17.02.2016 / 13:33

0 respostas