Ici on n'a que votre IP, votre pseudo et votre adresse mail que nous ne traitons pas.
Quand vous êtes enregistrés, une seule requête permet de vous afficher les messages que vous n'avez pas lus.
NOUVELLE ADRESSE PERMANENTE DU DÉPÔT: https://mirrors.o2switch.fr/primtux/repo/debs
ATTENTION, MERCI DE NE PAS METTRE À JOUR PRIMTUX7 UBUNTU 20.04 VERS LA 22.04, LES HANDYMENUS NE SONT PAS ENCORE COMPATIBLES!
Merci de cliquer ici si vous souhaitez vous inscrire sur le forum.

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[BUG] proxy-protect
#1
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
Code :
# 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
Code :
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
Code :
# 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 )
Code :
# proxy-protect chemindufichier_prefs.js enable
ou
# proxy-protect chemindufichier_prefs.js disable

Citation :#!/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 ....
Répondre
#2
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 ?
Répondre
#3
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é.
Répondre
#4
Mais qu'est-ce qui vous a décidés à garder dansguardian plutôt que la version ctp?
Répondre
#5
@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...
Répondre
#6
Tu devrais regarder coté tetra-libre.
Répondre
#7
Ben c'est avec eux que nous avons traité
Répondre
#8
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.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)