Skip to content

Commit 0904fd7

Browse files
committed
regenerate from raddb source
1 parent ce9269a commit 0904fd7

39 files changed

+544
-687
lines changed

doc/antora/modules/reference/pages/raddb/clients.conf.adoc

Lines changed: 79 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -81,22 +81,45 @@ a secret any more!
8181

8282
The secret can be any string, up to 8k characters in length.
8383

84-
Control codes can be entered via octal encoding,
85-
e.g. `\101\102` is the same as `AB`
86-
Quotation marks can be entered by escaping them,
87-
e.g. `foo\"bar`
84+
Control codes can be entered via octal encoding:
8885

89-
An important note on security: The security of the
90-
RADIUS protocol depends *completely* on this secret! We
91-
recommend using a shared secret that is composed of:
86+
`secret = "\101\102"` is the same as `AB`
9287

93-
* upper case letters
94-
* lower case letters
95-
* numbers
88+
Quotation marks can be entered by escaping them:
9689

97-
And is *at least* 8 characters, but preferably 16 characters in
98-
length. The secret *must* be random, and should not be words,
99-
phrase, or anything else that is recognisable.
90+
`secret = "foo\"bar"`
91+
92+
or by using triple quotes:
93+
94+
`secret = """foo"bar"""
95+
96+
A note on security: The security of the RADIUS protocol
97+
depends COMPLETELY on this secret! We recommend using a
98+
shared secret that at LEAST 16 characters long. It should
99+
preferably be 32 characters in length. The secret MUST be
100+
random, and should not be words, phrase, or anything else
101+
that is recognisable.
102+
103+
Computing power has increased enormously since RADIUS was
104+
first defined. A hobbyist with a high-end GPU can try ALL
105+
of the 8-character shared secrets in about a day. The
106+
security of shared secrets increases MUCH more with the
107+
length of the shared secret, than with number of different
108+
characters used in it. So don't bother trying to use
109+
"special characters" or anything else in an attempt to get
110+
un-guessable secrets. Instead, just get data from a secure
111+
random number generator, and use that.
112+
113+
You should create shared secrets using a method like this:
114+
115+
dd if=/dev/random bs=1 count=24 | base64
116+
117+
This process will give output which takes 24 random bytes,
118+
and converts them to 32 characters of ASCII. The output
119+
should be accepted by all RADIUS clients.
120+
121+
You should NOT create shared secrets by hand. They will
122+
not be random. They will will be trivial to crack.
100123

101124
The default secret below is only for testing, and should
102125
not be used in any real environment.
@@ -105,17 +128,32 @@ not be used in any real environment.
105128

106129
require_message_authenticator::Require Message-Authenticator in Access-Requests.
107130

108-
https://tools.ietf.org/html/rfc5080[RFC 5080] suggests that all clients *should* include it in an
109-
Access-Request. The configuration item below allows the server
110-
to require it. If a client is required to include a `link:https://freeradius.org/rfc/rfc2869.html#Message-Authenticator[Message-Authenticator]`
111-
and it does not, then the packet will be silently discarded.
112-
113-
If value is auto, then if any packet received from the client
114-
contains a valid Message-Authenticator attribute, then the server
115-
will require it from all future packets from that client.
116-
117-
NOTE: This setting overrides the identically named config item in the
118-
radius listener.
131+
https://tools.ietf.org/html/rfc5080[RFC 5080] suggests that all clients *should* include it in
132+
an Access-Request. The configuration item below allows the
133+
server to require it. If a client is required to include a
134+
`link:https://freeradius.org/rfc/rfc2869.html#Message-Authenticator[Message-Authenticator]` and it does not, then the packet
135+
will be silently discarded.
136+
137+
If value is` auto`, then when an `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]` packet from
138+
the client contains a valid `link:https://freeradius.org/rfc/rfc2869.html#Message-Authenticator[Message-Authenticator]`
139+
attribute, the server will then require that it exist in
140+
all future `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]` packets from that client.
141+
142+
This flag exists solely for legacy clients which do not
143+
send `link:https://freeradius.org/rfc/rfc2869.html#Message-Authenticator[Message-Authenticator]` in all `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]`
144+
packets. We do not recommend setting it to `no`, as that
145+
may allow the BlastRADIUS attack to take place.
146+
147+
The number one way to protect yourself from the BlastRADIUS
148+
attack is to update all RADIUS servers, and then set this
149+
flag to `yes`. If all RADIUS servers are updated, and if
150+
all of them have this flag set to `yes` for all clients,
151+
then your network is safe. You can then upgrade the
152+
clients when it is convenient, instead of rushing the
153+
upgrades.
154+
155+
NOTE: This per-client setting overrides the identically
156+
named configuration item in the `listen` section.
119157

120158
Allowed values: yes, no, auto
121159

@@ -124,35 +162,39 @@ The default is "no".
124162

125163

126164
limit_proxy_state:: Control whether Proxy-State is allowed in
127-
packets from this client which do not have a Message-Authenticator.
165+
packets from this client which do not have a `link:https://freeradius.org/rfc/rfc2869.html#Message-Authenticator[Message-Authenticator]`.
128166

129-
The blastradius prefix attack allows an attacker to manipulate
130-
the contents of response packets without knowing the shared secret.
167+
The BlastRADIUS attack allows an attacker to manipulate the
168+
contents of responses to `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]` packets, without
169+
knowing the shared secret.
131170

132171
The attack relies on controlling a portion of the data sent back
133172
in the response by the RADIUS server. As Proxy-State is always
134173
echoed back verbatim from the request, it can be leveraged to
135174
manipulate the data sent back from the server and facilitate the
136175
attack.
137176

138-
The attack also relies on defficiencies in the original RADIUS
139-
standards that provided no integrity protection for Access-Requests.
177+
The attack also relies on deficiencies in the original
178+
RADIUS standards which do not provide xintegrity protection
179+
for `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]`s.
140180

141181
The attack is mitigated by requiring the Message-Authenticator,
142182
which contains a HMAC over the entire request, preventing
143183
modification of the request by the attacker.
144184

145-
If value is auto, and the first packet received from the client
146-
does not contain a Proxy-State attribute, Proxy-State will be
147-
disallowed in any future packets which do not contain a
148-
Message-Authenticator.
185+
If value is` auto`, then when an `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]` packet
186+
from the client contains does not contain a `link:https://freeradius.org/rfc/rfc2865.html#Proxy-State[Proxy-State]`
187+
attribute, the server will the discard `link:https://freeradius.org/rfc/rfc2865.html#Access-Request[Access-Request]`
188+
packets from the client which contain `link:https://freeradius.org/rfc/rfc2865.html#Proxy-State[Proxy-State]`, but no
189+
`Message-Authenticator.
149190

150-
This provides some level of protection against the blastradius
151-
attack, without requiring Message-Authenticator, or breaking existing
152-
deployments.
191+
This provides some level of protection against the
192+
blastradius attack, without requiring
193+
`link:https://freeradius.org/rfc/rfc2869.html#Message-Authenticator[Message-Authenticator]` in all packets, or breaking
194+
existing deployments.
153195

154196
NOTE: This setting overrides the identically named config item in the
155-
radius listener.
197+
radius `listen` section.
156198

157199
Allowed values: yes, no, auto
158200

doc/antora/modules/reference/pages/raddb/dictionary.adoc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ edited by local administrators. It will be loaded
1111

1212
NOTE: We recommend using local variables inside of "unlang"
1313
sections instead of defining attributes in this file. See
14-
the xref:index.adoc[reference documentation]
14+
the xref:reference:index.adoc[reference documentation]
1515
for more information on
1616
xref:unlang/local.adoc[local variables].
1717

@@ -147,11 +147,15 @@ copy of the v3 dictionary, then it won't work. Migrations across
147147
major version numbers means that the configuration files are *not*
148148
100% compatible. This includes the dictionaries!
149149

150-
All of the v3 compatibility names are in the RADIUS namespace.
150+
The v3 compatibility names are in the RADIUS namespace.
151151
There are no aliases for DHCPv4.
152152

153153

154154

155+
This dictionary includes v3-compatible names like "Cleartext-Password",
156+
or "NT-Password".
157+
158+
155159
== Default Configuration
156160

157161
```
@@ -162,4 +166,5 @@ There are no aliases for DHCPv4.
162166
#$INCLUDE ${dictdir}/radius/v3/dictionary.cisco
163167
#$INCLUDE ${dictdir}/radius/v3/dictionary.aruba
164168
#END-PROTOCOL RADIUS
169+
#$INCLUDE ${dictdir}/freeradius/v3/dictionary.freeradius.internal
165170
```

doc/antora/modules/reference/pages/raddb/mods-available/chap.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44

5-
= CHAP module
5+
= CHAP
66

77
This module authenticates requests containing a `link:https://freeradius.org/rfc/rfc2865.html#CHAP-Password[CHAP-Password]` attribute.
88

doc/antora/modules/reference/pages/raddb/mods-available/detail.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ NOTE: The attributes should be listed one to a line.
115115

116116
```
117117
detail {
118-
filename = ${radacctdir}/%{Net.Src.IP}/detail-%Y-%m-%d
118+
filename = "${radacctdir}/%{Net.Src.IP}/detail-%Y-%m-%d"
119119
# filename = ${radacctdir}/detail
120120
escape_filenames = no
121121
permissions = 0600

doc/antora/modules/reference/pages/raddb/mods-available/detail.example.com.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ corner cases.
3535

3636
```
3737
detail detail.example.com {
38-
filename = ${radacctdir}/detail.example.com/detail-%Y-%m-%dT%H:%G:00
38+
filename = "${radacctdir}/detail.example.com/detail-%Y-%m-%dT%H:%G:00"
3939
}
4040
```

doc/antora/modules/reference/pages/raddb/mods-available/detail.log.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,25 @@ See the example in `raddb/sites-available/default`.
6565

6666
```
6767
detail auth_log {
68-
filename = ${radacctdir}/%{Net.Src.IP}/auth-detail-%Y-%m-%d
68+
filename = "${radacctdir}/%{Net.Src.IP}/auth-detail-%Y-%m-%d"
6969
permissions = 0600
7070
suppress {
7171
User-Password
7272
}
7373
}
7474
detail reply_log {
75-
filename = ${radacctdir}/%{Net.Src.IP}/reply-detail-%Y-%m-%d
75+
filename = "${radacctdir}/%{Net.Src.IP}/reply-detail-%Y-%m-%d"
7676
permissions = 0600
7777
}
7878
detail pre_proxy_log {
79-
filename = ${radacctdir}/%{Net.Src.IP}/pre-proxy-detail-%Y-%m-%d
79+
filename = "${radacctdir}/%{Net.Src.IP}/pre-proxy-detail-%Y-%m-%d"
8080
permissions = 0600
8181
# suppress {
8282
# User-Password
8383
# }
8484
}
8585
detail post_proxy_log {
86-
filename = ${radacctdir}/%{Net.Src.IP}/post-proxy-detail-%Y-%m-%d
86+
filename = "${radacctdir}/%{Net.Src.IP}/post-proxy-detail-%Y-%m-%d"
8787
permissions = 0600
8888
}
8989
```

doc/antora/modules/reference/pages/raddb/mods-available/eap.adoc

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@ request will still end up being rejected.
7777

7878
type:: Only EAP types listed below with a `type = <EAP-Type>` pair will be allowed.
7979

80+
If the `control.EAP-Type` attribute is set, then that is used to form the list of
81+
allowed EAP types, with the first instance being the default type and others also
82+
being allowed.
83+
84+
Setting an EAP type in `control.EAP-Type` which is not allowed below, will not have
85+
any effect, since this list determines which methods are loaded and potentially
86+
available.
87+
8088

8189

8290
### EAP-MD5
@@ -207,15 +215,15 @@ the following sections:
207215
| `clear session { ... }`
208216
| Clear stateful session information from a cache.
209217

210-
| `verify certificate { ... }`
218+
| `verify certificate { ... }`
211219
| Apply policies based on the client certificate presented.
212220

213221
| `staple certificate { ... }`
214222
| Gather stapling information for one or more of our certificates.
215223
|===
216224

217225
More information about the various sections can be found in the virtual server
218-
link:../../../../../../sites-available/tls-cache.adoc[sites-available/tls-cache].
226+
xref:reference:raddb/sites-available/tls-session.adoc[sites-available/tls-session].
219227

220228

221229
auto_chain::
@@ -943,7 +951,7 @@ Both `copy_request_to_tunnel` and `use_tunneled_reply` have been
943951
removed in v4.0.
944952
945953
See the new policy `copy_request_to_tunnel` in
946-
link:../../../../../../sites-available/inner-tunnel.adoc[sites-available/inner-tunnel], and in `policy.d/eap` for
954+
xref:reference:raddb/sites-available/inner-tunnel.adoc[sites-available/inner-tunnel], and in `policy.d/eap` for
947955
more information.
948956
====
949957

@@ -1016,6 +1024,7 @@ the fix does appear to work.
10161024
NOTE: To use `PEAP` you must also configure an inner method in
10171025
`mods-enabled/eap_inner`.
10181026

1027+
10191028
tls:: Point to the common TLS configuration
10201029

10211030
Which `tls-config` section the TLS negotiation parameters are
@@ -1038,11 +1047,13 @@ Both `copy_request_to_tunnel` and `use_tunneled_reply` have been
10381047
removed in v4.0.
10391048
10401049
See the new policy `copy_request_to_tunnel` in
1041-
link:../../../../../../sites-available/inner-tunnel.adoc[sites-available/inner-tunnel], and in `policy.d/eap`
1050+
xref:reference:raddb/sites-available/inner-tunnel.adoc[sites-available/inner-tunnel], and in `policy.d/eap`
10421051
for more information.
1052+
10431053
====
10441054

10451055

1056+
10461057
virtual_server:: The virtual server used for "inner" authentication.
10471058

10481059
The inner tunneled request can be sent through a virtual
@@ -1367,7 +1378,7 @@ eap {
13671378
auth_type = PAP
13681379
}
13691380
tls-config tls-common {
1370-
# virtual_server = tls-cache
1381+
# virtual_server = tls-session
13711382
# auto_chain = no
13721383
chain rsa {
13731384
# format = "PEM"

doc/antora/modules/reference/pages/raddb/mods-available/files.adoc

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,18 @@ match_attr:: List and attribute to populate with the `name` of the matched entry
3939
Note: the attriubte type should be capable of holding data of the type
4040
used as key values.
4141
Particularly useful if matching IP addresses to subnets, since the populated
42-
value will be the subnet. In that case it is best to use 0.0.0.0/0 in place
43-
of DEFAULT for any catch-all entries.
42+
value will be the subnet. In that case it is best to use `0.0.0.0/0` in place
43+
of `DEFAULT` for any catch-all entries.
44+
45+
46+
47+
v3_compat:: Version 3 compatibility flag.
48+
49+
When this flag is set, any enumeration names (e.g. Service-Type := Framed-User)
50+
do not need to have the v4 "::" prefix. This flag helps with migrating v3
51+
configurations to v4.
52+
53+
Default value "false". Allowerd vlaues, "true' and "false".
4454

4555

4656

@@ -55,6 +65,7 @@ files {
5565
# key = "%{&Stripped-User-Name || &User-Name}"
5666
filename = ${moddir}/authorize
5767
# match_attr = &control.User-Category
68+
# v3_compat = false
5869
}
5970
files files_accounting {
6071
# key = "%{&Stripped-User-Name || &User-Name}"

0 commit comments

Comments
 (0)