On Wed, Nov 28, 2012 at 06:30:21PM +0100, Thomas Ritter wrote: > Kann ich unter diesen Bedingungen einzelne APs für die Gruppe > wireless, in der meine Schüler sind, sperren, um ihn für Lehrer oder > andere Aufgaben zu reservieren? Hallo Thomas, das sollte eigentlich so gehen (ungetestet): Alle Access-Points in der Datei "/etc/freeradius/huntgroups" jeweils einer Gruppe zuordnen: # /etc/freeradius/huntgroups schueler-aps NAS-IP-Address == 10.1.0.201 schueler-aps NAS-IP-Address == 10.1.0.202 schueler-aps NAS-IP-Address == 10.1.0.203 schueler-aps NAS-IP-Address == 10.1.0.204 schueler-aps NAS-IP-Address == 10.1.0.205 lehrer-aps NAS-IP-Address == 10.1.0.220 lehrer-aps NAS-IP-Address == 10.1.0.230 reserve-aps NAS-IP-Address == 10.1.0.240 # In der Datei "/etc/freeradius/sites-available/default" den Abschnitt "authorize" ergänzen um "preprocess", damit der Inhalt der Datei huntgroups ausgewertet wird; die Bedingungen am Ende geeignet anpassen: #/etc/freeradius/sites-available/default authorize { auth_log eap { ok = return } preprocess files } authenticate { Auth-Type Kerberos { krb5 } eap } accounting { # detail unix radutmp exec attr_filter.accounting_response } session { radutmp } # Hier wird der Zugang von Gruppen festgelegt. Beispiel: User erlauben, # falls zu den Gruppen teachers oder wireless gehoerend, dazu noch auf # bestimmte APs beschränken. # "teachers" dürfen alle APs bis auf die in der Gruppe reserve-aps benutzen, # die Gruppe "wireless" nur die schueler-aps. post-auth { if ( Group == teachers && Huntgroup-Name != reserve-aps ) { noop } elsif ( Group == wireless && Huntgroup-Name == schueler-aps ) { noop } else { reject } } ----------------------------------------------------------------------- Gruß, Wolfgang > >Subject: Re: GOSA und RADIUS- Server > >To: user@skolelinux.de > >Message-ID: <20121023110509.GA14289@schweer-online.local> > >Content-Type: text/plain; charset="iso-8859-1" > > > >On Fri, Oct 19, 2012 at 07:30:40PM +0200, Thomas Ritter wrote: > >> > >>hat Jemand von euch einen RADIUS-Server für ein WLAN am Laufen oder > >>möchte es gern mit mir gemeinsam ausprobieren? Ich möchte einer > >>ausgewählten Benutzergruppe ( ->GOSA) einen Zugang zum schulischen > >>WLAN einrichten (können) > > > >Hallo Thomas, > > > >kurz aufgeschrieben, alles ohne Garantie: > > > >-------------------------------------------------------------------- > >Debian-Edu Squeeze: WLAN mit WPA2 Enterprise (EAP-TTLS außen, PAP im > >inneren Tunnel) > >-------------------------------------------------------------------- > > > >Als root auf tjener ausführen: > > > > > >(1) Kerberos-Anbindung für freeradius herstellen. > > > >kadmin -p root/admin@INTERN > >[Admin-Passwort eingeben] > > > >Am kadmin-Prompt Schlüssel erzeugen, in Datei ablegen, verlassen. > >kadmin: ank -randkey radius/tjener@INTERN > >kadmin: ktadd -k /etc/krb5.keytab.radius radius/tjener@INTERN > >kadmin: q > > > >Rechte der Datei kontrollieren, sollte 0600 sein. > > > > > >(2) Pakete installieren. > > > >aptget update > >apt-get install freeradius-krb5 > > > >(Die Pakete freeradius, freeradius-common und freeradius-utils sollten > >automatisch mit installiert werden.) > > > > > >(3) Sechs Dateien modifizieren; unten sind alle überflüssigen Inhalte > >weggelassen. > > > >1. > >#/etc/freeradius/modules/krb5 > >krb5 { > > keytab = /etc/krb5.keytab.radius > > service_principal = radius/tjener > >} > ># > > > > > >2. > >#/etc/freeradius/eap.conf: > > eap { > > default_eap_type = ttls > > timer_expire = 60 > > ignore_unknown_eap_types = no > > cisco_accounting_username_bug = no > > max_sessions = 4096 > > md5 { > > } > > tls { > > certdir = ${confdir}/certs > > cadir = ${confdir}/certs > > private_key_password = whatever > > private_key_file = ${certdir}/server.key > > certificate_file = ${certdir}/server.pem > > CA_file = ${cadir}/ca.pem > > dh_file = ${certdir}/dh > > random_file = /dev/urandom > > CA_path = ${cadir} > > cipher_list = "DEFAULT" > > cache { > > enable = no > > } > > } > > ttls { > > default_eap_type = md5 > > copy_request_to_tunnel = yes > > use_tunneled_reply = yes > > virtual_server = "inner-tunnel" > > } > > } > ># > > > > > >3. > >#/etc/freeradius/users > ># > ># Alternativ; bessere Zugangssteuerung ueber Gruppen ist > ># in der Datei ../sites-available/default realisiert. > ># > >#DEFAULT Group != "wireless", Auth-Type := Reject > ># Reply-Message = "Zugang nicht erlaubt" > > > >DEFAULT Auth-Type = Kerberos > ># > > > > > >4. > >#/etc/freeradius/clients.conf > ># Client-IP (Access-Point oder Concentrator),secret und shortname > ># anpassen, secret im AP ebenfalls. > ># > >client 10.0.2.3 { > > secret = bitte_aendern > > shortname = ddwrt > >} > ># > > > > > >5. > >#/etc/freeradius/sites-available/default > >authorize { > > auth_log > > eap { > > ok = return > > } > > files > >} > > > >authenticate { > > Auth-Type Kerberos { > > krb5 > > } > > eap > >} > > > >accounting { > ># detail > > unix > > radutmp > > exec > > attr_filter.accounting_response > >} > > > >session { > > radutmp > >} > > > ># Hier wird der Zugang von Gruppen festgelegt. Beispiel: User erlauben, > ># falls zu den Gruppen teachers oder wireless gehoerend. > >post-auth { > > if ( Group == teachers ) { > > noop > > } > > elsif ( Group == wireless ) { > > noop > > } > > else { > > reject > > } > >} > ># > > > > > >6. > > > >#/etc/freeradius/sites-available/inner-tunnel > >server inner-tunnel { > >listen { > > ipaddr = 127.0.0.1 > > port = 18120 > > type = auth > >} > >authorize { > > update control { > > Proxy-To-Realm := LOCAL > > } > > eap { > > ok = return > > } > > files > > expiration > > logintime > > pap > >} > > > >authenticate { > > Auth-Type PAP { > > pap > > } > > Auth-Type Kerberos { > > krb5 > > } > >} > > > >session { > > radutmp > >} > > > >} > > > >(4) Den Dienst neu starten. > > > >invoke-rc.d freeradius restart > > > > > > > >Zur Fehlerkontrolle Debug-Modus: > > > >invoke-rc.d freeradius stop > >freeradius -X > >Dann Verbindung aufbauen und den Output kontrollieren.
Attachment:
signature.asc
Description: Digital signature