On 13/01/12 04:37, steve wrote:
On 13/01/12 03:06, steve wrote:
On 12/01/12 19:53, Gémes Géza wrote:
2012-01-12 11:16 keltezéssel, steve írta:
On 12/01/12 08:49, Andrew Bartlett wrote:
On Thu, 2012-01-12 at 06:15 +0100, Gémes Géza wrote:
2012-01-11 23:48 keltezéssel, steve írta:
Hi
After starting Samba 4, before anyone can do anything, Administrator
has to do a kinit to get a new ticket. This creates a cache
/tmp/krb5cc_0 with an expiry time.

I've created a host principal and put it into the keytab:
samba-tool spn add host someuser
samba-tool domain exportkeytab /etc/krb5.keytab
--principal=host/HH3.SITE

How can I keep Samba 4 up without having to get a new Administrator
ticket every 10 hours?

Thanks,
Steve


That looks really strange.
Indeed.  Samba does not require a valid ticket in /tmp/krb5cc_0 to
operate. It creates it's own internal credentials cache when required
using the machine account password.

Something else is going on here.

Andrew Bartlett

Hi
Yes, I'm sorry. There is something else. I was trying to keep the post
short.

I've added rfc2307 attributes to the Samba 4 LDAP and am mapping Linux
users using nslcd so that when they login and be placed in heir /home
directory, have the correct uid:gid etc.

grep -v "#" /etc/nslcd.conf
uid root
gid root
uri ldap://127.0.0.1/
base dc=hh3,dc=site
binddn cn=Administrator,cn=Users,dc=hh3,dc=site
bindpw AbcD@123
map    passwd uid              sAMAccountName
map    passwd homeDirectory    unixHomeDirectory
map    shadow uid              sAMAccountName
sasl_mech GSSAPI
sasl_realm HH3.SITE
#krb5_ccname /tmp/krb5cc_0

Without /tmp/krb5cc_0, getent passwd does not work and Linux users are
not mapped to their /home directory, shell etc.

My full method is here:
http://linuxcostablanca.blogspot.com/2011/12/samba-4-linux-integration-first-i-want.html


You mention that Samba 4 creates it's cache as needed. Could you tell
me if that is a file I could access? At the moment, nslcd looks at
/tmp/krb5cc_0 but /etc/nslcd.conf has a configuration option line
which could point to another cache file. I had and still have, that
line commented out to see what the default was.

Thanks so much for your patience.
Steve.

The problem then is not samba related at all. It is nslcd at culprit then?

I would suggest a differently configured nslcd then.
First create an account named something like:
accountfornslcdoperationsorsomethingsimilarlyboringnameidontmind ;-)
then extract a keytab for it:
samba-tool domain exportkeytab
--principal=thepreviouslycreatedprincipalwithatterriblyboringname
/path/to/the/keytab/file/to/be/created
Then following some guide like:
http://lists.arthurdejong.org/nss-pam-ldapd-users/2010/msg00125.html
configure nslcd to do kerberized lookup against the Samba4 LDAP service.

Regards

Geza
Hi Geza
How about this:

samba-tool user add boring-nslcd-account
samba tool spn add host boring-nslcd-account
samba-tool samba-tool domain exportkeytab /etc/krb5.keytab --principal=host/HH3.SITE

Then this:

 /etc/nslcd.conf

uri ldap://192.168.1.3/
base dc=hh3,dc=site
binddn cn=Administrator,cn=Users,dc=hh3,dc=site
bindpw BCa@7aBC
map    passwd uid              sAMAccountName
map    passwd homeDirectory    unixHomeDirectory
map    shadow uid              sAMAccountName
sasl_mech GSSAPI
sasl_realm HH3.SITE
#krb5_ccname /tmp/krb5cc_0

Does that make sense?
Thanks
Steve
OK
Disaster. New build from git checkout today.
 klist -k /etc/krb5.keytab Keytab name: WRFILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 [email protected]
   1 host/[email protected]
   1 host/[email protected]
   1 host/[email protected]

getent passwd gives:

Kerberos: TGS-REQ [email protected] from ipv4:192.168.1.3:45733 for krbtgt/[email protected] [renewable] Failed find a single entry for (&(objectClass=trustedDomain)(|(flatname=SITE)(trustPartner=SITE))): got 0
Kerberos: samba_kdc_fetch: could not find principal in DB
Kerberos: Server not found in database: krbtgt/[email protected]: no such entry found in hdb
Kerberos: Failed building TGS-REP to ipv4:192.168.1.3:45733

The krbtgt/[email protected] looks bad.

/var/log/messages gives:

Jan 13 04:29:22 hh3 nslcd[4606]: [8b4567] failed to bind to LDAP server ldap://127.0.0.1/: Can't contact LDAP server: Transport endpoint is not connected
Jan 13 04:29:22 hh3 nslcd[4606]: [8b4567] no available LDAP server found
Jan 13 04:30:45 hh3 nslcd[4606]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database) Jan 13 04:30:45 hh3 nslcd[4606]: [7b23c6] failed to bind to LDAP server ldap://127.0.0.1/: Local error
Jan 13 04:30:45 hh3 nslcd[4606]: [7b23c6] no available LDAP server found

Any ideas here? Where can I start to look? Thanks for your patience.
Steve
OK
Getting somewhere. I've got rid of the Kerberos: Server not found in database: krbtgt/[email protected] error.

Now samba 4 is giving me this:

ldb_wrap open of secrets.ldb
Terminating connection - 'ldapsrv_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED' single_terminate: reason[ldapsrv_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED]

and /var/log/messages this:

Jan 13 12:19:39 hh3 nslcd[3465]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Credentials cache permissions incorrect) Jan 13 12:19:39 hh3 nslcd[3465]: [8b4567] failed to bind to LDAP server ldap://localhost: Local error
Jan 13 12:19:39 hh3 nslcd[3465]: [8b4567] no available LDAP server found

Finally got the new git working. Something must have changed since the last checkout I used because I had to comment out the:

sasl_mech GSSAPI

in /etc/nslcd.conf

I now have this:
 grep -v "#" /etc/nslcd.conf

uid nslcd-user
gid nslcd-user
uri ldap://localhost
base dc=hh3,dc=site
binddn cn=Administrator,cn=Users,dc=hh3,dc=site
bindpw 12345678
map    passwd uid              sAMAccountName
map    passwd homeDirectory    unixHomeDirectory
map    shadow uid              sAMAccountName

#sasl_mech GSSAPI
sasl_realm HH3.SITE
krb5_ccname /tmp/krb5cc_0

I have made a linux user and group called nslcd-user to run nslcd. I have also made a samba 4 user called nslcd-user and made a host principal with him and exported that to the keytab. However, I'm back at the same problem. How do I give the nslcd-user a ticket that nslcd can use? I can use kinit and get a ticket cache for nslcd-user, but it only lasts for 10 hours. In the docs you referenced, the guy says:

'I have setup a real user that the daemon will run as, and have given that user a valid kerberos tgt' and gives this line in /etc/nslcd.conf

krb5_ccname /var/run/nslcd/nslcd.tkt

How has the guy 'given that user a valid kerberos tgt'?

IOW, how do _I_ on openSUSE 12.1 get that magic nslcd.tkt file to put in /var/run/nslcd ?????

Its been a long night!
Cheers
Steve
--
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/options/samba

Reply via email to