1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-21 03:17:08 +03:00

126 Commits

Author SHA1 Message Date
Jeremy Allison
9506b8e145 r7882: Looks like a large patch - but what it actually does is make Samba
safe for using our headers and linking with C++ modules. Stops us
from using C++ reserved keywords in our code.
Jeremy
2007-10-10 10:58:00 -05:00
Gerald Carter
03ebf3ebfe r6450: * fix typo in htlm_auth help message
* add synonym for idmap_rid in better lining with
  other idmap backend names
* remove old debug messages when idmap {uid|gid} options
  are not defined
2007-10-10 10:56:41 -05:00
Tim Potter
0c3bb181e8 r4259: Fix cast in SMB_XMALLOC_ARRAY. Bugzilla #2168. 2007-10-10 10:53:40 -05:00
Jeremy Allison
620f2e608f r4088: Get medieval on our ass about malloc.... :-). Take control of all our allocation
functions so we can funnel through some well known functions. Should help greatly with
malloc checking.
HEAD patch to follow.
Jeremy.
2007-10-10 10:53:32 -05:00
Jeremy Allison
7565019286 r3377: Merge in first part of modified patch from Nalin Dahyabhai <nalin@redhat.com>
for bug #1717.The rest of the code needed to call this patch has not yet been
checked in (that's my next task). This has not yet been tested - I'll do this
once the rest of the patch is integrated.
Jeremy.
2007-10-10 10:53:05 -05:00
Jeremy Allison
0f3f7b035b r3273: Ensure we're consistent in the use of strchr_m for '@'.
Jeremy.
2007-10-10 10:53:03 -05:00
Tim Potter
7f161702fa r2835: Since we always have -I. and -I$(srcdir) in CFLAGS, we can get rid of
'..' from all #include preprocessor commands.   This fixes bugzilla #1880
where OpenVMS gets confused about the '.' characters.
2007-10-10 10:52:55 -05:00
Andrew Bartlett
4bf0b94011 r2762: Remove silly conversion to and from UTF8 on the winbind pipe. Fix the
naming of the require_membership_of parameter in pam_winbind and fix
the error code for 'you didn't specify a domain' in ntlm_auth.

Andrew Bartlett
2007-10-10 10:52:51 -05:00
Andrew Bartlett
657bb14789 r2147: Fix utility name in error message (pre-emptivly merged to trunk ;-)
Andrew Bartlett
2007-10-10 10:52:33 -05:00
Andrew Bartlett
5bd6abb54e r1582: On failure, print the length of the right variable.
Andrew Bartlett
2007-10-10 10:52:15 -05:00
Andrew Bartlett
36741d3cf5 r1492: 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().

Andrew Bartlett
2007-10-10 10:52:13 -05:00
Andrew Bartlett
4da976dbd0 r1128: The end-of-file is not the end of the world, so don't make a load DEBUG() about it.
Andrew Bartlett
2007-10-10 10:51:57 -05:00
Andrew Bartlett
feccc3daca r1126: Allow more flexible GSS-SPENGO client and server operation. The
client now falls back to NTLMSSP, and the server allows the client to
start, without first asking for a mech list.

Andrew Bartlett
2007-10-10 10:51:57 -05:00
Andrew Bartlett
94c0827ce2 r1124: ntlm_auth memory leak fixes by James Wilkinson - jwilk@alumni.cse.ucsc.edu
Andrew Bartlett
2007-10-10 10:51:56 -05:00
Alexander Bokovoy
72d30ea066 r517: Remove wrong commit I did by mistake 2007-10-10 10:51:27 -05:00
Alexander Bokovoy
e278e2e6e0 r516: On GNU/Linux distributions which allow to use both 2.4 and 2.6 kernels
there is SYS_utimes syscall defined at compile time in glibc-kernheaders but
it is available on 2.6 kernels only. Therefore, we can't rely on syscall at
compile time but have to check that behaviour during program execution. An easy
workaround is to have replacement for utimes() implemented within our wrapper and
do not rely on syscall at all. Thus, if REPLACE_UTIME is defined already (by packager),
skip these syscall shortcuts.
2007-10-10 10:51:26 -05:00
Andrew Bartlett
aa3bc79835 r240: I'm pretty happy with the 'ntlm-server-1' helper protocol now, and as
there is now a public patch that uses it, make it always available.

(It was #ifdef DEVELOPER)

Andrew Bartlett
2007-10-10 10:51:15 -05:00
Andrew Bartlett
57a5563b42 r201: Fix bugs in the --helper-protocol=ntlm-server-1 implementation.
(allow the use of base64 encoded strings, LM or NT passwords)

Andrew Bartlett
2007-10-10 10:51:13 -05:00
Andrew Bartlett
c05016a2f7 r191: Only send the ntlm_auth 'ntlm-server-1' helper client a '.' after the
server had said something (such as an error).

Andrew Bartlett
2007-10-10 10:51:12 -05:00
Andrew Bartlett
8efdd957ba r188: Add a new 'helper protocol' to ntlm_auth.
This protocol looks rather like SMTP headers/LDAP:

NT-Domain: TESTWG
Username: abartlet
...

Password: foo

Challenge-response passwords are in hexideciaml, while any 'plain'
string can be base64 encoded when like this:

Password:: Zm9vCg==

(the :: indicates it, just like LDAP - I hope)

The protocol is not final, so it is #ifdef DEVELOPER for now (so
nobody starts to rely on it until I'm happy), but we may as well get
this into subversion.

My intention is to use this to power the next version of my
PPP/ntlm_auth plugin, and hopefully entice a FreeRadius plugin out of
the woods.

Andrew Bartlett
2007-10-10 10:51:12 -05:00
Andrew Bartlett
6e1b7a8848 r177: Split ntlm_auth --diagnostics into a seperate file, so as not to clutter
the main ntlm_auth program.

It quite possibly should belong in smbtorture, but relies on the
winbind client for now.

Andrew Bartlett
2007-10-10 10:51:12 -05:00
Andrew Bartlett
da4177209d r171: Continue the 'rename nt_session_key' work. This attempts to rename
this variable to 'user_session_key', where possible.  The command line
parameter is currently unchanged).

Andrew Bartlett
2007-10-10 10:51:11 -05:00
Andrew Bartlett
0693b9e79f r104: Fix ntlm_auth by adding the new strhex_to_data_blob() call.
Andrew Bartlett
2007-10-10 10:51:09 -05:00
Jeremy Allison
09d82a0bef r87: Fix the build that Andrew Bartlett broke. Andrew - don't check *ANYTHING* in
unless you have done a make clean; make.
Jeremy.
2007-10-10 10:51:08 -05:00
Andrew Bartlett
eb1c1b5eb0 r84: Implement --required-membership-of=, an ntlm_auth option that restricts
all authentication to members of this particular group.

Also implement an option to allow ntlm_auth to get 'squashed' error codes,
which are safer to communicate to remote network clients.

Andrew Bartlett
2007-10-10 10:51:07 -05:00
Andrew Bartlett
724e8d3f33 r69: Global rename of 'nt_session_key' -> 'user_session_key'. The session key could
be anything, and may not be based on anything 'NT'.  This is also what microsoft
calls it.
2007-10-10 10:51:06 -05:00
Andrew Bartlett
9598593bcf Fix most of bug #169.
For a (very) long time, we have had a bug in Samba were an NTLMv2-only
PDC would fail, because it converted the password into NTLM format for
checking.

This patch performs the direct comparison required for interactive
logons to function in this situation.  It also removes the 'auth flags', which
simply where not ever used.

Natrually, this plays with the size of structures, so rebuild, rebuild
rebuild...

Andrew Bartlett
-
Jim McDonough
c2436c433a Fix bugzilla # 1208
Winbind tickets expired.  We now check the expiration time, and acquire
new tickets.  We couln't rely on renewing them, because if we didn't get
a request before they expired, we wouldn't have renewed them.  Also, there
is a one-week limit in MS on renewal life, so new tickets would have been
needed after a week anyway.   Default is 10 hours, so we should only be
acquiring them that often, unless the configuration on the DC is changed (and
the minimum is 1 hour).
-
Jeremy Allison
7b96765c23 Restore the contract on all convert_stringXX() interfaces. Add a "allow_bad_conv"
boolean parameter that allows broken iconv conversions to work. Gets rid of the
nasty errno checks in mangle_hash2 and check_path_syntax and allows correct
return code checking.
Jeremy.
-
Andrew Bartlett
0686bc9e07 Make this table static const.
Andrew Bartlett
-
Andrew Bartlett
7c34de8096 This merges in my 'always use ADS' patch. Tested on a mix of NT and ADS
domains, this patch ensures that we always use the ADS backend when
security=ADS, and the remote server is capable.

The routines used for this behaviour have been upgraded to modern Samba
codeing standards.

This is a change in behaviour for mixed mode domains, and if the trusted
domain cannot be reached with our current krb5.conf file, we will show
that domain as disconnected.

This is in line with existing behaviour for native mode domains, and for
our primary domain.

As a consequence of testing this patch, I found that our kerberos error
handling was well below par - we would often throw away useful error
values.  These changes move more routines to ADS_STATUS to return
kerberos errors.

Also found when valgrinding the setup, fix a few memory leaks.

While sniffing the resultant connections, I noticed we would query our
list of trusted domains twice - so I have reworked some of the code to
avoid that.

Andrew Bartlett
-
Andrew Bartlett
3225f262b1 Get the DOMAIN\username around the right way (I had username\domain...)
Push the unix username into utf8 for it's trip across the socket.

Andrew Bartlett
-
Andrew Bartlett
7a3a5a6361 Try to gain a bit more consistancy in the output of usernames from ntlm_auth:
Instead of returning a name in DOMAIN\user format, we now return it in the
same way that nsswtich does - following the rules of 'winbind use default
domain', in the correct case and with the correct seperator.

This should help sites who are using Squid or the new SASL code I'm working
on, to match back to their unix usernames.

Andrew Bartlett
-
Andrew Bartlett
0fa268863b Make the name of the NTLMSSP client more consistant before we lock it in stone. -
Andrew Bartlett
96f3beb462 Remove testing hack -
Andrew Bartlett
48315e8fd2 Move our basic password checking code from inside the authentication
subsystem into a seperate file - ntlm_check.c.

This allows us to call these routines from ntlm_auth.  The purpose of this
exercise is to allow ntlm_auth (when operating as an NTLMSSP server) to
avoid talking to winbind.  This should allow for easier debugging.

ntlm_auth itself has been reorgainised, so as to share more code between
the SPNEGO-wrapped and 'raw' NTLMSSP modes.  A new 'client' NTLMSSP mode
has been added, for use with a Cyrus-SASL module I am writing (based on vl's
work)

Andrew Bartlett
-
Andrew Bartlett
2375abfa00 Refactor our authentication and authentication testing code.
The next move will be to remove our password checking code from the SAM
authentication backend, and into a file where other parts of samba can use
it.

The ntlm_auth changes provide for better use of common code.

Andrew Bartlett
-
Andrew Bartlett
e0a026c9b5 Thanks to Serassio Guido for noticing issues in our Squid NTLMSSP
implementation.  We were not resetting the NTLMSSP state for new
negotiate packets.

Andrew Bartlett
-
Andrew Bartlett
f3bbc87b0d Changes all over the shop, but all towards:
- NTLM2 support in the server
 - KEY_EXCH support in the server
 - variable length session keys.

In detail:

 - NTLM2 is an extension of NTLMv1, that is compatible with existing
domain controllers (unlike NTLMv2, which requires a DC upgrade).

 * This is known as 'NTLMv2 session security' *

(This is not yet implemented on the RPC pipes however, so there may
well still be issues for PDC setups, particuarly around password
changes.  We do not fully understand the sign/seal implications of
NTLM2 on RPC pipes.)

This requires modifications to our authentication subsystem, as we
must handle the 'challege' input into the challenge-response algorithm
being changed.  This also needs to be turned off for
'security=server', which does not support this.

- KEY_EXCH is another 'security' mechanism, whereby the session key
actually used by the server is sent by the client, rather than being
the shared-secret directly or indirectly.

- As both these methods change the session key, the auth subsystem
needed to be changed, to 'override' session keys provided by the
backend.

- There has also been a major overhaul of the NTLMSSP subsystem, to merge the 'client' and 'server' functions, so they both operate on a single structure.  This should help the SPNEGO implementation.

- The 'names blob' in NTLMSSP is always in unicode - never in ascii.
Don't make an ascii version ever.

- The other big change is to allow variable length session keys.  We
have always assumed that session keys are 16 bytes long - and padded
to this length if shorter.  However, Kerberos session keys are 8 bytes
long, when the krb5 login uses DES.

 * This fix allows SMB signging on machines not yet running MIT KRB5 1.3.1. *

- Add better DEBUG() messages to ntlm_auth, warning administrators of
misconfigurations that prevent access to the privileged pipe.  This
should help reduce some of the 'it just doesn't work' issues.

- Fix data_blob_talloc() to behave the same way data_blob() does when
passed a NULL data pointer.  (just allocate)


REMEMBER to make clean after this commit - I have changed plenty of data structures...
-
Tim Potter
0519a7022b Final round of printf warnings fixes for the moment. -
Herb Lewis
398bd14fc6 get rid of more compiler warnings -
Volker Lendecke
dc2d2ad467 Add the gss-spnego kerberos server side to ntml_auth. This uses the
same ads_verify_ticket routine that smbd uses, so in the current state
we have to be have the host password in secrets.tdb instead of the
keytab. This means we have to be an ADS member, but it's a start.

Volker
-
Volker Lendecke
c8f4d7952f Fix the build for non-kerberos environments.
Volker
-
Volker Lendecke
5522c79045 This adds *experimental* kerberos gss spnego client support to ntlm_auth. -
Volker Lendecke
f2c85595da Some more shuffling around gss-spnego server -
Volker Lendecke
807b452a7f Clarify gss spnego ntlmssp server a bit -
Tim Potter
ca1c463360 Fix for bug 269. Change wbinfo and ntlm_auth to convert domain, username
and workstation to utf8 before sending the winbindd request.  Also, don't
continue when the call to pull_utf8() fails but rather return a winbind
error.  (This is what was causing the crash)
-
Volker Lendecke
4e9eed1273 Changes to make gss-spnego ntlmssp client work against W2k AD.
Now I know where the mechListMIC changes came from: Ethereal ;-)

Volker
-
Volker Lendecke
a82f6a0096 Add ntlmssp client support to ntlm_auth. Find the corresponding cyrus sasl
module under http://samba.sernet.de/cyrus-gss-spnego.diff

Volker
-
Volker Lendecke
946695242f Fixes for memory leaks in gss spnego handling by aliguori.
Volker
-