#!/bin/bash
#
# /usr/sbin/internmetdaemon.sh
#
# Version 1.0
# 20.6.2024
#

template_user=linuxadmin
servername=server
#
# folgende Option muss ggf. der eigenen AD-Domain angepasst werden
ad_domain=lmn.lan

if [ -e "/etc/linuxmuster-maus/X11_last_user_display" ]; then
  DP=$(cat /etc/linuxmuster-maus/X11_last_user_display)
else
  DP=":0"
fi

BENUTZER=$(who -u | awk -v dp="$DP" '$2==dp { print $1 }' | head -1)
if [ -z "$BENUTZER" ]; then
  BENUTZER=$(who -u | awk '{print $1}' | head -1)
fi

krbfile=$(find /tmp -user "$BENUTZER" -name "krb5cc*" -type f)
#
# folgende Optionen fuer ldbsearch Version 4.7.6 - Ubuntu 18.04
# i_member=$(ldbsearch -k yes --krb5-ccache=$krbfile -H ldaps://$servername.$ad_domain "(&(samaccountname=$BENUTZER))" | grep -E "memberOf.*CN=internet")
#
# folgende Optionen fuer ldbsearch Version 4.15.13 - Ubuntu 22.04
i_member=$(sudo -u $BENUTZER ldbsearch --use-kerberos=required --use-krb5-ccache=$krbfile -H ldap://$servername.$ad_domain "(&(samaccountname=$BENUTZER))" | grep -E "memberOf.*CN=internet")

if [[ -z "$i_member" ]]  && [[ -n "$BENUTZER" ]] && [[ $BENUTZER != $template_user ]]
then
iptables -A OUTPUT -p tcp --dport 3128 -j REJECT
# echo $(date)" ... Internet aus für "$BENUTZER >> /var/log/i_on_off.log
else
iptables -D OUTPUT -p tcp --dport 3128 -j REJECT
# echo $(date)" ... Internet an für "$BENUTZER >> /var/log/i_on_off.log
fi 

exit 0
