• moderiert von:
  • OSS-Admin
Zum aktuellsten Beitrag
Internet sperren beim abmelden
  • verfasst: 12.09.2006, 10:18
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    Hallo - ich mal wieder..

    habe eine Frage. Kann man es irgendwie bewerkstelligen das sobald sich ein Lehrer von seinem Lehrerarbeitsplatz abmeldet - das Internet gesperrt ist? Gibt es da ein zu installierendes Script oder eine Einstellungsmöglichkeit? Ich wei� man könnte auch das mit den Zugriffszeitplan regeln, dass nach jeder Stunde, der Raum gesperrt wird. Das Problem ist das bei Doppelstunden dann auch in der Pause gesperrt wird, aber viele Lehrer dann teilweise noch was im Internet recherchieren und einige hier der Meinung sind das es nicht alle Kollegen es schaffen das Internet einfach wieder in der Admin-Oberfläche einszustellen ( -_-* )
    Wenns eine möglichkeit gibt wäre es nett wenn Ihr mir weiterhelfen könnten. Vielen Dank im vorraus.

    MfG

    Marko

    --
    generiert von Sloganizer
  • verfasst: 17.09.2006, 23:31
       
    Lars
    Forenrang:
    Site Admin Site Admin
    registriert:
     November 2003
    Status:
    offline
    letzter Besuch:
    27.11.09
    Beiträge:
    526
    akira2012Hallo - ich mal wieder..

    habe eine Frage. Kann man es irgendwie bewerkstelligen das sobald sich ein Lehrer von seinem Lehrerarbeitsplatz abmeldet - das Internet gesperrt ist?



    Welches Betriebssystem?

    Unter Windows könnte ich mir da ein spezielles Skript vorstellen, welches beim Abmelden mit root-Rechten ausgeführt wird. Dazu wäre dann ein Eintrag in der Datei /etc/samba/pdc-server.in zu machen:

    -------------------------[schnipp]
    [allteachers]
    root postexec = /usr/sbin/set_default_access_for_room.pl %I %g
    -------------------------[schnapp]

    Das Skript bekommt also als Parameter die Client-IP und die Gruppenzugehörigkeit des Benutzers (der ja eigentlich nur sysadmin oder teacher sein kann, weil das Skript in allteachers ausgeführt wird) übergeben. Damit lä�t sich dann schon einiges anstellen... icon_smile

    Aber jetzt muss ich ins Bett - vielleicht fällt ja über Nacht noch jmd. etwas Schlaueres ein icon_wink

    Viele Grü�e
    Lars
  • verfasst: 18.09.2006, 09:31
    Anonymous
    registriert:
     November 2003
    Status:
    offline
    letzter Besuch:
    05.02.09
    Beiträge:
    360
    Danke erstmal für die Antwort.
    Ja die Clienten sind alle mit Windows XP bestückt. Hei�t das wenn ich die pdc-server.in so abändere dann wars das schon?`Oder brauche ich DANN noch ein Script für die Windows Clients?



    GruÃ? und Dank


    Marko
  • verfasst: 18.09.2006, 09:33
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    ... vergessen mich einzuloggen -_-*

    --
    generiert von Sloganizer
  • verfasst: 25.09.2006, 16:50
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    Hey Lars, gibts dich noch? ^_^

    --
    generiert von Sloganizer
  • verfasst: 29.09.2006, 00:32
       
    Lars
    Forenrang:
    Site Admin Site Admin
    registriert:
     November 2003
    Status:
    offline
    letzter Besuch:
    27.11.09
    Beiträge:
    526
    akira2012Hey Lars, gibts dich noch? ^_^


    Ups, ja. Sorry. Mache hier gerade 80h Woche und komme einfach zu nix. icon_frown

    Zitat Hei�t das wenn ich die pdc-server.in so abändere dann wars das schon?`Oder brauche ich DANN noch ein Script für die Windows Clients?


    Richtig. DANN brauchst du noch das passende Skript. Das sollte aber eigentlich nicht so schwer sein, weil es ja schon ein entsprechendes Skript für die Raumsteuerung gibt, welches nur die passenden Werte übermittelt bekommen muss. Ich fange mal fix an - aochs möge dann weiterbasteln (der wolle eh noch ein wenig Perl lernen icon_wink

    Code
    1. #!/usr/bin/perl -w
    2. #
    3. # set_default_access_for_room.pl
    4. #
    5. use strict;
    6. use Net::LDAP;
    7. use Net::Netmask;
    8. # Hier bitte die Werte aus /etc/openldap/slapd.conf
    9. # eintragen. Gesucht wird die "rootdn"
    10. my $LDAP_BASE="ou=DHCP,dc=example,dc=com";
    11.  
    12.  
    13. my $logfile="/var/log/set_default_access_for_room.log";
    14. my $ip="";
    15. my $user="noname";
    16.  
    17. # kleine Hilfe:
    18. sub usage {
    19.     print "Usage:  PNFORUMCODEREPLACEMENT0  <ip-address> [username]\n";
    20.     exit 1;
    21. }
    22.  
    23. # Wir brauchen mindestens eine IP - also bitte icon_wink
    24. usage() unless $ARGV[1] ne '';
    25.  
    26. if ( $ARGV[0] eq "-h" || $ARGV[0] =~ /-help$/ ) {
    27.     usage();
    28. }
    29.  
    30. $ip=$ARGV[0];
    31.  
    32. if ( defined($ARGV[1])) {
    33.     $user = $ARGV[1];
    34. }
    35.  
    36. # erst mal brauchen wir ein Objekt zum arbeiten:
    37. my $ldap=Net::LDAP->new('ldap',port => 389 , version => 3) or die "$@";
    38.  
    39. # jetzt schauen wir mal, ob wir eine Verbindung kriegen:
    40. my $mesg = $ldap->bind ;
    41.  
    42. # ...und jetzt suchen wir im LDAP Baum:
    43. $mesg = $ldap->search(base   => $LDAP_BASE,
    44.                       filter => '(&(Objectclass=SchoolRoom)(description=*))',
    45.                       attrs  => ['description','dhcpRange','dhcpNetMask']
    46.                      );
    47.  
    48. # War das Ergebnis brauchbar?
    49. if ( $mesg->code != 0 ){
    50.     print stderr "Keine Räume gefunden\n";
    51.     $mesg = $ldap->unbind;
    52.     exit 1;
    53. }
    54.  
    55. ##########################################
    56. # ok. Dann stellen wir jetzt was damit an
    57. ##########################################
    58.  
    59. # jetzt holen wir uns erst einmal alle Räume, die es gibt...
    60. my @rooms;
    61. foreach my $entry ($mesg->all_entries) {
    62.     my $val = $entry->get_value("description");
    63.     my $key = $val.'::'.$entry->get_value("dhcpRange").'/'.$entry->get_value('dhcpNetMask');
    64.     if ( defined $key && $key ne "" ) {
    65.         push @rooms, $key;
    66.     }
    67. }
    68.  
    69. # ...und anschlieÃ?en schauen wir mal wo wir sind...
    70. foreach my $name (@rooms){
    71.     my ($room, $network) = split /::/ ,$name;
    72.     my $block = new Net::Netmask($network);
    73.     # befindet sich die übermittelte IP-Adresse im Netzwerkbereich des Raumes?
    74.     if( $block->match($ip)){
    75.         # dann holen wir uns jetzt mal die DEFAULTS für diesen Raum
    76.         $mesg = $ldap->search(base   => $LDAP_BASE,
    77.                               filter => "(&(Objectclass=SchoolRoom)(description=$room))",
    78.                               attrs  => ['serviceAccesControl']
    79.                              );
    80.  
    81.         # gibt es wirklich default Werte für diesen Raum?
    82.         if ( $mesg->code != 0 ){
    83.             print stderr "Keine DEFAULT Werte für Raum $room gefunden\n";
    84.             print stderr "Bitte im Adminfrontend definieren.\n";
    85.             $mesg = $ldap->unbind;
    86.             exit 1;
    87.         }
    88.  
    89.         # Dann schauen wir jetzt nach den einzelnen Werten.
    90.         foreach my $entry ($mesg->all_entries) {
    91.           foreach my $access ($entry->get_value('serviceAccesControl')) {
    92.             my @defaults = split / /,$access;
    93.             my $tmp      = shift @defaults;
    94.             if($tmp eq 'DEFAULT')  {
    95.                 foreach my $serv (@defaults){
    96.                     my ($srv,$param)=split /:/,$serv;
    97.                     # und jetzt setzen wir die ermittelten Werte
    98.                     system("/usr/sbin/control_access $param $network $srv");
    99.                 }
    100.             }
    101.           }
    102.         }
    103.     # eigentlich sind wir hier fertig - aber wir wollen noch wissen, wie
    104.     # fleiÃ?ig die Kollegen waren.
    105.     open(LOG,">>$logfile") or die "Kann $logfile nicht öffnen: $!\n";
    106.     my $time=`date`;
    107.     chomp($time);
    108.     print LOG "$time [$user] $room\n";
    109.     close(LOG);
    110.     }
    111. }
    112.  
    113. # so - die Verbindung zum LDAP Server brauchen wir nun nicht mehr
    114. $mesg = $ldap->unbind;


    DIe Zeilen oben bitte per "copy'n'paste" auf den OSS kopieren und dort als Datei
    /usr/sbin/set_default_access_for_room.pl
    abspeichern und mit
    chmod 750 /usr/sbin/set_default_access_for_room.pl
    ausführbar machen. Vorher noch die Werte hinter "my $LDAP_BASE" anpassen. Dafür war ich jetzt zu faul. Ach ja: und getestet ist das ganze natürlich auch noch nicht - das wolltest du ja dann machen icon_smile

    CU,
    Lars


    Ach ja: Download hier
  • verfasst: 29.09.2006, 23:07
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    Lars
    Ups, ja. Sorry. Mache hier gerade 80h Woche und komme einfach zu nix. icon_frown


    Yo ich kenn das ^_^. Wollte auch nur noch mal auf mich aufmerksam machen ^^


    Lars

    DIe Zeilen oben bitte per "copy'n'paste" auf den OSS kopieren und dort als Datei
    /usr/sbin/set_default_access_for_room.pl
    abspeichern und mit
    chmod 750 /usr/sbin/set_default_access_for_room.pl
    ausführbar machen. Vorher noch die Werte hinter "my $LDAP_BASE" anpassen. Dafür war ich jetzt zu faul. Ach ja: und getestet ist das ganze natürlich auch noch nicht - das wolltest du ja dann machen icon_smile

    CU,
    Lars


    Oha das klingt nicht nur kompliziert sondern sieht auch noch so aus O_O*
    Naja werde mal sehen wie ich das am besten Teste ohne den Server wieder lahm zu legen ^^. Werde mir das nochma genauer anschaun aber ob ich die Werte da finde die du nicht eintragen wolltest das wage ich zu bezweifeln.. Oder meinst du etwa garnicht mich? ^_^* Ich finde es schon beachtlich das du dir sowas mal eben aus dem ärmel schüttelst. RESPEKT! Ich wünschte ich könnte sowas auch. =)


    Vielen lieben Dank erstmal

    Marko

    --
    generiert von Sloganizer
  • verfasst: 01.10.2006, 15:52
       
    Lars
    Forenrang:
    Site Admin Site Admin
    registriert:
     November 2003
    Status:
    offline
    letzter Besuch:
    27.11.09
    Beiträge:
    526
    Hi Marko

    akira2012Oha das klingt nicht nur kompliziert sondern sieht auch noch so aus O_O*


    Nö - ist es eigentlich nicht. Ich hab versucht den Code so ausführlich wie möglich zu kommentieren. Was du eigentlich nur tun mu�t ist einfach. In Zeile 10 in dem Script steht:
    Code
    1. my $LDAP_BASE="ou=DHCP,dc=example,dc=com";


    Hier solltest du anstelle von "dc=example,dc=com" deine eigene Domain einsetzen. Also wenn du bei der Installation "schule.de" gewählt hast, dann "dc=schule,dc=de".
    Normalerweise kann ich das auch aus der Datei /etc/openldap/slapd.conf auslesen - aber so bin ich mir wenigstens sicher, dass du das Script nicht einfach ungeprüft übernimmst. icon_smile

    Damit "weiÃ?" das Skript dann aber, welchen LDAP-Zweig es auf dem LDAP-Server befragen muss, damit es an die richtigen Werte kommt.


    ZitatNaja werde mal sehen wie ich das am besten Teste ohne den Server wieder lahm zu legen


    Wie alles andere auch: gaaanz vorsichtig icon_smile
    Gut für dich: das Skript liest nur aus dem LDAP-Server Werte aus und verändert dort nichts. Allerdings werden durch das Skript die Firewall-Regeln überschrieben. Diese kann man notfalls mit einem rcSuSEfirewall2 restart wieder korrigieren.

    ZitatIch finde es schon beachtlich das du dir sowas mal eben aus dem ärmel schüttelst. RESPEKT! Ich wünschte ich könnte sowas auch. =)


    Keine Angst: "Mal so eben" schüttel ich mir das auch nicht aus dem �rmel. Aber inzwischen kenne ich genügend anderen Code wo ich mir ohne Bedenken einfach die benötigten Teile zusammenklaue. icon_wink

    ...und damit du sowas auch mal kannst, dafür habe ich den Code schon kommentiert und stehe auch gerne bei weiteren Fragen zur Verfügung.

    Viele Grü�e,
    Lars

  • verfasst: 01.10.2006, 17:04
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    Na dann werd ich das mal nach den Ferien testen.

    Da bleibt wohl nur noch zu sagen --> Vielen vielen DANK!


    viele Grü�e

    Marko

    --
    generiert von Sloganizer
  • verfasst: 23.10.2006, 11:04
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    LAAAAAAAAAARS

    Argh - hatte den Code noch nicht kopiert und nu ist er weg >_> . Waren doch Schulferien hier... Konnte das also nicht testen. Wenn du den Code noch hast dann schreib ihn bitte nochmal rein. Danke.




    MfG

    Marko

    --
    generiert von Sloganizer
  • verfasst: 24.10.2006, 21:23
       
    Lars
    Forenrang:
    Site Admin Site Admin
    registriert:
     November 2003
    Status:
    offline
    letzter Besuch:
    27.11.09
    Beiträge:
    526
    Hi

    akira2012LAAAAAAAAAARS


    Jaaaaaaaaaa????????? icon_wink


    akira2012Argh - hatte den Code noch nicht kopiert und nu ist er weg >_> . Waren doch Schulferien hier... Konnte das also nicht testen. Wenn du den Code noch hast dann schreib ihn bitte nochmal rein. Danke.


    Wieso so kompliziert?
    Nimm doch einfach den Link hier (-:
    http://www.linux-schulserver.de/Cmo...ad-index-req-getit-lid-122.phtml


    Viele Grü�e,
    Lars
  • verfasst: 06.11.2006, 11:36
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    Hallihallohallöle,

    alsooooo. Nach etlicher Zeit bin ich endlich zum testen gekommen. Mit dem Ergebnis das es NICHT funktioniert. Ich schlie�e natürlich nicht aus der der Fehler mal wieder an der Tastatur sitzt und nicht im Skript aber ich bilde mir zumindest ein alles so gemacht zu haben wie du es mir erklärt hast. Also beim abmelden der Lehrer passiert garnichts. Wobei ja in deinem Script von "default" Rechten für den Raum die rede war. Sind das jede welche ich unter "Zugriffszeitplan" sehe oder stehen die noch woanders und es funktioniert nicht weil garkeine Rechte vorgegeben sind? Wiedereinmal Fragen über Fragen. Ich werde mir nochmal das Handbuch zu gemüte führen ob da was über die Zugangsrechte steht von wegen "default". Wenn du vorher schon Rat wei�t immer her damit =)



    MfG


    Marko

    --
    generiert von Sloganizer
  • verfasst: 06.11.2006, 14:53
     
    Forenrang:
    OSS Admin OSS Admin
    registriert:
     Februar 2005
    Status:
    offline
    letzter Besuch:
    13.02.10
    Beiträge:
    168
    Hallo,
    akira2012Ich schlie�e natürlich nicht aus der der Fehler mal wieder an der Tastatur sitzt und nicht im Skript. Wobei ja in deinem Script von "default" Rechten für den Raum die rede war. Sind das jede welche ich unter "Zugriffszeitplan" sehe oder stehen die noch woanders


    Wenn bei den "default" Rechten steht, dass das Internet erlaubt ist, dann wird der Raum auf diese Rechte gesetzt. Wenn da aber steht, dass per default das Internet verboten ist, dann sollte auch der Zugang zum Internet verboten sein.
    Die "default"-Einstellungen findest du unter "Zugriffszeitplan", hier ist es der erste Eintrag (Default Einstellungen).
    �berprüf doch mal die Einstellung.

    Viele Grü�e
    Andreas
  • verfasst: 06.11.2006, 19:16
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    Hi Andreas, ^^

    ja das dachte ich mir doch. Dann ist meine Antwort definitiv --> Es funktioniert LEIDER nicht.


    MfG

    Marko



    editiert von: akira2012, 06.11.2006, 20:17 Uhr

    --
    generiert von Sloganizer
  • verfasst: 28.11.2006, 08:05
     
    akira2012
    Forenrang:
    Profi Profi
    registriert:
     August 2006
    Status:
    offline
    letzter Besuch:
    30.11.08
    Beiträge:
    100
    >>>still not running ;)<<<

    Habe es nochmal Versucht mit gleichem Erfolg. Leider verstehe ich nicht viel von dem was da in dem Script steht darum konnt ich bisher keine Lösung zu dem Problem finden -_-*

    Wenn euch noch was einfällt bzw jemand wei� obs vllcht nur an mir liegt - BITTE POSTEN!! :)



    MfG

    Marko

    --
    generiert von Sloganizer

 Suchen:


 Umfrage

(Nur für angemeldete Benutzer)

Was wird hier am meisten vermisst?

[ Ergebnis | Umfragen ]

Stimmen: 621
Kommentare: 0

 Zitate

This driver conforms to Linus Confidence Level 2:
It looks right
X It builds
It works
It passes stress tests

-- Jeff Garzik on linux-kernel