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

3146 Commits

Author SHA1 Message Date
Luke Leighton
4ab9d91428 ABOUT TIME!!!!!!!!
damn, this one is bad.

started, at least two days ago, to add an authentication mechanism to
the smbd<->msrpc redirector/relay, such that sufficient unix / nt
information could be transferred across the unix socket to do a
become_user() on the other side of the socket.

it is necessary that the msrpc daemon inherit the same unix and nt
credentials as the smbd process from which it was spawned, until
such time as the msrpc daemon receives an authentication request
of its own, whereupon the msrpc daemon is responsible for authenticating
the new credentials and doing yet another become_user() etc sequence.
(This used to be commit 30c7fdd6ef10ecd35594311c1b250b95ff895489)
1999-12-08 21:43:03 +00:00
Luke Leighton
a0ba234cf9 the first independent msrpc daemon - lsarpcd.
one horrible cut / paste job from smbd, plus a code split of shared
components between the two.

the job is not _yet_ complete, as i need to be able to do a become_user()
call for security reasons.  i picked lsarpcd first because you don't
_need_ security on it (microsoft botched so badly on this one, it's not
real.  at least they fixed this in nt5 with restrictanonymous=0x2).
fixing this involves sending the current smb and unix credentials down
the unix pipe so that the daemon it eventually goes to can pick them
up at the other end.

i can't believe this all worked!!!
(This used to be commit 2245b0c6d13c7c5886e81f9137b05df883598c26)
1999-12-06 00:44:32 +00:00
Luke Leighton
7c53f158ba reenabled retry_time (commented out accidentally in name_status)
(This used to be commit bf9422832c335c8d283273eb1d0008ac15cd3531)
1999-12-05 02:22:28 +00:00
Luke Leighton
92bc7a4263 first version of msrpc agent redirector code. client-side only.
(This used to be commit 5e5a1dceee0b6088822697284d3e0af04d197477)
1999-12-05 01:34:34 +00:00
Luke Leighton
854f35e20f created create_pipe_socket() function.
(This used to be commit a3af3b4312144943413894b18b5845b56474ebb5)
1999-12-05 00:13:17 +00:00
Luke Leighton
ddda7722a6 argh! how horrible! spent ages working out why packets weren't being
received properly when a UDP "retry" occurs.  it's because reads and
writes must be interleaved / matched.

scenario:

nmblookup connects to agent, sends request.

agent receives request, broadcasts it on 137.

agent RECEIVES 137 broadcast, sends it to nmblookup

agent receives RESPONSE to 137 broadcast, sends it to nmblookup.

if reads are not equally interspersed with writes, then second send
will fail.

if you think this is odd behaviour and that the agent should be filtering
its own UDP traffic, think again.

agent will be, potentially, redirecting nmbd traffic (including WINS
server) not just client programs.
(This used to be commit 43e158c4261e51678d6e7f77ceb4a1c7281a2525)
1999-12-04 23:40:21 +00:00
Luke Leighton
97913d82f5 argh. trying to get the nmb agent code to filter out "self" packets.
(This used to be commit 84d7cc63239ea67481f6382da58d0678a21011fb)
1999-12-04 22:22:37 +00:00
Luke Leighton
c41205e28f even more cool! nmb-agent moved over to new vagent style, too!
(This used to be commit 49c157eae4bb24164f0f976d1bf6cf0cfc068863)
1999-12-04 22:05:59 +00:00
Luke Leighton
f6077db317 cool! created higher-order function table for agent redirection.
(This used to be commit 7bb2e55d0d3a00a97bba99ebed722a4adf84093c)
1999-12-04 21:55:39 +00:00
Luke Leighton
9b44e117f9 more similar agent code
(This used to be commit 2c778313b8c2b4535f16e11aea81a61edb3b2d45)
1999-12-04 20:43:45 +00:00
Luke Leighton
4503221852 nmb agent memory free problems
(This used to be commit b4306cbf06f70dd9d2760bb005e15059d6f904f0)
1999-12-04 20:29:03 +00:00
Luke Leighton
409798953d trying to make redirector agent code same base.
(This used to be commit 9ba9df453abab1085b5537580b1da87d1dcdb7de)
1999-12-04 20:11:31 +00:00
Luke Leighton
f521205cb3 jeremy is going to hate me for this.
created an "nmb-agent" utility that, yes: it connects to the 137 socket
and accepts unix socket connections which it redirects onto port 137.

it uses the name_trn_id field to filter requests to the correct
location.

name_query() and name_status() are the first victims to use this
feature (by specifying a file descriptor of -1).
(This used to be commit d923bc8da2cf996408194d98381409191dd81a16)
1999-12-04 19:14:37 +00:00
Luke Leighton
8a8a7da518 argh! you wouldn't believe what i had to do: use the mid (multiplex id)
to redirect multiple socket-based connnections onto a single client state.

argh!
(This used to be commit 06390e792cd8aa57a91c3a3d1d267fd1bcdc17a1)
1999-12-04 00:49:13 +00:00
Luke Leighton
0ca1f87930 argh! smb-agent redirection client reusage is a nightmare!
moved smb-agent over to a single-process model instead of fork()
in order to reuse client connections.  except, of course, you
can't do a select() on the same socket connections!  argh!
(This used to be commit e9e5a34de8e8f9a69e817aceb8c16284334d4642)
1999-12-03 23:36:53 +00:00
Luke Leighton
c2a3b11b07 starting "connection reuse" system in smb-agent. added version number
which isn't actually used right now :-)
(This used to be commit d54a64ae3ab7cdc1ac67fb49f7255e6a106d624e)
1999-12-03 22:02:03 +00:00
Luke Leighton
5db56cfce4 i always get caught out with non-gnu-readline code mods :-)
(This used to be commit a47cc6447036d0a8b8e3e096d7b51a37d10d3325)
1999-12-03 19:59:44 +00:00
Luke Leighton
6eebe18fa9 smb-agent improvements. added -D (daemon) option. smb agent is
restricted to connections from the current user (socket is created
with current user uid).
(This used to be commit 5af076e4b7ee13eebe0b89748e3f5a1ef21f8c73)
1999-12-03 19:55:34 +00:00
Luke Leighton
7d01f964ff cool! a unix socket smb redirector. code based on smbfilter and
ideas from ssh-agent.

the intent is to be able to share smb sessions using cli_net_use_add()
across multiple processes, where one process knows the target server
name, user name and domain, but not the smb password.
(This used to be commit 294b653f2e9cdc1864ec638ae8b4300df25723cf)
1999-12-03 18:16:08 +00:00
Luke Leighton
69683dc27a promptline undefined (pline)
(This used to be commit f33e4ca930f8299c00f861215c5231eef9ecef94)
1999-12-03 17:02:47 +00:00
Luke Leighton
848ed55e22 new get_any_dc_name() function allows lookups of trusted domains from
lp_trusted_domains() parameter, so trusted domain logins should work,
right, if you put user = TRUSTED_DOMAIN\NTuser in "domain name map", right?

right - as _long_ as you're not using NTLMv2, because the damn NT username
gets mapped to the damn unix name too early, and NTLMv2 challenge-responses
are based on the client's user name, client's domain name, client's host name
etc damn etc.

so it becomes necessary to stop using char* username because this allows
for massive amounts of confusion as to which username is being referred to.
the underlying unix username on the local unix system that is associated with
the smbd process that represents the NT username?  or the NT username itself?
(This used to be commit dd3ccdd7d996c107766cdad3c403e8b8947b9e65)
1999-12-02 20:16:34 +00:00
Luke Leighton
b96e4e4f7d domain_client_validate() no longer takes serverlist, it calls
get_any_dc_name().
(This used to be commit e21367c0ebdc5e202cdc39d50950bff089bf67f8)
1999-12-02 19:07:13 +00:00
Luke Leighton
98e28ee14c cleaning up: removing those horrible references to server list
functions (cli_net_use_addlist()).  needed originally because
there was no get_dc_any_name() function.
(This used to be commit 3a2b920ea2e6704b2574f404e1e41c7cfc0f96b2)
1999-12-02 19:03:23 +00:00
Luke Leighton
5988d0cdae added get_any_dc_name() function.
(This used to be commit 455e17dbb7d451b462004f302f5c68770f17b65e)
1999-12-02 18:49:28 +00:00
Luke Leighton
7aebbb90c8 need a domain resolving function, but get_trusted_serverlist() will do.
this is horrible.
(This used to be commit 9df973fe711f322075d86d6792d6c0b8539c1d00)
1999-12-02 16:52:38 +00:00
Luke Leighton
ddfe7956f2 oops, pwdb_initialise() called unnecessarily from here (failure to read
trusted domains may cause rpcclient to fail).
(This used to be commit 12e2b973216c0798a939f68220b0e6a60acd5c01)
1999-12-02 16:38:16 +00:00
Luke Leighton
e9b8c7743a default SID map now reads in "trusted domains" from smb.conf.
(This used to be commit f0946d1ccafeb5f541935b41f2d54bcbc06797ed)
1999-12-02 16:31:24 +00:00
Luke Leighton
10b82d30b7 improved enumdomains added -i option.
(This used to be commit 50dc709fa95e86ebe2b3132176241cb3a2cc4e36)
1999-12-02 01:46:01 +00:00
Luke Leighton
bd4bea62ad clearing up connection-related stuff. password credentials were messing
up.

added a complicated prompt which i don't like, but it tells you
domain\user@hostname$
(This used to be commit 338d08f69b0eeefa0f3f2c0217ef17ea3e815e1f)
1999-12-02 01:16:05 +00:00
Luke Leighton
a2e135d195 added net use (actually net -S srv -U user -W dom) and net del (actually
same as net use but with -d and -f) command options
(This used to be commit 586db87ea31ebb1b090527f61a4989461f626b1a)
1999-12-01 22:39:27 +00:00
Luke Leighton
a76fee7333 more cli_session_setup() calls. what the heck are these doing???
they should all be replaced with cli_establish_connection().

created cli_use_wait_keyboard() which waits on multiple cli_states
and swallows session keepalives.
(This used to be commit fcc39b3f4f2f8d04d3fab09db048b4f3dc1e97d5)
1999-12-01 22:06:53 +00:00
Luke Leighton
c15b95cd1e cli_session_setup() now takes an extra argument (host name). hey, what
the heck is a cli_session_setup() call doing in here???  this should use
cli_establish_connection()server!
(This used to be commit fa054c96c62ed0f0a0c6649a7ad7a143fe09694b)
1999-12-01 21:47:30 +00:00
Luke Leighton
720ea1e304 make sure domain and name to generate trust account .mac file are upper case.
(This used to be commit fbfb350bdf17e84b512b745527886d942904b67d)
1999-12-01 20:18:59 +00:00
Luke Leighton
f6c5f75568 damn, that took a while. nt login password was being stored incorrectly
in private .mac file (oops).  ntlogin test now works.
(This used to be commit c98c66690683965612e9631d77c2dff91ec8a872)
1999-12-01 20:18:21 +00:00
Luke Leighton
86ac6fa938 fixing joining to domain plus something weird going down with nt logins...
(This used to be commit cef258f1c931ecb7c2dda9d5c9977153e4c1dc73)
1999-12-01 19:25:51 +00:00
Luke Leighton
d9cc4c3950 improving createuser account command to be able to add workstations
and then set a default random password.
(This used to be commit 7846818432a93295651c8c67445a2d6a0f3b21d8)
1999-12-01 18:47:29 +00:00
Luke Leighton
106fe88be0 1) when no domain used in ntlogin test command, should use default one
from previous lsaquery command.  over-ridden from DOMAIN\username

2) initialisation of cli_state is a little more specific: sets use_ntlmv2
   to Auto.  this can always be over-ridden.

3) fixed reusage of ntlmssp_cli_flgs which was being a pain

4) added pwd_compare() function then fixed bug in cli_use where NULL
   domain name was making connections multiply unfruitfully

5) type-casting of mallocs and Reallocs that cause ansi-c compilers to bitch
(This used to be commit 301a6efaf67ddc96e6dcfd21b45a82863ff8f39a)
1999-12-01 16:39:51 +00:00
Luke Leighton
6ddfc68e04 sys_select added one more argument (read, write selectors).
(This used to be commit e4d92ff9dfc51735e6932748f66a7c20b2c1cb6a)
1999-12-01 02:15:14 +00:00
Luke Leighton
7e42174792 split display.c into modules.
(This used to be commit 5b5719d6a08130db1062bfa24123cedcdc692bff)
1999-12-01 00:52:22 +00:00
Luke Leighton
4435c7e166 added failed connections to the net use array, even though they'd been
freed / cleaned up.  oops, dat bad, cos they get freed again when u quit.
(This used to be commit 3c4a6256dd790413ce96d208689e13c649787c4c)
1999-11-30 18:01:03 +00:00
Luke Leighton
4ced9734c0 ok. this is where it gets interesting. client states are now maintained
by cli_net_use_add() and cli_net_use_del().  MSRPC connections are
established with cli_connection_init(), and automatically unlinked with
cli_connection_unlink.  client states are _reused_ by cli_connection_init.
(This used to be commit 0fcd8ce0967169362bd126a28aa309401abdf17d)
1999-11-30 00:08:39 +00:00
Luke Leighton
a43bdadce9 bug-fix
(This used to be commit 1abdf9a45ff2e1d903a08891fbec0794349a9546)
1999-11-29 23:57:41 +00:00
Luke Leighton
8d0660607f this is going to sound _really_ weird, ok, but i had to implement
equivalents of NetUseAdd and NetUseDel!
(This used to be commit 86f4b1d3cc3887c4bb7bd6433f5f932f7db1b88e)
1999-11-29 23:56:09 +00:00
Luke Leighton
1bb4c6f016 sam sync - one of the files that use multiple connection server list
to \PIPE\NETLOGON.
(This used to be commit 2ae9ee148582cc0ba9e067be3d6338079aea49a1)
1999-11-29 21:48:41 +00:00
Luke Leighton
0d44ff9a76 attempting to resolve the issue that multiple servers often specified in
parameters to connect to \PIPE\NETLOGON.
(This used to be commit d1986ade30bdcac1f49707221a3e5a5ae597ce62)
1999-11-29 21:47:14 +00:00
Luke Leighton
44334ace98 ok. got ntlogin command working. argh, it maintains a connection to
the remote machine, because i don't know what to _do_ with it!!!!

argh!!!
(This used to be commit 85cc680736f17e3f879895be5dac8f1427653919)
1999-11-29 21:16:12 +00:00
Luke Leighton
e302cb2b18 first attempt at getting \PIPE\NETLOGON working. it's pretty horrible.
(This used to be commit 44dd3efa6380544e9a515e91960f9271498cefaf)
1999-11-29 19:46:57 +00:00
Luke Leighton
dbc916a251 renamed PRINTER_HND to POLICY_HND.
(This used to be commit 8b92be25bd7d630a18c36bcd5d983386d6cd1d53)
1999-11-29 17:45:47 +00:00
Luke Leighton
89c4e7fb38 cool! spooljobs works! this surprised me very much :-) helped to
specify \PIPE\spoolss instead of \PIPE\lsarpc...
(This used to be commit 4e92090016badc78ae6532f0eb57af6bbdb789bd)
1999-11-27 23:31:45 +00:00
Luke Leighton
9720774c6a well, i stuffed up the spooler commands.
(This used to be commit 7a696330586b9ad5157b0c1ab249cc66e9accef7)
1999-11-27 23:25:45 +00:00