Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Hallo, folgendes funktioniert auf meinem Server nach kurzen Tests. Hm ... hier läuft der coovachilli in einer eigenen Proxmox-VM -- also beides zusammen: freeradius chilli (localhost) In der Startdatei des chilli, also bei mir: /etc/init.d/chilli DAEMON_ARGS=--coaport 3779 Habe ich geändert. und dann im Startbefehl ergänzen: /usr/bin/chilli ... $DAEMON_ARGS ... Da bin ich nicht ganz sicher, welche Stelle du meinst. Meine chilli-Datei aus init.d sieht am Anfang (jetzt) so aus: root@linuxmuster-chilli:/etc/init.d# cat chilli -- #! /bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin #Selbst erweitert: (17.05.2015) DAEMON_ARGS=--coaport 3779 DAEMON=/usr/sbin/chilli NAME=chilli DESC=chilli --- Meintest du das *so*? Wenn ich aus /usr/sbin/chilli ein /usr/sbin/chilli $DAEMON_ARGS mache, startet der chilli nicht einem Fehler: /etc/init.d/chilli: 6: /etc/init.d/chilli: --coaport: not found echo User-Name= | radclient -x ipfire:3779 disconnect sharedsecret Klappt weiterhin nicht -- aber es gibt eine Meldung in Logfile: tail /var/log/linuxmuster-chilli/coova-chilli.log May 17 11:04:19 linuxmuster-chilli coova-chilli[10551]: CoovaChilli(ChilliSpot) 1.3.0. Copyright 2002-2005 Mondru AB. Licensed under GPL. Copyright 2006-2012 David Bird (Coova Technologies) supp...@coova.com. Licensed under GPL. See http://www.coova.org/ for details. May 17 11:04:19 linuxmuster-chilli coova-chilli[10551]: tun.c: 605: TX queue length set to 100 May 17 11:04:19 linuxmuster-chilli coova-chilli[10556]: main-script.c: 94: Running /etc/chilli/up.sh (0/0) May 17 11:04:25 linuxmuster-chilli coova-chilli[10551]: radius.c: 1932: Received radius packet from wrong port 50744! Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Hi Michael, Ich bin aber schon ganz froh, dass die Unifi-Software so genial ist! Die hat ja wirklich alles an Bord... Wir hatten es in dem Thread linuxmuster.net XenServer-Appliance schon davon, dass wir zu dem Unifi-System eine LDAP-Authentifizierung hinzugefügt haben. Du kannst es ja gerne mal testen. Ich sende dir das .deb auch via Email - dann brauchst du unser Repo nicht hinzufügen. Cava würdest du dann nicht mehr brauchen. Hier nochmal der Anmeldeschirm welcher dann erscheint: http://www.netzint.de/download/UnifiLDAPAuthScreen.JPG Viele Grüße, Maurice Cazautet NetzInt OHG Office: +49 (0) 7723 8739750-2 Web: http://www.netzint.de -Ursprüngliche Nachricht- Von: linuxmuster-user [mailto:linuxmuster-user-boun...@lists.linuxmuster.net] Im Auftrag von Michael Hagedorn Gesendet: Samstag, 16. Mai 2015 18:04 An: linuxmuster-user@lists.linuxmuster.net Betreff: Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein! Hast Du auch gesehen, dass man das Anlegen der Voucher auf einen separaten Account delegieren kann? Nein - noch nicht. Doch auch dann gilt, dass die Kollegen einen seperaten Account kennen/behalten müssen ... und dass dieser sich uU wie ein Lauffeuer unter Schülern verbreiten könnte, wenn schlampig mit den Zugangsdaten umgegagnen wird. Sicher -- das kann auch mit einem normalen Lehrer-Login zur SchuKo geschehen, doch dann ist eindeutig nachweisbar wer's war. Bei einem seperaten Account wäre das imho nicht so einfach zurückverfolgbar. Ich bin aber schon ganz froh, dass die Unifi-Software so genial ist! Die hat ja wirklich alles an Bord... Und wenn's mit dem disconnect nix wird, kann man immernoch ein /etc/init.d/chilli restart per Cronjob machen; auch wenn ich die andere Lösung nach wie vor eleganter finde. (Es wäre (längerfristig) ja sogar denkbar, dass man in der SchuKo alle angemeldeten WLAN-User anzeigen läßt und diese per Button disconnecten kann... dann wäre die Lösung oben natürlich etwas zu grob) :) Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Wer hätte es gedacht ... Hartnäckigkeit zahlt sich aus :) Ich habe es (glaube ich) hingekriegt -- und zwar viel einfacher als vermutet. Unter: /etc/chilli/config habe ich hinzugefügt: #Selbst erweitert: HS_COAPORT=3779 Offenbar ist es so, dass die Konfigurationen main.conf und hs.conf bei jedem Start neu geschrieben werden und die Optionen dann eingetragen werden. Jedenfalls ist auf diese Weise die Option coaport unter hs.conf gelandet. Danach den chilli neu starten /etc/init.d/chilli restart Anschließend habe ich mich selbst angemeldet und konnte mich mit echo User-Name=NAME |radclient -x 127.0.0.1:3779 disconnect secret disconnecten! (Übrigens klappt status auch weiterhin nicht ...! ) Man wird auch automatisch wieder auf die Portalseite umgeleitet, wenn man eine neue URL eintippt. Also klappt es offenbar tatsächlich! Jetzt kann man ja relativ einfach ein Script basteln, welches in den Pausen alle Usernamen aus coova_status herausfiltert und deren Verbindungen automatisch beendet. Problem gelöst?!? Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Für die MAC noch ein Tipp: function is_mac { mac=$1 echo $mac | grep -q -E ^([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}$ return $? } Und dann users=$(chilli_query list | grep pass | awk '{print $6}' ) echo Die folgenden Benutzer sind angemeldet: $users echo echo Die User werden abgemeldet: echo === for user in $users; do if is_mac $user; then echo $i ist eine MAC und bleibt angemeldet! else echo User-Name=$user | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name fi done Das ist jetzt nur schnell auf dem Handy aus dem Kopf getippert, kann also sein, dass da noch ein paar kleinere bugs drin sind. Vom Prinzip her sollte es aber so gehen. LG Yannik -- sent from mobile Am 17. Mai 2015 17:22:03 MESZ, schrieb Michael Hagedorn michael.haged...@leoninum.org: OK! Hier Version 1.0 beta funktioniert und macht genau das, was es soll! Ich konnte allerdings noch keinen Massentest durchführen sondern habe immer nur meinen eigenen Login und die Mac des Unifi-Controllers abwechselnd benutzt ... anders ging es nicht (remote + Wochenende) - Scriptname: disconnect-user.sh Cronjob: in jeder großen Pause und am Ende des Tages! #!/bin/bash # Radiussecret wird automatisch ausgelesen: secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d \ -f 2) # Liste aller angemeldeten WLAN-User, die in den Pausen disconnected # werden sollen. # User die nur als MAC-Adresse auftauchen duerfen ohne Auth ins WLAN. # Diese sollen beim disconnect natürlich unberücksichtigt lassen. echo echo echo Folgende User sind angemeldet: echo == LIST=$(chilli_query list | grep pass | awk '{print $6}' ) echo $LIST echo echo Die User werden abgemeldet: echo === for i in $LIST do # Wenn Username eine MAC-Adr ist, ist er 18 Zeichen (incl CR) lang -- # sonst nur 6 (bzw 7); geprüft wird daher auf 12 Zeichen: userlength=$(echo $i | wc -c) if [ $userlength -gt 12 ] then echo $i bleibt angemeldet! else #echo $LIST echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name fi done echo echo echo Nach 'disconnect' sind noch angemeldet: echo === chilli_query list | grep pass | awk '{print $6}' echo echo exit 0 - Zusätzlich habe ich einen Code-Schnipsel von Jesko (?) benutzt, der alle angemeldeten User übersichtlich und mit allen notwendigen Angaben anzeigt: Scriptname: user-online.sh (für root!) #!/bin/bash echo echo Folgende User sind angemeldet: echo == echo chilli_query list | grep pass | awk 'BEGIN {printf(%10s %18s %30s %45s \n ,USER, IP, MAC, Initial-URL)} {printf(%10s %18s %30s %45s \n, $6, $2, $1, $15)}' echo echo - Damit läßt sich doch jetzt was anfangen! Tip-Top! Michael -- Systemdaten: - virtualisiert mit Proxmox 2.3 - linuxmuster.net 6.0.46 - IPFire 2.15 - Linbo 2.1.10-0 - Ubuntu 14.04 Clients (trusty714-Vorlage) - leoclient1 mit WinXP im offline-Modus - Moodle 2.7.8 (extern mit LDAPS und openLML-Modul) - WLAN: Unifi-APs (UAP-AC) am CoovaChilli - Info-Boards: tabula.info Server + RasPi-Clients ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Hallo Michael, Hier Version 1.0 beta funktioniert und macht genau das, was es soll! Ich konnte allerdings noch keinen Massentest durchführen sondern habe immer nur meinen eigenen Login und die Mac des Unifi-Controllers abwechselnd benutzt ... anders ging es nicht (remote + Wochenende) Danke für dein Skript. Gruß, Frank Schütte ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
OK! Hier Version 1.0 beta funktioniert und macht genau das, was es soll! Ich konnte allerdings noch keinen Massentest durchführen sondern habe immer nur meinen eigenen Login und die Mac des Unifi-Controllers abwechselnd benutzt ... anders ging es nicht (remote + Wochenende) - Scriptname: disconnect-user.sh Cronjob: in jeder großen Pause und am Ende des Tages! #!/bin/bash # Radiussecret wird automatisch ausgelesen: secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d \ -f 2) # Liste aller angemeldeten WLAN-User, die in den Pausen disconnected # werden sollen. # User die nur als MAC-Adresse auftauchen duerfen ohne Auth ins WLAN. # Diese sollen beim disconnect natürlich unberücksichtigt lassen. echo echo echo Folgende User sind angemeldet: echo == LIST=$(chilli_query list | grep pass | awk '{print $6}' ) echo $LIST echo echo Die User werden abgemeldet: echo === for i in $LIST do # Wenn Username eine MAC-Adr ist, ist er 18 Zeichen (incl CR) lang -- # sonst nur 6 (bzw 7); geprüft wird daher auf 12 Zeichen: userlength=$(echo $i | wc -c) if [ $userlength -gt 12 ] then echo $i bleibt angemeldet! else #echo $LIST echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name fi done echo echo echo Nach 'disconnect' sind noch angemeldet: echo === chilli_query list | grep pass | awk '{print $6}' echo echo exit 0 - Zusätzlich habe ich einen Code-Schnipsel von Jesko (?) benutzt, der alle angemeldeten User übersichtlich und mit allen notwendigen Angaben anzeigt: Scriptname: user-online.sh (für root!) #!/bin/bash echo echo Folgende User sind angemeldet: echo == echo chilli_query list | grep pass | awk 'BEGIN {printf(%10s %18s %30s %45s \n ,USER, IP, MAC, Initial-URL)} {printf(%10s %18s %30s %45s \n, $6, $2, $1, $15)}' echo echo - Damit läßt sich doch jetzt was anfangen! Tip-Top! Michael -- Systemdaten: - virtualisiert mit Proxmox 2.3 - linuxmuster.net 6.0.46 - IPFire 2.15 - Linbo 2.1.10-0 - Ubuntu 14.04 Clients (trusty714-Vorlage) - leoclient1 mit WinXP im offline-Modus - Moodle 2.7.8 (extern mit LDAPS und openLML-Modul) - WLAN: Unifi-APs (UAP-AC) am CoovaChilli - Info-Boards: tabula.info Server + RasPi-Clients ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
in der Unifi-Webkonsole kannst Du auch Voucher erstellen. hat aber doch nicht das geringste mit der chillispot lösung zu tun. das unify system ist ja komplett was anderes eigenständiges. es ist eben das kommerzielle gegenstück zu chillispot. jonny ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Hier nochmal der Anmeldeschirm welcher dann erscheint: http://www.netzint.de/download/UnifiLDAPAuthScreen.JPG Sieht schick aus! kommerzielle lösungen sollten auch schick aussehn ;-) jonny ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
hallo, Nochmal als Nachtrag: Gesammelt *alle* Vorbereitungen/Änderungen, die man am linuxmuster-Chillispot durchführen muss, damit es klappt: das ist mehr als verwirrend. hier hast du nämlich DEINE änderungen aufgeschrieben und nicht die änderungen für den schülerkick. macauth hat damit genauso wenig zu tun, wie dein sessiontimeout. für damit es klappt ist einzig und allein die zeile HS_COAPORT=3779 notwendig... jonny -- # Vorbereitungen: #/etc/chilli/config um diese Einträge erweitern: HS_MACAUTH=on # To turn on MAC Authentication HS_MACAUTHMODE=local # To allow MAC Authentication based on # macallowed, not RADIUS HS_COAPORT=3779 # Hier die Geraete eintragen, die keine WLAN-Auth. bekommen sollen: HS_MACALLOW=A0:BB # Session-Timeout auf 45 Minuten setzen, damit eine WLAN-Session # nicht länger als 45' dauert! HS_DEFSESSIONTIMEOUT=2700 # Anschließend /etc/init.d/chilli restart ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Michael Hagedorn schrieb: Super, Yannik! Danke für's Mitdenken -- dann kommt hier Version 1.1 (stable :)) ich würde dringend empfehlen, deine versionsangabe sowie das erstellungsdatum in die kommentare zu übernehmen. jonny ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Michael Hagedorn schrieb: Hallo, folgendes funktioniert auf meinem Server nach kurzen Tests. Hm ... hier läuft der coovachilli in einer eigenen Proxmox-VM -- also beides zusammen: freeradius chilli (localhost) NUR deshalb klappt das ganze bei dir auch so problemlos, ohne daß du weitere sachen ändern musst, da in der openml radius und nas immer auf derselben maschine laufen und die nas nicht extern oder gar hinter ner firewall oder nat laufen. aber das ist ja die hauptsache :-) du musst nun nurnoch beachten, daß dein script auf der radius vm ausgeführt werden muss... jonny ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Michael Hagedorn schrieb: Falls hier noch einer mitliest... hier fragte 2013 einer eine ähnliche Frage --- und wird am Ende mit ban/unsubscribe usw bedroht... hoffe, dass mir hier nicht das gleiche Schicksal blüht :) :) http://lists.freeradius.org/pipermail/freeradius-users/2013-March/065521.html jonny hat's ja schon richtig auf den Punkt gebracht: Die Konfiguration ist nicht trivial -- und JA: ich sehe es ein! lach. im gegensatz zu dir hat der poster dort aber den tipp den coa port zu öffnen, damit der disconnect klappt, nicht verstanden/beachtet... jonny ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Hi jonny. Wusste ich doch, dass du dich nochmal meldest :) das ist mehr als verwirrend. hier hast du nämlich DEINE änderungen aufgeschrieben und nicht die änderungen für den schülerkick. macauth hat damit genauso wenig zu tun, wie dein sessiontimeout. Das stimmt nicht ganz, denn _drin_ bleiben die festen Arbeitsstationen ja nur, wenn sie per macauth angemeldet und daher nicht als username sondern per mac-Adresse erscheinen... aber egal: Ich wollte nur nochmal *alles* beisammen haben, damit andere, die das umsetzen wollen, nicht genauso lange mühsam alles zusammen suchen müssen wie ich. Zudem habe ich die Sache mit dem sessiontimeout drin gelassen, damit zwei Mechanismen gleichzeitig greifen. Mir fallen nur wenige Stunden ein, in denen ein Schüler dringend mehr als 45 Minuten online sein muss... Bin jedenfalls froh, dass es endlich läuft. Und so kompliziert war es dam Ende dann doch nicht -- was aber vermutlich wirklich daran liegt, dass sich alles auf einer Maschine abspielt und auch der Cronjob lokal ausgeführt wird Michael -- Systemdaten: - virtualisiert mit Proxmox 2.3 - linuxmuster.net 6.0.46 - IPFire 2.15 - Linbo 2.1.10-0 - Ubuntu 14.04 Clients (trusty714-Vorlage) - leoclient1 mit WinXP im offline-Modus - Moodle 2.7.8 (extern mit LDAPS und openLML-Modul) - WLAN: Unifi-APs (UAP-AC) am CoovaChilli - Info-Boards: tabula.info Server + RasPi-Clients ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
So, ich habe das gerade noch einmal zu Hause getestet: function is_mac { mac=$1 echo $mac | grep -q -E ^([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}$ return $? } Das Grep-Pattern sollte man noch in Anführungszeichen setzen. Ansonsten funktioniert das 1a :-) LG Yannik Am 17.05.2015 um 18:00 schrieb Yannik Sembritzki: Für die MAC noch ein Tipp: function is_mac { mac=$1 echo $mac | grep -q -E ^([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}$ return $? } Und dann users=$(chilli_query list | grep pass | awk '{print $6}' ) echo Die folgenden Benutzer sind angemeldet: $users echo echo Die User werden abgemeldet: echo === for user in $users; do if is_mac $user; then echo $i ist eine MAC und bleibt angemeldet! else echo User-Name=$user | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name fi done Das ist jetzt nur schnell auf dem Handy aus dem Kopf getippert, kann also sein, dass da noch ein paar kleinere bugs drin sind. Vom Prinzip her sollte es aber so gehen. LG Yannik -- sent from mobile Am 17. Mai 2015 17:22:03 MESZ, schrieb Michael Hagedorn michael.haged...@leoninum.org: OK! Hier Version 1.0 beta funktioniert und macht genau das, was es soll! Ich konnte allerdings noch keinen Massentest durchführen sondern habe immer nur meinen eigenen Login und die Mac des Unifi-Controllers abwechselnd benutzt ... anders ging es nicht (remote + Wochenende) Scriptname: disconnect-user.sh http://disconnect-user.sh Cronjob: in jeder großen Pause und am Ende des Tages! #!/bin/bash # Radiussecret wird automatisch ausgelesen: secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d \ -f 2) # Liste aller angemeldeten WLAN-User, die in den Pausen disconnected # werden sollen. # User die nur als MAC-Adresse auftauchen duerfen ohne Auth ins WLAN. # Diese sollen beim disconnect natürlich unberücksichtigt lassen. echo echo echo Folgende User sind angemeldet: echo LIST=$(chilli_query list | grep pass | awk '{print $6}' ) echo $LIST echo echo Die User werden abgemeldet: echo === for i in $LIST do # Wenn Username eine MAC-Adr ist, ist er 18 Zeichen (incl CR) lang -- # sonst nur 6 (bzw 7); geprüft wird daher auf 12 Zeichen: userlength=$(echo $i | wc -c) if [ $userlength -gt 12 ] then echo $i bleibt angemeldet! else #echo $LIST echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name fi done echo echo echo Nach 'disconnect' sind noch angemeldet: echo chilli_query list | grep pass | awk '{print $6}' echo echo exit 0 Zusätzlich habe ich einen Code-Schnipsel von Jesko (?) benutzt, der alle angemeldeten User übersichtlich und mit allen notwendigen Angaben anzeigt: Scriptname: user-online.sh http://user-online.sh (für root!) #!/bin/bash echo echo Folgende User sind angemeldet: echo echo chilli_query list | grep pass | awk 'BEGIN {printf(%10s %18s %30s %45s \n ,USER, IP, MAC, Initial-URL)} {printf(%10s %18s %30s %45s \n, $6, $2, $1, $15)}' echo echo Damit läßt sich doch jetzt was anfangen! Tip-Top! Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Nochmal als Nachtrag: Gesammelt *alle* Vorbereitungen/Änderungen, die man am linuxmuster-Chillispot durchführen muss, damit es klappt: -- # Vorbereitungen: #/etc/chilli/config um diese Einträge erweitern: HS_MACAUTH=on # To turn on MAC Authentication HS_MACAUTHMODE=local # To allow MAC Authentication based on # macallowed, not RADIUS HS_COAPORT=3779 # Hier die Geraete eintragen, die keine WLAN-Auth. bekommen sollen: HS_MACALLOW=A0:BB # Session-Timeout auf 45 Minuten setzen, damit eine WLAN-Session # nicht länger als 45' dauert! HS_DEFSESSIONTIMEOUT=2700 # Anschließend /etc/init.d/chilli restart Jetzt könnte man einen Wiki-Beitrag daraus machen ... aber erst muss noch ein Großtest her... Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Super, Yannik! Danke für's Mitdenken -- dann kommt hier Version 1.1 (stable :)) #!/bin/bash # Dieses Script listet zunächst alle WLAN-User auf, # die momentan verbunden sind. # Anschließend werden alle verbundenen User disconnected. # Der Aufruf geschieht über einen Cronjob in den großen Pausen und # am Ende des Tages. # Usernamen die nur als MAC-Adresse auftauchen duerfen ohne # Auth ins WLAN. # Diese werden beim disconnect unberücksichtigt gelassen. # Vorbereitungen: # /etc/chilli/config um diesen Eintrag erweitern: # HS_COAPORT=3779 # Anschließend /etc/init.d/chilli restart #Funktion fragt ab, ob User eine MAC-Adresse ist: function is_mac { mac=$1 echo $mac | grep -q -E ^([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}$ return $? } # Radiussecret wird automatisch ausgelesen: secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d \ -f 2) echo echo echo Die folgenden User sind angemeldet: echo === users=$(chilli_query list | grep pass | awk '{print $6}' ) echo $users echo echo Die User werden abgemeldet: echo === for user in $users; do if is_mac $user; then echo $user ist eine MAC und bleibt angemeldet! else echo User-Name=$user | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name fi done echo echo echo Nach 'disconnect' sind noch angemeldet: echo === chilli_query list | grep pass | awk '{print $6}' echo echo exit 0 #EOF --- Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!
Am Samstag, 16. Mai 2015, 22:53:18 schrieb Dirk Zöllner: Am 16.05.2015 um 19:55 schrieb Michael Hagedorn: Falls hier noch einer mitliest... hier fragte 2013 einer eine ähnliche Frage --- und wird am Ende mit ban/unsubscribe usw bedroht... hoffe, dass mir hier nicht das gleiche Schicksal blüht :) :) http://lists.freeradius.org/pipermail/freeradius-users/2013-March/065521.h tml http://www.coova.org/node/1453 + http://lists.freeradius.org/pipermail/freeradius-users/2013-March/065527.htm l Hallo, folgendes funktioniert auf meinem Server nach kurzen Tests. In der Startdatei des chilli, also bei mir: /etc/init.d/chilli DAEMON_ARGS=--coaport 3779 und dann im Startbefehl ergänzen: /usr/bin/chilli ... $DAEMON_ARGS ... (bei mir läuft der Radiusserver auf linuxmuster.net und der coovachilli auf dem ipfire) /etc/init.d/chilli stop / start und dann auf dem linuxmuster.net-Server: echo User-Name= | radclient -x ipfire:3779 disconnect sharedsecret Es erscheint auf linuxmuster.net: Sending Disconnect-Request of id 188 to 10.16.1.254 port 3779 User-Name = rad_recv: Disconnect-NAK packet from host 10.16.1.254 port 3779, id=188, length=20 Es erscheint im chilli.log: radius.c: 1898: 0 (Debug) Received RADIUS packet id=188 chilli.c: 4758: 0 (Debug) Received coa or disconnect request chilli.c: 4782: 0 (Debug) Looking for session [username=,sessionid=all] Das sieht für mich so aus, als ob der disconnect durchkommt. Gruß, Frank ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
[lmn] Bootmenu über menu.lst kann Windows nicht starten
Ich versuche (um andere Fehler zu umgehen) statt direkt in Linbo zu booten ein Auswahlmenü vorzuschalten. Hierfür wird (meines Wissens nach) die Datei menu.lst verwendet, hier meine: -- default 1 #defaultsaved # (normally the first entry defined). timeout 3 # Pretty colours color cyan/blue white/blue ## ## End Default Options ## title LINBO root(hd0,1) kernel /linbo vga=788 quiet initrd /linbofs.lz title Windows root(hd0,0) makeactive chainloader +1 boot ### END DEBIAN AUTOMAGIC KERNELS LIST -- Ich habe das ganze mal getestet, indem ich die Datei einfach auf die lokale Linbo-Partition ins verzeichnis boot\grub kopiert habe, und das Bootmenu startet auch wie vorgesehen. Wähle ich Linbo, so startet auch dieses normal und aus Linbo heraus startet auch Windows. Wähle ich aber direkt Windows, so kommt folgende Fehermeldung: Partition table not recognized (boot_drive 0x80, err=14). boot Error 43: The BPB hidden_sectors should be zero for a hard-disk partition boot sector. Die Festplatte findet er schon, die Formatierung wird mit fat bestätigt und es kommt auch noch die Meldung, dass die Partition schon aktiv ist. Ich hab eine Restauration mittels der Windows-Boot-CD auch schon getestet, ohne Erfolg. Ach ja, es ist lml 6.1 und noch Windows XP! :) Hat jemand 'ne Idee? Danke und Gruß Christoph ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Hi Michael, kurzer Tipp zu deinem Skript: Ans Ende der Zeilen müssen keine Semikolons hin. Ansonsten würde ich das beim parsen des radiussecret statt grep radiussecret grep ^radiussecret verwenden, da sonst auch der Begriff radiussecret in Kommentaren oder auskommentierten Config-Zeilen gemacht werden. Der 'cut -d \ -f 2)' Befehl ist suboptimal, da der Konfigurationswert auch nicht in Anführungszeichen stehen kann. ('radiussecretradTest' oder 'radiussecretradTest'). Da würde ich eher (zum Beispiel, außerdem frei geschrieben und ungetestet) sowas benutzen: sed 's/^radiussecret[[:space:]]+*(.*)*$/\1/g'. Statt echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret solltest du echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret benutzen, für den Fall, dass secret Zeichen die escaped werden müssen beinhaltet. |grep pass kann man wahrscheinlich auch noch durch eine schönere regex ersetzen, ich kenne die Ausgabe von chilli_query list aber nicht. LG Yannik Am 17.05.2015 um 12:43 schrieb Michael Hagedorn: Ok -- wer A sagt ... Hier kommt eine erste Fassung für ein kleines disconnect-script. Vielleicht kann's ja auch sonst noch jemand gebrauchen?? (Die Änderungen bzgl coaport müssen natürlich vorher durchgeführt werden!) Leider ist eine Sache noch nicht eingebaut -- und zwar die Unterscheidung der User, die regulär eingeloggt sind im Vergeleich zu denen, die ohne Auth. surfen dürfen und die natürlich NICHT abgemeldet werden sollen ... aber das Script selbst funktioniert schon mal. Anstelle von awk geht hier sicher auch cut bzw geht's auch sonst sicher eleganter ... Verbesserungsvorschläge sind natürlich willkommen! --- root@linuxmuster-chilli:/home/coovaadmin# cat disconnect-user.sh #!/bin/bash # Radiussecret wird automatisch ausgelesen: secret=$(cat /etc/chilli/hs.conf |grep radiussecret | cut -d \ -f 2); # Liste aller angemeldeten WLAN-User, die in den Pausen disconnected # werden sollen. # User die nur als MAC-Adresse auftauchen duerfen ohne Auth ins WLAN. # Diese sollen beim disconnect natürlich unberücksichtigt lassen. # Diese Unterscheidung muss noch eingebaut werden! echo echo echo Folgende User sind angemeldet:; echo ==; LIST=$(chilli_query list | grep pass | awk '{printf(%10s \n, $6, $2, $1, $8)}' ); echo $LIST; echo echo Diese User wurden abgemeldet:; echo ==; for i in $LIST do #echo $LIST echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name; done echo echo echo Nach 'disconnect' sind noch angemeldet:; echo ===; chilli_query list | grep pass | awk '{printf(%10s \n, $6, $2, $1, $8)}' ; echo echo exit 0 -- Michael ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Hi. kurzer Tipp zu deinem Skript: Danke. Ans Ende der Zeilen müssen keine Semikolons hin. Muss nicht -- kann aber. Die anderen Tipps habe ich eingebaut. Der awk-Befehl läßt sich ebenfalls radikal vereinfachen: LIST=$(chilli_query list | grep pass | awk '{print $6}' ); liefert schon den Usernamen ... (war copypaste aus einem anderen Script) da der Konfigurationswert auch nicht in Anführungszeichen stehen kann. Der wird ja automatisch da hineingeschrieben -- daher denke ich, dass die Syntax stets gleich ist?? |grep pass kann man wahrscheinlich auch noch durch eine schönere regex ersetzen, ich kenne die Ausgabe von chilli_query list aber nicht. Möglich -- aber es funktioniert im Moment. Meine Frage wäre, wie ich im Usernamen eine Unterscheidung durchführen kann ... also konkret: Wenn's eine MAC-Adr ist tue nichts -- sonst führe den disconnect aus. Vielleicht könnte man da nach - suchen lassen, da dieses Zeichen bei uns in keinem Usernamen vorkommt. Aber ob das allgemeingültig ist, wage ich mal zu bezweifeln... Momentaner Stand: #!/bin/bash # Radiussecret wird automatisch ausgelesen: secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d \ -f 2); # Liste aller angemeldeten WLAN-User, die in den Pausen disconnected werden sollen. # User die nur als MAC-Adresse auftauchen duerfen ohne Auth ins WLAN. # Diese sollen beim disconnect natürlich unberücksichtigt lassen. # Diese Unterscheidung muss noch eingebaut werden! echo echo echo Folgende User sind angemeldet:; echo ==; LIST=$(chilli_query list | grep pass | awk '{print $6}' ); echo $LIST; echo echo Die User werden abgemeldet:; echo ==; for i in $LIST do #echo $LIST echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name; done echo echo echo Nach 'disconnect' sind noch angemeldet:; echo ===; chilli_query list | grep pass | awk '{print $6}' ; echo echo exit 0 -- Systemdaten: - virtualisiert mit Proxmox 2.3 - linuxmuster.net 6.0.46 - IPFire 2.15 - Linbo 2.1.10-0 - Ubuntu 14.04 Clients (trusty714-Vorlage) - leoclient1 mit WinXP im offline-Modus - Moodle 2.7.8 (extern mit LDAPS und openLML-Modul) - WLAN: Unifi-APs (UAP-AC) am CoovaChilli - Info-Boards: tabula.info Server + RasPi-Clients ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
Re: [lmn] WLAN für Schüler per SchuKo -- gelöst!
Das ändert trotzdem nichts daran, dass sowohl Semikolon wie auch newline command separators sind und deine Semikolons somit doppelt gemoppelt ist. Hättest du alle Kommandos auf einer Zeile würde es wieder Sinn machen, so tut es das nicht. Ok -- ich habe mal irgendwo gelesen, dass man die ; besser setzen soll um sozusagen ganz sicher zu gehen. Wie wäre es übrigens mit der Unterscheidung der Fälle Username=abcdef (also 6-7 Buchstaben) vs Username=91-D5-56-42-FC-53 (also 17 Zeichen bei einer MAC-Adresse) Das könnte man doch evtl so nutzen: if expr length $i=17 echo $i else echo User-Name=$i | radclient -x 127.0.0.1:3779 disconnect $secret | grep User-Name; Oder spricht etwas dagegen?? [Hab's noch nicht ausprobiert -- und bin bei der Syntax auch nicht 100%ig sicher... aber der Sinn dürfte klar werden. ] ___ linuxmuster-user mailing list linuxmuster-user@lists.linuxmuster.net https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user