summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* delineation between smb and msrpc more marked. smbd now constructsLuke Leighton1999-12-1242-869/+1308
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pdus, and then feeds them over either a "local" function call or a "remote" function call to an msrpc service. the "remote" msrpc daemon, on the other side of a unix socket, then calls the same "local" function that smbd would, if the msrpc service were being run from inside smbd. this allows a transition from local msrpc services (inside the same smbd process) to remote (over a unix socket). removed reference to pipes_struct in msrpc services. all msrpc processing functions take rpcsrv_struct which is a structure containing state info for the msrpc functions to decode and create pdus. created become_vuser() which does everything not related to connection_struct that become_user() does. removed, as best i could, connection_struct dependencies from the nt spoolss printing code. todo: remove dcinfo from rpcsrv_struct because this stores NETLOGON-specific info on a per-connection basis, and if the connection dies then so does the info, and that's a fairly serious problem. had to put pretty much everything that is in user_struct into parse_creds.c to feed unix user info over to the msrpc daemons. why? because it's expensive to do unix password/group database lookups, and it's definitely expensive to do nt user profile lookups, not to mention pretty difficult and if you did either of these it would introduce a complication / unnecessary interdependency. so, send uid/gid/num_groups/gid_t* + SID+num_rids+domain_group_rids* + unix username + nt username + nt domain + user session key etc. this is the MINIMUM info identified so far that's actually implemented. missing bits include the called and calling netbios names etc. (basically, anything that can be loaded into standard_sub() and standard_sub_basic()...)
* OK. This code works on a RedHat 6.0 system. However smbpasswdGerald Carter1999-12-094-5/+16
| | | | | | | | | | | | | | | | | time out of sending the session setup on Solaris 2.6. No idea. I'll work on it some tomorrow. This is to fix the "Unable to setup password vectors" thingy. Also changed an inet_aton() to inet_addr() as the former is not very portable :-) Luke, I set the redir flag to false because the connection to the smb-agent was failing and smbpasswd bombed. Double check me on this one. -jc
* jerry spotted that get_domain_sids() was being called with the wrongLuke Leighton1999-12-084-17/+6
| | | | | arguments: get_any_dc_name() was being called with a server name not a domain name. oops.
* moved sys/un.h to after sys/socket.h. done a gnu autoconf around sys/un.hLuke Leighton1999-12-084-662/+578
|
* parsing code for transferring unix and nt security credentials over-the-wire.Luke Leighton1999-12-082-0/+582
| | | | | | | | | at present, a unix password is missing from the unix credentials, but is not _actually_ expected to be needed. weeelll... maybe :-) this is used to transfer credentials between smbd and msrpc daemons, down a unix socket, so that the unix and nt credentials can be inherited by an msrpc daemon called up from smbd.
* ABOUT TIME!!!!!!!!Luke Leighton1999-12-0822-348/+423
| | | | | | | | | | | | | | | 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.
* the first independent msrpc daemon - lsarpcd.Luke Leighton1999-12-0618-550/+1904
| | | | | | | | | | | | | | | 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!!!
* reenabled retry_time (commented out accidentally in name_status)Luke Leighton1999-12-051-1/+1
|
* first version of msrpc agent redirector code. client-side only.Luke Leighton1999-12-058-6/+953
|
* created create_pipe_socket() function.Luke Leighton1999-12-055-102/+77
|
* argh! how horrible! spent ages working out why packets weren't beingLuke Leighton1999-12-043-27/+50
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* argh. trying to get the nmb agent code to filter out "self" packets.Luke Leighton1999-12-041-9/+3
|
* even more cool! nmb-agent moved over to new vagent style, too!Luke Leighton1999-12-041-229/+46
|
* cool! created higher-order function table for agent redirection.Luke Leighton1999-12-046-216/+340
|
* more similar agent codeLuke Leighton1999-12-042-47/+43
|
* nmb agent memory free problemsLuke Leighton1999-12-041-7/+6
|
* trying to make redirector agent code same base.Luke Leighton1999-12-042-62/+78
|
* jeremy is going to hate me for this.Luke Leighton1999-12-0411-51/+785
| | | | | | | | | | | 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).
* argh! you wouldn't believe what i had to do: use the mid (multiplex id)Luke Leighton1999-12-043-15/+99
| | | | | | to redirect multiple socket-based connnections onto a single client state. argh!
* argh! smb-agent redirection client reusage is a nightmare!Luke Leighton1999-12-034-149/+251
| | | | | | 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!
* starting "connection reuse" system in smb-agent. added version numberLuke Leighton1999-12-036-76/+164
| | | | which isn't actually used right now :-)
* i always get caught out with non-gnu-readline code mods :-)Luke Leighton1999-12-031-1/+1
|
* smb-agent improvements. added -D (daemon) option. smb agent isLuke Leighton1999-12-032-18/+76
| | | | | restricted to connections from the current user (socket is created with current user uid).
* cool! a unix socket smb redirector. code based on smbfilter andLuke Leighton1999-12-039-6/+487
| | | | | | | | 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.
* promptline undefined (pline)Luke Leighton1999-12-031-1/+1
|
* new get_any_dc_name() function allows lookups of trusted domains fromLuke Leighton1999-12-022-15/+19
| | | | | | | | | | | | | | | 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?
* domain_client_validate() no longer takes serverlist, it callsLuke Leighton1999-12-023-14/+12
| | | | get_any_dc_name().
* cleaning up: removing those horrible references to server listLuke Leighton1999-12-028-148/+23
| | | | | functions (cli_net_use_addlist()). needed originally because there was no get_dc_any_name() function.
* added get_any_dc_name() function.Luke Leighton1999-12-024-33/+147
|
* need a domain resolving function, but get_trusted_serverlist() will do.Luke Leighton1999-12-023-30/+41
| | | | this is horrible.
* oops, pwdb_initialise() called unnecessarily from here (failure to readLuke Leighton1999-12-021-2/+0
| | | | trusted domains may cause rpcclient to fail).
* default SID map now reads in "trusted domains" from smb.conf.Luke Leighton1999-12-027-27/+147
|
* improved enumdomains added -i option.Luke Leighton1999-12-025-31/+41
|
* clearing up connection-related stuff. password credentials were messingLuke Leighton1999-12-023-18/+27
| | | | | | | up. added a complicated prompt which i don't like, but it tells you domain\user@hostname$
* added net use (actually net -S srv -U user -W dom) and net del (actuallyLuke Leighton1999-12-011-17/+147
| | | | same as net use but with -d and -f) command options
* more cli_session_setup() calls. what the heck are these doing???Luke Leighton1999-12-015-46/+48
| | | | | | | they should all be replaced with cli_establish_connection(). created cli_use_wait_keyboard() which waits on multiple cli_states and swallows session keepalives.
* cli_session_setup() now takes an extra argument (host name). hey, whatLuke Leighton1999-12-011-2/+4
| | | | | the heck is a cli_session_setup() call doing in here??? this should use cli_establish_connection()server!
* make sure domain and name to generate trust account .mac file are upper case.Luke Leighton1999-12-011-0/+3
|
* damn, that took a while. nt login password was being stored incorrectlyLuke Leighton1999-12-018-29/+31
| | | | in private .mac file (oops). ntlogin test now works.
* fixing joining to domain plus something weird going down with nt logins...Luke Leighton1999-12-019-62/+101
|
* improving createuser account command to be able to add workstationsLuke Leighton1999-12-017-33/+163
| | | | and then set a default random password.
* 1) when no domain used in ntlogin test command, should use default oneLuke Leighton1999-12-017-38/+142
| | | | | | | | | | | | | | 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
* sys_select added one more argument (read, write selectors).Luke Leighton1999-12-0122-216/+323
|
* split display.c into modules.Luke Leighton1999-12-0112-3109/+3343
|
* added failed connections to the net use array, even though they'd beenLuke Leighton1999-11-301-6/+14
| | | | freed / cleaned up. oops, dat bad, cos they get freed again when u quit.
* ok. this is where it gets interesting. client states are now maintainedLuke Leighton1999-11-301-2/+29
| | | | | | 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.
* bug-fixLuke Leighton1999-11-293-4/+4
|
* this is going to sound _really_ weird, ok, but i had to implementLuke Leighton1999-11-296-69/+397
| | | | equivalents of NetUseAdd and NetUseDel!
* sam sync - one of the files that use multiple connection server listLuke Leighton1999-11-291-16/+2
| | | | to \PIPE\NETLOGON.
* attempting to resolve the issue that multiple servers often specified inLuke Leighton1999-11-298-98/+105
| | | | parameters to connect to \PIPE\NETLOGON.