Services/RADIUS.md
... ...
@@ -1,4 +1,4 @@
1
-Remote Authentication Dial-In User Service (RADIUS)
1
+ Remote Authentication Dial-In User Service (RADIUS)
2 2
=============================================
3 3
4 4
# Généralités
... ...
@@ -110,25 +110,216 @@ les serveurs virtuels.
110 110
La configuration de freeradius est versionnée et disponible sur le [git](git.resel.fr).
111 111
**(bon en fait c'est pas encore fait, mais je m'en occupe très bientôt)**
112 112
113
-### Cas de Beowulf, Rescuerad et Wifiradix (Wi-Fi)
113
+### Configuration d'un serveur RADIUS pour authentification **PEAPv0/EAP-MSCHAPv2**
114 114
115
-La connection Wi-Fi est configurée pour du **PEAPv0/EAP-MSCHAPv2**.
115
+C'est le serveur configuré sur Beowulf, Rescuerad et Wifiradix.
116
+La documentation disponible sur internet pour la version 2.x pour réaliser ce type de serveur
117
+est assez succinte, dans la version 3.x elle est inexistante à l'heure actuelle. Je vais essayer
118
+de détailler ce que j'ai réussi à comprendre ici, mais des erreurs peuvent se glisser dans les
119
+explications.
116 120
117
-#### Serveurs virtuels
121
+#### Configuration de base
118 122
119
-Deux serveurs virtuels sont configurés dans mods-enabled: il s'agit de `default` et `inner-tunnel`.
123
+Rien de particulier dans ces fichiers, simplement configurer un client `localhost` dans `clients.conf`
124
+permettra de tester la configuration (voir sections suivantes).
125
+
126
+#### Serveurs virtuels
127
+
128
+Deux serveurs virtuels sont nécessaires : `default` et `inner-tunnel`.
120 129
Le premier réponds aux requêtes Radius provenant des bornes wifi. Le second est utilisé par le module
121 130
EAP pour réaliser l'authentification MS-CHAPv2. Il ne réponds donc que aux requêtes locales (en provenance de
122 131
la machine hôte du Radius).
123 132
133
+On a donc, dans le répertoire `sites-enabled`, deux fichiers nommmés `default` et `inner-tunnel`
134
+
124 135
##### default
136
+La configuration complète de ce serveur virtuel est disponible [ici](Services/RADIUS/config/PEAPv0/sites-enabled/default)
137
+
138
+Points-clefs, dans l'ordre:
139
+
140
+```
141
+listen{
142
+ type = auth
143
+ ipaddr = *
144
+ port = 1812
145
+}
146
+```
147
+On configure un serveur virtuel qui va répondre aux requêtes en provenance de toutes les ip.
148
+(en réalité on définit les clients dans le fichier correspondant, voir plus haut)
149
+
150
+```
151
+authorize {
152
+ if (User-Name !~ /resel(.*)$/) {
153
+ if (User-Name =~ /^(.*)@(.*)/) {
154
+ update control {
155
+ Proxy-To-Realm := 'FEDEREZ'
156
+ }
157
+ }
158
+ }
159
+
160
+ ......
161
+}
162
+```
163
+Authentification pour les utilisateurs externes au ResEl mais faisant partit d'un réseau partenaire Federez (je ne sais pas si ça fonctionne toujours)
164
+
165
+```
166
+authorize{
167
+...
168
+
169
+eap {
170
+ ok = return
171
+}
172
+
173
+...
174
+}
175
+```
176
+Permet l'exécution de requêtes de type EAP
177
+
178
+```
179
+authorize{
180
+...
181
+
182
+files
183
+
184
+...
185
+}
186
+```
187
+Permet l'authentification avec le modules files (fichier `users` dans les versions de freeradius antérieures à la 3.x).
188
+Nagios et ???? se connectent au Radius via ce module.
189
+
190
+
191
+
192
+```
193
+authenticate{
194
+...
195
+
196
+eap
197
+
198
+...
199
+}
200
+```
201
+Liste le module eap parmi les modules utilisables pour l'authentification.
202
+
125 203
126 204
##### inner-tunnel
127 205
206
+La configuration complète de ce serveur virtuel est disponible [ici](Services/RADIUS/config/PEAPv0/sites-enabled/inner-tunnel)
207
+
208
+Points-clefs, dans l'ordre:
209
+
210
+```
211
+listen {
212
+ ipaddr = 127.0.0.1
213
+ port = 18120
214
+ type = auth
215
+}
216
+```
217
+Le serveur virtuel n'écoute que les requêtes locales, en provenance de la machine elle-même.
218
+
219
+```
220
+authorize {
221
+
222
+ mschap
223
+
224
+ ...
225
+}
226
+```
227
+Utilise le module mschap pour l'authentification.
228
+
229
+
230
+```
231
+authorize {
232
+
233
+ ...
234
+
235
+ ldap
236
+ pap
237
+}
238
+```
239
+Utilise le LDAP pour trouver le mot de passe. Je ne sais pas pourquoi `pap` est listé aussi, quoi qu'il en soit si je ne le met pas après `ldap` une erreur bizarre apparait.
240
+
241
+```
242
+authenticate {
243
+
244
+ Auth-Type MS-CHAP {
245
+ mschap
246
+ }
247
+}
248
+```
249
+Autorise le module mschap
250
+
128 251
129 252
130 253
#### Modules utilisés
131 254
255
+De nombreux modules sont actvés, beaucoup sont activés par défault et leur config n'a
256
+pas été modifié. Elles ne seront pas détaillées ici.
257
+
258
+```
259
+18:53 root@beowulf ~ # ls ~freerad/3.0/mods-enabled
260
+always@ digest@ expr@ mschap@ realm@ utf8@
261
+attr_filter@ dynamic_clients@ files ntlm_auth@ replicate@
262
+cache_eap@ eap ldap@ pap@ soh@
263
+chap@ echo@ passwd@ sradutmp@
264
+detail@ exec@ linelog@ preprocess@ unix@
265
+detail.log@ expiration@ logintime@ radutmp@ unpack@
266
+
267
+```
268
+
269
+##### eap
270
+
271
+```
272
+eap {
273
+ default_eap_type = peap
274
+ timer_expire = 60
275
+ ignore_unknown_eap_types = no
276
+ cisco_accounting_username_bug = no
277
+ max_sessions = 4096
278
+
279
+ tls-config tls-common {
280
+ certdir = ${confdir}/certs
281
+ cadir = ${confdir}/certs
282
+
283
+
284
+ private_key_file = ${certdir}/wifi/2017/resel-fr.key
285
+ certificate_file = ${certdir}/wifi/2017/resel-chained.pem
286
+ dh_file = ${certdir}/dh
287
+ random_file = /dev/urandom
288
+ fragment_size = 1024
289
+ include_length = yes
290
+ ca_path = ${cadir}/empty
291
+
292
+ }
293
+
294
+
295
+
296
+ ttls {
297
+ tls = tls-common
298
+
299
+ default_eap_type = mschapv2
300
+ copy_request_to_tunnel = yes
301
+ use_tunneled_reply =yes
302
+ virtual_server = "inner-tunnel"
303
+ include_length = yes
304
+ }
305
+ peap {
306
+ tls = tls-common
307
+
308
+ default_eap_type = mschapv2
309
+ copy_request_to_tunnel = yes
310
+ use_tunneled_reply = yes
311
+ virtual_server = "inner-tunnel"
312
+ }
313
+ mschapv2 {
314
+ send_error = yes
315
+ }
316
+}
317
+
318
+```
319
+
320
+##### ldap
321
+
322
+la configuration complète du module est disponible [ici](Services/RADIUS/config/PEAPv0/mods-enabled/ldap)
132 323
133 324
### Cas de Beaune
134 325
TODO