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

198 Commits

Author SHA1 Message Date
Andrew Tridgell
fee98137ad r2615: fixed a bug in the server side support for CONNECT level security 2007-10-10 12:59:12 -05:00
Andrew Tridgell
f4660857bc r2614: support CONNECT level DCE/RPC security in both client and
server. CONNECT security uses NTLMSSP, but does not do any signing or
sealing (or equivalently, its like signing, but with a zero filled
checksum).
2007-10-10 12:59:12 -05:00
Andrew Tridgell
efb2b88edd r2592: this fixes one of the security memory leaks in the server 2007-10-10 12:59:10 -05:00
Andrew Bartlett
f3bf57ca6b r2537: Add static and use strlen_m instead of str_charnum().
Andrew Bartlett
2007-10-10 12:59:04 -05:00
Jelmer Vernooij
00de28876d r2519: Registry RPC pipe fixes (use struct registry_key instead of REG_KEY, etc) 2007-10-10 12:59:01 -05:00
Andrew Bartlett
131420b45e r2515: Fixes from smbtorture - these session keys are not individually encrypted.
Andrew Bartlett
2007-10-10 12:59:01 -05:00
Tim Potter
32f0f3154a r2458: Rename policy handle parameters for the SAMR pipe. Parameters now
have the handle type implied by the parameter name.  There are four
types of handle: connect, domain, user and group handles.  The
various samr_Connect functions return a connect handle, and the
samr_OpenFoo functions return a foo handle.

There is one exception - the samr_{Get,Set}Security function can
take any type of handle.

Fix up all C callers.
2007-10-10 12:58:55 -05:00
Stefan Metzmacher
2fd577d241 r2447: let the server code use the new lib/socket/ stuff
metze
2007-10-10 12:58:54 -05:00
Andrew Tridgell
1b4cee825e r2435: got rid of another pointless strnequal() 2007-10-10 12:58:52 -05:00
Stefan Metzmacher
1854907da8 r2326: remove definition and usage of struct socket_context
metze
2007-10-10 12:58:44 -05:00
Andrew Tridgell
daaee86d14 r2301: add a server side warning when we receive more RPC data than we
expect. It isn't an error as w2k3 does this on its first packet when
NTLM2 signing is used.
2007-10-10 12:58:41 -05:00
Andrew Tridgell
fce7a4218b r2294: this fixes the NTLM2 sign+seal combination. I have now tested:
NTLM sign
 NTLM sign+seal
 NTLM2 sign
 NTLM2 sign+seal

and all of the above both with and without key exchange

the NTLM2 seal case is ugly and involves an extra data copy, which
some API changes in gensec or the ndr layer might avoid in future.
2007-10-10 12:58:40 -05:00
Andrew Tridgell
d8825b69ac r2293: fixed older NTLM sign/seal in the server 2007-10-10 12:58:40 -05:00
Andrew Bartlett
b80d849b6b r2290: Fix 'lsakey' for the server-side, it is static for
'authenticated' connections.

Fix kerberos session key issues - we need to call the
routine for extracting the session key, not just read the cache.

Andrew Bartlett
2007-10-10 12:58:40 -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
a089bcf503 r2282: Remove one more magic constant from the source, replace with sizeof().
Andrew Bartlett
2007-10-10 12:58:39 -05:00
Andrew Bartlett
7be16e5036 r2281: Add a few comments. 2007-10-10 12:58:38 -05:00
Andrew Tridgell
3b4ed24f4b r2280: fixed the session key choice for ncacn_np and ncacn_ip_tcp in the rpc server 2007-10-10 12:58:38 -05:00
Tim Potter
6c1a72c5d6 r2247: talloc_destroy -> talloc_free 2007-10-10 12:58:34 -05:00
Andrew Tridgell
a5eb6cad50 r2105: added a TestSleep() operation to the echo pipe and extended the
RPC-ECHO test to use it to test asynchronous rpc operations.
2007-10-10 12:58:25 -05:00
Stefan Metzmacher
98e4b23d45 r2059: abartlet: is there a better way to fix this compiler warning
(the same problem as in -r 2056)

metze
2007-10-10 12:58:22 -05:00
Andrew Bartlett
8115e44d47 r2055: Add PRINTF_ATTRIBUTE to many more parts of the code, and a new
--enable-developer warning for when they are missing.

Andrew Bartlett
2007-10-10 12:58:21 -05:00
Andrew Tridgell
da60987a92 r2051: switched the samdb over to using the new destructor and reference
count features of talloc, instead of re-implementing both those
features inside of samdb (which is what we did before).

This makes samdb considerably simpler, and also fixes some bugs, as I
found some error paths that didn't call samdb_close(). Those are now
handled by the fact that a talloc_free() will auto-close and destroy
the samdb context, using a destructor.
2007-10-10 12:58:21 -05:00
Andrew Tridgell
1fdccf8dc7 r2050: fixed a case where code assumed you could Realloc the result of a data_blob() 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
Andrew Tridgell
5894b5c0f3 r2038: get rid of the optimisation in the dcerpc server that tries to avoid a
data copy by playing internal games with DATA_BLOB and free().
2007-10-10 12:58:19 -05:00
Andrew Bartlett
486215edc1 r1993: Allow WinXP domain logon to progress a bit further (it seems broken for me).
Fix indent, and add a few more useful debug messages.

Send a fault, if the bind is not accepted - don't just leave the client hanging.

Andrew Bartlett
2007-10-10 12:58:15 -05:00
Andrew Tridgell
e35bb094c5 r1983: a completely new implementation of talloc
This version does the following:

  1) talloc_free(), talloc_realloc() and talloc_steal() lose their
     (redundent) first arguments

  2) you can use _any_ talloc pointer as a talloc context to allocate
     more memory. This allows you to create complex data structures
     where the top level structure is the logical parent of the next
     level down, and those are the parents of the level below
     that. Then destroy either the lot with a single talloc_free() or
     destroy any sub-part with a talloc_free() of that part

  3) you can name any pointer. Use talloc_named() which is just like
     talloc() but takes the printf style name argument as well as the
     parent context and the size.

The whole thing ends up being a very simple piece of code, although
some of the pointer walking gets hairy.

So far, I'm just using the new talloc() like the old one. The next
step is to actually take advantage of the new interface
properly. Expect some new commits soon that simplify some common
coding styles in samba4 by using the new talloc().
2007-10-10 12:58:14 -05:00
Stefan Metzmacher
a6ce6ee878 r1843: return DCERPC_FAULT_LOGON_FAILURE when the auth fails
metze
2007-10-10 12:58:00 -05:00
Andrew Tridgell
ec41c73ae1 r1818: _really_ fixed epmapper this time, it was using more than one old rpc interface method. 2007-10-10 12:57:59 -05:00
Andrew Tridgell
b2152912ca r1817: fixed fault code generation for unimplemented functions in epmapper
thanks to volker for spotting these!
2007-10-10 12:57:59 -05:00
Volker Lendecke
48df39c133 r1814: Fix the build.
Tridge, in rpc_epmapper.c there's a whole bunch of "return
NT_STATUS_NOT_IMPLEMENTED". You told me that's wrong, you should generate the
correct fault pdu. Or is epmapper special in that respect?

Volker
2007-10-10 12:57:58 -05:00
Andrew Tridgell
ecb7378bbc r1757: much simpler (and smaller, faster etc) way of doing relative pointers
in pidl. This mechanism should be much easier to extend to the
"retrospective subcontexts" that jelmer needs.

also produced more standards complient full-pointer offsets. This
keeps ethereal happy with decoding our epmapper frames.
2007-10-10 12:57:54 -05:00
Jelmer Vernooij
547f860285 r1703: - Lots of RPC updates, adding new pipes and protocols.
- More updates/fixes to the ethereal parser generator
2007-10-10 12:57:49 -05:00
Stefan Metzmacher
76cb9966bf r1546: fix the build the function name has changed to srvsvc_NetRemoteTOD
because I implemented the idl for it

metze
2007-10-10 12:57:41 -05:00
Andrew Tridgell
0c5a5632a8 r1519: show the ldb_errstring() value in the log for failed ldb calls 2007-10-10 12:57:38 -05:00
Stefan Metzmacher
0e1f5e66d3 r1514: close stuff from the server_connection not in the
close_connection fn of a specific service

metze
2007-10-10 12:57:37 -05:00
Stefan Metzmacher
d7dd5347dd r1513: change DEBUG level to 1
metze
2007-10-10 12:57:37 -05:00
Andrew Bartlett
b97d3cb2ef r1498: (merge from 3.0)
Rework our random number generation system.

On systems with /dev/urandom, this avoids a change to secrets.tdb for every fork().

For other systems, we now only re-seed after a fork, and on startup.
No need to do it per-operation.  This removes the 'need_reseed'
parameter from generate_random_buffer().

This also requires that we start the secrets subsystem, as that is
where the reseed value is stored, for systems without /dev/urandom.

In order to aviod identical streams in forked children, the random
state is re-initialised after the fork(), at the same point were we do
that to the tdbs.

Andrew Bartlett
2007-10-10 12:57:35 -05:00
Stefan Metzmacher
bbe5e00715 r1486: commit the start of the generic server infastructure
the idea is to have services as modules (smb, dcerpc, swat, ...)

the process_model don't know about the service it self anymore.

TODO:
- the smbsrv should use the smbsrv_send function
- the service subsystem init should be done like for other modules
- we need to have a generic socket subsystem, which handle stream, datagram,
  and virtuell other sockets( e.g. for the ntvfs_ipc module to connect to the dcerpc server
  , or for smb or dcerpc or whatever to connect to a server wide auth service)
- and other fixes...

NOTE: process model pthread seems to be broken( but also before this patch!)

metze
2007-10-10 12:57:35 -05:00
Stefan Metzmacher
80851e6778 r1335: NT_STATUS_INTERNAL_DB_CORRUPTION
should cause DEBUG(0,(...));

metze
2007-10-10 12:56:50 -05:00
Tim Potter
0edf17ac38 r1313: Split up OpenPrinterEx into functions to handle opening printers and print
servers.
2007-10-10 12:56:50 -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
Tim Potter
cf4e9080d5 r1276: Return data for enumprinters level 2 and 5. 2007-10-10 12:56:48 -05:00
Tim Potter
60e48790dc r1271: Return spoolss enumprinters info level1 from spoolss.ldb - woot! 2007-10-10 12:56:47 -05:00
Tim Potter
1162e2fcff r1270: Start to break samdb into general bits so we can share code with other
similar dbs.
2007-10-10 12:56:47 -05:00
Tim Potter
de5984c956 r1268: varient -> variant 2007-10-10 12:56:46 -05:00
Tim Potter
6b24ee3864 r1266: Start to split out EnumPrinters into a separate fn for each info level. 2007-10-10 12:56:46 -05:00
Stefan Metzmacher
d3b80fd40a r1235: as the pidl code init all output data.
we should do it manualy too.

metze
2007-10-10 12:56:46 -05:00
Stefan Metzmacher
b8b4d0d5bf r1234: valgrind found this uninitialised var...
But I don't know how to fix this correct,
so maybe this needs to be fixed

(tridge: can you please look at this)

metze
2007-10-10 12:56:46 -05:00