1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-25 06:04:04 +03:00

62 Commits

Author SHA1 Message Date
Stefan Metzmacher
c5fbb6f23c r1654: rename cli_ -> smbcli_
rename CLI_ -> SMBCLI_

metze
(This used to be commit 8441750fd9427dd6fe477f27e603821b4026f038)
2007-10-10 12:57:47 -05:00
Andrew Tridgell
90fbb2d01f r1518: check for ldb_search giving -1 (indicating db corruption)
(This used to be commit 9af821c4dfa47d68be5e062028331c80df64f82b)
2007-10-10 12:57:38 -05:00
Andrew Bartlett
f607197054 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
(This used to be commit b97d3cb2efd68310b1aea8a3ac40a64979c8cdae)
2007-10-10 12:57:35 -05:00
Stefan Metzmacher
45a85bdd35 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
(This used to be commit bbe5e00715ca4013ff0dbc345aa97adc6b5c2458)
2007-10-10 12:57:35 -05:00
Andrew Bartlett
b62e6f1ec1 r1461: ntlm_check.c is a server-side peice of code, so it belongs in AUTH.
Andrew Bartlett
(This used to be commit 67ac9600664e93aa2fe9426127313b57ddaec2cf)
2007-10-10 12:57:32 -05:00
Stefan Metzmacher
b82881591c r1335: NT_STATUS_INTERNAL_DB_CORRUPTION
should cause DEBUG(0,(...));

metze
(This used to be commit 80851e67783a9c3c8bdd7f2b52e0b46dd7b18d05)
2007-10-10 12:56:50 -05:00
Stefan Metzmacher
92ca39eff6 r1334: remove unused stuff
metze
(This used to be commit 7a8786269b4f9e4962b51dd734171adf04021c15)
2007-10-10 12:56:50 -05:00
Andrew Bartlett
dc9f55dbec 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
(This used to be commit 07fd885fd488fd1051eacc905a2d4962f8a018ec)
2007-10-10 12:56:49 -05:00
Andrew Bartlett
fe0706d5d5 r1292: Add const to the subsystem/module registration code.
Add some 'multi init' code, until we get a better set of infrustructure.

Andrew Bartlett
(This used to be commit 982422b2d286335378531ae9523e74192340af3c)
2007-10-10 12:56:49 -05:00
Andrew Tridgell
f62fffb1c5 r1151: fixed fill-in of force_password_change field in auth_sam
(This used to be commit 9135f14540ded30892dc1f944aec1e8979a476e1)
2007-10-10 12:56:41 -05:00
Andrew Tridgell
6c13c97ac2 r1146: initially zero server info
(This used to be commit c1aeaf97b39e1769bd43b21225094bb5128eaab4)
2007-10-10 12:56:40 -05:00
Andrew Tridgell
112fac1cde r1143: fixed spelling of sAMAccountName
(This used to be commit aadfbcee76a9181a540620f3b0827a3268b63a0e)
2007-10-10 12:56:40 -05:00
Andrew Bartlett
0387684df6 r1142: I think this should fix the interactive logins for tridge - don't take
sizeof() a pointer...

Andrew Bartlett
(This used to be commit c1019e6df6aa4fcce7dc2ccbd404a4254ab5d1fb)
2007-10-10 12:56:40 -05:00
Andrew Tridgell
c1e88ab8b2 r1138: allow for a user in no groups
(This used to be commit f9c1e12594e58b7e663ca099929eab8867b82a0c)
2007-10-10 12:56:40 -05:00
Andrew Tridgell
bccac81d87 r1136: - added IDL for netr_LogonGetDomainInfo()
- added workstation to auth_session_info in rpc servers

- added session key fetch hook in crypto backends in dcesrv

- store and fetch seed as well as a session key in schannel ldb

- when a client uses schannel to setup a netlogon pipe connection we
  also need to setup the credentials from the schannel negotiation so
  credentials chaining works

- added server side netr_LogonGetDomainInfo() call
(This used to be commit a35459387de3b6a422c5af6f658338fc7e4314b0)
2007-10-10 12:56:39 -05:00
Stefan Metzmacher
b717b40235 r1078: the dxesrv_crypto_* implementations should now explicit set
the dce_conn->auth_state.session_info
( the ntlmssp one works fine, but the schannel one isn't implemented yet)

this is also set by the ntvfs_ipc backend on the endpoint connect.

metze
(This used to be commit ad3dd1789e9f124493519cb4731d9f5a563fd051)
2007-10-10 12:56:37 -05:00
Stefan Metzmacher
6564fd402d r1067: fix compiler warnings
metze
(This used to be commit e5d338821e590c49947a18a5d5c361122571988d)
2007-10-10 12:56:36 -05:00
Andrew Bartlett
0d9e31cf16 r1063: userdom_struct dies!
(Cleanup unused header definitions)

Andrew Bartlett
(This used to be commit 5941873f558c2af6ab5ef64e468acc8fab96ac01)
2007-10-10 12:56:36 -05:00
Andrew Bartlett
bcac502d44 r1058: The start of work on the SamLogon call for NETLOGON.
This starts to store information about the user in the server_info
struct - like the account name, the full name etc.

Also, continue to make the names of the structure elements in the
logon reply more consistant with those in the SAMR pipe.

Andrew Bartlett
(This used to be commit 3ccd96bd945e0fd95e42c69ad8ff07055af2e62b)
2007-10-10 12:56:35 -05:00
Andrew Bartlett
c455b0a935 r1028: More consistancy fixes, which should also fix the build.
Andrew Bartlett
(This used to be commit 0d2ae66d3a82134d86084f63c05214e03dfcb48b)
2007-10-10 12:56:30 -05:00
Andrew Bartlett
35af895350 r1027: More rename:
pwd -> password

(should fix the build).

Andrew Bartlett
(This used to be commit f9280f956eef19ad1a39e120cb3ed0e3982fe7d5)
2007-10-10 12:56:30 -05:00
Tim Potter
21aaa719b5 r1026: Spelling.
(This used to be commit b7fe73613acf5423b77fd91c56849351bf386960)
2007-10-10 12:56:30 -05:00
Andrew Bartlett
5b04ca8080 r1025: Rename (across the samr and netlogon pipes, so far)
pwd -> password
passwd -> password

username -> account_name

Also work on consistant structure feild names between these two pipes,
and fix up some callers to use samr_Password for the netlogon
credential code.

Andrew Bartlett
(This used to be commit 4e35418c2776f7b79be5b358ffd077754685d1ac)
2007-10-10 12:56:30 -05:00
Andrew Bartlett
306fcbd063 r1023: Prepare the auth subsystem interfaces for netlogon SamLogon to use.
Andrew Bartlett
(This used to be commit b5fa2baaa9e110aa93107b13744e1fc5a64adbb5)
2007-10-10 12:56:28 -05:00
Andrew Bartlett
42b6b71493 r1021: Because auth_serversupplied_info is not reference counted, this may
only be called once per authentication.

Andrew Bartlett
(This used to be commit 9a5de8de952a4e5c3eadccf42d034fa7cfd55171)
2007-10-10 12:56:28 -05:00
Andrew Bartlett
8de7e76e78 r1020: Add an (untested, until the other end is hooked in) method for
obtaining the session_info from an NTLMSSP authenticated user.

Andrew Bartlett
(This used to be commit 7961f1a18d67a6a0cf2c61bcc1c3b42ed06176f7)
2007-10-10 12:56:28 -05:00
Andrew Bartlett
0d466258be r1019: Push the auth subsystem away from using typedef, and over to the 'all
goodness and light' struct ;-)

Break apart the auth subsystem's return strucutres, into the parts
that a netlogon call cares about, and the parts that are for a local
session.  This is the 'struct session_info' and it will almost
completly replace the current information stored on a vuid, but be
generic to all login methods (RPC over TCP, for example).

Andrew Bartlett
(This used to be commit d199697014d9562f9439a30b950fda798c5ef419)
2007-10-10 12:56:28 -05:00
Stefan Metzmacher
8f84a98e29 r1001: in samba4 we don't(shouldn't) use typedef's anymore...
metze
(This used to be commit ac5f6f7e511a730448012c8a709887827aea2281)
2007-10-10 12:56:25 -05:00
Andrew Tridgell
8087d844ef r995: - renamed many of our crypto routines to use the industry standard
names rather than our crazy naming scheme. So DES is now called
  des_crypt() rather than smbhash()

- added the code from the solution of the ADS crypto challenge that
  allows Samba to correctly handle a 128 bit session key in all of the
  netr_ServerAuthenticateX() varients. A huge thanks to Luke Howard
  from PADL for solving this one!

- restructured the server side rpc authentication to allow for other
  than NTLMSSP sign and seal. This commit just adds the structure, the
  next commit will add schannel server side support.

- added 128 bit session key support to our client side code, and
  testing against w2k3 with smbtorture. Works well.
(This used to be commit 729b2f41c924a0b435d44a14209e6dacc2304cee)
2007-10-10 12:56:25 -05:00
Stefan Metzmacher
98d291423f r961: convert 'uchar' to 'uint8_t'
metze
(This used to be commit 9f914e4af99e18b469d4cf9d8b1514a2bd28ddec)
2007-10-10 12:56:23 -05:00
Stefan Metzmacher
45e93c19ef r943: change samba4 to use 'uint8_t' instead of 'unsigned char'
metze
(This used to be commit b5378803fdcb3b3afe7c2932a38828e83470f61a)
2007-10-10 12:56:21 -05:00
Andrew Tridgell
56e74a7c3f r924: got rid of the global well-known SIDs, instead using const defines in misc.idl
(This used to be commit ce7920a5fac0dbccb01402129c341b410a032e60)
2007-10-10 12:56:20 -05:00
Andrew Tridgell
39a236883e r904: - fixed account expiry testing in auth_sam
- added printf style format attribute checking to samdb varargs fns

- fix nt_time_to_unix() for zero and -1 times
(This used to be commit 41f9b144f9fe77e92f960bd11b1df397a63fd2d5)
2007-10-10 12:56:19 -05:00
Stefan Metzmacher
fcd718c7d8 r890: convert samba4 to use [u]int8_t instead of [u]int8
metze
(This used to be commit 2986c5f08c8f0c26a2ea7b6ce20aae025183109f)
2007-10-10 12:56:16 -05:00
Stefan Metzmacher
f88bf54c7f r889: convert samba4 to use [u]int16_t instead of [u]int16
metze
(This used to be commit af6f1f8a01bebbecd99bc8c066519e89966e65e3)
2007-10-10 12:56:16 -05:00
Stefan Metzmacher
f9d8f8843d r884: convert samba4 to use [u]int32_t instead of [u]int32
metze
(This used to be commit 0e5517d937a2eb7cf707991d1c7498c1ab456095)
2007-10-10 12:56:15 -05:00
Andrew Bartlett
5b0ab386cb r874: This patch is a pile of work on NTLMSSP:
Samba's NTLMSSP code is now fully talloc based, which should go a long
way to cleaning up the memory leaks in this code.  This also avoids a
lot of extra copies of data, as we now allocate the 'return' blobs on
a caller-supplied context.

I have also been doing a lot of work towards NTLM2 signing and
sealing.  I have this working for sealing, but not for the verifier
(MD5 integrity check on the stream) which is still incorrect.

(I can aim a rpcecho sinkdata from a Win2k3 box to my server, and the
data arrives intact, but the signature check fails.  It does however
match the test values I have...).

The new torture test is cludged in - when we get a unit test suite
back, I'll happliy put it in the 'right' place....

Andrew Bartlett
(This used to be commit 399e2e2b1149b8d1c070aa7f0d5131c0b577d2b9)
2007-10-10 12:56:14 -05:00
Andrew Tridgell
579c13da43 r873: converted samba4 to use real 64 bit integers instead of
structures. This was suggested by metze recently.

I checked on the build farm and all the machines we have support 64
bit ints, and support the LL suffix for 64 bit constants. I suspect
some won't support strtoll() and related functions, so we will
probably need replacements for those.
(This used to be commit 9a9244a1c66654c12abe4379661cba83a73c4c21)
2007-10-10 12:56:14 -05:00
Stefan Metzmacher
454bba05df r850: convert SUBSYSTEM AUTH to a config.mk file
metze
(This used to be commit b29414bd23385ba2502763ed33676a42d176eaf9)
2007-10-10 12:56:11 -05:00
Andrew Bartlett
93076cb9bc r816: - Make use of tridge's new samdb_result_sid_prefix() helper function.
- Remove legacy sid_to_string (which contained a memleak)

 - Remove some unused parts of lib/util_sid.c

Andrew Bartlett
(This used to be commit 7c69a85984e47c004ddfd9bb5eadcb3191b56f9d)
2007-10-10 12:53:52 -05:00
Andrew Bartlett
582ef8ea88 r751: Fix debug message to print the right variable.
Andrew Bartlett
(This used to be commit aa4b56a8736fb16134fae48165fe608912725895)
2007-10-10 12:53:48 -05:00
Andrew Bartlett
064e7447be r743: Start on a NETLOGON server in Samba4.
Currently this only authentiates the machine, not real users.

As a consequence of running the Samba4 NETLOGON test against Samba4, I
found a number of issues in the SAMR server, which I have addressed.
There are more templates in the provison.ldif for this reason.

I also added some debug to our credentials code, and fixed some bugs
in the auth_sam module.

The static buffer in generate_random_string() bit me badly, so I
removed it in favor of a talloc based system.

Andrew Bartlett
(This used to be commit 94624e519b66def97758b8a48a01ffe9029176f0)
2007-10-10 12:53:46 -05:00
Andrew Bartlett
6b921d1d21 r719: Follow the trend - remove more unused functions.
Andrew Bartlett
(This used to be commit 62eef851fd79b2739b93b4ed7829514a3dcbf1d0)
2007-10-10 12:53:45 -05:00
Andrew Bartlett
0f14ae46f3 r715: Finish the ldb conversion for the auth_sam module.
Andrew Bartlett
(This used to be commit 099151cdabd40e724b36482c0ffc169d231146d2)
2007-10-10 12:53:44 -05:00
Andrew Bartlett
c727f2ec5e r708: Clean up copyright headers, to reflect code that has come and gone
over time.

Andrew Bartlett
(This used to be commit 1a53e5c8296a7c09563abde1eb4a66ce9cf45473)
2007-10-10 12:53:44 -05:00
Andrew Bartlett
d12e825042 r685: The SAM is dead! Long live the new SAM! ;-)
This commit kills passdb, which was only hosting the auth subsystem.

With the work tridge has done on Samba4's SAM backend, this can (and
now is) all hosted on ldb.  The auth_sam.c file now references this
backend.

You will need to assign your users passwords in ldb - adding a new line:

unicodePwd: myPass

to a record, using ldbedit, should be sufficient.  Naturally, this
assumes you have had your personal SAMR provisioning tutorial from
tridge.  Everybody else can still use the anonymous logins.

Andrew Bartlett
(This used to be commit 2aa0b55fb86648731d5f2201fa5a6aa993b7ca48)
2007-10-10 12:53:42 -05:00
Stefan Metzmacher
f236700ef6 r665: merge over the new build system from my tmp branch
to the main SAMBA_4_0 tree.

NOTE: that it's not completely ready, but it's functional:-)

metze
(This used to be commit c78a2ddb28ec50d6570a83b1f66f18a5c3621731)
2007-10-10 12:53:36 -05:00
Andrew Bartlett
bc8e2d5f23 r620: Remove more ununsed code.
Andrew Bartlett
(This used to be commit 795ace17a8905f495e9e191ffbd559927894941b)
2007-10-10 12:51:54 -05:00
Andrew Bartlett
c9bf9773e0 r619: Remove more code that is no longer called.
Andrew Bartlett
(This used to be commit 4e614cbe922ddc591b17b2357e17eff8ce1d546c)
2007-10-10 12:51:52 -05:00
Andrew Bartlett
c041077856 r614: Clean out the POSIX assumptions from the Samba4 auth subsystem.
This removes the code that tried to lookup posix groups, as well as
the code that was tied to the SAM_ACCOUNT.

This should make auth_ldb much easier to write :-)

Andrew Bartlett
(This used to be commit e096ee2112adecaa69b6b3eb155a4e8f80dfc0f7)
2007-10-10 12:51:51 -05:00