« Contrôle parental » : différence entre les versions

Aller à la navigation Aller à la recherche
23 763 octets enlevés ,  il y a 3 ans
mAucun résumé des modifications
 
(184 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
lien sur le [http://www.debian-fr.org/controle-parental-pour-le-pc-debian-de-vos-enfants-t42009.html forum]
__TOC__


<code bash>
Petit rappel : Le contrôle parental ne doit pas se substituer aux coups d’œil et dialogues avec vos enfants de temps en temps mais apporte un plus.
#!/bin/bash


# CTparental.sh
Je vous propose donc de mettre en place un filtrage directement sur le pc a protéger, à l'aide de :
#
# par guillaume MARSAT
# une parti du code est tirer du scripte alcasar-bl.sh créer par Franck BOUIJOUX and Richard REY
# présent dans le code du projet alcasar en version 2.6.1 ; web page http://www.alcasar.net/


# This script is distributed under the Gnu General Public License (GPL)
iptables+dnsmasq+dansguardian+privoxy (Pour le filtrage)
if [ ! $UID -eq 0 ]; then
 
  echo "Il vous faut les droit root pour lancer ce scripte"
lighttpd (Pour la page de redirection et l'interface d'administration)
  exit 1
 
fi
 
args=${1}
 
SED="/bin/sed -i"
== Les sources. ==
DIR_CONF="/usr/local/etc/CTparental"
 
tempDIR="/tmp/alcasar"
Toutes les sources sont sur le [https://gitlab.com/marsat/CTparental site officiel]
RougeD="\033[1;31m"
 
BleuD="\033[1;36m"
== Installation par le deb : ==
VertD="\033[1;32m"
 
Fcolor="\033[0m"
Téléchargez la dernière version deb correspondant à votre distribution sur https://gitlab.com/marsat/CTparental/-/releases .
GESTIONNAIREDESESSIONS=" login gdm lightdm slim kdm xdm "
 
FILEPAMTIMECONF="/etc/security/time.conf"
il y a 2 branches encore actives du logiciel en fonction des paquets utilisés pour effectuer le filtrages, ce qui permet d’être plus modulable en fonction des machines et distributions utilisées.
DIRPAM="/etc/pam.d/"
(à partir des versions versions 5.x.x)
DAYS=( lundi mardi mercredi jeudi vendredi samedi dimanche )
 
DAYSPAM=( Mo Tu We Th Fr Sa Su )
- '''master''' = nftables (successeur d'iptables), dnscrypt-proxy (remplaçant dnsmasq), lighttpd ou nginx, privoxy et e2guardian ( successeur de dansguardian ).
DAYSCRON=( mon tue wed thu fri sat sun )
 
- '''min''' = nftables = nftables (successeur d'iptables), dnscrypt-proxy (remplaçant dnsmasq), lighttpd ou nginx.
service --help 2&> /dev/null
if [ $? -eq 0 ] ; then
  CMDSERVICE="service "
else
  CMDSERVICE="/etc/init.d/"
fi
DNSMASQCONF="/etc/dnsmasq.conf"
MAINCONFHTTPD="/etc/lighttpd/lighttpd.conf"
DIRCONFENABLEDHTTPD="/etc/lighttpd/conf-enabled"
CTPARENTALCONFHTTPD=$DIRCONFENABLEDHTTPD"/10-CTparental.conf"
RESOLVCONFMAIN="/etc/resolvconf"
RESOLVDNSMASQ="$RESOLVCONFMAIN/run/interface/lo.dnsmasq"
RESOLVCONFORDER="$RESOLVCONFMAIN/interface-order"
DIRHTML="/var/www/CTparental"
namservicednsmaq="dnsmasq"
namservicehttpd="lighttpd"
namservicecrond="cron"
CMDINSTALL=""
yum help 2&> /dev/null
if [ $? -eq 0 ] ; then
  ## "Distribution baser sur yum exemple readhat,fedora..."
  CMDINSTALL="yum install "
  CMDREMOVE="yum remove "
fi
urpmi --help 2&> /dev/null
if [ $? -eq 1 ] ; then
  ## "Distribution baser sur urpmi exemple mandriva..."
  CMDINSTALL="urpmi -a --auto "
  CMDREMOVE="urpme --auto "
  namservicecrond="crond"
fi
apt-get -h 2&> /dev/null
if [ $? -eq 0 ] ; then
  ## "Distribution baser sur apt-get exemple debian,ubuntu ..."
  CMDINSTALL="apt-get -y --force-yes install "
  CMDREMOVE="apt-get -y --force-yes remove --purge "
fi
if [ $args="-i" ] ; then
  namserviceNetworkManager="network-manager"
  if [ -f /etc/NetworkManager/NetworkManager.conf ];then
    $SED "s/^dns=dnsmasq/#dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf
    $CMDSERVICE$namserviceNetworkManager restart
    sleep 5
  fi
fi
if [ $( echo $CMDINSTALL | wc -m ) -eq 1 ] ; then
  echo "Aucun gestionner de paquet connu , n'a été détecté."
  exit 1
fi


et 5 branches historique, non maintenu qui ce basé sur dnsmasq, dansguardian , iptables .(jusqu'aux versions 4.x.x)


interface_WAN=$(ip route | awk '/^default via/{print $5}') # suppose que la passerelle est la route par default
- '''dnsmasq''' = nftables (successeur d'iptables), dnsmasq, lighttpd ou nginx, privoxy et e2guardian ( successeur de dansguardian ).


if [ -f $DIR_CONF/resolv.conf.sav ];then
- '''dnsmasq_min''' = nftables = nftables (successeur d'iptables), dnsmasq, lighttpd ou nginx.
  DNS1=$(cat $DIR_CONF/resolv.conf.sav | grep ^nameserver | cut -d " " -f2 | tr "\n" " " | cut -d " " -f1)
  DNS2=$(cat $DIR_CONF/resolv.conf.sav | grep ^nameserver | cut -d " " -f2 | tr "\n" " " | cut -d " " -f2)
else
  DNS1=$(cat /etc/resolv.conf | grep ^nameserver | cut -d " " -f2 | tr "\n" " " | cut -d " " -f1)
  DNS2=$(cat /etc/resolv.conf | grep ^nameserver | cut -d " " -f2 | tr "\n" " " | cut -d " " -f2)
fi


PRIVATE_IP="127.0.0.10"
- '''iptables''' = iptables, ipset, dnsmasq, lighttpd ou nginx, privoxy et e2guardian ( successeur de dansguardian ).
FILE_tmp="$tempDIR/filetmp.txt"
BL_SERVER="dsi.ut-capitole.fr"
CATEGORIES_ENABLED="$DIR_CONF/categories-enabled"
BL_CATEGORIES_AVAILABLE="$DIR_CONF/bl-categories-available"
WL_CATEGORIES_AVAILABLE="$DIR_CONF/wl-categories-available"
DIR_DNS_FILTER_AVAILABLE="$DIR_CONF/dnsfilter-available"
DIR_DNS_BLACKLISTE_ENABLED="$DIR_CONF/blackliste-enabled"
DIR_DNS_WHITELIST_ENABLED="$DIR_CONF/whitelist-enabled"
DNS_FILTER_OSSI="$DIR_CONF/blackliste-local"
DREAB="$DIR_CONF/domaine-rehabiliter"
LASTUPDATE="$DIR_CONF/last-update"
THISDAYS=$(expr $(date +%Y) \* 365 + $(date +%j))
MAXDAYSFORUPDATE="7" # update tous les 7 jours
CHEMINCTPARENTLE=$(readlink -f $0)


initblenabled () {
- '''dansguardian''' = iptables, ipset, dnsmasq, lighttpd, privoxy et dansguardian.
  cat << EOF > $CATEGORIES_ENABLED
adult
agressif
dangerous_material
dating
drogue
gambling
hacking
malware
marketingware
mixed_adult
phishing
redirector
sect
strict_redirector
strong_redirector
tricheur
warez
ossi 
EOF
       


}
- '''iptables_min''' = iptables, ipset,dnsmasq, lighttpd ou nginx.


download() {
exemple pour debian9 il y a 4 paquet possible. 2 paquet dérivé de la branche iptables avec lighttpd ou nginx et 2 autres dérivé de la branche iptables_min si l'on veut utiliser moins de ressources.
  wget -P $tempDIR http://$BL_SERVER/blacklists/download/blacklists.tar.gz 2>&1 | cat
  if [ ! $? -eq 0 ]; then
      echo "erreur lors du téléchargement processu interompu"
      rm -rf $tempDIR
      exit 1
  fi
  tar -xzf $tempDIR/blacklists.tar.gz -C $tempDIR
  if [ ! $? -eq 0 ]; then
      echo "erreur d'extraction de l'archive processu interompu"
      exit 1
  fi
  rm -rf $DIR_DNS_FILTER_AVAILABLE/
  mkdir $DIR_DNS_FILTER_AVAILABLE
}
autoupdate() {
LASTUPDATEDAY=`sed -n "1 p" $LASTUPDATE`
        DIFFDAY=$(expr $THISDAYS - $LASTUPDATEDAY)
if [ $DIFFDAY -ge $MAXDAYSFORUPDATE ] ; then
download
adapt
catChoice
dnsmasqon
exit 0
fi
echo $THISDAYS > $LASTUPDATE
}
autoupdateon() {
echo $THISDAYS > $LASTUPDATE
echo "*/10 * * * * root $CHEMINCTPARENTLE -aup" > /etc/cron.d/CTparental-autoupdate
$CMDSERVICE$namservicecrond restart
}


autoupdateoff() {
== Pour ceux qui veulent tester en ipv6 ==
rm -f /etc/cron.d/CTparental-autoupdate
$CMDSERVICE$namservicecrond restart
}
adapt() {
  dnsmasqoff
  if [ ! -f $DNS_FILTER_OSSI ] ; then
            echo > $DNS_FILTER_OSSI
  fi


  if [ -d $tempDIR  ] ; then
c'est possible avec la dernière les version 4.20.x sous debian testing/sid ,<br />
  CATEGORIES_AVAILABLE=$tempDIR/categories_available
il faudra au préalable s’assurer que son fournisseur d'accès accepte bien l'ipv6 , ce qui n'est malheureusement pas mon cas.
  ls -FR $tempDIR/blacklists | grep '/$' | sed -e "s/\///g" > $CATEGORIES_AVAILABLE
          echo -n > $BL_CATEGORIES_AVAILABLE
          echo -n > $WL_CATEGORIES_AVAILABLE
          if [ ! -f $DIR_DNS_FILTER_AVAILABLE/ossi.conf ] ; then
echo > $DIR_DNS_FILTER_AVAILABLE/ossi.conf
  fi
  for categorie in `cat $CATEGORIES_AVAILABLE` # creation des deux fichiers de categories (BL / WL)
  do
if [ -e $tempDIR/blacklists/$categorie/usage ]
then
is_whitelist=`grep white $tempDIR/blacklists/$categorie/usage|wc -l`
else
is_whitelist=0 # ou si le fichier 'usage' n'existe pas, on considère que la catégorie est une BL
fi
if [ $is_whitelist -eq "0" ]
then
echo "$categorie" >> $BL_CATEGORIES_AVAILABLE
else
echo "$categorie" >> $WL_CATEGORIES_AVAILABLE
fi
  done
        echo -n "Toulouse Black and White List migration process. Please wait : "
        for DOMAINE in `cat  $CATEGORIES_AVAILABLE`  # pour chaque catégorie
        do
            echo -n "."
            # suppression des @IP, de caractères acccentués et des lignes commentées ou vide
            egrep  -v "([0-9]{1,3}\.){3}[0-9]{1,3}" $tempDIR/blacklists/$DOMAINE/domains > $FILE_tmp
            $SED "/[äâëêïîöôüû]/d" $FILE_tmp
            $SED "/^#.*/d" $FILE_tmp
            $SED "/^$/d" $FILE_tmp
            $SED "s/\.\{2,1000\}/\./g" $FILE_tmp # supprime les suite de "." exemple: address=/fucking-big-tits..com/127.0.0.10 devient address=/fucking-big-tits.com/127.0.0.10
    is_blacklist=`grep $DOMAINE $BL_CATEGORIES_AVAILABLE |wc -l`
    if [ $is_blacklist -ge "1" ] ; then
            $SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp  # Mise en forme dnsmasq des listes noires
mv $FILE_tmp $DIR_DNS_FILTER_AVAILABLE/$DOMAINE.conf 
            else
$SED "s?.*?server=/&/#?g" $FILE_tmp  # Mise en forme dnsmasq des listes blanches
mv $FILE_tmp $DIR_DNS_FILTER_AVAILABLE/$DOMAINE.conf
            fi
        done
  else
        mkdir  $tempDIR
        echo -n "."
# suppression des @IP, de caractères acccentués et des lignes commentées ou vide
        egrep  -v "([0-9]{1,3}\.){3}[0-9]{1,3}" $DNS_FILTER_OSSI  > $FILE_tmp
        $SED "/[äâëêïîöôüû]/d" $FILE_tmp
        $SED "/^#.*/d" $FILE_tmp
        $SED "/^$/d" $FILE_tmp
        $SED "s/\.\{2,1000\}/\./g" $FILE_tmp # supprime les suite de "." exemple: address=/fucking-big-tits..com/127.0.0.10 devient address=/fucking-big-tits.com/127.0.0.10
        $SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp  # Mise en forme dnsmasq
        mv $FILE_tmp $DIR_DNS_FILTER_AVAILABLE/ossi.conf
  fi   
  echo
  rm -rf $tempDIR
}
catChoice() {
#  echo "catChoice"
  rm -rf $DIR_DNS_BLACKLISTE_ENABLED/
  mkdir $DIR_DNS_BLACKLISTE_ENABLED
  rm -rf  $DIR_DNS_WHITELIST_ENABLED/
  mkdir  $DIR_DNS_WHITELIST_ENABLED
   
      for CATEGORIE in `cat $CATEGORIES_ENABLED` # on affecte les catégories dnsmasq
      do
is_blacklist=`grep $CATEGORIE $BL_CATEGORIES_AVAILABLE |wc -l`
if [ $is_blacklist -ge "1" ] ; then
cp $DIR_DNS_FILTER_AVAILABLE/$CATEGORIE.conf $DIR_DNS_BLACKLISTE_ENABLED/
        else
cp $DIR_DNS_FILTER_AVAILABLE/$CATEGORIE.conf $DIR_DNS_WHITELIST_ENABLED/
    fi   
      done
      cp $DIR_DNS_FILTER_AVAILABLE/ossi.conf $DIR_DNS_BLACKLISTE_ENABLED/
#      echo "fincatChoice"
      reabdomaine
}


reabdomaine () {
l'ipv6 n'étant pas encore implémentée dans e2guardian , ctparental ne force pas le passage par celui-ci mais attaque directement privoxy.
if [ ! -f $DREAB ] ; then
cat << EOF > $DREAB
  www.google.com
  www.google.fr
EOF
fi
if [ ! -f $DIR_DNS_BLACKLISTE_ENABLED/ossi.conf ] ; then
echo > $DIR_DNS_BLACKLISTE_ENABLED/ossi.conf
fi
echo
echo -n "Application de la liste blanche (domaine réabiliter):"
for CATEGORIE in `cat  $CATEGORIES_ENABLED  `  # pour chaque catégorie
do
is_blacklist=`grep $CATEGORIE $BL_CATEGORIES_AVAILABLE |wc -l`
if [ $is_blacklist -ge "1" ] ; then
echo -n "."
for DOMAINE in `cat  $DREAB`
do
    $SED "/$DOMAINE/d" $DIR_DNS_BLACKLISTE_ENABLED/$CATEGORIE.conf
done
        fi
done
echo -n "."
cat $DREAB | sed -e "s?.*?server=/&/#?g" >  $DIR_DNS_WHITELIST_ENABLED/whiteliste.ossi.conf
echo
}


dnsmasqon () {
Une désinstallation avec purge est nécessaire en cas de mise à jour d'une version antérieure.
  categorie1=`sed -n "1 p" $CATEGORIES_ENABLED` # on considaire que si la 1 er categorie activer est un blackliste on fonctionne par blackliste.
  is_blacklist=`grep $categorie1 $BL_CATEGORIES_AVAILABLE |wc -l`
  if [ $is_blacklist -ge "1" ] ; then
  cat << EOF > $DNSMASQCONF
        # Configuration file for "dnsmasq with blackhole"
  # Inclusion de la blacklist <domains> de Toulouse dans la configuration
  conf-dir=$DIR_DNS_BLACKLISTE_ENABLED
  # conf-file=$DIR_DEST_ETC/alcasar-dns-name  # zone de definition de noms DNS locaux
  no-dhcp-interface=$interface_WAN
  bind-interfaces
  cache-size=1024
  domain-needed
  expand-hosts
  bogus-priv
  server=$DNS1
  server=$DNS2
 
EOF
$CMDSERVICE$namservicednsmaq restart
else
  dnsmasqwhitelistonly
fi
}
dnsmasqoff () {
  cat << EOF > $DNSMASQCONF
        # Configuration file for "dnsmasq with blackhole"
  # Inclusion de la blacklist <domains> de Toulouse dans la configuration
  # conf-dir=$DIR_DNS_BLACKLISTE_ENABLED
  # conf-file=$DIR_DEST_ETC/alcasar-dns-name  # zone de definition de noms DNS locaux
  no-dhcp-interface=$interface_WAN
  bind-interfaces
  cache-size=0
  domain-needed
  expand-hosts
  bogus-priv
  server=$DNS1
  server=$DNS2
 
EOF


$CMDSERVICE$namservicednsmaq restart
   # apt-get remove --purge ctparental privoxy e2guardian dansguardian dnsmasq lighttpd
}
dnsmasqwhitelistonly  () {
  cat << EOF > $DNSMASQCONF
        # Configuration file for "dnsmasq with blackhole"
  # Inclusion de la blacklist <domains> de Toulouse dans la configuration
  conf-dir=$DIR_DNS_WHITELIST_ENABLED
  # conf-file=$DIR_DEST_ETC/alcasar-dns-name   # zone de definition de noms DNS locaux
  no-dhcp-interface=$interface_WAN
  bind-interfaces
  cache-size=0
  domain-needed
  expand-hosts
  bogus-priv
  server=$DNS1
  server=$DNS2
  address=/#/$PRIVATE_IP #redirige vers $PRIVATE_IP pour tous ce qui n'a pas étais resolut dans les listes blanches
EOF


$CMDSERVICE$namservicednsmaq restart
  $ wget -c https://gitlab.com/marsat/CTparental/uploads/d5567eb1a43ffde679193bce87be5f69/ctparental_debian10_lighttpd_4.44.18-1.0_all.deb
}


Pour tester le filtrage avec un utilisateur non filtré il suffit que celui-ci ajoute le proxy http et https suivant dans son navigateur.<br />
http et https '''::1''' port '''8888'''


FoncHTTPDCONF () {
Pour les utilisateurs filtrés c'est automatique, il n'y a rien à faire.
$CMDSERVICE$namservicehttpd stop
rm -rf $DIRHTML/*
mkdir -v $DIRHTML
if [ ! -z $DIRhtmlPersonaliser ];then
  cp -r $DIRhtmlPersonaliser/* $DIRHTML
else
s="span"
st="style"
c="$c"
cab=";\">"


cat << EOF > $DIRHTML/index.html
== Nettoyage des versions précédentes : ==
<HTML>
si vous utilisé l'instance dnscrypt-proxy du deb pour vos connexions système il faut installer celui-ci de manière autonome via la commande ci dessous:
<HEAD>
    
  <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
   # apt-get install dnscrypt-proxy
  <TITLE>danger</TITLE>
</HEAD>
<BODY LANG="fr-FR" DIR="LTR">
<CENTER>
<img alt="Site dangereux pour des mineurs"
  HEIGHT="600"    
   src="data:image/png;base64,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
QmCC" />
</CENTER>
</BODY>
</HTML>
EOF


fi
cela éviteras la surpression de dnscrypt-proxy durant la procédure de dés-installation de ctparental, et ainsi une perte de connexion système.
## GENERATION


ln -s  $DIRHTML/index.html $DIRHTML/err404.html
  # apt-get autoremove --purge  ctparental clamav-* privoxy lighttpd dansguardian dnsmasq nginx e2guardian
USERHTTPD=$(cat /etc/passwd | grep /var/www | cut -d":" -f1)
GROUPHTTPD=$(cat /etc/group | grep $USERHTTPD | cut -d":" -f1)
cat << EOF > $MAINCONFHTTPD
server.modules = (
"mod_access",
"mod_alias",
"mod_redirect",
# "mod_rewrite",
)
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "$USERHTTPD"
server.groupname = "$GROUPHTTPD"
server.port = 80
server.bind = "127.0.0.1"


  # rm -rf /etc/CTparental


index-file.names = ( "index.php", "index.html" )
== Installez le deb : ==
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )


compress.cache-dir = "/var/cache/lighttpd/compress/"
  # gdebi ctparental_*_all.deb
compress.filetype = ( "text/css", "text/html", "text/plain" )


server.tag = ""
(J'utilise gdebit car cela évite le téléchargement et l'installation manuelle des dépendances.)


include_shell "/usr/share/lighttpd/create-mime.assign.pl"
Important : Depuis la version 3.92 les paramètres proxy changent automatiquement au premier démarrage de la session, ce qui fait que c'est transparent pour l'utilisateur.<br />
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
Si après avoir redémarré votre session vous avez encore des problèmes de connexion aux sites https tels que google.com, testez avant tout l'ajout du proxy suivant.<br />
EOF
proxy http 127.0.0.1 sur port 8080<br />
proxy https 127.0.0.1 sur port 8080<br />


mkdir -p /usr/share/lighttpd/
=== Pour les versions avant la 3.95-3 ===
Il est conseillé d'ajouter tous les domaines de vos dépôts dans les domaines réhabilités cela peut éviter certaines erreurs quand on utilise su au lieu de su - avant des commandes apt-get aptitude …


if [ ! -f /usr/share/lighttpd/create-mime.assign.pl ];then
Lancez cette ligne de commandes pour les connaître.
cat << EOF > /usr/share/lighttpd/create-mime.assign.pl
#!/usr/bin/perl -w
  $ cat /etc/apt/sources.list /etc/apt/sources.list.d/* 2>/dev/null | awk -F/ '/^deb/ {print $3}' | sort -u
use strict;
open MIMETYPES, "/etc/mime.types" or exit;
print "mimetype.assign = (\n";
my %extensions;
while(<MIMETYPES>) {
  chomp;
  s/\#.*//;
  next if /^\w*$/;
  if(/^([a-z0-9\/+-.]+)\s+((?:[a-z0-9.+-]+[ ]?)+)$/) {
    foreach(split / /, \$2) {
      # mime.types can have same extension for different
      # mime types
      next if \$extensions{\$_};
      \$extensions{\$_} = 1;
      print "\".\$_\" => \"\$1\",\n";
    }
  }
}
print ")\n";
EOF
chmod +x /usr/share/lighttpd/create-mime.assign.pl
fi


Pour la version 3.95-3 et supérieure, après l'ajout d'un nouveau dépôt, il faut juste penser à lancer la commande suivante :
 
  # CTparental -ubl


if [ ! -f /usr/share/lighttpd/include-conf-enabled.pl ];then
Pour tester si ça fonctionne faire un ping à partir d'un compte filtré.
cat << EOF > /usr/share/lighttpd/include-conf-enabled.pl
#!/usr/bin/perl -wl


use strict;
  $ su child -c "ping youporn.com"
use File::Glob ':glob';


my \$confdir = shift || "/etc/lighttpd/";
''child'' est à remplacer par le compte pour lequel vous voulez tester.
my \$enabled = "conf-enabled/*.conf";


chdir(\$confdir);
doit retourner quelque chose comme ça :
my @files = bsd_glob(\$enabled);


for my \$file (@files)
  PING youporn.com (127.0.0.10) 56(84) bytes of data.
{
        print "include \"\$file\"";
}
EOF
chmod +x /usr/share/lighttpd/include-conf-enabled.pl


fi
  bytes from 127.0.0.10: icmp_req=1 ttl=64 time=0.026 ms


mkdir -p $DIRCONFENABLEDHTTPD
Si l'adresse IP est différente de 127.0.0.10 c'est que le filtrage ne fonctionne pas.
cat << EOF > $CTPARENTALCONFHTTPD


\$SERVER["socket"] == "$PRIVATE_IP:80" {
Pour l'aide tapez :
server.document-root = "$DIRHTML"
server.errorfile-prefix = "$DIRHTML/err"
#ssl.engine = "enable"
#ssl.pemfile = "/etc/lighttpd/ssl/$PRIVATE_IP.pem"
}


EOF
  # CTparental


$CMDSERVICE$namservicehttpd start
sans aucun paramètre.
}


install () {
== Configuration ==
      if [ $(netstat -anlp | grep -w LISTEN | grep ":80" | cut -d"/" -f2 | wc -l ) -gt 0 ] ; then
Pour les versions 4.20.27  et supérieures on accède à l'interface d'administration par le lien web suivant: https://admin.ct.local
  echo "le Serveur Web $(netstat -anlp | grep -w LISTEN | grep ":80" | cut -d"/" -f2 | sort -u ) tourne deja sur ce pc"
  echo "veuiller le désinstaler avant d'installer le control parental."
  exit 1
      fi
      mkdir $tempDIR
      mkdir -p $DIR_CONF
      initblenabled
      cat /etc/resolv.conf > $DIR_CONF/resolv.conf.sav
      $CMDINSTALL dnsmasq
      $CMDINSTALL lighttpd
      if [ ! -f blacklists.tar.gz ]
      then
        download
      else
        tar -xzf blacklists.tar.gz -C $tempDIR
        if [ ! $? -eq 0 ]; then
            echo "erreur d'extraction de l'archive processu interompu"
            exit 1
        fi
        rm -rf $DIR_DNS_FILTER_AVAILABLE/
        mkdir $DIR_DNS_FILTER_AVAILABLE
      fi
      adapt
      catChoice
      dnsmasqon
      $CMDINSTALL resolvconf
      confresolvconf


      FoncHTTPDCONF
Pour les versions 4.20.26  on accède à l'interface d'administration par le lien web suivant: https://admin.ct.localhost
}


confresolvconf () {
Pour les versions inférieure à  4.20.26 on accède à l'interface d'administration par le lien web suivant: http://127.0.0.1/CTadmin
echo "nameserver 127.0.0.1" > $RESOLVDNSMASQ
if [ ! -f $RESOLVCONFORDER ];then
cat << EOF > $RESOLVCONFORDER
# interface-order(5)
lo.inet*
lo.dnsmasq
lo.pdnsd
lo.!(pdns|pdns-recursor)
lo
tun*
tap*
hso*
em+([0-9])?[+([0-9]))*
p+([0-9]p+([0-9])?(_+([0-9]))*
eth*
ath*
wlan*
ppp*
*
EOF
fi
resolvconf -u
}


uninstall () {
Pour les versions 4.20.9 et supérieures dans le Choix des catégories à filtrer ajouter la catégorie '''ctparental'''<br />
  rm -f /etc/cron.d/CTparental*
Pour les versions inférieures ajouter la liste ci dessous dans les [https://github.com/marsat/CTparental/wiki/Noms-de-domaine-filtr%C3%A9s-%28ossi%29 Noms de domaine filtrés]
  $CMDSERVICE$namservicecrond restart
  $CMDSERVICE$namservicehttpd stop
  rm -f /var/www/index.lighttpd.html
  rm -rf $tempDIR
  rm -rf $DIR_CONF
  rm -rf $DIRHTML


  if [ -f /etc/NetworkManager/NetworkManager.conf ];then
Pour les utilisateurs des applications winehq et playonelinux en ctparental versions 4.20.11 et inférieures,<br />
$SED "s/^#dns=dnsmasq/dns=dnsmasq/g" /etc/NetworkManager/NetworkManager.conf
si le proxy système n'est pas pris en compte il faut le paramétrer via la base de registre de votre disque dur virtuel ou par le menu configuration de l’application qui a besoin d'accéder à internet.<br />
$CMDSERVICE$namserviceNetworkManager restart
Les versions 4.20.12 et supérieures ne sont pas affectées par ce problème.
  sleep 5
  fi
  rm -rf /usr/share/lighttpd/*
  rm -f $CTPARENTALCONFHTTPD
  rm -f $RESOLVDNSMASQ
  resolvconf -u


  $CMDREMOVE lighttpd
Par exemple, pour Internet Explorer :
  $CMDREMOVE dnsmasq
  $CMDREMOVE resolvconf
}


choiblenabled () {
<pre>
echo -n > $CATEGORIES_ENABLED
REGEDIT4
clear
echo "Voulez Filtre par Blackliste ou Whiteliste :"
echo -n " B/W :"
while (true); do
        read choi
        case $choi in
        B | b )
        echo "Vous aller maintenant choisir les \"Black listes\" a appliquer."
for CATEGORIE in `cat  $BL_CATEGORIES_AVAILABLE`  # pour chaque catégorie
do 
      clear
      echo "Voulez vous activer la categorie :"
      echo -n "$CATEGORIE  O/N :"
      while (true); do
read choi
case $choi in
O | o )
echo $CATEGORIE >> $CATEGORIES_ENABLED
break
;;
N | n )
break
;;
      esac
      done
done
        break
        ;;
        W | w )
        echo "Vous aller maintenant choisir les \"White listes\" a appliquer."
for CATEGORIE in `cat  $WL_CATEGORIES_AVAILABLE`  # pour chaque catégorie
do 
      clear
      echo "Voulez vous activer la categorie :"
      echo -n "$CATEGORIE  O/N :"
      while (true); do
read choi
case $choi in
O | o )
echo $CATEGORIE >> $CATEGORIES_ENABLED
break
;;
N | n )
break
;;
      esac
      done
done
        break
        ;;
      esac
done
}


[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]


errortime1 () {
"ProxyEnable"=dword:00000001
clear
echo -e "L'heure de debut doit ètre strictement inférieur a l'heure de fin: $RougeD$input$Fcolor "
echo "exemple: 08h00 a 24h00 ou 08h00 a 12h00 et 14h00 a 24h00"
echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:"
}
errortime2 () {
clear
echo -e "Mauvaise syntaxe: $RougeD$input$Fcolor "
echo "exemple: 08h00 a 24h00 ou 08h00 a 12h00 et 14h00 a 24h00"
echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:"
}


pause () {  # fonction pause pour debugage
"ProxyServer"="http=127.0.0.1:8080;https=127.0.0.1:8080"
      choi=""
      echo  "pour continuer  press Q :"
      while (true); do
        read choi
        case $choi in
        Q | q )
        break
        ;;
      esac
      done
}
activetimelogin () {
  TESTGESTIONNAIRE=""
  for FILE in `echo $GESTIONNAIREDESESSIONS`
  do
      if [ -f $DIRPAM$FILE ];then
        if [ $(cat $DIRPAM$FILE | grep -c "account required pam_time.so") -eq 0 ] ; then
            echo "account required pam_time.so" >> $DIRPAM$FILE
        fi
        TESTGESTIONNAIRE=$TESTGESTIONNAIRE\ $FILE
      fi
  done
  if [ $( echo $TESTGESTIONNAIRE | wc -m ) -eq 1 ] ; then
      echo "Aucun gestionner de session connu , n'a été détecté."
      echo " il est donc impossible d'activer le controle horaires des connections"
      exit 1
  fi
 
  if [ ! -f $FILEPAMTIMECONF.old ] ; then
  cp $FILEPAMTIMECONF $FILEPAMTIMECONF.old
  fi
  echo "*;*;root;Al0000-2400" > $FILEPAMTIMECONF
  for NumDAY in 0 1 2 3 4 5 6
  do
  echo  > /etc/cron.d/CTparental${DAYS[$NumDAY]}
  done
  for PCUSER in `cat /etc/passwd | cut -d":" -f1,3| grep -E [1-9][0-9][0-9][0-9]| grep -v 65534 | cut -d ":" -f1`
  do
  echo $PCUSER
      HORAIRES=""
      for NumDAY in 0 1 2 3 4 5 6
        do
        clear
        echo "exemple: 08h00 a 24h00 ou 08h00 a 12h00 et 14h00 a 24h00"
        echo -e -n "$RougeD$PCUSER$Fcolor est autorisés à se connecter le $BleuD${DAYS[$NumDAY]}$Fcolor de:"
        while (true); do
            read choi
            input=$choi
            choi=$(echo $choi | sed -e "s/h//g" | sed -e "s/ //g" | sed -e "s/a/-/g" | sed -e "s/et/:/g" ) # mise en forme de choi pour pam 
              if [ $( echo $choi | grep -E -c "^[0-2][0-9][0-5][0-9]-[0-2][0-9][0-5][0-9]$|^[0-2][0-9][0-5][0-9]-[0-2][0-9][0-5][0-9]:[0-2][0-9][0-5][0-9]-[0-2][0-9][0-5][0-9]$" ) -eq 1 ];then
                  int1=$(echo $choi | cut -d ":" -f1 | cut -d "-" -f1)
                  int2=$(echo $choi | cut -d ":" -f1 | cut -d "-" -f2)
                  int3=$(echo $choi | cut -d ":" -f2 | cut -d "-" -f1)
                  int4=$(echo $choi | cut -d ":" -f2 | cut -d "-" -f2)
                  if [ $int1 -lt $int2 ];then
                    if [ ! $(echo $choi | grep -E -c ":") -eq 1 ] ; then
                        if [ $NumDAY -eq 6 ] ; then
                          HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2
                        else
                          HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2\|
                        fi
                        MINUTES1=$(echo $int2 | sed -e 's/.\{02\}//')
                        HEURES1=$(echo $int2 | sed -e 's/.\{02\}$//') 
                        echo "$MINUTES1 $HEURES1 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                        break
 
                    else 
                        if [ $int2 -lt $int3 ];then
                          if [ $int3 -lt $int4 ];then
                              if [ $NumDAY -eq 6 ] ; then
                                HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2\|${DAYSPAM[$NumDAY]}$int3\-$int4
                              else
                                HORAIRESPAM=$HORAIRESPAM${DAYSPAM[$NumDAY]}$int1\-$int2\|${DAYSPAM[$NumDAY]}$int3\-$int4\|
                              fi
                              MINUTES1=$(echo $int2 | sed -e 's/.\{02\}//')
                              HEURES1=$(echo $int2 | sed -e 's/.\{02\}$//') 
                              MINUTES2=$(echo $int4 | sed -e 's/.\{02\}//')
                              HEURES2=$(echo $int4 | sed -e 's/.\{02\}$//') 
                              ## minutes heures jourdumoi moi jourdelasemaine utilisateur  commande


                              echo "$MINUTES1 $HEURES1 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap]
                              echo "$MINUTES2 $HEURES2 * * ${DAYSCRON[$NumDAY]} root /usr/bin/skill -KILL -u$PCUSER" >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
                              break 
                          else
                              errortime1
                          fi
                        else
                          errortime1
                        fi
                    fi
                  else
                    errortime1
 
                  fi
                     
              else
                  errortime2 
              fi
         
        done
   
        done
   
      echo "*;*;$PCUSER;$HORAIRESPAM" >> $FILEPAMTIMECONF
  done
  for NumDAY in 0 1 2 3 4 5 6
  do
      echo >> /etc/cron.d/CTparental${DAYS[$NumDAY]}
  done
$CMDSERVICE$namservicecrond restart
}
desactivetimelogin () {
for FILE in `echo $GESTIONNAIREDESESSIONS`
do
  $SED "/account required pam_time.so/d" $DIRPAM$FILE
done
cat $FILEPAMTIMECONF.old > $FILEPAMTIMECONF
for NumDAY in 0 1 2 3 4 5 6
do
  rm -f /etc/cron.d/CTparental${DAYS[$NumDAY]}
done
$CMDSERVICE$namservicecrond restart
}


"AutoDetect"=dword:00000000


"IntranetName"=dword:00000001


if [ ! -z ${2} ];then
"ProxyByPass"=dword:00000001
  DIRhtmlPersonaliser=${2}
   
  if [ ! -d $DIRhtmlPersonaliser ];then
</pre>
      echo "Chemin de répertoir non valide!"
      exit 0
  fi
fi
usage="Usage: CTparental.sh    {-i }|{ -u }|{ -dl }|{ -ubl }|{ -rl }|{ -on }|{ -off }|{ -cble }|{ -dble }
                              |{ -tlo }|{ -tlu }|{ -uhtml }|{ -aupon }|{ -aupoff }|{ -aup }
-i      => Install le controll parental sur l'ordinateur (pc de bureau) peut ètre utiliser avec
          un paramètre suplémentaire pour indiquer un chemin de sources pour la page web de redirection.
          exemple : CTparental.sh -i /home/toto/html/
          si pas d'option le \"sens interdit\" est utiliser par default.
-u      => désinstall le controll parental de l'ordinateur (pc de bureau)
-dl    => mais a jour le controll a partir de la black liste de l'université de toulouse
-ubl    => A faire aprés chaque modification du fichier $DNS_FILTER_OSSI
-rl    => A faire aprés chaque modification manuel du fichier $DREAB
-on    => Active le controll parental
-off    => Désactive le controll parental
-cble  => Configure du mode de filtrage par liste blanche ou par liste noir(default) ainssi que les
          catégories que l'on veux activer.
-dble  => Remet les catégories activent par défaut et filtrage par liste noir.
-tlo    => Active est paramètre les restrictions horaire de login pour les utilisateurs.
          Compatible avec les gestionnaire de sessions suivant $GESTIONNAIREDESESSIONS .
-tlu    => Desative les restrictions horaire de login pour les utilisateurs.
-uhtml  => mait a jour la page de redirection a partir d'un repertoir source ou par defaut avec
            le \"sens interdit\".
            exemples:
                    - avec un repertoir source : CTparental.sh -uhtml /home/toto/html/
      - par default :              CTparental.sh -uhtml
-aupon  => active la mise ajour automatique de la black liste de toulouse (tous les 7 jours).
-aupoff => desactve la mise ajour automatique de la black liste de toulouse.
-aup    => comme -dl mais seulement si il n'y a pas eu de mise a jour depuis plus de 7 jours.
  "
case $args in
  -\? | -h* | --h*)
      echo "$usage"
      exit 0
      ;;
  -i | --install )
      install
      exit 0
      ;;
  -u | --uninstall )
      uninstall
      exit 0
      ;;
  -dl | --download )
      download
      adapt
      catChoice
      dnsmasqon
      echo $THISDAYS > $LASTUPDATE
      exit 0
      ;;
  -ubl | --updatebl )
      adapt
      catChoice
      dnsmasqon
      exit 0
      ;;
  -uhtml | --updatehtml )
      FoncHTTPDCONF
      exit 0
      ;;
  -rl | --reload )
      catChoice
      dnsmasqon
      exit 0
      ;;
  -on | --on )
      dnsmasqon
      exit 0
      ;;
  -off | --off )
      dnsmasqoff
      exit 0
      ;;
  -wlo | --whitelistonly )
      dnsmasqwhitelistonly
      exit 0
      ;;
  -cble | --confblenable )
      choiblenabled
      catChoice
      dnsmasqon
      exit 0
      ;;
    -dble | --defaultblenable )
      initblenabled
      catChoice
      dnsmasqon
      ;;
    -tlo | --timeloginon )
      activetimelogin
      ;;
    -tlu | --timeloginon )
      desactivetimelogin
      ;;
    -aupon | --autoupdateon )
      autoupdateon
      ;;
    -aupoff | --autoupdateoff )
      autoupdateoff
      ;;
    -aup | --autoupdate )
      autoupdate
      ;;
  *)
      echo "Argument inconnu :$1";
      echo "$usage";
      exit 1
      ;;
esac
</code>


[[Catégorie:Scripts]]
[[Catégorie:Logiciels Divers]]
199

modifications

Menu de navigation