Re: Machine authentication and dynamic dns for AD
- From: Michael Butash <michael butash net>
- To: David Woodhouse <dwmw2 infradead org>
- Cc: networkmanager-list gnome org
- Subject: Re: Machine authentication and dynamic dns for AD
- Date: Sat, 31 Aug 2013 10:19:17 -0700
I was curious if the RH or other contributors have investigated adding
os-level machine auth support into NM, or proper dynamic dns client
support to register with AD.
How does the "OS-level machine auth support" work?
Is this Kerberos + EAP?
Under windoze or mac, essentially kerberos machine account and password
are used in peap, feeding those credentials in the dot1x session. If
certs are used theoretically it pulls the machine cert for
host/$hostname user.
I can get these machine auth creds likely either krb5 direct somehow, or
using likewise-open that we use globally for the krb integration anyways
using "lw-lsa ad-get-machine password $domain_fqdn" and
"lw-dump-machine-acct $domain_fqdn" via rpc (I believe it's using there).
This more or less allows win to resolve $domain_fqdn, chat ad/rpc, pull
gpo's, pull patches, let sccm patch it's virus of the day, etc.
Once a user logs in, it transitions to nm and user-based profiles, where
in theory would grab kerberos password and pass to the supplicant then.
This is where we'd theoretically need some nm behavior to override a
system-level auth component before the user logs in, and also a secure
method of extracting from krb or other for presentation, without keeping
a plaintext password in a keyfile. ;)
Cert challenges are a whole other beast, but as we're migrating to them
imminently internally for wired/wireless dot1x, need to begin looking at
this too beyond static profiles a user chooses. Mac's use SCEP for cert
pulls and inclusion in their keyring for this, linux *should* too likely
as everything else still looks activex-y rpc on the normal web cert ca
system (damn microsoft).
As for dynamic DNS, I currently have a horrid dispatcher.d script which
does something like:
if [ "${1/intel.com//}" != "$1" ]; then
logger "Setting Intel reverse DNS for $HOST.$DOMAIN.corp.intel.com to $2"
# We have to do it in the background or NM-dispatcher will
# time us out and kill us.
( kinit -k $HOST$ && net -k ads dns register $HOST.$DOMAIN.corp.intel.com $2 | logger) &
Theoretically winbind can do this for itself but it's crap at it — when
we get on the VPN it actually tries to set the DNS to include every IP
address on the system *except* the one we really want¹ :)
Interesting, I hadn't considered the samba suite can probably do this
(duh). Thanks for the snippet, I'll play with this and see.
One caveat is our windoze folks implement "secure updates only" in ad,
so not sure how this affects things. I know I'm looking at this as in
their windoze-only world, they don't even allow "foreign" win dhcp
services to update client records because of the whole "best practices"
thing of not having dhcp on a forest-integrated host, thus linux boxes
never get hostnames registered in dns.
Mac finally broke down and supported this too as a barrier of entry to
"enterprise" environments".
If it's the *user* password, you really shouldn't need it. For
NTLM-based authentication, winbind will be able to proxy it for you. Or
ideally you can use Kerberos. Although that's a little complex since the
ccache is owned by the user, not root.
If it really does have to have the *password*, then perhaps we should be
looking at a PAM module to steal it (much like gnome-keyring does).
I absolutely agree here, and ass-u-me'd it could/did/should until
snooping around the keyfiles playing with pmk/okc for roaming
performance and noticed that. Was like "really? we haven't figured out
a better way to do this yet?". Would be nice to have it look for krb
ticket presence for credentials, or at least have a pull mechanism from
krb to gnome keyring to keep the pass in synch for pass changes and such.
Thanks for the comments David, very helpful!
-mb
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]