1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-11 08:23:49 +03:00
Commit Graph

26 Commits

Author SHA1 Message Date
Andrew Tridgell
7b7477ac42 r3453: - split out the auth and popt includes
- tidied up some of the system includes

- moved a few more structures back from misc.idl to netlogon.idl and samr.idl now that pidl
  knows about inter-IDL dependencies
2007-10-10 13:05:13 -05:00
Andrew Bartlett
e08366ffeb r3110: Fix the krb5 client and server, so that it doesn't segfault. There
were also gensec bugs that didn't turn up until we hit error paths in
the krb5 code.

Andrew Bartlett
2007-10-10 13:02:22 -05:00
Stefan Metzmacher
30aa8af044 r2860: add gensec_have_feature() to check what feature are used in the connection
metze
2007-10-10 12:59:39 -05:00
Andrew Bartlett
18367c4235 r2859: It seems useful to allow the seal/unseal functions in gensec to pass
though to the sign/check_sig functions.

Andrew Bartlett
2007-10-10 12:59:39 -05:00
Stefan Metzmacher
d02fab41f8 r2850: - check for GENSEC_WANT_SEAL in gensec_unseal_packet()
- pass functions to the subcontext in spnego

metze
2007-10-10 12:59:38 -05:00
Andrew Tridgell
2dc334a328 r2646: - use a talloc destructor to ensure that sockets from the new socket
library are closed on abnormal termination

- convert the service.h structures to the new talloc methods
2007-10-10 12:59:16 -05:00
Andrew Tridgell
f12ee2f241 r2629: convert gensec to the new talloc model
by making our gensec structures a talloc child of the open connection
we can be sure that it will be destroyed when the connection is
dropped.
2007-10-10 12:59:14 -05:00
Andrew Tridgell
66f88c7d89 r2377: added a more generic way of disabling gensec subsystems. For example,
"gensec:ntlmssp=no" will disable ntlmssp.
2007-10-10 12:58:46 -05:00
Stefan Metzmacher
75c3108955 r2314: fix compiler warning
metze
2007-10-10 12:58:43 -05:00
Andrew Bartlett
99f7a38c07 r2307: Fix the use of 'raw' NTLMSSP to hosts that support extended security,
but do not support SPNEGO (such as XP, when not joined to a domain).

This is triggered by the presense or lack of a security blob in the
negprot reply.

Andrew Bartlett
2007-10-10 12:58:42 -05:00
Andrew Bartlett
a1fe175eec r2284: Thanks to some great detective work by tridge, NTLM2 signing now works.
This means that 'require NTLMv2 session security' now works for RPC
pipe signing.  We don't yet have sealing, but it can't be much further.

This is almost all tridge's code, munged into a form that can work
with the GENSEC API.

This commit also includes more lsakey fixes - that key is used for all
DCE-RPC level authenticated connections, even over CIFS/ncacn_np.

No doubt I missed something, but I'm going to get some sleep :-)

Andrew Bartlett
2007-10-10 12:58:39 -05:00
Andrew Bartlett
46864dd9d7 r2053: All RPC sessions 'want' a session key. Of course, the key they
currently get it bougs, but anyway...

Andrew Bartlett
2007-10-10 12:58:21 -05:00
Andrew Bartlett
86f61568ea r2041: Fix NTLMSSP RPC sealing, client -> win2k3 server.
The bug (found by tridge) is that Win2k3 is being tighter about the
NTLMSSP flags.  If we don't negotiate sealing, we can't use it.

We now have a way to indicate to the GENSEC implementation mechanisms
what things we want for a connection.

Andrew Bartlett
2007-10-10 12:58:19 -05:00
Stefan Metzmacher
68f3e53826 r1737: don't segfault when a mech don't have a session_info hook
metze
2007-10-10 12:57:51 -05:00
Andrew Bartlett
c91d6b6f9b r1724: Add a new function to return the list of available OIDs.
(Used in our SPNEGO code).

Andrew Bartlett
2007-10-10 12:57:50 -05:00
Andrew Bartlett
0e4e3647e8 r1685: Add the ability to lookup RPC auth types for the RPC-MGMT torture test.
Andrew Bartlett
2007-10-10 12:57:48 -05:00
Andrew Bartlett
de5da66939 r1475: More kerberos work
- We can now connect to hosts that follow the SPNEGO RFC, and *do not*
give us their principal name in the mechListMIC.
 - The client code now remembers the hostname it connects to

- We now kinit for a user, if there is not valid ticket already

- Re-introduce clock skew compensation

TODO:
 - See if the username in the ccache matches the username specified
 - Use a private ccache, rather then the global one, for a 'new' kinit
 - Determine 'default' usernames.
  - The default for Krb5 is the one in the ccache, then $USER
  - For NTLMSSP, it's just $USER

Andrew Bartlett
2007-10-10 12:57:34 -05:00
Andrew Tridgell
ea5659b051 r1466: the name "oid" is taken by some silly system headers - avoid it in our code 2007-10-10 12:57:33 -05:00
Jelmer Vernooij
69de0d95c5 r1449: Use the config system somewhat better in libcli/auth 2007-10-10 12:56:57 -05:00
Andrew Bartlett
1c31aa4271 r1440: GENSEC improvements:
- Infrustructure for kerberos
 - Don't segfault on un-implemented backend functions
 - Add comments.

Andrew Bartlett
2007-10-10 12:56:56 -05:00
Stefan Metzmacher
264afea9ec r1359: fix uninit var - found by valgrind
metze
2007-10-10 12:56:53 -05:00
Andrew Bartlett
7aedbfbdd9 r1357: Work on GENSEC:
- Add the concept of a 'subcontext' into gensec, so that the spengo
   code doesn't have to figure out how to make one.
   (A subcontext inherits the username, domain, password (or callback)
   from the main context).

 - Add comments to some other routines, and explain a bit about what
   the various 'start' functions are for.

Andrew Bartlett
2007-10-10 12:56:53 -05:00
Stefan Metzmacher
38e00f8719 r1348: get gensec backend by OID instead of name
metze
2007-10-10 12:56:51 -05:00
Stefan Metzmacher
41ff6d0cd4 r1344: add gensec_start_mech_by_name()
some gensec spnego fixes
(NULL pointer and length checks)

metze
2007-10-10 12:56:51 -05:00
Andrew Bartlett
07fd885fd4 r1294: A nice, large, commit...
This implements gensec for Samba's server side, and brings gensec up
to the standards of a full subsystem.

This means that use of the subsystem is by gensec_* functions, not
function pointers in structures (this is internal).  This causes
changes in all the existing gensec users.

Our RPC server no longer contains it's own generalised security
scheme, and now calls gensec directly.

Gensec has also taken over the role of auth/auth_ntlmssp.c

An important part of gensec, is the output of the 'session_info'
struct.  This is now reference counted, so that we can correctly free
it when a pipe is closed, no matter if it was inherited, or created by
per-pipe authentication.

The schannel code is reworked, to be in the same file for client and
server.

ntlm_auth is reworked to use gensec.

The major problem with this code is the way it relies on subsystem
auto-initialisation.  The primary reason for this commit now.is to
allow these problems to be looked at, and fixed.

There are problems with the new code:
- I've tested it with smbtorture, but currently don't have VMware and
  valgrind working (this I'll fix soon).
- The SPNEGO code is client-only at this point.
- We still do not do kerberos.

Andrew Bartlett
2007-10-10 12:56:49 -05:00
Andrew Bartlett
902af49006 r1200: Add 'gensec', our generic security layer.
This layer is used for DCERPC security, as well as ntlm_auth at this
time.  It expect things like SASL and the CIFS layer to use it as
well.

The particular purpose of this layer is to introduce SPENGO, which
needs generic access to the actual implementation mechanisms.

Schannel, due to it's 'interesting' setup properties is in GENSEC, but
is only in the RPC code.

Andrew Bartlett
2007-10-10 12:56:44 -05:00