ntlm_auth.1   [plain text]


.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "NTLM_AUTH" 1 "" "" ""
.SH NAME
ntlm_auth \- tool to allow external access to Winbind's NTLM authentication function
.SH "SYNOPSIS"
.ad l
.hy 0
.HP 10
\fBntlm_auth\fR [\-d\ debuglevel] [\-l\ logdir] [\-s\ <smb\ config\ file>]
.ad
.hy

.SH "DESCRIPTION"

.PP
This tool is part of the \fBsamba\fR(7) suite\&.

.PP
\fBntlm_auth\fR is a helper utility that authenticates users using NT/LM authentication\&. It returns 0 if the users is authenticated successfully and 1 if access was denied\&. ntlm_auth uses winbind to access the user and authentication data for a domain\&. This utility is only indended to be used by other programs (currentlySquid and mod_ntlm_winbind)

.SH "OPERATIONAL REQUIREMENTS"

.PP
The \fBwinbindd\fR(8) daemon must be operational for many of these commands to function\&.

.PP
Some of these commands also require access to the directory \fIwinbindd_privileged\fR in \fI$LOCKDIR\fR\&. This should be done either by running this command as root or providing group access to the \fIwinbindd_privileged\fR directory\&. For security reasons, this directory should not be world\-accessable\&.

.SH "OPTIONS"

.TP
\-\-helper\-protocol=PROTO
Operate as a stdio\-based helper\&. Valid helper protocols are:

.RS

.TP
squid\-2\&.4\-basic
Server\-side helper for use with Squid 2\&.4's basic (plaintext) authentication\&.

.TP
squid\-2\&.5\-basic
Server\-side helper for use with Squid 2\&.5's basic (plaintext) authentication\&.

.TP
squid\-2\&.5\-ntlmssp
Server\-side helper for use with Squid 2\&.5's NTLMSSP authentication\&.

Requires access to the directory \fIwinbindd_privileged\fR in\fI$LOCKDIR\fR\&. The protocol used is described here: http://devel\&.squid\-cache\&.org/ntlm/squid_helper_protocol\&.html\&. This protocol has been extended to allow the NTLMSSP Negotiate packet to be included as an argument to the \fBYR\fR command\&. (Thus avoiding loss of information in the protocol exchange)\&.

.TP
ntlmssp\-client\-1
Client\-side helper for use with arbitary external programs that may wish to use Samba's NTLMSSP authentication knowlege\&.

This helper is a client, and as such may be run by any user\&. The protocol used is effectivly the reverse of the previous protocol\&. A\fBYR\fR command (without any arguments) starts the authentication exchange\&.

.TP
gss\-spnego
Server\-side helper that implements GSS\-SPNEGO\&. This uses a protocol that is almost the same as\fBsquid\-2\&.5\-ntlmssp\fR, but has some subtle differences that are undocumented outside the source at this stage\&.

Requires access to the directory \fIwinbindd_privileged\fR in\fI$LOCKDIR\fR\&.

.TP
gss\-spnego\-client
Client\-side helper that implements GSS\-SPNEGO\&. This also uses a protocol similar to the above helpers, but is currently undocumented\&.

.TP
ntlm\-server\-1
Server\-side helper protocol, intended for use by a RADIUS server or the 'winbind' plugin for pppd, for the provision of MSCHAP and MSCHAPv2 authentication\&.

This protocol consists of lines in for form: \fBParameter: value\fR and \fBParamter:: Base64\-encode value\fR\&. The presence of a single period \fB\&.\fR indicates that one side has finished supplying data to the other\&. (Which in turn could cause the helper to authenticate the user)\&.

Curently implemented parameters from the external program to the helper are:

.RS

.TP
Username
The username, expected to be in Samba's unix charset\&.

Example 1. Username: bob

Example 2. Username:: Ym9i

.TP
Username
The user's domain, expected to be in Samba's unix charset\&.

Example 3. Domain: WORKGROUP

Example 4. Domain:: V09SS0dST1VQ

.TP
Full\-Username
The fully qualified username, expected to be in Samba's unix charset and qualified with the winbind separator\&.

Example 5. Full\-Username: WORKGROUP\\bob

Example 6. Full\-Username:: V09SS0dST1VQYm9i

.TP
LANMAN\-Challenge
The 8 byte \fBLANMAN Challenge\fR value, generated randomly by the server, or (in cases such as MSCHAPv2) generated in some way by both the server and the client\&.

Example 7. LANMAN\-Challege: 0102030405060708

.TP
LANMAN\-Response
The 24 byte \fBLANMAN Response\fR value, calculated from the user's password and the supplied \fBLANMAN Challenge\fR\&. Typically, this is provided over the network by a client wishing to authenticate\&.

Example 8. LANMAN\-Response: 0102030405060708090A0B0C0D0E0F101112131415161718

.TP
NT\-Response
The >= 24 byte \fBNT Response\fR calculated from the user's password and the supplied \fBLANMAN Challenge\fR\&. Typically, this is provided over the network by a client wishing to authenticate\&.

Example 9. NT\-Response: 0102030405060708090A0B0C0D0E0F101112131415161718

.TP
Password
The user's password\&. This would be provided by a network client, if the helper is being used in a legacy situation that exposes plaintext passwords in this way\&.

Example 10. Password: samba2

Example 11. Password:: c2FtYmEy

.TP
Request\-User\-Session\-Key
Apon sucessful authenticaiton, return the user session key associated with the login\&.

Example 12. Request\-User\-Session\-Key: Yes

.TP
Request\-LanMan\-Session\-Key
Apon sucessful authenticaiton, return the LANMAN session key associated with the login\&.

Example 13. Request\-LanMan\-Session\-Key: Yes
.RS .Sh "Warning" Implementors should take care to base64 encode any data (such as usernames/passwords) that may contain malicous user data, such as a newline\&. They may also need to decode strings from the helper, which likewise may have been base64 encoded\&. .RE

.RE

.RE

.TP
\-\-username=USERNAME
Specify username of user to authenticate

.TP
\-\-domain=DOMAIN
Specify domain of user to authenticate

.TP
\-\-workstation=WORKSTATION
Specify the workstation the user authenticated from

.TP
\-\-challenge=STRING
NTLM challenge (in HEXADECIMAL)

.TP
\-\-lm\-response=RESPONSE
LM Response to the challenge (in HEXADECIMAL)

.TP
\-\-nt\-response=RESPONSE
NT or NTLMv2 Response to the challenge (in HEXADECIMAL)

.TP
\-\-password=PASSWORD
User's plaintext password

If not specified on the command line, this is prompted for when required\&.

For the NTLMSSP based server roles, this paramter specifies the expected password, allowing testing without winbindd operational\&.

.TP
\-\-request\-lm\-key
Retreive LM session key

.TP
\-\-request\-nt\-key
Request NT key

.TP
\-\-diagnostics
Perform Diagnostics on the authentication chain\&. Uses the password from \fB\-\-password\fR or prompts for one\&.

.TP
\-\-require\-membership\-of={SID|Name}
Require that a user be a member of specified group (either name or SID) for authentication to succeed\&.

.TP
\-V
Prints the program version number\&.

.TP
\-s <configuration file>
The file specified contains the configuration details required by the server\&. The information in this file includes server\-specific information such as what printcap file to use, as well as descriptions of all the services that the server is to provide\&. See \fIsmb\&.conf\fR for more information\&. The default configuration file name is determined at compile time\&.

.TP
\-d|\-\-debug=debuglevel
\fIdebuglevel\fR is an integer from 0 to 10\&. The default value if this parameter is not specified is zero\&.

The higher this value, the more detail will be logged to the log files about the activities of the server\&. At level 0, only critical errors and serious warnings will be logged\&. Level 1 is a reasonable level for day\-to\-day running \- it generates a small amount of information about operations carried out\&.

Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem\&. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic\&.

Note that specifying this parameter here will override the log level parameter in the \fIsmb\&.conf\fR file\&.

.TP
\-l|\-\-logfile=logdirectory
Base directory name for log/debug files\&. The extension \fB"\&.progname"\fR will be appended (e\&.g\&. log\&.smbclient, log\&.smbd, etc\&.\&.\&.)\&. The log file is never removed by the client\&.

.TP
\-h|\-\-help
Print a summary of command line options\&.

.SH "EXAMPLE SETUP"

.PP
To setup ntlm_auth for use by squid 2\&.5, with both basic and NTLMSSP authentication, the following should be placed in the \fIsquid\&.conf\fR file\&. 
.nf

auth_param ntlm program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-ntlmssp
auth_param basic program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-basic
auth_param basic children 5
auth_param basic realm Squid proxy\-caching web server
auth_param basic credentialsttl 2 hours
.fi


.RS
.Sh "Note"

.PP
This example assumes that ntlm_auth has been installed into your path, and that the group permissions on \fIwinbindd_privileged\fR are as described above\&.

.RE

.PP
To setup ntlm_auth for use by squid 2\&.5 with group limitation in addition to the above example, the following should be added to the \fIsquid\&.conf\fR file\&. 
.nf

auth_param ntlm program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-ntlmssp \-\-require\-membership\-of='WORKGROUP\\Domain Users'
auth_param basic program ntlm_auth \-\-helper\-protocol=squid\-2\&.5\-basic \-\-require\-membership\-of='WORKGROUP\\Domain Users'
.fi


.SH "TROUBLESHOOTING"

.PP
If you're experiencing problems with authenticating Internet Explorer running under MS Windows 9X or Millenium Edition against ntlm_auth's NTLMSSP authentication helper (\-\-helper\-protocol=squid\-2\&.5\-ntlmssp), then please readthe Microsoft Knowledge Base article #239869 and follow instructions described there\&.

.SH "VERSION"

.PP
This man page is correct for version 3\&.0 of the Samba suite\&.

.SH "AUTHOR"

.PP
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.

.PP
The ntlm_auth manpage was written by Jelmer Vernooij and Andrew Bartlett\&.