PrimTux

La distribution éducative pour débutants et initiés.

Vous n'êtes pas identifié(e).

Annonce

CARTE DES MEMBRES POUVANT AIDER ET DES ÉCOLES SOUS PRIMTUX
Merci de vous y inscrire en nous envoyant un email si vous souhaitez y apparaître.

Les différentes isos de PrimTux4 sont disponibles, cliquez ici pour choisir votre version.
  • Pour être automatiquement informé des réponses à vos messages sur le forum, n'oubliez pas de cliquer sur "Suivre cette discussion" en bas de page. Mieux, en vous abonnant au flux RSS du forum, vous pourrez suivre tout nouveau message sur l'ensemble du forum.
  • En allant dans votre Profil, ligne "Vie privée", vous pouvez également cocher "Suivre automatiquement les sujets auxquels on a répondu.", vous n'aurez plus à cliquer sur "Suivre cette discussion" lorsque vous postez un message.
  • Abonnez-vous à la newsletter sur le site principal pour être informé des nouveaux paquets, nouvelles versions, bugs...

#1 12-06-2019 23:31:41

lebardix
Membre
Inscription : 26-04-2016
Messages : 188

[BUG] proxy-protect

bonjour,
Ayant eu besoin de modifier le proxy de firefox (et seamonkey) j'ai découvert un bug dans le script proxy-protect.

le symptôme :
lorsque l'on active proxy-protect , firefox se configure avec le proxy de dansguardian et tinyproxy avec
la définition
http://127.0.0.1 port 8080
lorsque l'on désactive proxy-protect, quelque soit la configuration précédente, firefox retourne au mode
"Utiliser les paramêtres proxy du système"

et donc on perd les autres paramêtres que l'on auraient précédemment  sélectionnés comme
"Détection automatique des paramêtres de proxy pour ce réseau"  ou autre

le test

# S'il n'y a encore aucune préférence de proxy on définit
# une protection par défaut pour Webstrict
if [  grep 'network.proxy.http' "$pref_proxy") ]

retourne toujours 2 soit d'après le man "le code est 2 si une erreur est survenue" et donc le test rétablit toujours

then 
	    pref_proxy='lockPref("network.proxy.type", 1);
lockPref("network.proxy.http", "127.0.0.1");
lockPref("network.proxy.http_port", 8080);
lockPref("network.proxy.no_proxies_on", "");
lockPref("network.proxy.share_proxy_settings", true);'
fi

le test est effectué sur une variable au lieu d'un 'file'
synopsis  grep [OPTIONS] MOTIF [FICHIER...] [OPTIONS] MOTIF [FICHIER...]

donc voici le la ligne de test à modifier

# S'il n'y a encore aucune préférence de proxy on définit
# une protection par défaut pour Webstrict
if [ !  $(echo $pref_proxy | grep 'network.proxy.http') ] 
then..

de plus proxy-protect utilise l'interface graphique pour choisir le mode de fonctionnement "active" ou "desactive", il serait bon de pouvoir l'utiliser dans un shell de commande root hors interface graphique.
Je propose donc quelques modifications à apporter en ajoutant un argument de commande ( enable / disable )

# proxy-protect chemindufichier_prefs.js enable
ou
# proxy-protect chemindufichier_prefs.js disable

#!/bin/sh
#####################################################################
# Ce script est un script complémentaire de proxy-protect-firefox #
#     il effectue les tâches qui nécessitent des droits root        #   
#####################################################################
# version 2.0 permet de modifier le comportement du proxy en mode non interactif
# il faut passer un deuxieme argument précisant
# la protection du proxy
# enable : le proxy est actif
# disable: le proxy est inactif
#
# de plus il corrige le test de l'absence de préférence de proxy
# qui avait objectif de définir le blocage des variables "network.proxy.*"
# if [ grep 'network.proxy.http' "$pref_proxy" ] remplacé par
# if [ !  $(echo $pref_proxy | grep 'network.proxy.http') ]
# qui conduisait a cassé la conf choisie dans firefox->préférences



chemin_pref="$1"

desactive () {

# vide le fichier des paramètres à bloquer et fixe 
# les paramètres pour une utilisation sans proxy
cp /dev/null /usr/lib/firefox-esr/mozilla.cfg
echo "//\nlockPref(\"network.proxy.type\", 4);" > /usr/lib/firefox-esr/mozilla.cfg

# commente les lignes du fichier local-settings.js
# pour que les modifications ne soient plus grisées dans Firefox
sed -i -e "s/pref/#pref/g" /usr/lib/firefox-esr/defaults/pref/local-settings.js
# modifie l'icône du panneau d'aministration pour faire apparaître la suppression de la protection
cp -f /usr/share/pixmaps/administration/preferences-system-network.png /usr/share/pixmaps/preferences-system-network-locked.png
}

active () {
# vérifie si la protection n'est pas déjà activée
if grep '^pref' /usr/lib/firefox-esr/defaults/pref/local-settings.js
    then zenity --info --title "Protection du proxy" --text "La protection du proxy est déjà activée !"
         exit
fi

# Filtre les paramètres relatifs au proxy
pref_proxy=`cat "$chemin_pref" | grep 'network.proxy.' |sed -e 's/^user_pref/lockPref/g'`

# S'il n'y a encore aucune préférence de proxy on définit
# une protection par défaut pour Webstrict
if [ !  $(echo $pref_proxy | grep 'network.proxy.http') ]
then
        pref_proxy='lockPref("network.proxy.type", 1);
lockPref("network.proxy.http", "127.0.0.1");
lockPref("network.proxy.http_port", 8080);
lockPref("network.proxy.no_proxies_on", "");
lockPref("network.proxy.share_proxy_settings", true);'
fi

# Inscrit les paramètres de proxy dans mozilla.cfg
cp /dev/null /usr/lib/firefox-esr/mozilla.cfg
echo "//\n$pref_proxy" > /usr/lib/firefox-esr/mozilla.cfg

# décommente les lignes du fichier local-settings.js pour que
# les modifications interdites soient grisées dans Firefox
sed -i -e "s/^#*pref/pref/g" /usr/lib/firefox-esr/defaults/pref/local-settings.js
# modifie l'icône du panneau d'aministration pour faire apparaître la mise en place de la protection
cp -f /usr/share/pixmaps/administration/preferences-system-network-locked.png /usr/share/pixmaps/preferences-system-network-locked.png
}

if [ $# -eq 1 ]; then

# mode interactif
if ! choix="$(zenity --list --radiolist --title "Protection du proxy" --text "Voulez-vous activer ou désactiver la protection du proxy de Firefox ?" --column="Choix" --column="Activation / désactivation" TRUE "Activer la protection" FALSE "Désactiver la protection")"
    then exit
fi
if [ "$choix" = "Désactiver la protection" ]
    then desactive
    else active
fi

zenity --info --title "Protection du proxy" --text "Modifications appliquées avec succès! Veuillez redémarrer Firefox."

else
# mode commande
    if [ $# -eq 2 ];then
        echo "mode commande demandé $2"
        case $2 in
        enable)
            echo "activation proxy primtux"
            active
            exit 0
            ;;
        disable)
            echo "desactivation proxy primtux"
            desactive
            exit 0
            ;;
        *)
            echo "mauvaise commande  arg = enable ou disable"
            exit 1
            ;;
        esac
    fi
fi

exit 0

il pourrait être compléter avec un 3me argument de commande précisant le type de proxy souhaité à la desactivation
echo "//\nlockPref(\"network.proxy.type\", $3);" > /usr/lib/firefox-esr/mozilla.cfg

à débattre ..... faudrait modifier sans doute l'interface graphique ....

Hors ligne

#2 13-06-2019 00:02:55

Philippe Dpt35
Administrateur
Lieu : Ille-et-Vilaine
Inscription : 28-10-2015
Messages : 2 862
Site Web

Re : [BUG] proxy-protect

J'avais fait ce script il y a pas mal de temps, et je balbutiais encore le scripting shell.
La preuve, le grep sur la variable utilisée comme un fichier alors qu'il faut passer par un pipe !

ça a fonctionné jusqu'à présent pour des utilisations courantes, mais ne fait pas l'affaire pour un usage plus expert.

On peut donc sans problème le reprendre pour l'améliorer !
Une version console est une bonne idée pour les administrateurs passant par ssh.

Veux-tu nous revoir le script et faire une version console ?

Hors ligne

#3 13-06-2019 01:23:12

lebardix
Membre
Inscription : 26-04-2016
Messages : 188

Re : [BUG] proxy-protect

ma version est dans le message,

il reste la question du choix du type de proxy à la fois dans l'interface graphique et dans la version console, mais je veux  bien terminer l'adaptations si on est d'accord...
maintenant à l'insérer dans le git pour la création des images, je  vous laisserai faire

Tetras-libre a un dépot pour la post-installation de notre configuration primtux (gestion de tbi) et réseau AmonEcole,

Ce dernier point de gestion des proxy à révéler  pas mal de difficultés, car les PC pour les enseignants doivent fonctionner aussi bien dans le réseau Pédago, qu'à l'extérieur (chez eux par exemple) tout en restant bien protéger par dansguardian local pour les enfants.

Mais voilà ce point est réglé.

Hors ligne

#4 13-06-2019 17:38:16

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 578

Re : [BUG] proxy-protect

Mais qu'est-ce qui vous a décidés à garder dansguardian plutôt que la version ctp?

Hors ligne

#5 14-06-2019 15:29:09

lebardix
Membre
Inscription : 26-04-2016
Messages : 188

Re : [BUG] proxy-protect

@Steph,
Je repondrais "betement"
- la présence de PC primtux3 en salle info
- la suite du passif primtux3 .... car nous avions débuté la commande de prestation d'intégration de EOLE  (AmonEcole) pour des PC primtux3 donc dansguardian
- entretemps j'ai reporté notre conf primtux3 pour les tbi et serveur config maison vers primtux4 et EOLE
- j'ai tenté l'install CTP mais bug en attente de correction (cf https://forum.primtux.fr/viewtopic.php?id=1509)

et donc sans plus d'infos -> décision suite avec dansguardian ( ce qui n'a pas été fort simple)
je rappelle qu'on se retrouve avec 2 proxys à gérer suivant le réseau en fonction
- PC réseau école
- PC réseau perso
des navigateurs qui se comportent différemment  'firefox, seamonkey, navigateur openboard'

Je vais vérifié l'intérêt de CTP (sachant que finalement c'est celui des IEN -eole- qui est "demandé" ) et ainsi l'intégrer dans notre prochaine révision...  peut-etre...

Hors ligne

#6 14-06-2019 17:40:18

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 578

Re : [BUG] proxy-protect

Tu devrais regarder coté tetra-libre.

Hors ligne

#7 14-06-2019 17:53:10

lebardix
Membre
Inscription : 26-04-2016
Messages : 188

Re : [BUG] proxy-protect

Ben c'est avec eux que nous avons traité

Hors ligne

#8 14-06-2019 17:56:11

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 578

Re : [BUG] proxy-protect

Ah, parce qu'en fait vous n'avez normalement pas besoin de contrôle parental si vous utilisez le filtrage d'eole. C'est étonnant qu'il n'aient pas trouvé le moyen de passer par un proxy transparent, comme le fait ctp, mais en metant l'adresse du serveur au lieu de localhost.

Hors ligne

Pied de page des forums