4673fa7f9fd1d9931fcf1e4e1cdd9bb656b1d434
[freeradius.git] / raddb / mods-available / mschap
1 # -*- text -*-
2 #
3 #  $Id$
4
5 # Microsoft CHAP authentication
6 #
7 #  This module supports MS-CHAP and MS-CHAPv2 authentication.
8 #  It also enforces the SMB-Account-Ctrl attribute.
9 #
10 mschap {
11         #
12         #  If you are using /etc/smbpasswd, see the 'passwd'
13         #  module for an example of how to use /etc/smbpasswd
14
15         # if use_mppe is not set to no mschap will
16         # add MS-CHAP-MPPE-Keys for MS-CHAPv1 and
17         # MS-MPPE-Recv-Key/MS-MPPE-Send-Key for MS-CHAPv2
18         #
19 #       use_mppe = no
20
21         # if mppe is enabled require_encryption makes
22         # encryption moderate
23         #
24 #       require_encryption = yes
25
26         # require_strong always requires 128 bit key
27         # encryption
28         #
29 #       require_strong = yes
30
31         # The module can perform authentication itself, OR
32         # use a Windows Domain Controller.  This configuration
33         # directive tells the module to call the ntlm_auth
34         # program, which will do the authentication, and return
35         # the NT-Key.  Note that you MUST have "winbindd" and
36         # "nmbd" running on the local machine for ntlm_auth
37         # to work.  See the ntlm_auth program documentation
38         # for details.
39         #
40         # If ntlm_auth is configured below, then the mschap
41         # module will call ntlm_auth for every MS-CHAP
42         # authentication request.  If there is a cleartext
43         # or NT hashed password available, you can set
44         # "MS-CHAP-Use-NTLM-Auth := No" in the control items,
45         # and the mschap module will do the authentication itself,
46         # without calling ntlm_auth.
47         #
48         # Be VERY careful when editing the following line!
49         #
50         # You can also try setting the user name as:
51         #
52         #       ... --username=%{mschap:User-Name} ...
53         #
54         # In that case, the mschap module will look at the User-Name
55         # attribute, and do prefix/suffix checks in order to obtain
56         # the "best" user name for the request.
57         #
58 #       ntlm_auth = "/path/to/ntlm_auth --request-nt-key --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"
59
60         # The default is to wait 10 seconds for ntlm_auth to
61         # complete.  This is a long time, and if it's taking that
62         # long then you likely have other problems in your domain.
63         # The length of time can be decreased with the following
64         # option, which can save clients waiting if your ntlm_auth
65         # usually finishes quicker. Range 1 to 10 seconds.
66         #
67 #       ntlm_auth_timeout = 10
68
69         # An alternative to using ntlm_auth is to connect to the
70         # winbind daemon directly for authentication. This option
71         # is likely to be faster and may be useful on busy systems,
72         # but is less well tested.
73         #
74         # Using this option requires libwbclient from Samba 4.2.1
75         # or later to be installed. Make sure that ntlm_auth above is
76         # commented out.
77         #
78 #       winbind_username = "%{mschap:User-Name}"
79 #       winbind_domain = "%{mschap:NT-Domain}"
80
81         #
82         #  Information for the winbind connection pool.  The configuration
83         #  items below are the same for all modules which use the new
84         #  connection pool.
85         #
86         pool {
87                 #  Connections to create during module instantiation.
88                 #  If the server cannot create specified number of
89                 #  connections during instantiation it will exit.
90                 #  Set to 0 to allow the server to start without the
91                 #  winbind daemon being available.
92                 start = ${thread[pool].start_servers}
93
94                 #  Minimum number of connections to keep open
95                 min = ${thread[pool].min_spare_servers}
96
97                 #  Maximum number of connections
98                 #
99                 #  If these connections are all in use and a new one
100                 #  is requested, the request will NOT get a connection.
101                 #
102                 #  Setting 'max' to LESS than the number of threads means
103                 #  that some threads may starve, and you will see errors
104                 #  like 'No connections available and at max connection limit'
105                 #
106                 #  Setting 'max' to MORE than the number of threads means
107                 #  that there are more connections than necessary.
108                 max = ${thread[pool].max_servers}
109
110                 #  Spare connections to be left idle
111                 #
112                 #  NOTE: Idle connections WILL be closed if "idle_timeout"
113                 #  is set.  This should be less than or equal to "max" above.
114                 spare = ${thread[pool].max_spare_servers}
115
116                 #  Number of uses before the connection is closed
117                 #
118                 #  0 means "infinite"
119                 uses = 0
120
121                 #  The number of seconds to wait after the server tries
122                 #  to open a connection, and fails.  During this time,
123                 #  no new connections will be opened.
124                 retry_delay = 30
125
126                 #  The lifetime (in seconds) of the connection
127                 #
128                 #  NOTE: A setting of 0 means infinite (no limit).
129                 lifetime = 86400
130
131                 #  The pool is checked for free connections every
132                 #  "cleanup_interval".  If there are free connections,
133                 #  then one of them is closed.
134                 cleanup_interval = 300
135
136                 #  The idle timeout (in seconds).  A connection which is
137                 #  unused for this length of time will be closed.
138                 #
139                 #  NOTE: A setting of 0 means infinite (no timeout).
140                 idle_timeout = 600
141
142                 #  NOTE: All configuration settings are enforced.  If a
143                 #  connection is closed because of "idle_timeout",
144                 #  "uses", or "lifetime", then the total number of
145                 #  connections MAY fall below "min".  When that
146                 #  happens, it will open a new connection.  It will
147                 #  also log a WARNING message.
148                 #
149                 #  The solution is to either lower the "min" connections,
150                 #  or increase lifetime/idle_timeout.
151         }
152
153         passchange {
154                 # This support MS-CHAPv2 (not v1) password change
155                 # requests.  See doc/mschap.rst for more IMPORTANT
156                 # information.
157                 #
158                 # Samba/ntlm_auth - if you are using ntlm_auth to
159                 # validate passwords, you will need to use ntlm_auth
160                 # to change passwords.  Uncomment the three lines
161                 # below, and change the path to ntlm_auth.
162                 #
163 #               ntlm_auth = "/usr/bin/ntlm_auth --helper-protocol=ntlm-change-password-1"
164 #               ntlm_auth_username = "username: %{mschap:User-Name}"
165 #               ntlm_auth_domain = "nt-domain: %{mschap:NT-Domain}"
166
167                 # To implement a local password change, you need to
168                 # supply a string which is then expanded, so that the
169                 # password can be placed somewhere.  e.g. passed to a
170                 # script (exec), or written to SQL (UPDATE/INSERT).
171                 # We give both examples here, but only one will be
172                 # used.
173                 #
174 #               local_cpw = "%{exec:/path/to/script %{mschap:User-Name} %{MS-CHAP-New-Cleartext-Password}}"
175                 #
176 #               local_cpw = "%{sql:UPDATE radcheck set value='%{MS-CHAP-New-NT-Password}' where username='%{SQL-User-Name}' and attribute='NT-Password'}"
177         }
178
179         # For Apple Server, when running on the same machine as
180         # Open Directory.  It has no effect on other systems.
181         #
182 #       use_open_directory = yes
183
184         # On failure, set (or not) the MS-CHAP error code saying
185         # "retries allowed".
186 #       allow_retry = yes
187
188         # An optional retry message.
189 #       retry_msg = "Re-enter (or reset) the password"
190 }