#1 Le 17/12/2009, à 20:37
- sensouci
[RESOLU] Filtrage URL en fonction de l'utilisateur
Bonjour,
J'ai configuré un filtrage de contenu pour l'utilisateur "child" de mon PC (ubuntu 9.10)
Je veux le filtrage uniquement pour l'utilisateur child et que "child" ne puisse pas le désactiver.
Voici ce que j'ai fait:
J'ai crée un compte sur opendns (service génial)
J'ai écris le script suivant:
/usr/sbin/opendns (prorietaire : root permission 755)
--------------------------------
#!/bin/bash
# /usr/sbin/opendns
# /etc/resolv.child
# /etc/resolv.adult
# link /etc/NetworkManager/dispatcher.d/opendns
# line opendns in crontab as root (sudo crontab -e)
if users | grep -c "child" > /dev/null ; then
wget -O - -q --http-user=opendnslogin --http-passwd=opendnspassword https://updates.opendns.com/nic/update
cp /etc/resolv.child /etc/resolv.conf
else
cp /etc/resolv.adult /etc/resolv.conf
fi
--------------------------------
Ce script remplacera les DNS normaux par les dns de opendns si la session child est ouverte et mettra a jour mon adresse IP (dynamique) sur opendns. Si la session child est inactive les dns seront ceux de mon fai et pas de mise a jour de l'adresse ip sur opendns
J'ai crée les fichiers suivant:
/etc/resolv.child (propriétaire : root)
--------------------------------
# generated by opendns - resolv.child
# /usr/sbin/opendns
# /etc/resolv.child
# /etc/resolv.adult
# link /etc/NetworkManager/dispatcher.d/opendns
# line opendns in crontab as root (sudo crontab -e)
nameserver 208.67.222.222
nameserver 208.67.220.220
--------------------------------
208.67.222.222 and 208.67.220.220 sont les dns de opendns
(Je liste les fichiers utilisés pour dépannage futur ou désinstallation)
et
/etc/resolv.adult (prorietaire: root)
--------------------------------
# generated by opendns - resolv.adult
# /usr/sbin/opendns
# /etc/resolv.child
# /etc/resolv.adult
# link /etc/NetworkManager/dispatcher.d/opendns
# line opendns in crontab as root (sudo crontab -e)
nameserver 194.2.0.20
nameserver 194.2.0.50
--------------------------------
194.2.0.20 and 194.2.0.50 sont les DNS normaux de mon FAI
j'ai ajouté la ligne :
ALL ALL=NOPASSWD:/usr/sbin/opendns
a la fin de /etc/sudoers de sorte que les utilisateurs puissent lancer le script /usr/sbin/opendns en tant que root sans avoir a taper le mot de passe
J'ai ajouter un lien dans /etc/NetworkManager/dispatcher.d/ pour que le script s'execute a chaque changement d'état du réseau avec la commande:
ln /usr/sbin/opendns /etc/NetworkManager/dispatcher.d/opendns
J'ai ajouter la ligne dans le cron pour que le script s'execute toute ls 5 minutes
*/5 * * * * /usr/sbin/opendns
avec la commande "sudo crontab -e"
J'au aussi mis "sudo opendns" dans les programme de démarrage de la session child (que child pourrait quand meme desactiver, c'est pour cela que j'utilise aussi le cron)
Jusqu'à maintenant tout semble fonctionner correctement.
Avez vous a des remarques au niveau sécurité ou autre sur ce que j'ai fait (est ce fait dans les règles, y a-t-il des failles dans ce que j'ai fait) ?
Merci
Sensouci
Hors ligne
#2 Le 09/01/2010, à 16:47
- boutor
Re : [RESOLU] Filtrage URL en fonction de l'utilisateur
Et as-tu testé? Est-ce que ça marche bien?
Merci pour le script en tout cas.
Le fait que ce soit là /etc/NetworkManager/dispatcher.d et dans crontab toutes les cinq minutes, ce n'est pas un peu redondant?
Hors ligne
#3 Le 21/01/2010, à 03:09
- sensouci
Re : [RESOLU] Filtrage URL en fonction de l'utilisateur
Oui j'ai testé et cela fonctionne.
Effectivement il y a redondance entre le cron et le dispatcher ais comme il s'agit juste dúne requette web et d'un copy de fichier je ne pense pas prendre trop de ressource (une verification avant action consommerait surement autant)
j'ai détaillé l'installation surhttp://doc.ubuntu-fr.org/tutoriel/comme … e_parental
Hors ligne
#4 Le 21/01/2010, à 13:30
- boutor
Re : [RESOLU] Filtrage URL en fonction de l'utilisateur
Super, merci pour le tutoriel.
Hors ligne