Installation et exploitation de Squint

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

Installation et exploitation de Squint

Messagepar RogerRabbit » 12 Oct 2009 16:36

Bonjour,

Je tente désespérément d'installer Squint-0.3.18 sur un serveur IPCOP 1.4.21 et je rencontre quelques "soucis" avec le script squint.cron.sh.

Ce que je fais :

1) Je décompacte l'archive
tar -zxvf squint.tgz

2) Je copie squint.pl et squint.cron.sh dans /usr/local/bin
cp squint.pl squint.cron.sh /usr/local/bin

3) Je créé le répertoire squint dans /home/httpd/html/
mkdir squint

4) J'édite squint.cron.sh et je modifie les variables
BASEDIR = /home/httpd/html \
LOGDIR = /var/log/squid \
HTTPDCONF=/etc/httpd/conf/httpd.conf

5) Comme indiquer dans la doc squint je lance la commande squint.cron.sh init pour créer les entrées dans la tabble cron et quelques repèrtoires de stockage des états ... et là les ennuis commencent !
Le système me renvoi un "/usr/local/bin/squint.cron.sh: line 61: tty: command not found" dés plus inquietant !

Je décide d'éditer le fichier squint.cron.sh et de mettre en commentaire les lignes avec la fonction incriminée :

# If we are not on a tty, then log to file
#tty -s || {
# exec >& $BASEDIR/squint.log
# date
# trap "date" EXIT
#}

Je relance la commande squint.cron.sh init, et là pas d'erreur.
Je constate la création des répertoires squint dans /home/httpd/html/ et all dans /home/httpd/html/squint, ainsi que de plusieurs fichiers index.html.
En revanche, aucune entrée dans fcrontab (fcrontab -l), ce qui après vérification semble normale car le script squint.cron.sh cherche à modifier le fichier crontab et non fcrontab.

function checkcrontab()
{
# install CRONTAB if crontab is writable
CRONTAB="/etc/crontab"
[ -w $CRONTAB ] || return

grep -q "squint" $CRONTAB ||
echo "# squint squid reports
# Weekly, on Mondays
00 01 * * Monday root /usr/local/bin/squint.cron.sh weekly
# Monthly, on the first day of the month
00 02 1 * * root /usr/local/bin/squint.cron.sh monthly
# Daily at 3am
00 03 * * * root /usr/local/bin/squint.cron.sh daily" >> $CRONTAB && killall -1 cron crond 2>/dev/null
}

Toujours en me rapportant à la doc (succinte) de squint je lance la commande squint.cron.sh all pour générer les états à partir des logs squid.
Cette fois le' système me renvoi un "/usr/local/bin/squint.cron.sh: line 140: xargs: command not found
"

Je décide donc de me passer du script squint.cron.sh et je génère directement les états avec la commande cat /var/log/squid/access.log | ./squint.pl /home/httpd/html/squint/.
Tout fonctionne alors à merveille, les états sont générés et accessibles via le navigateur par https://IPCOP:XXX/squint/index.html
Cependant, je dois lancer cette commande manuellement chaque jour et je ne peux pas générer d'états à partir des fichiers acces.log archivés.

Je m'en remet donc à vous pour m'apporter un peu d'aide et répondre à mes questions :

Pourquoi ma version d'IPCOP ne dispose pas de la commande "TTY" ?
Pourquoi ma version d'IPCOP ne dispose pas de lacommande "XARG"
Comment modifier le script squint.cron.sh pour qu'il modifie le fcrontab et non le crontab ?
Plus généralement, cette version de squint (0.3.18) est-elle supportée par IPCOP V 1.4.21 ?

Merci.
RogerRabbit
Quartier Maître
Quartier Maître
 
Messages: 17
Inscrit le: 12 Oct 2009 15:08

Messagepar jdh » 12 Oct 2009 16:59

Peut-être faudrait-il préciser le sujet :

- squint est un générateur d'état à partir des logs de proxy (squid).

Squint utilise bash et perl pour travailler et repose sur un système de tâches cron.

Le site indique
Technical note: Squint is quite resource intensive. It takes around 15 minutes to analyse 1 week of web traffic for 50 users. The size of the generated reports is also considerably larger than the size of the original data.




1ère question : existe-t-il cron sur Ipcop ?
J'ignore si c'est le cas mais je pense que c'est non (comme d'ailleurs sur pfSense).

2ème question : y a-t-il des alternatives à Squint ?
J'utilise sur d'autres systèmes (Debian et pfSense) le pgm LightSquid et j'en suis satisfait.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar RogerRabbit » 12 Oct 2009 18:15

Merci pour votre réponse rapide.

Il me semble que les "prérequis" nécessaires pour Squint sont disponibles sous IPCOP : Squid, Perl (?), Bash , serveur web local (à la place d'Apache), cependant il manque effectivement cron, remplacé par le binaire fcron.
Concernant les alternatives j'ai déjà essayé Sarg, très bien mais très très gourmand en terme de place.
Lightsquid est déjà installé sur le serveur mais ne répond pas entièrement à la demande notamment concernant les temps de connexion chose que fait très très bien Squint.

Squint fonctionne bien, il reste "juste" à adapter le script squint.cron.sh d'automatisation et de génération des états, mais dans ce domaine je ne suis malheureusement pas un crack !


#!/bin/bash

# squint.cron.sh -- Quick and DIRTY squid log analysis
#
# Assemble squid logs, and send through squint.pl. This script gets run on a
# regular basis. It will install itself in crontab if you give it a chance.
#
# Copyright (c) 2001-2002 Andrew McGill and Leading Edge Business Solutions
# (South Africa). This software may be redistributed and/or modified only
# under the terms of the GNU General Public Licence, version 2, as published by
# the Free Software Foundation, and contained in the file COPYING.
#
# All other rights are reserved, and no warranty is implied. Despite any
# appearance to the contrary, this software is not fit for ANY purpose you may
# conceive, and should not be used on your system under any circumstances.

REVISION='$Id: squint.cron.sh,v 1.26 2005/09/30 10:06:40 andrewm Exp $'
SHORTREVISION="${REVISION/*,v }"
SHORTREVISION="${SHORTREVISION/ *}"

# You can override automatic 'detection' by editing this, or by setting
# an environmnet variable:
# BASEDIR="/usr/local/httpd/htdocs/squint"
# LOGDIR="/var/log/squid"
SQUINT="${SQUINT:=nice /usr/local/bin/squint.pl}"
# If you run setuphtaccess
HTTPDCONF=/etc/httpd/conf/httpd.conf

# Irix doesn't have -maxdepth 1 on find, so we'll work around it
FINDOPTS="-maxdepth 1"
find /dev/null $FINDOPTS >& /dev/null | FINDOPTS=

# Find a nice place to put the output - semi-automatic nonsense that is bound
# to fail sooner or later. If you don't like this, you can change BASEDIR and
# LOGDIR above
[ "$BASEDIR" ] ||
for DIR in \
/home/httpd/html/squint \
/var/www \
/usr/local/httpd/htdocs \
/var/www/htdocs \
/var/www/html \
/srv/www/htdocs \
/var/www/htdocs \
; do
if [ -d $DIR ] ; then BASEDIR=$DIR/squint ; fi
done
[ "$LOGDIR" ] ||
for DIR in \
/var/squid/logs \
/var/log/squid \
/usr/local/squid/var/logs \
; do
if [ -d $DIR ] ; then LOGDIR=$DIR; fi
done
[ "$BASEDIR" ] || { echo 1>&2 "Please set BASEDIR in $0"; exit 1; }
[ "$LOGDIR" ] || { echo 1>&2 "Please set LOGDIR in $0"; exit 1; }
umask 002

# If we are not on a tty, then log to file
tty -s || {
exec >& $BASEDIR/squint.log
date
trap "date" EXIT
}

# Print a header
function htmlheader()
{
HEADING="$1"
echo "<HTML>
<HEAD>
<TITLE>$HEADING</TITLE>
</HEAD>
<BODY>
<H1>$HEADING</H1>";
}

function htmlfooter()
{
echo "<HR><FONT size=-4>Generated by <a
href=http://www.ledge.co.za/software/squint/>squint</a> at `date`
by $HOSTNAME<br>$REVISION<br> </FONT></BODY></HTML>";
}

function checkcrontab()
{
# install CRONTAB if crontab is writable
CRONTAB="/etc/crontab"
[ -w $CRONTAB ] || return

grep -q "squint" $CRONTAB ||
echo "# squint squid reports
# Weekly, on Mondays
00 01 * * Monday root /usr/local/bin/squint.cron.sh weekly
# Monthly, on the first day of the month
00 02 1 * * root /usr/local/bin/squint.cron.sh monthly
# Daily at 3am
00 03 * * * root /usr/local/bin/squint.cron.sh daily" >> $CRONTAB && killall -1 cron crond 2>/dev/null
}

# Create index.html file
function doupdateindex()
{
mkdir -p $REPORTDIR
# write the index.html file
{
htmlheader "Squint reports";
if [ -f $REPORTDIR/daily/range.txt ] ; then
echo "<H2>Daily report</H2>"
echo "<A href=daily/index.html>Daily (`cat $REPORTDIR/daily/range.txt`)</A><BR>";
fi

echo "<H2>Weekly reports</H2>";
for NUM in 0 1 2 3 4 5 6 ; do # some bash versions dislike 'for ((a=0;a<7;a++))..'
if [ -f $REPORTDIR/weekly$NUM/range.txt ] ; then
echo "<A href=weekly$NUM/index.html>`cat $REPORTDIR/weekly$NUM/range.txt`</A><BR>"
fi
done

echo "<H2>Monthly reports</H2>";
for NUM in 0 1 2 3 4 5 6 ; do
if [ -f $REPORTDIR/monthly$NUM/range.txt ] ; then
echo "<A href=monthly$NUM/index.html>`cat $REPORTDIR/monthly$NUM/range.txt`</A><BR>"
fi
done

htmlfooter

} > $REPORTDIR/index.html

checkcrontab
} # end of doupdateindex function

# Find the access logs, and concatenate them to stdout in the right order
# (ie. in the order in which the events happened)
function cataccesslogs()
{
find $LOGDIR $FINDOPTS -name "access.log*" -mtime -$DAYS |
xargs ls -tr /dev/null |
while read LOGFILE ; do
[ -r "$LOGFILE" ] &&
case "$LOGFILE" in
*.gz) zcat "$LOGFILE" ;;
*.bz2) bzcat "$LOGFILE" ;;
*) cat "$LOGFILE" ;;
esac
done
}

function doreport()
{
# doreport DESTINATION FROMTIME-WHEN
DAYS="$1"
FROMTIME="$2"
TOTIME="$3"
DESTDIR="$REPORTDIR/$4"
STARTTIME=`date +%s -d "$FROMTIME"`
ENDTIME=`date +%s -d "$TOTIME"`
echo "Generating report to $DESTDIR from" \
"`date +%Y%m%d -d "$FROMTIME"`" "to" \
"`date +%Y%m%d -d "$TOTIME"`"

[ -d $DESTDIR ] && rm -r $DESTDIR
mkdir -p $DESTDIR
# Unzip files before use ...
# find $LOGDIR $FINDOPTS -name "access.log-*.gz" -mtime -$DAYS -exec gunzip {} \;
cataccesslogs | $SQUINT $EXCLUDEOPTIONS $DESTDIR $STARTTIME $ENDTIME $USERLIST
doupdateindex
}

# Rotate the logs in the directory
function rotatereports()
{
mkdir -p $REPORTDIR
TYPE="$1" # daily / weekly
rm -r $REPORTDIR/${TYPE}6
mv 2>/dev/null -f $REPORTDIR/${TYPE}5 $REPORTDIR/${TYPE}6
mv 2>/dev/null -f $REPORTDIR/${TYPE}4 $REPORTDIR/${TYPE}5
mv 2>/dev/null -f $REPORTDIR/${TYPE}3 $REPORTDIR/${TYPE}4
mv 2>/dev/null -f $REPORTDIR/${TYPE}2 $REPORTDIR/${TYPE}3
mv 2>/dev/null -f $REPORTDIR/${TYPE}1 $REPORTDIR/${TYPE}2
mv 2>/dev/null -f $REPORTDIR/${TYPE}0 $REPORTDIR/${TYPE}1
}

function setuphtaccess()
{
if [ -w $HTTPDCONF ] ; then
grep -q "Added by squint" $HTTPDCONF || echo "
# --squint begin--
# Added by squint - allow .htaccess files in $BASEDIR
<Directory $BASEDIR>
AllowOverride AuthConfig Limit
</Directory>
# --squint end--
" >> $HTTPDCONF
else
echo 1>&2 "$HTTPDCONF not modified ... it's not there"
fi

DIRNAME=`cd $REPORTDIR; pwd -P`
AUTHUSERFILE="$DIRNAME/.htpasswd"
touch "$AUTHUSERFILE"
echo "AuthUserFile $AUTHUSERFILE
AuthGroupFile /dev/null
AuthName \"Squint files for `basename $DIRNAME`\"
AuthType Basic

<Limit GET POST>
require valid-user
</Limit>
" > "$REPORTDIR/.htaccess"
echo 1>&2 ".htaccess in $DIRNAME"
}

# Update the list of groups
function updategrouplist()
{

{
htmlheader "Squint reports - report list"
echo "<a href=all/index.html>Reports for all users</a><br>"
if [ -d "$LISTDIR" ] ; then
for LISTFILE in `ls "$LISTDIR" ` ; do
[ "$LISTFILE" = "all" ] && continue
HREF="$LISTFILE/index.html"
DESC=$LISTFILE
[ -f $LISTFILE/desc.txt ] && DESC="`cat $LISTFILE/desc.txt`"
echo "<a href=$HREF>$DESC</a><br>"
done
fi
htmlfooter
} > $BASEDIR/index.html

}


function doreporting()
{
MONTH="`date '+%Y%m01'`"
case "$1" in
htaccess)
setuphtaccess;
;;
doupdateindex)
doupdateindex
;;
regen)
for report in daily weekly0 weekly1 weekly2 weekly3 weekly4 weekly5 weekly6 monthly0 monthly1 monthly2 monthly3 monthly4 monthly5 monthly6 ; do
doreporting $report
done
;;
grep)
if [ "$3" ] ; then
DAYS=365 # 1 year
cataccesslogs | egrep "$2" | $SQUINT $3
else
echo "Usage: $0 grep '\<192\.168\.12\.13\>'"
fi
# Do it once only ...
exit 0
;;

daily)
# week-so-far report
doreport 7 "last monday" "now" daily
;;

weekly0) doreport 15 "last monday 1 weeks ago" "last monday 0 weeks ago" weekly0 ;;
weekly1) doreport 21 "last monday 2 weeks ago" "last monday 1 weeks ago" weekly1 ;;
weekly2) doreport 28 "last monday 3 weeks ago" "last monday 2 weeks ago" weekly2 ;;
weekly3) doreport 35 "last monday 4 weeks ago" "last monday 3 weeks ago" weekly3 ;;
weekly4) doreport 42 "last monday 5 weeks ago" "last monday 4 weeks ago" weekly4 ;;
weekly5) doreport 49 "last monday 6 weeks ago" "last monday 5 weeks ago" weekly5 ;;
weekly6) doreport 56 "last monday 7 weeks ago" "last monday 6 weeks ago" weekly6 ;;

weekly) # called on the first day of the week
rotatereports weekly
doreport 8 "1 week ago 00:00" "00:00" weekly0
;;

monthly0) doreport 62 "$MONTH 1 month ago" "$MONTH 0 month ago" monthly0 ;;
monthly1) doreport 93 "$MONTH 2 month ago" "$MONTH 1 month ago" monthly1 ;;
monthly2) doreport 114 "$MONTH 3 month ago" "$MONTH 2 month ago" monthly2 ;;
monthly3) doreport 144 "$MONTH 4 month ago" "$MONTH 3 month ago" monthly3 ;;
monthly4) doreport 175 "$MONTH 5 month ago" "$MONTH 4 month ago" monthly4 ;;
monthly5) doreport 205 "$MONTH 6 month ago" "$MONTH 5 month ago" monthly5 ;;
monthly6) doreport 236 "$MONTH 7 month ago" "$MONTH 6 month ago" monthly6 ;;

monthly) # called on the first day of the month
rotatereports monthly
doreport 32 "$MONTH 1 month ago" "$MONTH 0 month ago" monthly0
;;
init)
doupdateindex
;;
all)
doreporting daily
doreporting weekly
doreporting monthly
;;
htpasswd)
echo -ne "User name for $REPORTDIR/.htpasswd: "
read USER
[ $USER ] && htpasswd $REPORTDIR/.htpasswd $USER
;;
*)
echo "squint.cron.sh rev $SHORTREVISION (usually) run from cron"
echo ""
echo "Usage: $0 command"
echo ""
echo "Commands:"
echo " daily Update the daily report"
echo " weekly Create the weekly report and archive previous"
echo " monthly Create the monthly report and archive previous"
echo " htaccess Access control: make $REPORTDIR/.htaccess and"
echo " modify/mangle $HTTPDCONF"
echo " htpasswd Update $REPORTDIR/.htpasswd"
echo " regen Recreate all reports (may take hours)"
echo " weekly[0-6] Recreate specific weekly report"
echo " monthly[0-6] Recreate specific monthly report"
echo ""
echo "Find-an offender command"
echo " grep '\<192\.168\.12\.13\>' report-directory"
echo ""
echo "Input is read from LOGDIR=$LOGDIR"
echo "Output is written to BASEDIR=$BASEDIR"
exit 1 # Avoid repeated usage reports
;;
esac
}

# If there is a file called excludelist in the reports directory,
# then it is used for exclusions
EXCLUDEFILE=$BASEDIR/excludelist
if [ -f $EXCLUDEFILE ] ; then
EXCLUDEOPTIONS="--exclude $EXCLUDEFILE"
else
EXCLUDEOPTIONS=""
fi

# If there is a dir called list/ in the reports directory, then it is used ...
LISTDIR=$BASEDIR/lists
if [ -d "$LISTDIR" ] ; then
for LISTFILE in `ls "$LISTDIR" ` ; do
[ -f "$LISTDIR/$LISTFILE" ] || continue
[ $LISTFILE = excludelist ] && continue
USERLIST="$LISTDIR/$LISTFILE"
REPORTDIR="$BASEDIR/$LISTFILE"
doreporting "$@"
done
fi
if [ ! -e "$LISTDIR/all" ] ; then
# List for all $BASEDIR/all/
USERLIST=""
REPORTDIR="$BASEDIR/all"
doreporting "$@"
fi
updategrouplist

exit 0
RogerRabbit
Quartier Maître
Quartier Maître
 
Messages: 17
Inscrit le: 12 Oct 2009 15:08

Messagepar RogerRabbit » 14 Oct 2009 14:16

Personne pour m'aider ?
Personne n'utilise Squint sous IPCOP 1.4.21 ?

Merci
RogerRabbit
Quartier Maître
Quartier Maître
 
Messages: 17
Inscrit le: 12 Oct 2009 15:08

Messagepar RogerRabbit » 06 Nov 2009 16:48

Des nouvelles du front ...
Je me suis débrouillé pour la mise en place des taches dans fcron, et j'arrive maintenant à générer un état hebdomadaire avec mise à jour régulière.
Cependant je n'ai toujours pas de solution pour générer des états mensuels à partir des fichiers access.log archivés. La commande squint.cron.sh monthly me renvoi toujours le même message d'erreur :
/usr/local/bin/squint.cron.sh: line 140: xargs: command not found.

Suis-je le seul sur ce forum à utiliser Squint sur IPCOP 1.4.21 ?
N'y aurait-il pas une âme charitable pour aider un "linuxien" en herbe à faire fonctionner Squint convenablement ?

Je reste sur ma position quant à l'utilisation strict de Squint pour l'analyse des logs de Squid.
Les autres générateurs d'états ne me conviennent pas : Sarg est trop gourmand en espace disque et renvoi des données erronées sur les temps de connections, Lightsquid quant à lui ne fourni pas d'information à ce sujet.

Merci d'avance.
RogerRabbit
Quartier Maître
Quartier Maître
 
Messages: 17
Inscrit le: 12 Oct 2009 15:08

Utilisation de squint

Messagepar olivier_morin » 06 Nov 2009 18:54

J'ai mis en place des script pour l'utilisation de squint dans petit-poulpe (addon d'ip-cop).

Si t veux je peux te les poster.
Avatar de l’utilisateur
olivier_morin
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 186
Inscrit le: 15 Jan 2003 01:00

Messagepar jdh » 06 Nov 2009 19:30

Remarque personnelle sur les temps de connexion.

Intéressante question !

Comment peut-on déterminer un "temps de connexion" à partir d'un log qui ne recense seulement que les "hits" ? (fichiers/objets accédés)

S'il est facile de dire à quelle heure telle machine a accédé pour la première fois de la journée (début d'une session), il est AMHA impossible de traduire cela en durée de session qui ajoutés donneraient le temps de connexion.

Car si la session débute à un temps connu, elle s'arrête à quel moment ?

Je ne vois pas le critère. Ou alors, c'est un critère manuel et réglable :

Par exemple, on peut fixer (unilatéralement) qu'une "session" est terminée quand un utilisateur n'a rien accédé durant 10 minutes. Mais alors pourquoi 10 minutes et pas 15, ...

Donc, je ne vois pas le critère "temps de session/connexion".

(Je dis ça parce que je me suis interrogé sur le sujet il y quelques années.)



Perso, j'aime bien dans LightSquid, le bouton répartition de temps en face de l'@ip (ou du nom) : en cas de doute, on a les volumes accédés par site et par heure ...

Puis, de toute façon, le volume transmis donne une bonne idée du temps passé à regarder Internet ...
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar RogerRabbit » 13 Nov 2009 11:31

Bonjour à tous

[b]Olivier[/b], je suis intéressé par toute solution pouvant m'aider à faire fonctionner Squint correctement.
Cependant je ne connais absolument pas l'addon "Petit Poulpe", de quoi s'agit-il ?
J'attends tes scripts (et explications) avec impatience...

[b]Jdh[/b], pour le calcul du temps de connexion, tu as entièrement raison, celui-ci est plutôt "subjectif" mais il donne cependant des résultats assez proches de la réalité.
En l'occurrence, Squint fixe l'arrêt de la session au-delà de 5mn d'inactivité.
"Hours: The number of hours (hours:minutes) spent connected to the internet for this user ID. An quiet period of more than 5:00 minutes counts as the end of a session".
Autre avantage de Squint par rapport à LightSquid, la possibilité de trier les états par heure, temps de connexion, hits, volume, site, etc ...
Le seul tri dispo dans LightSquid est le classement natif par %, de quoi et par rapport à quoi d'ailleurs ???
J'oubliais, il y a aussi le "Top Sites" et le "Big Files", mais bon ...
Mais mon but n'est pas ici de polémiquer sur le avantages et les inconvénients d'une solution ou d'une autre, je pense que LightSquid et Squint sont plus complémentaires que concurrents (et j'utilise d'ailleurs les deux). Chacun trouvera son compte en utilisant l'un ou l'autre ou les deux, à conditions cependant d'arriver à les faire fonctionner correctement, d'ou mon post.
Je reste donc ouvert à toute solution...

@+
RogerRabbit
Quartier Maître
Quartier Maître
 
Messages: 17
Inscrit le: 12 Oct 2009 15:08

Messagepar policeip » 13 Nov 2009 15:32

;-)

à la question : "faut-il tout traduire en français pour clarifier une discussion ?", la réponse est : NON...
Cependant je ne connais absolument pas l'addon "Petit Poulpe", de quoi s'agit-il ?

"Petit Poulpe" ~ "LightSquid" !

C'est pas sympa d'embrouiller RogerRabbit !!!
Avatar de l’utilisateur
policeip
Second Maître
Second Maître
 
Messages: 34
Inscrit le: 23 Avr 2004 22:38
Localisation: Toulouse

Messagepar RogerRabbit » 16 Nov 2009 12:16

Je dirais même plus : "Calmar léger" ...

C'est vrai, c'est pas sympa de m'embrouiller et ça ne m'aide pas vraiment pour résoudre mes problèmes d'exploitation des journaux de strabisme avec le calmar sous le flic de Protocole Internet 1.4.21.
RogerRabbit
Quartier Maître
Quartier Maître
 
Messages: 17
Inscrit le: 12 Oct 2009 15:08


Retour vers IPCop

Qui est en ligne ?

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

cron