Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:classroom_management:lmn7-internetdaemon]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
anwenderwiki:classroom_management:lmn7-internetdaemon [2019/11/26 15:44] – [Internetsperre am Linux-Client in der lmn7] martin.resanwenderwiki:classroom_management:lmn7-internetdaemon [2019/11/26 15:44] (aktuell) – [Internetsperre am Linux-Client in der lmn7] martin.res
Zeile 1: Zeile 1:
 +{{tag> maussk interentdaemon lmn7}}
 +
 +====== Internetsperre am Linux-Client in der lmn7 ======
 +In der lmn7 wird die Internetsperre Benutzer-bezogen über die Zugehörigkeit des Benutzers zur Gruppe "Internet" geregelt. Diese Zugehörigkeit wird vom Proxy der Firewall ausgewertet und dann ggf. der Zugang des internets gesperrt. Leider funktioniert die Sperre mit einer größeren Verzögerung, da der Proxy diese Auswertung nicht bei jedem Seitenaufruf macht.\\
 +Als Lösung wird am Linux-Client ein Script installiert, das diese Auswertung alle 20 Sekunden macht und dann ggf. über die lokale Firewall des Clients den Proxy / Internetzugang des Clients und somit des Benutzers sperrt.
 +Der Cronjob zu dem Script muss aber nach Installation erst freigeschaltet werden.
 +
 +
 +Cronjob mit der Datei "''**/etc/cron.d/internetdaemon**''" aktivieren:
 +<code>
 +SHELL=/bin/sh
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +
 +# folgende Zeile freischalten, um die clientseitige Internetsperre zu aktivieren 
 +* * * * * root /usr/sbin/internetdaemon.sh; sleep 20; /usr/sbin/internetdaemon.sh; sleep 20; /usr/sbin/internetdaemon.sh
 +</code>
 +
 +Script "''**/usr/sbin/internetdaemon.sh**''", das die Gruppenzugehörigkeit testet und die lokale Firewall des Clients konfiguriert:
 +<code>
 +#!/bin/bash
 +#
 +# /usr/sbin/internetdaemon.sh
 +#
 +
 +# folgende 3 Variablen ggf. anpassen
 +
 +template_user=linuxadmin
 +servername=server
 +ad_domain=lmn.lan
 +
 +user=$(who | awk '$2 ~ /:0/ {print $1}')
 +krbfile=$(find /tmp -user "$user" -name "krb5cc*" -type f)
 +i_member=$(ldbsearch -k yes --krb5-ccache=$krbfile -H ldaps://$servername.$ad_domain "(&(samaccountname=$user))" | grep -E "memberOf.*CN=internet")
 +
 +if [[ -z "$i_member" ]]  && [[ -n "$user" ]] && [[ $user != $template_user ]]
 +then
 +iptables -A OUTPUT -p tcp --dport 3128 -j REJECT
 +# echo $(date)" ... Internet aus für "$user >> /var/log/i_on_off.log
 +else
 +iptables -D OUTPUT -p tcp --dport 3128 -j REJECT
 +# echo $(date)" ... Internet an für "$user >> /var/log/i_on_off.log
 +fi 
 +
 +exit 0
 +</code>
 +
 +Der Cronjob ruft das Script alle 20 Sekunden auf. Wenn ein Domänen-Benutzer angemeldet ist wird ggf. der Proxy-Zugang (Port 3128) gesperrt, ansonsten wird er freigegeben.
 +
 +**Problematik:**\\
 +Falls das Internet durch die Netzwerk-Firewall OPNsense gesperrt ist, kann natürlich die lokale Firewal des Clients diese Sperre nicht aufheben!
  
 [[anwenderwiki:classroom_management:lmn7-internetdaemon]] anwenderwiki/classroom_management/lmn7-internetdaemon.txt · Zuletzt geändert: 2019/11/26 15:44 von martin.res