Au pire, si tu n’arrives pas à corriger ton problème, tu purges tout et tu refais la configuration pas à pas
bonjours,
tout d’abord bonne année, je n’ai pas eu le temps de m’en occupper depuis vendredi je réattaque sa cet semaine et je vous tient au courant de l avancement.
EDIT: C’est bon! squid marche nikel, plus d’erreur en fin de compte j’ai repris la config à zero.
Maintenant squidGuard ^^
EDIT2: impossible de générer ma base squidguard, je vous laisse mon fichier conf
root@debian:/home/kmarlot# tail -f /var/log/squid/squidGuard.log
2012-01-02 10:36:14 [1925] New setting: dbhome: /usr/local/squidGuard/db/blacklists
2012-01-02 10:36:14 [1925] New setting: logdir: /usr/local/squidGuard/logs
2012-01-02 10:36:14 [1925] init domainlist /usr/local/squidGuard/db/blacklists/adult/domains
2012-01-02 10:36:14 [1925] Error db_open: No such file or directory
2012-01-02 10:36:14 [1925] Going into emergency mode
2012-01-02 10:37:55 [1941] New setting: dbhome: /usr/local/squidGuard/db/blacklists
2012-01-02 10:37:55 [1941] New setting: logdir: /usr/local/squidGuard/logs
2012-01-02 10:37:55 [1941] init domainlist /usr/local/squidGuard/db/blacklists/adult/domains
2012-01-02 10:37:55 [1941] Error db_open: No such file or directory
2012-01-02 10:37:55 [1941] Going into emergency mode
Fichier conf:
[code]##
CONFIG FILE FOR SQUIDGUARD
dbhome /usr/local/squidGuard/db/blacklists
logdir /usr/local/squidGuard/logs
dest adult {
domainlist adult/domains
urllist adult/urls
}
acl {
default {
pass !adult all
redirect http://www.google.com
}
}[/code]
EDIT3: c bon pour cet erreur, mauvais chemin …
maintenant c’est cette erreur:
__fop_file_setup: Retry limit (100) exceeded
Salut,
Voila mon squidGuard.conf :
[code]dbhome /var/lib/squidguard/db/blacklists
logdir /var/log/squid3
time workhours {
weekly mtwhf 18:30 - 08:00
weekly sa 12:30 - 08:30
}
src admin {
ip 172.16.0.40/32
user root
}
src users {
ip 172.16.0.0/24 172.16.134.0/23
user bastien, bts
}
dest manga {
urllist manga/urls
domainlist manga/domains
}
dest games {
urllist games/urls
domainlist games/domains
}
dest drugs {
urllist drugs/urls
domainlist drugs/domains
}
dest violence {
urllist violence/urls
domainlist violence/domains
}
dest perso {
domainlist perso/domains
}
acl {
admin {
pass any
}
users outside workhours{
pass !manga !games !drugs !violence !perso
redirect http://172.16.0.40/stop.html
}
default {
pass none
redirect http://172.16.0.40/stop.html
}
}
[/code]
Si ca peu t’aider !
Je vais rechercher pour ton message d’erreur.
Tout charge bien mis a part ca ?
Simple question :
As tu peuplé convenablement ton répertoire contenant les bases squidGuard ?
J’entends par là : Télécharger ces bases quelque part, les avoir décompressé dans le bon répertoire et bien sur compilé ?
@ Bastichou: tout charge bien au niveau de squid mais pas pour squidguard
@Noop: Mon problème viens lorsque je compile mes blacklists, squidguard tourne en rond, user bien mis, chemin des blacklists aussi.
Je vais tester avec le conf de bastichou
EDIT1: pour un peut plus d’info:
root@debian:/home/kmarlot# tail -f /var/log/squid/squidGuard.log
2012-01-03 08:35:31 [1400] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:35:31 [1402] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:35:31 [1407] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:35:31 [1411] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:35:32 [1404] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:35:33 [1409] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:35:37 [1406] init domainlist /var/lib/squidguard/db/blacklists/adult/domains
2012-01-03 08:42:57 [1885] New setting: dbhome: /var/lib/squidguard/db/blacklists
2012-01-03 08:42:57 [1885] New setting: logdir: /usr/local/squidGuard/logs
2012-01-03 08:42:57 [1885] init urllist /var/lib/squidguard/db/blacklists/adult/urls
root@debian:/home/kmarlot# /usr/sbin/update-squidguard
Double checking directory and file permissions...done!
Re-building SquidGuard db files...
Et sa tourne en rond…
Le processus de compilation des bases peut être extrêmement long sur un système disque peu performant.
J’avais développé un script à coller dans /etc/cron.weekly pour télécharger et compiler automatiquement les bases.
Il travaille dans un ramdisk pour la partie compilation, et ne compile QUE les règles que tu utilises dans le fichier de configuration. Optimisation qui, comme j’espère tu pourras le voir, accélère de façon impressionnante le processus.
Ce script est, bien sûr :
- Perfectible. Il a été développé pour mes propres besoins.
- A exécuter sous l’utilisateur ‘root’ car il a besoin de créer un répertoire /ramdisk, de monter un ramdisk sur ce répertoire, de supprimer les bases existantes et de mettre les nouvelles dans /var/xxxxxxx, d’arrêter et de redémarrer Squid. Tant de tâche qui ne sont accessible qu’a root.
- A lire et comprendre, si possible, avant de l’exécuter.
- A configurer pour le faire correspondre à l’organisation de ton système
[code]#!/bin/sh
Fichier /etc/cron.weekly/squidguard_blacklists
Telecharge chaque semaine les listes noires pour squidguard
et met a jour les bases de ce dernier.
En fonctionnement par défaut, le script ne fera rien avant
l’heure définie dans RUNHOUR.
En lui passant un paramètre quelconque, il s’exécute alors immédiatement
Ex : ./squidguard_blacklists now
Heure a laqelle doit se lancer le script
RUNHOUR=“02:00”
Emplacement du fichier de configuration de squidGuard
et des bases de donnees.
SGCONF="/etc/squid/squidGuard.conf"
SGLIBS="/var/lib/squidguard"
Lien de telechargement des blacklists
BLURL=“ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz”
############################################################
Normalement, rien a configurer en dessous de cette ligne
############################################################
Parametres du RamDisk
RAMDISK="/ramdisk"
RAMSIZE="150m"
RAMCONF=“squidGuard.ram.conf”
Calcul du temps d’attente.
DATENOW=date -d "now" +%s
DATETOWAIT=date -d "${RUNHOUR}" +%s
TIMETOWAIT=expr ${DATETOWAIT} - ${DATENOW}
Si l’heure est deja passee pour aujourd’hui alors on calcule le temps
d’attente pour “demain” a la meme heure
if [ ${TIMETOWAIT} -lt 0 ]; then
DATETOWAIT=date -d "next day ${RUNHOUR}" +%s
TIMETOWAIT=expr ${DATETOWAIT} - ${DATENOW}
fi
Si pas de parametres derriere le script, on attend le nombre de secondes
calculees avant de continuer, sinon on execute directement le script.
if [ -z $1 ]; then
sleep ${TIMETOWAIT}
fi
if [ -d ${SGLIBS} ]; then
echo ""
echo "Arret de squid …"
service squid stop
echo ""
echo "Attente que tous les processus SQUID soient termines ..."
pidof \(squid\) >> /dev/null
while [ $? -eq 0 ]; do
sleep 1
pidof \(squid\) >> /dev/null
done
echo ""
echo "Telechargement des BlackLists ..."
wget ${BLURL} -O ${SGLIBS}/blacklists.tar.gz
echo ""
echo "Decompression des Blacklists ..."
tar zxvf ${SGLIBS}/blacklists.tar.gz -C ${SGLIBS}
echo ""
echo "Suppression des anciennes BlackLists et recreation du repertoire DB ..."
rm -rf ${SGLIBS}/db
mkdir ${SGLIBS}/db || true
echo ""
echo "Deplacement des BlackLists dans la DB et application des droits ..."
mv -f ${SGLIBS}/blacklists/* ${SGLIBS}/db/
chmod 2770 ${SGLIBS}/db
echo ""
echo "Suppression du telechargement ..."
rm -rf ${SGLIBS}/blacklists ${SGLIBS}/blacklists.tar.gz
echo ""
echo "Creation d'un RamDisk de ${RAMSIZE}"
mkdir ${RAMDISK}
mount -t tmpfs ramdisk ${RAMDISK} -o size=${RAMSIZE}
echo ""
echo "Copie du fichier de configuration de squidGuard dans le RamDisk"
cp ${SGCONF} ${RAMDISK}/${RAMCONF}
echo ""
echo "Modification du fichier de config de squidGuard pour pointer sur le RamDisk"
sed -i "s|dbhome .*|dbhome ${RAMDISK}/db|" ${RAMDISK}/${RAMCONF}
echo ""
echo "Copie des bases dans le RamDisk"
echo ""
rsync -av ${SGLIBS}/ ${RAMDISK}/
echo ""
echo "Compilation des BlackLists ..."
echo ""
echo " Compilation des domaines :"
for DOMAIN in `cat ${SGCONF} | grep "domain" | grep -v "#" | awk '{print $2}'`; do
echo " -> Compilation de ${DOMAIN} ... ";
nice -n 19 squidGuard -c ${RAMDISK}/${RAMCONF} -C ${DOMAIN}
done
echo ""
echo " Compilation des urls :"
for URLS in `cat ${SGCONF} | grep "urls" | grep -v "#" | awk '{print $2}'`; do
echo " -> Compilation de ${URLS} ... "
nice -n 19 squidGuard -c ${RAMDISK}/${RAMCONF} -C ${URLS}
done
echo ""
echo "Copie des bases du RamDisk sur le disque dur"
echo ""
rsync -av ${RAMDISK}/db/ ${SGLIBS}/db/
echo ""
echo "Affichage de l'espace utilise dans le ramdisk"
LANG="C" df -h | grep "${RAMDISK}" | awk '{print $6" utilise a "$5" ( "$3" / "$2" )"}'
echo ""
echo "Suppression du RamDisk"
umount ${RAMDISK}
rmdir ${RAMDISK}
echo ""
echo "Application des droits ..."
chown -R proxy:proxy ${SGLIBS}
echo ""
echo "Demarrage de Squid ..."
service squid start
fi[/code]
Allez, hop, j’ai rebossé le script pour qu’il soit plus simple et plus propre (Utilisation de fonctions) :
[code]#!/bin/bash
Script de telechargement des blacklists
pour squidGuard
####################################################
Variables a configurer avant de lancer le script
####################################################
function Configure {
SQUIDGUARD_CONF="/etc/squid/squidGuard.conf"
SQUIDGUARD_DB="/var/lib/squidguard"
BLACKLISTS_URL=“ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz”
RAMDISK_PATH="/ramdisk"
RAMDISK_SIZE="150m"
RUNHOUR="02:00"
}
#######################
Fonction principale
#######################
function Main {
Configure
#Run_At $1
Mount_RamDisk
Download_BlackLists
Uncompress_BlackLists
Delete_BlackLists_archive
Copy_Config
Modify_RamDisk_Config
Compile_Blacklists_Domains
Compile_Blacklists_Urls
Compile_Blacklists_Expressions
Show_Ramdisk_FreeSpace
Stop_Squid
Kill_SquidGuard
Install_BlackLists_Dbs
Configure_Perms_On_Dbs
Start_Squid
Unmount_RamDisk
}
#############################
Bibliotheque de fonctions
#############################
function Run_At {
if [ -z $1 ]; then
echo "* Execution du script a $RUNHOUR …"
DATENOW=date -d "now" +%s
DATETOWAIT=date -d "$RUNHOUR" +%s
TIMETOWAIT=expr $DATETOWAIT - $DATENOW
if [ $TIMETOWAIT -lt 0 ]; then
DATETOWAIT=`date -d "next day $RUNHOUR" +%s`
TIMETOWAIT=`expr $DATETOWAIT - $DATENOW`
fi
sleep $TIMETOWAIT
fi
}
function Start_Squid {
echo “* Demarrage de Squid …”
/etc/init.d/squid start > /dev/null 2>&1
}
function Stop_Squid {
echo “* Arret de Squid …”
/etc/init.d/squid stop > /dev/null 2>&1
pidof \(squid\) >> /dev/null
while [ $? -eq 0 ]; do
sleep 1
pidof \(squid\) >> /dev/null
done
}
function Kill_SquidGuard {
echo “* Tue les processus squidGuard reclacitrants …”
for SGPID in `pidof \(squidGuard\)`; do
kill -9 $SGPID
done
}
function Mount_RamDisk {
echo “* Creation et montage du ramdisk”
if [ ! -d $RAMDISK_PATH ]; then
mkdir $RAMDISK_PATH
fi
mount -t tmpfs tmpfs $RAMDISK_PATH -o size=$RAMDISK_SIZE,uid=0,gid=100,mode=750
}
function Unmount_RamDisk {
echo “* Demontage et suppression du ramdisk”
while [ $(mount | grep $RAMDISK_PATH | wc -l) -gt 0 ]; do
umount $RAMDISK_PATH
done
if [ -d $RAMDISK_PATH ]; then
rmdir $RAMDISK_PATH
fi
}
function Download_BlackLists {
echo “* Telechargement des blacklists …”
if [ -f $RAMDISK_PATH/blacklists.tar.gz ]; then
rm -f $RAMDISK_PATH/blacklists.tar.gz
fi
wget $BLACKLISTS_URL -O $RAMDISK_PATH/blacklists.tar.gz > /dev/null 2>&1
}
function Uncompress_BlackLists {
echo “* Decompression des blacklists …”
if [ -d $RAMDISK_PATH/blacklists ]; then
rm -Rf $RAMDISK_PATH/blacklists
fi
tar xfz $RAMDISK_PATH/blacklists.tar.gz -C $RAMDISK_PATH
}
function Delete_BlackLists_archive {
echo “* Supprime l’archive téléchargée”
rm -f $RAMDISK_PATH/blacklists.tar.gz
}
function Copy_Config {
echo “* Copie du fichier de configuration de squidGuard”
cp $SQUIDGUARD_CONF $RAMDISK_PATH
}
function Modify_RamDisk_Config {
echo “* Modification du fichier de configuration dans le ramdisk”
sed -i "s|dbhome .*|dbhome $RAMDISK_PATH/blacklists|" $RAMDISK_PATH/squidGuard.conf
}
function Compile_Blacklists_Domains {
echo "* Compilation des domaines :"
for DOMAIN in cat $RAMDISK_PATH/squidGuard.conf | grep "domain" | grep -v "#" | awk '{print $2}'
; do
echo " -> Compilation de $DOMAIN … ";
nice -n 19 squidGuard -c $RAMDISK_PATH/squidGuard.conf -C $DOMAIN
done
}
function Compile_Blacklists_Urls {
echo "* Compilation des urls :"
for URLS in cat $RAMDISK_PATH/squidGuard.conf | grep "urls" | grep -v "#" | awk '{print $2}'
; do
echo " -> Compilation de $URLS … "
nice -n 19 squidGuard -c $RAMDISK_PATH/squidGuard.conf -C $URLS
done
}
function Compile_Blacklists_Expressions {
echo "* Compilation des expressions :"
for EXPRS in cat $RAMDISK_PATH/squidGuard.conf | grep "expressions" | grep -v "#" | awk '{print $2}'
; do
echo " -> Compilation de $EXPRS … "
nice -n 19 squidGuard -c $RAMDISK_PATH/squidGuard.conf -C $EXPRS
done
}
function Show_Ramdisk_FreeSpace {
echo “* Espace utilise dans le ramdisk :”
LANG="C" df -h | grep "$RAMDISK_PATH" | awk '{print " -> "$6" utilise a "$5" ( "$3" / "$2" )"}'
}
function Install_BlackLists_Dbs {
echo “* Installation des blacklists …”
if [ -d $SQUIDGUARD_DB/db ]; then
rm -Rf $SQUIDGUARD_DB/db
fi
mkdir $SQUIDGUARD_DB/db
rsync -a $RAMDISK_PATH/blacklists/* $SQUIDGUARD_DB/db/ --delete-before
}
function Configure_Perms_On_Dbs {
echo “* Application des droits …”
chmod -R 000 $SQUIDGUARD_DB/db
chmod -R "u+rwX,g+rX,o+rX" $SQUIDGUARD_DB/db
chown -R proxy:proxy $SQUIDGUARD_DB/db
}
#######################
Execution du script
#######################
Main $1
[/code]
Salut à tous,
Bon j’ai réussi à tout faire fonctionner grâce au script de NooP, petit problème de puissance au niveau du serveur…
En tout cas merci à tous de l’aide apporté maintenant je vais m’attaquer au couplage avec un AD (la je vais me marrer )
Je suis en train de réaliser un tuto que je mettrai en ligne dans le courant de la semaine pour les autres débutants de linux
Encore merci et a +
Bonjours,
Je revient vers vous car j ai des soucis au niveau du couplage de squidguard avec mon AD.
Voila j’aimerai que squidguard, grâce à une requête ldap applique mes acl a un groupe ad.
Je ne trouve aucun tuto sur le net a part pour une requête ldap pour un utilisateur et non pour un groupe ad.
Si quelqu’un peut me dire si tout d’abord c’est possible, et ensuite la procédure a suivre.
Merci d’avance
Hello basara,
As-tu trouvé des pistes ?
Je fais des tests depuis 1 semaine avec tous les tutos ou articles que je trouve sur le net…sans succès.
La solution que je pense adopter…sans savoir comment pour le moment …c’est de générer des listes depuis mon AD vers SquidGuard.
désolé de déterrer un topic un peu vieux mais mon problème se situe juste après la fin du script.
je m’explique :
mon squid marche très bien pas de problème, la ou je coince c’est que à la fin du script dans /var/lib/squidguard/db je n’ai pas les blacklist… donc forcément dans les log de squidguard cela me dit que les dossier et fichier n’existe pas.
j’ai fait un :
je n’ai aucun retour.
c’est bon j’ai résolut mon 1er problème cela vennait qu’il me manquait un packet pour une partie du script.
par contre maintenant squidguard bloque tout m^me la recherche google…
fichier squidguard :
[code]dbhome /var/lib/squidguard/db/
logdir /var/log/squid
SOURCE ADDRESSES
src lan {
ip 192.160.43.0/24
log block.log }
DESTINATION CLASSES
.
.
.
.
ACCESS CONTROL LIST
acl {
lan {
pass !adult !agressif !astrology !blog !chat !dating !drogue !drugs
!filehosting !forums !gambling !games !hacking !malware !mobile-phone
!phishing !porn !proxy !redirector !remote-control !strict_redirector
!strong_redirector !violence !warez all
log block.log #Autorise tout se qui n’est pas r�f�renc� dans les blacklistes
}
default {
pass none # Tout ce qui est interdit au dessus passera ici
redirect http://www.google.fr
}
}
[/code]
les point représente toute les destination.
si quelqu’un voit une érreur je serait enchanté^^
merci d’avance
après avoir essayé 20 config différente c’est toujours pareil… personnes à une idée svp?