Autoriser tous les sites à certaines heures SQUID

Le MNF (Multi Network Firewall) est un des produits pare-feu les plus richement pourvus en fonctionnalités du marché. Il est basé sur un kernel Linux 2.4 sécurisé. Ce forum est également destiné à accueillir tous les posts concernants les distributions Mandriva (anciennement Mandrake)

Modérateur: modos Ixus

Autoriser tous les sites à certaines heures SQUID

Messagepar eden91 » 03 Juil 2006 11:08

Bonjour à tous,

Je m'explique:

Actuellement j'ai SQUID qui tourne et j'ai défini une restriction de temps.
Ainsi les utilisateurs ont internet de 7:00 à 12:00 puis de 12:00 à 19:00.
J'ai spécifier aussi des Urls interdites par exemple : www.meetic.fr .

Du coup les utilisateur non pas accés à meetic entre 7h et 19h.
Mais je souhaiterai leur laisser accés au site interdit pendant 12h30 et 14h00 (pose déjeuner).

Si quelqu'un sait comment faire je suis preneur ;)

Merci.
eden91
Aspirant
Aspirant
 
Messages: 123
Inscrit le: 20 Avr 2004 13:11

Messagepar Jacques- » 04 Juil 2006 14:14

Pour moi, un script qui recrée le fichier de règles, le compile si nécessaire et redémarre squid pour le prendre en compte.
Un cat du fichier source | grep -v meetic pour créer le fichier autorisant, l'ajout de meetic à la fin du fichier pour bloquer le site.
Le tout dans une crontab...

Autre solution, repérer les adresses de meetic et ajouter une règle dynamique dans shorewall ou iptables pour bloquer les adresses concernées.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar eden91 » 05 Juil 2006 13:07

Merci Jacques, j'avais pensé à cette solution mais j'aurai espéré une solution plus simple et sans "copie de de fichier via tache planifiée."
Ce qui reste quand meme une solution qui marchera.

Merci ;)
eden91
Aspirant
Aspirant
 
Messages: 123
Inscrit le: 20 Avr 2004 13:11

Messagepar eden91 » 06 Juil 2006 14:23

Alors forcément je n'y arrive pas du permier coup et pourtant j'ai cherché......

Voila ce que je fais:

Mes fichiers et leurs répertoires:

/tmp/squid/free/domains (fichier domains avec aucunes règles de restriction de domaine)
/tmp/squid/restriction/domains (fichier domains avec les restrictions des sites)

Mes deux scripts. (script avec chmod +x)
/tmp/squid/crontab/free/free.sh
squid stop
cp -f /tmp/squid/free/domains /user/share/squidGuard-1.2.0/db/banneddestination/
squid start
/tmp/squid/crontab/restriction/restriction.sh
squid stop
cp -f /tmp/squid/restriction/domains /user/share/squidGuard-1.2.0/db/banneddestination/
squid start

J'édite le fichier /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root nice -n 19 run-parts /etc/cron.hourly
00 9 * * root run-parts /tmp/squid/crontab/restriction/restriction.sh
45 12 * * root run-parts /tmp/squid/crontab/free/free.sh
45 13 * * root run-parts /tmp/squid/crontab/restriction/restriction.sh
00 17 * * root run-parts /tmp/squid/crontab/free/free.sh
22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly
42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly

Voila et ca marche pas :(

Quand je veux stoper ou redémarrer crond , j'ai ce message la :

crond: can't lock /var/run/crond.pid, otherpid may be 5474: Resource temporarily unavailable

Merci de votre aide.
eden91
Aspirant
Aspirant
 
Messages: 123
Inscrit le: 20 Avr 2004 13:11

Messagepar Jacques- » 06 Juil 2006 19:57

Pas familier de la config de squid, mais il me semble que les fichiers sont utilisés par squidGuard après compilation et non pas directement tel que.
Si c'est le cas, soit il faut utiliser 2 fichiers compilés, un avec et un sans le domaine concerné, soit il faut compiler les fichiers après modification des fichiers sources.
Dans le second cas, je ne remplacerais pas simplement le fichier source mais je recréerais ce fichier à partir de l'existant, soit avec un cat Fichier | grep -v meetic > FichierACompiler
soit avec un echo "adresse de meetic au format attendu dans le fichier" >> FichierACompiler
Ensuite, la compilation des fichiers et le redémarrage de squid ou squidGuard avec le script qui va bien dans /etc/rc.d
Pour cron, run-parts permet si ma mémoire est bonne d'éxécuter tous les scripts présent dans le répertoire indiqué sur la ligne de commande (pas sous linux pour vérifier).
Il suffit de mettre la commande exacte avec le chemin absolu dans la ligne après les options de date et heure.
Pour le fichier PID en cause, as-tu les bons droits quand tu lances la commande ?

Autre chose, un script de ce type est lancé sous le compte root, alors pense à interdire la lecture et surtout la modification de tes scripts à tout autre utilisateur que root. Dans le cas contraire, rien de plus facile d'ajouter quelques lignes dans le fichier pour créer un petit script quelque part capable de donner un shell avec les droits de root à un utilisateur malicieux.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar eden91 » 10 Juil 2006 12:35

Salut à tous,

et bien j'avance pas trop, j'ai tester mon script il marche très bien. (arret de squid, copie du fichier, puis redémarrage de squid).
Je l'excécute quand je suis loguer en root sur la MNF et donc pas de souci.

Mon problème se situe donc juste dans la tâche planifié.
Erreur dans le fichier /etc/crontab ?
Les scripts doivent être mis dans un répertoire spécifique?

Help :cry:
eden91
Aspirant
Aspirant
 
Messages: 123
Inscrit le: 20 Avr 2004 13:11

Messagepar Jacques- » 10 Juil 2006 13:13

Pour cron, run-parts permet si ma mémoire est bonne d'éxécuter tous les scripts présent dans le répertoire indiqué sur la ligne de commande (pas sous linux pour vérifier).
Il suffit de mettre la commande exacte avec le chemin absolu dans la ligne après les options de date et heure.

La commande dans la crontab doit comporter le chemin vers celle-ci, mais pas un appel à run-parts.
Voir un man 5 crontab pour les détails.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar Franck78 » 11 Juil 2006 01:19

squidguard gère très bien les redirections (interdictions) et ce, en fonction de l'heure (plage horaire) et IP du client....
C'est sa fonction et il la remplit superbement. Faut juste lire sa doc... Voire tu t'installes ipcop+mon addon juste pour te fabriquer le modèle de squidguard.conf.
Et bye bye les scripts et cron.




salut
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar eden91 » 11 Juil 2006 09:51

En enlevant run-parts tout marche.

Merci
eden91
Aspirant
Aspirant
 
Messages: 123
Inscrit le: 20 Avr 2004 13:11

Messagepar eaglesly » 13 Juil 2006 22:51

Je travaille rarement sur les horaires, mais ca doit être tout à fait gérable avec les acls.
Tu commences par créer l'acl pause_dej de temps et l'acl meetic en dstdomain
et tu mets un http_access allow pause_dej meetic
ensuite, tu crées ton acl workhours (time period)
et tu poses un http_access allow workhours !meetic.
et enfin tu poses un http_access deny !workhours.
Dans le cheminement des acls, ca donnera :
Je regarde si on est dans la pause méridienne. Si c'est oui et qu'on veut meetic, ca passe. Si c'est oui et qu'on veut autre chose que meetic, le premier http_access n'est pas vérifié. Si c'est non, on passe à la règle 2 :
On est dans les horaires d'accès à internet, et on laisse accès à tout... sauf à meetic. Sinon, on passe à la règle 3 :
On refuse l'accès.

Je pense que c'est comme ca que je ferais...
--
Sly
"Software is like sex : It's better when it's free" - Linus Torvald
Avatar de l’utilisateur
eaglesly
Premier-Maître
Premier-Maître
 
Messages: 49
Inscrit le: 02 Avr 2003 00:00


Retour vers Mandriva MNF & SNF

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité