Re: [lmn] WLAN für Schüler per SchuKo: An : ja -- Aus nein!

2015-05-17 Diskussionsfäden Michael Hagedorn

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!

2015-05-17 Diskussionsfäden Maurice Cazautet
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!

2015-05-17 Diskussionsfäden Michael Hagedorn

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!

2015-05-17 Diskussionsfäden 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
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!

2015-05-17 Diskussionsfäden Frank Schütte
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!

2015-05-17 Diskussionsfäden Michael Hagedorn
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!

2015-05-17 Diskussionsfäden jonny
 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!

2015-05-17 Diskussionsfäden jonny

 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!

2015-05-17 Diskussionsfäden jonny
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!

2015-05-17 Diskussionsfäden jonny


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!

2015-05-17 Diskussionsfäden jonny


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!

2015-05-17 Diskussionsfäden jonny


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!

2015-05-17 Diskussionsfäden Michael Hagedorn
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!

2015-05-17 Diskussionsfäden Yannik Sembritzki
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!

2015-05-17 Diskussionsfäden Michael Hagedorn

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!

2015-05-17 Diskussionsfäden Michael Hagedorn

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!

2015-05-17 Diskussionsfäden Frank Schütte
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

2015-05-17 Diskussionsfäden Christoph Krebs
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!

2015-05-17 Diskussionsfäden Yannik Sembritzki
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!

2015-05-17 Diskussionsfäden Michael Hagedorn
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!

2015-05-17 Diskussionsfäden Michael Hagedorn

 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