1 ######################################################################
3 # Initial implementation of RADIUS over TLS (radsec)
5 ######################################################################
12 # For now, only TCP transport is allowed.
15 # Send packets to the default virtual server
16 virtual_server = default
20 # This is *exactly* the same configuration as used by the EAP-TLS
21 # module. It's OK for testing, but for production use it's a good
22 # idea to use different server certificates for EAP and for RADIUS
25 private_key_password = whatever
26 private_key_file = ${certdir}/server.pem
28 # If Private key & Certificate are located in
29 # the same file, then private_key_file &
30 # certificate_file must contain the same file
33 # If CA_file (below) is not used, then the
34 # certificate_file below MUST include not
35 # only the server certificate, but ALSO all
36 # of the CA certificates used to sign the
38 certificate_file = ${certdir}/server.pem
40 # Trusted Root CA list
42 # ALL of the CA's in this list will be trusted
43 # to issue client certificates for authentication.
45 # In general, you should use self-signed
46 # certificates for 802.1x (EAP) authentication.
47 # In that case, this CA file should contain
48 # *one* CA certificate.
50 # This parameter is used only for EAP-TLS,
51 # when you issue client certificates. If you do
52 # not use client certificates, and you do not want
53 # to permit EAP-TLS authentication, then delete
54 # this configuration item.
55 CA_file = ${cadir}/ca.pem
58 # For DH cipher suites to work, you have to
59 # run OpenSSL to create the DH file first:
61 # openssl dhparam -out certs/dh 1024
63 dh_file = ${certdir}/dh
64 random_file = ${certdir}/random
67 # The default fragment size is 1K.
68 # However, it's possible to send much more data than
69 # that over a TCP connection. The upper limit is 64K.
70 # Setting the fragment size to more than 1K means that
71 # there are fewer round trips when setting up a TLS
72 # connection. But only if the certificates are large.
76 # include_length is a flag which is
77 # by default set to yes If set to
78 # yes, Total Length of the message is
79 # included in EVERY packet we send.
80 # If set to no, Total Length of the
81 # message is included ONLY in the
82 # First packet of a fragment series.
84 # include_length = yes
86 # Check the Certificate Revocation List
88 # 1) Copy CA certificates and CRLs to same directory.
89 # 2) Execute 'c_rehash <CA certs&CRLs Directory>'.
90 # 'c_rehash' is OpenSSL's command.
91 # 3) uncomment the line below.
97 # If check_cert_issuer is set, the value will
98 # be checked against the DN of the issuer in
99 # the client certificate. If the values do not
100 # match, the cerficate verification will fail,
101 # rejecting the user.
103 # In 2.1.10 and later, this check can be done
104 # more generally by checking the value of the
105 # TLS-Client-Cert-Issuer attribute. This check
106 # can be done via any mechanism you choose.
108 # check_cert_issuer = "/C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd"
111 # If check_cert_cn is set, the value will
112 # be xlat'ed and checked against the CN
113 # in the client certificate. If the values
114 # do not match, the certificate verification
115 # will fail rejecting the user.
117 # This check is done only if the previous
118 # "check_cert_issuer" is not set, or if
119 # the check succeeds.
121 # In 2.1.10 and later, this check can be done
122 # more generally by checking the value of the
123 # TLS-Client-Cert-CN attribute. This check
124 # can be done via any mechanism you choose.
126 # check_cert_cn = %{User-Name}
128 # Set this option to specify the allowed
129 # TLS cipher suites. The format is listed
130 # in "man 1 ciphers".
131 cipher_list = "DEFAULT"
135 # This configuration entry should be deleted
136 # once the server is running in a normal
137 # configuration. It is here ONLY to make
138 # initial deployments easier.
141 # This is enabled in eap.conf, so we don't need it here.
143 # make_cert_command = "${certdir}/bootstrap"
146 # Session resumption / fast reauthentication
149 # The cache contains the following information:
151 # session Id - unique identifier, managed by SSL
152 # User-Name - from the Access-Accept
153 # Stripped-User-Name - from the Access-Request
154 # Cached-Session-Policy - from the Access-Accept
156 # The "Cached-Session-Policy" is the name of a
157 # policy which should be applied to the cached
158 # session. This policy can be used to assign
159 # VLANs, IP addresses, etc. It serves as a useful
160 # way to re-apply the policy from the original
161 # Access-Accept to the subsequent Access-Accept
162 # for the cached session.
164 # On session resumption, these attributes are
165 # copied from the cache, and placed into the
168 # You probably also want "use_tunneled_reply = yes"
169 # when using fast session resumption.
173 # Enable it. The default is "no".
174 # Deleting the entire "cache" subsection
175 # Also disables caching.
177 # You can disallow resumption for a
178 # particular user by adding the following
179 # attribute to the control item list:
181 # Allow-Session-Resumption = No
183 # If "enable = no" below, you CANNOT
184 # enable resumption for just one user
185 # by setting the above attribute to "yes".
190 # Lifetime of the cached entries, in hours.
191 # The sessions will be deleted after this
194 lifetime = 24 # hours
197 # The maximum number of entries in the
198 # cache. Set to "0" for "infinite".
200 # This could be set to the number of users
201 # who are logged in... which can be a LOT.
206 # Internal "name" of the session cache.
207 # Used to distinguish which TLS context
208 # sessions belong to.
210 # The server will generate a random value
211 # if unset. This will change across server
212 # restart so you MUST set the "name" if you
213 # want to persist sessions (see below).
215 # If you use IPv6, change the "ipaddr" below
218 #name = "TLS ${..ipaddr} ${..port} ${..proto}"
221 # Simple directory-based storage of sessions.
222 # Two files per session will be written, the SSL
223 # state and the cached VPs. This will persist session
224 # across server restarts.
226 # The server will need write perms, and the directory
227 # should be secured from anyone else. You might want
228 # a script to remove old files from here periodically:
230 # find ${logdir}/tlscache -mtime +2 -exec rm -f {} \;
232 # This feature REQUIRES "name" option be set above.
234 #persist_dir = "${logdir}/tlscache"
238 # Require a client certificate.
240 require_client_cert = yes
243 # As of version 2.1.10, client certificates can be
244 # validated via an external command. This allows
245 # dynamic CRLs or OCSP to be used.
247 # This configuration is commented out in the
248 # default configuration. Uncomment it, and configure
249 # the correct paths below to enable it.
252 # A temporary directory where the client
253 # certificates are stored. This directory
254 # MUST be owned by the UID of the server,
255 # and MUST not be accessible by any other
256 # users. When the server starts, it will do
257 # "chmod go-rwx" on the directory, for
258 # security reasons. The directory MUST
259 # exist when the server starts.
261 # You should also delete all of the files
262 # in the directory when the server starts.
263 # tmpdir = /tmp/radiusd
265 # The command used to verify the client cert.
266 # We recommend using the OpenSSL command-line
269 # The ${..CA_path} text is a reference to
270 # the CA_path variable defined above.
272 # The %{TLS-Client-Cert-Filename} is the name
273 # of the temporary file containing the cert
274 # in PEM format. This file is automatically
275 # deleted by the server when the command
277 # client = "/path/to/openssl verify -CApath ${..CA_path} %{TLS-Client-Cert-Filename}"
305 private_key_password = whatever
306 private_key_file = ${certdir}/client.pem
308 # If Private key & Certificate are located in
309 # the same file, then private_key_file &
310 # certificate_file must contain the same file
313 # If CA_file (below) is not used, then the
314 # certificate_file below MUST include not
315 # only the server certificate, but ALSO all
316 # of the CA certificates used to sign the
317 # server certificate.
318 certificate_file = ${certdir}/client.pem
320 # Trusted Root CA list
322 # ALL of the CA's in this list will be trusted
323 # to issue client certificates for authentication.
325 # In general, you should use self-signed
326 # certificates for 802.1x (EAP) authentication.
327 # In that case, this CA file should contain
328 # *one* CA certificate.
330 # This parameter is used only for EAP-TLS,
331 # when you issue client certificates. If you do
332 # not use client certificates, and you do not want
333 # to permit EAP-TLS authentication, then delete
334 # this configuration item.
335 CA_file = ${cadir}/ca.pem
338 # For DH cipher suites to work, you have to
339 # run OpenSSL to create the DH file first:
341 # openssl dhparam -out certs/dh 1024
343 dh_file = ${certdir}/dh
344 random_file = ${certdir}/random
347 # The default fragment size is 1K.
348 # However, TLS can send 64K of data at once.
349 # It can be useful to set it higher.
353 # include_length is a flag which is
354 # by default set to yes If set to
355 # yes, Total Length of the message is
356 # included in EVERY packet we send.
357 # If set to no, Total Length of the
358 # message is included ONLY in the
359 # First packet of a fragment series.
361 # include_length = yes
363 # Check the Certificate Revocation List
365 # 1) Copy CA certificates and CRLs to same directory.
366 # 2) Execute 'c_rehash <CA certs&CRLs Directory>'.
367 # 'c_rehash' is OpenSSL's command.
368 # 3) uncomment the line below.
374 # If check_cert_issuer is set, the value will
375 # be checked against the DN of the issuer in
376 # the client certificate. If the values do not
377 # match, the cerficate verification will fail,
378 # rejecting the user.
380 # In 2.1.10 and later, this check can be done
381 # more generally by checking the value of the
382 # TLS-Client-Cert-Issuer attribute. This check
383 # can be done via any mechanism you choose.
385 # check_cert_issuer = "/C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd"
388 # If check_cert_cn is set, the value will
389 # be xlat'ed and checked against the CN
390 # in the client certificate. If the values
391 # do not match, the certificate verification
392 # will fail rejecting the user.
394 # This check is done only if the previous
395 # "check_cert_issuer" is not set, or if
396 # the check succeeds.
398 # In 2.1.10 and later, this check can be done
399 # more generally by checking the value of the
400 # TLS-Client-Cert-CN attribute. This check
401 # can be done via any mechanism you choose.
403 # check_cert_cn = %{User-Name}
405 # Set this option to specify the allowed
406 # TLS cipher suites. The format is listed
407 # in "man 1 ciphers".
408 cipher_list = "DEFAULT"
413 home_server_pool tls {