/alcasar.sh |
---|
0,0 → 1,1274 |
#!/bin/sh |
# alcasar.sh |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY |
# This script is distributed under the Gnu General Public License (GPL) |
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal) |
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau) |
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares : |
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants : |
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, dhcpd, openssl bind and firewalleyes |
# Options : |
# -install |
# -uninstall |
# Funtions : |
# testing : Tests de connectivité et de téléchargement avant installation |
# init : Installation des RPM et des scripts |
# network : Paramètrage du réseau |
# gestion : Installation de l'interface de gestion |
# AC : Initialisation de l'autorité de certification. Création des certificats |
# init_db : Création de la base 'radius' sur le serveur MySql |
# param_radius : Configuration du serveur d'authentification FreeRadius |
# param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin) |
# param_chilli : Configuration du daemon 'coova-chilli' et de la page d'authentification |
# param_squid : Configuration du proxy squid en mode 'cache' |
# param_dansguardian : Configuration de l'analyseur de contenu DansGuardian |
# firewall : Mise en place des règles du parefeu et de l'interface WEB FirewallEyes |
# param_awstats : Configuration de l'interface des statistiques de consultation WEB |
# bind : Configuration du serveur de noms |
# cron : Mise en place des exports de logs (+ chiffrement) |
VERSION="1.9a" |
MDV_NEEDED="2010.0" |
DATE=`date '+%d %B %Y - %Hh%M'` |
DATE_SHORT=`date '+%d/%m/%Y'` |
# ******* Files parameters - paramètres fichiers ********* |
DIR_INSTALL=`pwd` # répertoire d'installation |
DIR_GESTION="$DIR_INSTALL/gestion" # répertoire d'installation contenant l'interface de gestion |
DIR_CONF="$DIR_INSTALL/conf" # répertoire d'installation contenant les fichiers de configuration |
DIR_SCRIPTS="$DIR_INSTALL/scripts" # répertoire d'installation contenant les scripts |
DIR_SAVE="/var/Save" # répertoire de sauvegarde (ISO, backup, etc.) |
DIR_WEB="/var/www/html" # répertoire du centre de gestion |
DIR_DEST_BIN="/usr/local/bin" # répertoire des scripts |
DIR_DEST_SBIN="/usr/local/sbin" # répertoire des scripts d'admin |
DIR_DEST_ETC="/usr/local/etc" # répertoire des fichiers de conf |
FIC_PARAM="/root/ALCASAR-parameters.txt" # fichier texte résumant les paramètres d'installation |
FIC_PASSWD="/root/ALCASAR-passwords.txt" # fichier texte contenant les mots de passe et secrets partagés |
# ******* DBMS parameters - paramètres SGBD ******** |
DB_RADIUS="radius" # nom de la base de données utilisée par le serveur FreeRadius |
DB_USER="radius" # nom de l'utilisateur de la base de données |
# ******* Network parameters - paramètres réseau ******* |
DOMAIN="localdomain" # domaine local |
EXTIF="eth0" # ETH0 est l'interface connectée à Internet (Box FAI) |
INTIF="eth1" # ETH1 est l'interface connectée au réseau local de consultation |
CUSTOM_PRIVATE_NETWORK_MASK="192.168.182.0/24" # adresse du réseau de consultation proposée par défaut |
SQUID_PORT="3128" # Port d'écoute du proxy Squid |
UAMPORT="3990" |
# ****** Paths - chemin des commandes ******* |
SED="/bin/sed -i" |
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ****** |
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php squid dansguardian postfix MySQL logwatch ntp awstats mondo cdrecord buffer vim-enhanced bind-utils wget arpscan ulogd dhcp-server openssh-server php-xml coova-chilli pam_ccreds rng-utils lsb-release bind" |
# ****************** End of global parameters ********************* |
header_install () |
{ |
clear |
echo "-----------------------------------------------------------------------------" |
echo " Installation d'ALCASAR V$VERSION" |
echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau" |
echo "-----------------------------------------------------------------------------" |
} # End of header_install () |
################################################################## |
## Fonction TESTING ## |
## - Test de la connectivité Internet ## |
## - Test la mise à jour système ## |
## - Test l'installation des RPM additionnels ## |
################################################################## |
testing () |
{ |
echo -n "Tests des paramètres réseau : " |
# On teste l'état du lien des interfaces réseau |
for i in $EXTIF $INTIF |
do |
/sbin/ifconfig $i up |
sleep 2 |
if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ] |
then |
echo "Échec" |
echo "Le lien réseau de la carte $i n'est pas actif." |
echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR." |
exit 0 |
fi |
done |
# On teste la présence d'un routeur par défaut (Box FAI) |
if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then |
echo "Échec" |
echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte." |
echo "Réglez ce problème avant de poursuivre." |
exit 0 |
fi |
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certains BIOS et sur VirtualBox) |
if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then |
echo "Échec. La configuration des cartes réseau va être corrigée." |
/etc/init.d/network stop |
mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0 |
$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0 |
/etc/init.d/network start |
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians |
sleep 2 |
echo "Configuration corrigée" |
sleep 2 |
echo "Vous pouvez relancer ce script (sh alcasar.sh -install)." |
exit 0 |
fi |
# On teste la connectivité Internet |
rm -rf /tmp/con_ok.html |
/usr/bin/curl www.google.fr -# -o /tmp/con_ok.html |
if [ ! -e /tmp/con_ok.html ] |
then |
echo "La tentative de connexion vers Internet a échoué (google.fr)." |
echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI." |
echo "Vérifiez la validité des adresses DNS." |
exit 0 |
fi |
echo "Tests de connectivité Internet corrects" |
rm -rf /tmp/con_ok.html |
# On configure les dépots et on les teste |
echo "Configuration des dépots de paquetages Internet (repository)" |
chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh |
$DIR_SCRIPTS/alcasar-urpmi.sh >/dev/null |
if [ "$?" != "0" ] |
then |
echo |
echo "Une erreur s'est produite lors de la synchronisation avec les dépots Internet" |
echo "Relancez l'installationi ultérieurement." |
echo "Si vous rencontrez de nouveau ce problème, changez de dépot en modifiant le fichier 'scripts/alcasar-urpmi.sh'" |
exit 0 |
fi |
# On test la mise à jour du système |
echo "Récupération des paquetages de mise à jour. Veullez patienter ..." |
urpmi --auto --auto-update --quiet --test |
if [ "$?" != "0" ] |
then |
echo |
echo "Une erreur a été détectée lors de la récupération des paquetages de mise à jour" |
echo "Relancez l'installationi ultérieurement." |
echo "Si vous rencontrez de nouveau ce problème, changez de dépot en modifiant le fichier 'scripts/alcasar-urpmi.sh'" |
exit 0 |
fi |
# On test l'installation des paquetages complémentaires |
echo "Récupération des paquetages complémentaires. Veullez patienter ..." |
urpmi --auto $PACKAGES --quiet --test |
if [ "$?" != "0" ] |
then |
echo |
echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires" |
echo "Relancez l'installationi ultérieurement." |
echo "Si vous rencontrez de nouveau ce problème, changez de dépot en modifiant le fichier 'scripts/alcasar-urpmi.sh'" |
exit 0 |
fi |
} # end of testing |
################################################################## |
## Fonction INIT ## |
## - Création du fichier "/root/ALCASAR_parametres.txt" ## |
## - Installation et modification des scripts du portail ## |
## - Mise à jour système ## |
## - Installation des paquetages complémentaires ## |
################################################################## |
init () |
{ |
if [ ! "$mode" = "update" ] |
then |
header_install |
# On affecte le nom d'organisme |
header_install |
ORGANISME=! |
PTN='^[a-zA-Z1-9-]*$' |
until [[ $(expr $ORGANISME : $PTN) -gt 0 ]] |
do |
echo -n "Entrez le nom de votre organisme : " |
read ORGANISME |
if [ "$ORGANISME" = "" ] |
then |
ORGANISME=! |
fi |
done |
fi |
# On mets à jour le système |
urpmi --auto --auto-update |
# On installe les paquetages complémentaires |
urpmi --auto $PACKAGES |
# On supprime les paquetages et les services inutiles |
for rm_rpm in avahi mandi shorewall-common shorewall |
do |
/usr/sbin/urpme --auto $rm_rpm |
done |
for svc in alsa sound dm atd memcached dc_server |
do |
/sbin/chkconfig --del $svc |
done |
# On installe les mises à jour spécifiques |
urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm |
# On supprime les paquetages orphelins |
/usr/sbin/urpme --auto-orphans --auto |
# On vide le répertoire temporaire |
urpmi --clean |
# On crée aléatoirement les mots de passe et les secrets partagés |
rm -f $FIC_PASSWD |
mysqlpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8` # mot de passe de l'administrateur Mysqld |
echo -n "compte et mot de passe de l'administrateur Mysqld : " > $FIC_PASSWD |
echo "root / $mysqlpwd" >> $FIC_PASSWD |
radiuspwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8` # mot de passe de l'utilisateur Mysqld (utilisé par freeradius) |
echo -n "compte et mot de passe de l'utilisateur Mysqld : " >> $FIC_PASSWD |
echo "$DB_USER / $radiuspwd" >> $FIC_PASSWD |
secretuam=`cat /dev/urandom | tr -dc [:alnum:] | head -c8` # secret partagé entre intercept.php et coova-chilli |
echo -n "secret partagé entre le script 'intercept.php' et coova-chilli : " >> $FIC_PASSWD |
echo "$secretuam" >> $FIC_PASSWD |
secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8` # secret partagé entre coova-chilli et FreeRadius |
echo -n "secret partagé entre coova-chilli et FreeRadius : " >> $FIC_PASSWD |
echo "$secretradius" >> $FIC_PASSWD |
chmod 640 $FIC_PASSWD |
# On installe et on modifie les scripts d'Alcasar |
cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root:root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar* |
cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root:root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar* |
cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root:apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar* |
$SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh |
$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh |
$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh |
$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh |
# On génère le début du fichier récapitulatif |
cat <<EOF > $FIC_PARAM |
######################################################## |
## ## |
## Fichier récapitulatif des paramètres d'ALCASAR ## |
## ## |
######################################################## |
- Date d'installation : $DATE |
- Version istallée : $VERSION |
- Organisme : $ORGANISME |
EOF |
chmod o-rwx $FIC_PARAM |
} # End of init () |
################################################################## |
## Fonction network ## |
## - Définition du plan d'adressage du réseau de consultation ## |
## (merci à Alexandre Trias pour le calcul de masque et RegEx) ## |
## - Nommage DNS du système (portail + nom d'organisme) ## |
## - Configuration de l'interface eth1 (réseau de consultation) ## |
## - Modification du fichier /etc/hosts ## |
## - Configuration du serveur de temps (NTP) ## |
## - Renseignement des fichiers hosts.allow et hosts.deny ## |
################################################################## |
network () |
{ |
header_install |
echo "Par défaut, le plan d'adressage du réseau de consultation est : $CUSTOM_PRIVATE_NETWORK_MASK" |
response=0 |
PTN='^[oOnN]$' |
until [[ $(expr $response : $PTN) -gt 0 ]] |
do |
echo -n "Voulez-vous utiliser ce plan d'adressage (recommandé) (O/n)? : " |
read response |
done |
if [ "$response" = "n" ] || [ "$response" = "N" ] |
then |
CUSTOM_PRIVATE_NETWORK_MASK="0" |
PTN='^\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\)/[012]\?[[:digit:]]$' |
until [[ $(expr $CUSTOM_PRIVATE_NETWORK_MASK : $PTN) -gt 0 ]] |
do |
echo -n "Entrez un plan d'adressage au format CIDR (a.b.c.d/xx) : " |
read CUSTOM_PRIVATE_NETWORK_MASK |
done |
fi |
# Récupération de la config réseau côté "LAN de consultation" |
HOSTNAME=alcasar-$ORGANISME |
hostname $HOSTNAME |
echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM |
PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2` # @ réseau de consultation (ex.: 192.168.182.0) |
private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2` # prefixe du réseau (ex. 24) |
PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix # @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24) |
classe=$((private_prefix/8)); # classe de réseau (ex.: 2=classe B, 3=classe C) |
PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`. # @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.) |
PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2` # masque réseau de consultation (ex.: 255.255.255.0) |
PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2` # @ broadcast réseau de consultation (ex.: 192.168.182.255) |
TMP_MASK=`echo $PRIVATE_NETWORK_MASK|cut -d"/" -f2`; HALF_MASK=`expr $TMP_MASK + 1` # masque du 1/2 réseau de consultation (ex.: 25) |
PRIVATE_STAT_IP=$PRIVATE_NETWORK/$HALF_MASK # plage des adresses statiques (ex.: 192.168.182.0/25) |
PRIVATE_STAT_MASK=`/bin/ipcalc -m $PRIVATE_STAT_IP/$HALF_MASK | cut -d"=" -f2` # masque des adresses statiques (ex.: 255.255.255.128) |
classe_sup=`expr $classe + 1` |
classe_sup_sup=`expr $classe + 2` |
private_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup` |
private_broadcast_ending=`echo $PRIVATE_BROADCAST | cut -d"." -f$classe_sup` |
private_plage=`expr $private_broadcast_ending - $private_network_ending + 1` |
private_half_plage=`expr $private_plage / 2` |
private_dyn=`expr $private_half_plage + $private_network_ending` |
private_dyn_ip_network=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`"."$private_dyn"."`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup_sup-5` |
PRIVATE_DYN_IP=`echo $private_dyn_ip_network | cut -d"." -f1-4`/$HALF_MASK # plage des adresses dynamiques (ex.: 192.168.182.128/25) |
PRIVATE_DYN_MASK=`/bin/ipcalc -m $PRIVATE_DYN_IP/$HALF_MASK | cut -d"=" -f2` # masque des adresses dynamiques (ex.: 255.255.255.128) |
private_dyn_ip_network=`echo $PRIVATE_DYN_IP | cut -d"/" -f1` # plage des adresses dynamiques sans le masque (ex.: 192.168.182.0) |
private_dyn_ip_end=`echo $private_dyn_ip_network | cut -d"." -f4` # dernier octet de la plage des adresses dynamiques (ex.: 128) |
PRIVATE_DYN_FIRST_IP=`echo $private_dyn_ip_network | cut -d"." -f1-3`"."`expr $private_dyn_ip_end + 1` # 1ère adresse de la plage dynamique (ex.: 192.168.182.129) |
private_broadcast_end=`echo $PRIVATE_BROADCAST | cut -d"." -f4` |
PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_end - 1` # dernière adresse de la plage dynamique (ex.: 192.168.182.254) |
PRIVATE_IP=`echo $PRIVATE_NETWORK | cut -d"." -f1-3`"."`expr $private_network_end + 1` # @ip du portail (côté réseau de consultation) |
# Récupération de la config réseau côté "Internet" |
[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF |
EXT_IP=`grep IPADDR /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` # @ip du portail (côté Internet) |
[ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default |
DNS1=`grep DNS1 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` # @ip 1er DNS |
DNS2=`grep DNS2 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` # @ip 2ème DNS |
EXT_NETMASK=`grep NETMASK /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` |
EXT_GATEWAY=`grep GATEWAY /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` |
echo "- Adresse IP 'côté Internet' ($EXTIF) : $EXT_IP / $EXT_NETMASK" >> $FIC_PARAM |
echo "- Serveurs DNS renseignés : $DNS1 et $DNS2" >> $FIC_PARAM |
echo "- Routeur de sortie : $EXT_GATEWAY" >> $FIC_PARAM |
# Configuration réseau |
cat <<EOF > /etc/sysconfig/network |
NETWORKING=yes |
HOSTNAME="$HOSTNAME" |
FORWARD_IPV4=true |
EOF |
# On supprime les log_martians |
$SED "s?^ENABLE_LOG_STRANGE_PACKETS=.*?ENABLE_LOG_STRANGE_PACKETS=no?g" /etc/security/msec/security.conf |
# Modif /etc/hosts |
[ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default |
cat <<EOF > /etc/hosts |
127.0.0.1 $HOSTNAME localhost.localdomain localhost |
$PRIVATE_IP $HOSTNAME alcasar portail |
EOF |
echo "- Adresse IP 'côté réseau de consultation' ($INTIF) : $PRIVATE_IP / $PRIVATE_NETWORK_MASK" >> $FIC_PARAM |
echo " - plage d'adresses statiques : $PRIVATE_STAT_IP" >> $FIC_PARAM |
echo " - plage d'adresses dynamiques (via DHCP) : $PRIVATE_DYN_IP" >> $FIC_PARAM |
# Configuration de l'interface eth0 (Internet) |
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF |
DEVICE=$EXTIF |
BOOTPROTO=static |
IPADDR=$EXT_IP |
NETMASK=$EXT_NETMASK |
GATEWAY=$EXT_GATEWAY |
DNS1=127.0.0.1 |
ONBOOT=yes |
METRIC=10 |
NOZEROCONF=yes |
MII_NOT_SUPPORTED=yes |
IPV6INIT=no |
IPV6TO4INIT=no |
ACCOUNTING=no |
USERCTL=no |
EOF |
# Configuration de l'interface eth1 (réseau de consultation) |
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF |
DEVICE=$INTIF |
BOOTPROTO=static |
IPADDR=$PRIVATE_IP |
NETMASK=$PRIVATE_MASK |
ONBOOT=yes |
METRIC=10 |
NOZEROCONF=yes |
MII_NOT_SUPPORTED=yes |
IPV6INIT=no |
IPV6TO4INIT=no |
ACCOUNTING=no |
USERCTL=no |
EOF |
# Configuration du serveur de temps |
echo "synchronisation horaire ..." |
[ -e /etc/ntp.conf.default ] || cp /etc/ntp.conf /etc/ntp.conf.default |
cat <<EOF > /etc/ntp.conf |
server 0.fr.pool.ntp.org |
server 1.fr.pool.ntp.org |
server 2.fr.pool.ntp.org |
restrict default nomodify notrap noquery |
restrict $PRIVATE_NETWORK mask $PRIVATE_MASK |
restrict 127.0.0.1 |
driftfile /etc/ntp/drift |
logfile /var/log/ntp.log |
EOF |
chown -R ntp:ntp /etc/ntp |
ntpd -q -g & |
# Configuration du serveur dhcpd de secours (mode bypass) |
[ -e /etc/dhcpd.conf.default ] || cp /etc/dhcpd.conf /etc/dhcpd.conf.default 2> /dev/null |
cat <<EOF > /etc/dhcpd.conf |
ddns-update-style interim; |
subnet $PRIVATE_NETWORK netmask $PRIVATE_MASK { |
option routers $PRIVATE_IP; |
option subnet-mask $PRIVATE_MASK; |
option domain-name-servers $DNS1; |
range dynamic-bootp $PRIVATE_DYN_LAST_IP $PRIVATE_DYN_FIRST_IP; |
default-lease-time 21600; |
max-lease-time 43200; |
} |
EOF |
# écoute côté LAN seulement |
[ -e /etc/sysconfig/dhcpd.default ] || cp /etc/sysconfig/dhcpd /etc/sysconfig/dhcpd.default 2> /dev/null |
$SED "s?^#INTERFACES=.*?INTERFACES=\"$INTIF\"?g" /etc/sysconfig/dhcpd |
/sbin/chkconfig --level 345 dhcpd off |
# Renseignement des fichiers hosts.allow et hosts.deny |
[ -e /etc/hosts.allow.default ] || cp /etc/hosts.allow /etc/hosts.allow.default |
cat <<EOF > /etc/hosts.allow |
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP |
sshd: $PRIVATE_NETWORK_SHORT |
ntpd: $PRIVATE_NETWORK_SHORT |
EOF |
[ -e /etc/host.deny.default ] || cp /etc/hosts.deny /etc/hosts.deny.default |
cat <<EOF > /etc/hosts.deny |
ALL: ALL: spawn ( /bin/echo "service %d demandé par %c" | /bin/mail -s "Tentative d'accès au service %d par %c REFUSE !!!" security ) & |
EOF |
} # End of network () |
################################################################## |
## Fonction gestion ## |
## - installation du centre de gestion ## |
## - configuration du serveur web (Apache) ## |
## - définition du 1er comptes de gestion ## |
## - sécurisation des accès ## |
################################################################## |
gestion() |
{ |
# Suppression des CGI et des pages WEB installés par défaut |
rm -rf /var/www/cgi-bin/* |
[ -d $DIR_WEB ] && rm -rf $DIR_WEB |
mkdir $DIR_WEB |
# Copie et configuration des fichiers du centre de gestion |
cp -rf $DIR_GESTION/* $DIR_WEB/ |
echo "$VERSION du $DATE" > $DIR_WEB/VERSION |
$SED "s?99/99/9999?$DATE_SHORT?g" $DIR_WEB/menu.php |
$SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php |
$SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php |
$SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php |
chmod 640 $DIR_WEB/phpsysinfo/includes/xml/portail.php |
chown -R apache:apache $DIR_WEB/* |
for i in ISO base logs/firewall logs/httpd logs/squid ; |
do |
[ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i |
done |
chown -R root:apache $DIR_SAVE |
# Configuration php |
$SED "s?^upload_max_filesize.*?upload_max_filesize = 20M?g" /etc/php.ini |
$SED "s?^post_max_size.*?post_max_size = 20M?g" /etc/php.ini |
# Configuration Apache |
[ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default |
$SED "s?^#ServerName.*?ServerName $PRIVATE_IP?g" /etc/httpd/conf/httpd.conf |
$SED "s?^Listen.*?#Listen 127.0.0.1:80?g" /etc/httpd/conf/httpd.conf |
$SED "s?^ServerTokens.*?ServerTokens Prod?g" /etc/httpd/conf/httpd.conf |
$SED "s?^ServerSignature.*?ServerSignature Off?g" /etc/httpd/conf/httpd.conf |
$SED "s?^#ErrorDocument 404 /missing.html.*?ErrorDocument 404 /index.html?g" /etc/httpd/conf/httpd.conf |
FIC_MOD_SSL=`find /etc/httpd/modules.d/ -type f -name *mod_ssl.conf` |
$SED "s?^Listen.*?Listen $PRIVATE_IP:443?g" $FIC_MOD_SSL # On écoute en SSL que sur INTIF |
$SED "s?background-color.*?background-color: #EFEFEF; }?g" /var/www/error/include/top.html |
[ -e /var/www/error/include/bottom.html.default ] || mv /var/www/error/include/bottom.html /var/www/error/include/bottom.html.default |
cat <<EOF > /var/www/error/include/bottom.html |
</body> |
</html> |
EOF |
echo "- URL d'accès au centre de gestion : https://$PRIVATE_IP" >> $FIC_PARAM |
# Définition du premier compte lié au profil 'admin' |
if [ "$mode" = "install" ] |
then |
header_install |
echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :" |
echo " - le profil 'admin' capable de réaliser toutes les opérations" |
echo " - le profil 'backup' lié uniquement aux fonctions d'archivage" |
echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers" |
echo "" |
echo "Définissez le premier compte du profil 'admin' :" |
echo |
echo -n "Nom : " |
read admin_portail |
echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM |
# Création du fichier de clés de ce compte dans le profil "admin" |
[ -d $DIR_WEB/digest ] && rm -rf $DIR_WEB/digest |
mkdir -p $DIR_WEB/digest |
chmod 755 $DIR_WEB/digest |
until [ -s $DIR_WEB/digest/key_admin ] |
do |
/usr/sbin/htdigest -c $DIR_WEB/digest/key_admin $HOSTNAME $admin_portail |
done |
# Création des fichiers de clés des deux autres profils (backup + manager) contenant ce compte |
$DIR_DEST_SBIN/alcasar-profil.sh -list |
fi |
# Sécurisation du centre |
rm -f /etc/httpd/conf/webapps.d/* |
cat <<EOF > /etc/httpd/conf/webapps.d/alcasar.conf |
<Directory $DIR_WEB/digest> |
AllowOverride none |
Order deny,allow |
Deny from all |
</Directory> |
<Directory $DIR_WEB/admin> |
SSLRequireSSL |
AllowOverride None |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
require valid-user |
AuthType digest |
AuthName $HOSTNAME |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On |
AuthUserFile $DIR_WEB/digest/key_admin |
ErrorDocument 404 https://$PRIVATE_IP/ |
</Directory> |
<Directory $DIR_WEB/manager/htdocs> |
SSLRequireSSL |
AllowOverride None |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
require valid-user |
AuthType digest |
AuthName $HOSTNAME |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On |
AuthUserFile $DIR_WEB/digest/key_manager |
ErrorDocument 404 https://$PRIVATE_IP/ |
</Directory> |
<Directory $DIR_WEB/manager/html> |
SSLRequireSSL |
AllowOverride None |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
require valid-user |
AuthType digest |
AuthName $HOSTNAME |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On |
AuthUserFile $DIR_WEB/digest/key_manager |
ErrorDocument 404 https://$PRIVATE_IP/ |
</Directory> |
<Directory $DIR_WEB/backup> |
SSLRequireSSL |
AllowOverride None |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
require valid-user |
AuthType digest |
AuthName $HOSTNAME |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On |
AuthUserFile $DIR_WEB/digest/key_backup |
ErrorDocument 404 https://$PRIVATE_IP/ |
</Directory> |
Alias /save/ "$DIR_SAVE/" |
<Directory $DIR_SAVE> |
SSLRequireSSL |
Options Indexes |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
require valid-user |
AuthType digest |
AuthName $HOSTNAME |
AuthUserFile $DIR_WEB/digest/key_backup |
ErrorDocument 404 https://$PRIVATE_IP/ |
ReadmeName /readmeSave.html |
</Directory> |
EOF |
} # End of gestion () |
########################################################################################## |
## Fonction AC() ## |
## - Création d'une Autorité de Certification et du certificat serveur pour apache ## |
########################################################################################## |
AC () |
{ |
$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh |
$DIR_DEST_BIN/alcasar-CA.sh $mode |
MOD_SSL=`find /etc/httpd/conf -type f -name *default_ssl*` |
$SED "s?localhost.crt?alcasar.crt?g" $MOD_SSL |
$SED "s?localhost.key?alcasar.key?g" $MOD_SSL |
chown -R root:apache /etc/pki |
chmod -R 750 /etc/pki |
} # End AC () |
########################################################################################## |
## Fonction init_db() ## |
## - Initialisation de la base Mysql ## |
## - Affectation du mot de passe de l'administrateur (root) ## |
## - Suppression des bases et des utilisateurs superflus ## |
## - Création de la base 'radius' ## |
## - Installation du schéma de cette base ## |
## - Import des tables de comptabilité (mtotacct, totacct) et info_usagers (userinfo) ## |
## ces table proviennent de 'dialupadmin' (paquetage freeradius-web) ## |
########################################################################################## |
init_db () |
{ |
mkdir -p /var/lib/mysql/.tmp |
chown mysql:mysql /var/lib/mysql/.tmp |
[ -e /etc/my.cnf.default ] || cp /etc/my.cnf /etc/my.cnf.default |
$SED "s?^#bind-address.*?bind-address=127.0.0.1?g" /etc/my.cnf |
/etc/init.d/mysqld start |
sleep 4 |
mysqladmin -u root password $mysqlpwd |
MYSQL="/usr/bin/mysql -uroot -p$mysqlpwd --exec" |
# On supprime les tables d'exemple |
$MYSQL="DROP DATABASE IF EXISTS test;DROP DATABASE IF EXISTS tmp;CONNECT mysql;DELETE from user where user='';FLUSH PRIVILEGES;" |
# On crée la base 'radius' |
$MYSQL="CREATE DATABASE IF NOT EXISTS $DB_RADIUS;GRANT ALL ON $DB_RADIUS.* TO $DB_USER@localhost IDENTIFIED BY '$radiuspwd';FLUSH PRIVILEGES" |
FICSQL_LIBFREERADIUS=`find /etc/raddb/sql/mysql -type f -name schema.sql` |
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $FICSQL_LIBFREERADIUS |
$MYSQL="connect $DB_RADIUS;ALTER table radpostauth DROP column pass;" |
# Ajout des tables de comptabilité journalière et mensuelle (accounting) |
DIRSQL_FREERADIUS=`find /usr/share/doc/freeradius-web* -type d -name mysql` |
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIRSQL_FREERADIUS/mtotacct.sql |
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIRSQL_FREERADIUS/totacct.sql |
# correction d'un bug sur la table 'userinfo' avant import |
$SED "s?^ id int(10).*? id int(10) NOT NULL auto_increment,?g" $DIRSQL_FREERADIUS/userinfo.sql |
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIRSQL_FREERADIUS/userinfo.sql |
# correction d'un bug sur la table 'badusers' avant import (elle reste inutilisée par Alcasar pour l'instant) |
#$SED "s?^ id int(10).*? id int(10) NOT NULL auto_increment,?g" $DIRSQL_FREERADIUS/badusers.sql |
#mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIRSQL_FREERADIUS/badusers.sql |
} # End init_db () |
########################################################################## |
## Fonction param_radius ## |
## - Paramètrage des fichiers de configuration FreeRadius ## |
## - Affectation du secret partagé entre coova-chilli et freeradius ## |
## - Modification de fichier de conf pour l'accès à Mysql ## |
########################################################################## |
param_radius () |
{ |
cp -f $DIR_CONF/radiusd-db-vierge.sql /etc/raddb/ |
chown -R radius:radius /etc/raddb |
[ -e /etc/raddb/radiusd.conf.default ] || cp /etc/raddb/radiusd.conf /etc/raddb/radiusd.conf.default |
# paramètrage radius.conf |
$SED "s?^[\t ]*#[\t ]*user =.*?user = radius?g" /etc/raddb/radiusd.conf |
$SED "s?^[\t ]*#[\t ]*group =.*?group = radius?g" /etc/raddb/radiusd.conf |
$SED "s?^[\t ]*status_server =.*?status_server = no?g" /etc/raddb/radiusd.conf |
# suppression de la fonction proxy |
$SED "s?^[\t ]*proxy_requests.*?proxy_requests = no?g" /etc/raddb/radiusd.conf |
$SED "s?^[\t ]*\$INCLUDE proxy.conf.*?#\$INCLUDE proxy.conf?g" /etc/raddb/radiusd.conf |
# écoute sur loopback uniquement (à modifier plus tard pour l'EAP) |
$SED "s?^[\t ]*ipaddr =.*?ipaddr = 127.0.0.1?g" /etc/raddb/radiusd.conf |
# prise en compte du module SQL et des compteurs SQL |
$SED "s?^[\t ]*#[\t ]*\$INCLUDE sql.conf.*?\$INCLUDE sql.conf?g" /etc/raddb/radiusd.conf |
$SED "s?^[\t ]*#[\t ]*\$INCLUDE sql/mysql/counter.conf?\$INCLUDE sql/mysql/counter.conf?g" /etc/raddb/radiusd.conf |
$SED "s?^[\t ]*\$INCLUDE policy.conf?#\$INCLUDE policy.conf?g" /etc/raddb/radiusd.conf |
# purge du répertoire des serveurs virtuels et copie du fichier de configuration d'Alcasar |
rm -f /etc/raddb/sites-enabled/* |
cp $DIR_CONF/alcasar-radius /etc/raddb/sites-available/alcasar |
chown radius:apache /etc/raddb/sites-available/alcasar /etc/raddb/modules/ldap # droits rw pour apache (module ldap) |
chmod 660 /etc/raddb/sites-available/alcasar /etc/raddb/modules/ldap |
chgrp apache /etc/raddb /etc/raddb/sites-available /etc/raddb/modules |
ln -s /etc/raddb/sites-available/alcasar /etc/raddb/sites-enabled/alcasar |
# Inutile dans notre fonctionnement mais les liens sont recrés par un update de radius ... donc là forcé en tant que fichier |
touch /etc/raddb/sites-enabled/{inner-tunnel,control-socket,default} |
# configuration du fichier client.conf (127.0.0.1 suffit mais on laisse le deuxième client pour la future gestion de l'EAP) |
[ -e /etc/raddb/clients.conf.default ] || cp -f /etc/raddb/clients.conf /etc/raddb/clients.conf.default |
cat << EOF > /etc/raddb/clients.conf |
client 127.0.0.1 { |
secret = $secretradius |
shortname = localhost |
} |
client $PRIVATE_NETWORK_MASK { |
secret = $secretradius |
shortname = localhost |
} |
EOF |
# modif sql.conf |
[ -e /etc/raddb/sql.conf.default ] || cp /etc/raddb/sql.conf /etc/raddb/sql.conf.default |
$SED "s?^[\t ]*login =.*?login = \"$DB_USER\"?g" /etc/raddb/sql.conf |
$SED "s?^[\t ]*password =.*?password = \"$radiuspwd\"?g" /etc/raddb/sql.conf |
$SED "s?^[\t ]*radius_db =.*?radius_db = \"$DB_RADIUS\"?g" /etc/raddb/sql.conf |
$SED "s?^[\t ]*sqltrace =.*?sqltrace = no?g" /etc/raddb/sql.conf |
# modif dialup.conf |
[ -e /etc/raddb/sql/mysql/dialup.conf.default ] || cp /etc/raddb/sql/mysql/dialup.conf /etc/raddb/sql/mysql/dialup.conf.default |
cp -f $DIR_CONF/dialup.conf /etc/raddb/sql/mysql/dialup.conf |
} # End param_radius () |
########################################################################## |
## Fonction param_web_radius ## |
## - Import, modification et paramètrage de l'interface "dialupadmin" ## |
## - Création du lien vers la page de changement de mot de passe ## |
########################################################################## |
param_web_radius () |
{ |
# copie de l'interface d'origine dans la structure Alcasar |
# mdv 2009.0 et 2009.1 |
if [ -d /var/www/freeradius-web ] |
then |
cp -rf /var/www/freeradius-web/* $DIR_WEB/manager/ |
chmod a-x /var/www/freeradius-web |
else # mdv 2010.0 |
[ -d /usr/share/freeradius-web ] && cp -rf /usr/share/freeradius-web/* $DIR_WEB/manager/ |
fi |
# copie des fichiers modifiés et suppression des fichiers inutiles |
cp -rf $DIR_GESTION/manager/* $DIR_WEB/manager/ |
rm -f $DIR_WEB/manager/index.html $DIR_WEB/manager/readme |
rm -f $DIR_WEB/manager/htdocs/about.html $DIR_WEB/manager/htdocs/index.html $DIR_WEB/manager/htdocs/content.html |
chown -R apache:apache $DIR_WEB/manager/ |
# Modification du fichier de configuration |
[ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default |
$SED "s?^general_domain:.*?general_domain: $ORGANISME.$DOMAIN?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf |
$SED "s?^general_finger_type.*?# general_finger_type: snmp?g" /etc/freeradius-web/admin.conf |
$SED "s?^general_stats_use_totacct.*?general_stats_use_totacct: yes?g" /etc/freeradius-web/admin.conf |
cat <<EOF > /etc/freeradius-web/naslist.conf |
nas1_name: alcasar.%{general_domain} |
nas1_model: Portail captif |
nas1_ip: $PRIVATE_IP |
nas1_port_num: 0 |
nas1_community: public |
EOF |
# Modification des attributs visibles lors de la création d'un usager ou d'un groupe |
[ -e /etc/freeradius-web/user_edit.attrs.default ] || mv /etc/freeradius-web/user_edit.attrs /etc/freeradius-web/user_edit.attrs.default |
cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs |
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port) |
[ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default |
$SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs |
$SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs |
chown -R apache:apache /etc/freeradius-web |
# Ajout de l'alias vers la page de "changement de mot de passe usager" |
cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf |
Alias /pass/ "$DIR_WEB/manager/pass/" |
<Directory $DIR_WEB/manager/pass> |
SSLRequireSSL |
AllowOverride None |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
ErrorDocument 404 https://$PRIVATE_IP |
</Directory> |
EOF |
echo "- URL pour le changement du mot de passe usager : https://$PRIVATE_IP/pass/" >> $FIC_PARAM |
} # End of param_web_radius () |
########################################################################## |
## Fonction param_chilli ## |
## - Paramètrage du fichier de configuration de coova-chilli ## |
## - Paramètrage de la page d'authentification (intercept.php) ## |
########################################################################## |
param_chilli () |
{ |
# modification du générateur du fichier de conf |
[ -e /etc/chilli/functions.default ] || cp /etc/chilli/functions /etc/chilli/functions.default |
# suppression du domaine "coova.org" dans la primitive uamallowed |
$SED "s?www.coova.org,??g" /etc/chilli/functions |
# suppression de la primitive "WISPR" (inutilisée par Alcasar) |
$SED "s?^HS_WISPRLOGIN=.*??g" /etc/chilli/functions |
# suppression de la primitive "uamanydns" (les clients ne peuvent utiliser que les serveurs DNS d'Alcasar) |
$SED "s?uamanydns??g" /etc/chilli/functions |
# modification du fichier d'initialisation (suppression du cron et correction de la procédure d'arret) |
[ -e /etc/init.d/chilli.default ] || cp /etc/init.d/chilli /etc/init.d/chilli.default |
cp -f $DIR_CONF/chilli-init /etc/init.d/chilli |
# création du fichier de conf |
cp /etc/chilli/defaults /etc/chilli/config |
$SED "s?^# HS_WANIF=.*?HF_WANIF=$EXTIF?g" /etc/chilli/config |
$SED "s?^HS_LANIF=.*?HS_LANIF=$INTIF?g" /etc/chilli/config |
$SED "s?^HS_NETWORK=.*?HS_NETWORK=$PRIVATE_NETWORK?g" /etc/chilli/config |
$SED "s?^HS_NETMASK=.*?HS_NETMASK=$PRIVATE_MASK?g" /etc/chilli/config |
$SED "s?^HS_UAMLISTEN=.*?HS_UAMLISTEN=$PRIVATE_IP?g" /etc/chilli/config |
$SED "s?^HS_UAMPORT=.*?HS_UAMPORT=$UAMPORT?g" /etc/chilli/config |
$SED "s?^# HS_DYNIP=.*?HS_DYNIP=$PRIVATE_DYN_IP?g" /etc/chilli/config |
$SED "s?^# HS_DYNIP_MASK=.*?HS_DYNIP_MASK=$PRIVATE_DYN_MASK?g" /etc/chilli/config |
$SED "s?^# HS_STATIP=.*?HS_STATIP=$PRIVATE_STAT_IP?g" /etc/chilli/config |
$SED "s?^# HS_STATIP_MASK.*?HS_STATIP_MASK=$PRIVATE_STAT_MASK?g" /etc/chilli/config |
$SED "s?^# HS_DNS_DOMAIN=.*?HS_DNS_DOMAIN=$DOMAIN?g" /etc/chilli/config |
$SED "s?^HS_DNS1=.*?HS_DNS1=$PRIVATE_IP?g" /etc/chilli/config |
$SED "s?^HS_DNS2=.*?HS_DNS2=$PRIVATE_IP?g" /etc/chilli/config |
$SED "s?^HS_UAMSECRET=.*?HS_UAMSECRET=$secretuam?g" /etc/chilli/config |
$SED "s?^HS_RADIUS=.*?HS_RADIUS=127.0.0.1?g" /etc/chilli/config |
$SED "s?^HS_RADIUS2=.*?HS_RADIUS2=127.0.0.1?g" /etc/chilli/config |
$SED "s?^HS_RADSECRET=.*?HS_RADSECRET=$secretradius?g" /etc/chilli/config |
$SED "s?^HS_UAMALLOW=.*?# HS_UAMALLOW?g" /etc/chilli/config |
$SED "s?^HS_UAMSERVER=.*?HS_UAMSERVER=$PRIVATE_IP?g" /etc/chilli/config |
$SED "s?^HS_UAMFORMAT=.*?HS_UAMFORMAT=https://\$HS_UAMSERVER/intercept.php?g" /etc/chilli/config |
$SED "s?^HS_UAMHOMEPAGE=.*?HS_UAMHOMEPAGE=?g" /etc/chilli/config |
$SED "s?^HS_UAMSERVICE=.*?# HS_UAMSERVICE?g" /etc/chilli/config |
$SED "s?^# HS_ANYIP=.*?HS_ANYIP=on?g" /etc/chilli/config |
$SED "s?^# HS_DNSPARANOIA=.*?HS_DNSPARANOIA=on?g" /etc/chilli/config |
$SED "s?^HS_LOC_NAME=.*?HS_LOC_NAME=\"$HOSTNAME\"?g" /etc/chilli/config |
$SED "s?^HS_WWWDIR.*?# HS_WWWDIR?g" /etc/chilli/config |
$SED "s?^HS_WWWBIN.*?# HS_WWWBIN?g" /etc/chilli/config |
$SED "s?^HS_PROVIDER_LINK.*?HS_PROVIDER_LINK=https://\$HS_UAMSERVER/?g" /etc/chilli/config |
echo "HS_COAPORT=3799" >> /etc/chilli/config |
# création des fichiers de sites, d'urls et d'adresses MAC de confiance |
echo -e "HS_UAMALLOW=\"\"" > /etc/chilli/alcasar-uamallowed |
echo -e "HS_UAMDOMAINS=\"\"" > /etc/chilli/alcasar-uamdomain |
$SED "s?^# HS_MACAUTHMODE=.*?HS_MACAUTHMODE=local?g" /etc/chilli/config |
echo -e "HS_MACALLOW=\"\"" >> /etc/chilli/alcasar-macallowed |
chown root:apache /etc/chilli/alcasar-* |
chmod 660 /etc/chilli/alcasar-* |
echo ". /etc/chilli/alcasar-uamallowed" >> /etc/chilli/config |
echo ". /etc/chilli/alcasar-uamdomain" >> /etc/chilli/config |
echo ". /etc/chilli/alcasar-macallowed" >> /etc/chilli/config |
echo "- URL de deconnexion du portail : http://$PRIVATE_IP:$UAMPORT/logoff" >> $FIC_PARAM |
# Définition du secret partagé entre coova-chilli et la page d'authentification (intercept.php) |
$SED "s?^\$uamsecret =.*?\$uamsecret = \"$secretuam\";?g" $DIR_WEB/intercept.php |
$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php |
$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php |
# Suppression des modifications "iptables" effectuées lors du lancement du daemon coova |
$SED "s?^ iptables \$opt \$\*?# iptables \$opt \$\*?g" /etc/chilli/up.sh |
} # End of param_chilli () |
########################################################## |
## Fonction param_squid ## |
## - Paramètrage du proxy 'squid' en mode 'cache' ## |
## - Initialisation de la base de données ## |
########################################################## |
param_squid () |
{ |
# paramètrage de Squid (connecté en série derrière Dansguardian) |
[ -e /etc/squid/squid.conf.default ] || cp /etc/squid/squid.conf /etc/squid/squid.conf.default |
# suppression des références 'localnet', 'icp', 'htcp' et 'always_direct' |
$SED "/^acl localnet/d" /etc/squid/squid.conf |
$SED "/^icp_access allow localnet/d" /etc/squid/squid.conf |
$SED "/^icp_port 3130/d" /etc/squid/squid.conf |
$SED "/^http_access allow localnet/d" /etc/squid/squid.conf |
$SED "/^htcp_access allow localnet/d" /etc/squid/squid.conf |
$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf |
# mode 'proxy transparent local' |
$SED "s?^http_port.*?http_port 127.0.0.1:$SQUID_PORT transparent?g" /etc/squid/squid.conf |
# compatibilité des logs avec awstats |
$SED "s?^# emulate_httpd_log.*?emulate_httpd_log on?g" /etc/squid/squid.conf |
$SED "s?^access_log.*?access_log /var/log/squid/access.log?g" /etc/squid/squid.conf |
# Initialisation du cache de Squid |
/usr/sbin/squid -z |
} # End of param_squid () |
################################################################## |
## Fonction param_dansguardian ## |
## - Paramètrage du gestionnaire de contenu Dansguardian ## |
## - Copie de la blacklist de toulouse ## |
################################################################## |
param_dansguardian () |
{ |
# modification du fichier d'initialisation (correction de la procédure d'arret) |
[ -e /etc/init.d/dansguardian.default ] || cp /etc/init.d/dansguardian /etc/init.d/dansguardian.default |
cp -f $DIR_CONF/dansguardian-init /etc/init.d/dansguardian |
mkdir /var/dansguardian |
chown dansguardian /var/dansguardian |
[ -e /etc/dansguardian/dansguardian.conf.default ] || cp /etc/dansguardian/dansguardian.conf /etc/dansguardian/dansguardian.conf.default |
# par défaut, le filtrage WEB est désactivé |
$SED "s/^reportinglevel =.*/reportinglevel = -1/g" /etc/dansguardian/dansguardian.conf |
# la page d'interception est en français |
$SED "s?^language =.*?language = french?g" /etc/dansguardian/dansguardian.conf |
# on limite l'écoute de Dansguardian côté LAN |
$SED "s?^filterip =.*?filterip = $PRIVATE_IP?g" /etc/dansguardian/dansguardian.conf |
# on remplace la page d'interception (template) |
cp -f $DIR_CONF/template.html /usr/share/dansguardian/languages/ukenglish/ |
cp -f $DIR_CONF/template-fr.html /usr/share/dansguardian/languages/french/template.html |
# on ne loggue que les deny (pour le reste, on a squid) |
$SED "s?^loglevel =.*?loglevel = 1?g" /etc/dansguardian/dansguardian.conf |
# on désactive par défaut le controle de contenu des pages html |
$SED "s?^weightedphrasemode =.*?weightedphrasemode = 0?g" /etc/dansguardian/dansguardian.conf |
cp /etc/dansguardian/lists/bannedphraselist /etc/dansguardian/lists/bannedphraselist.default |
$SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedphraselist # (on commente ce qui ne l'est pas) |
# on désactive par défaut le contrôle d'URL par expressions régulières |
cp /etc/dansguardian/lists/bannedregexpurllist /etc/dansguardian/lists/bannedregexpurllist.default |
$SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedregexpurllist # (on commente ce qui ne l'est pas) |
# on désactive par défaut le contrôle de téléchargement de fichiers |
[ -e /etc/dansguardian/dansguardianf1.conf.default ] || cp /etc/dansguardian/dansguardianf1.conf /etc/dansguardian/dansguardianf1.conf.default |
$SED "s?^blockdownloads =.*?blockdownloads = off?g" /etc/dansguardian/dansguardianf1.conf |
[ -e /etc/dansguardian/lists/bannedextensionlist.default ] || mv /etc/dansguardian/lists/bannedextensionlist /etc/dansguardian/lists/bannedextensionlist.default |
[ -e /etc/dansguardian/lists/bannedmimetypelist.default ] || mv /etc/dansguardian/lists/bannedmimetypelist /etc/dansguardian/lists/bannedmimetypelist.default |
touch /etc/dansguardian/lists/bannedextensionlist |
touch /etc/dansguardian/lists/bannedmimetypelist |
# on vide la liste des @IP du Lan ne subissant pas le filtrage WEB |
[ -e /etc/dansguardian/lists/exceptioniplist.default ] || mv /etc/dansguardian/lists/exceptioniplist /etc/dansguardian/lists/exceptioniplist.default |
touch /etc/dansguardian/lists/exceptioniplist |
# on copie les fichiers de la BL de toulouse |
[ -d /etc/dansguardian/lists/blacklists ] && mv /etc/dansguardian/lists/blacklists /etc/dansguardian/lists/blacklists.default |
tar zxvf $DIR_CONF/blacklists.tar.gz --directory=/etc/dansguardian/lists/ 2>&1 >/dev/null |
cp -f $DIR_CONF/VERSION-BL $DIR_WEB/ |
chown apache:apache $DIR_WEB/VERSION-BL |
# on crée la BL secondaire |
mkdir /etc/dansguardian/lists/blacklists/ossi |
touch /etc/dansguardian/lists/blacklists/ossi/domains |
touch /etc/dansguardian/lists/blacklists/ossi/urls |
# On crée une WhiteList vide |
[ -e /etc/dansguardian/lists/exceptionsitelist.default ] || mv /etc/dansguardian/lists/exceptionsitelist /etc/dansguardian/lists/exceptionsitelist.default |
[ -e /etc/dansguardian/lists/exceptionurllist.default ] || mv /etc/dansguardian/lists/exceptionurllist /etc/dansguardian/lists/exceptionurllist.default |
touch /etc/dansguardian/lists/exceptionsitelist |
touch /etc/dansguardian/lists/exceptionurllist |
# on configure le filtrage de site |
[ -e /etc/dansguardian/lists/bannedsitelist.default ] || cp /etc/dansguardian/lists/bannedsitelist /etc/dansguardian/lists/bannedsitelist.default |
$SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedsitelist # (on commente ce qui ne l'est pas) |
# on bloque les sites ne possédant pas de nom de domaine (ex: http://12.13.14.15) |
$SED "s?^#\*ip?\*ip?g" /etc/dansguardian/lists/bannedsitelist |
# on bloque le ssl sur port 80 |
$SED "s?^#\*\*s?\*\*s?g" /etc/dansguardian/lists/bannedsitelist |
# on configure la BL de toulouse |
cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist |
[ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default |
$SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas) |
cat $DIR_CONF/bannedurllist >> /etc/dansguardian/lists/bannedurllist |
chown -R dansguardian:apache /etc/dansguardian/ |
chmod -R g+rw /etc/dansguardian |
} # End of param_dansguardian () |
################################################################################## |
## Fonction firewall ## |
## - adaptation des scripts du parefeu ## |
## - mise en place des règles et sauvegarde pour un lancement automatique ## |
## - configuration Ulogd ## |
################################################################################## |
firewall () |
{ |
$SED "s?^EXTIF=.*?EXTIF=\"$EXTIF\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh |
$SED "s?^INTIF=.*?INTIF=\"$INTIF\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh |
$SED "s?^PRIVATE_NETWORK_MASK=.*?PRIVATE_NETWORK_MASK=\"$PRIVATE_NETWORK_MASK\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh |
$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh |
chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau) |
[ -d /var/log/firewall ] || mkdir -p /var/log/firewall |
[ -e /var/log/firewall/firewall.log ] || touch /var/log/firewall/firewall.log |
chown -R root:apache /var/log/firewall |
chmod 750 /var/log/firewall |
chmod 640 /var/log/firewall/firewall.log |
$SED "s?^file=\"/var/log/ulogd.syslogemu\"?file=\"/var/log/firewall/firewall.log\"?g" /etc/ulogd.conf |
sh $DIR_DEST_BIN/alcasar-iptables.sh |
} # End of firewall () |
################################################################################## |
## Fonction param_awstats ## |
## - configuration de l'interface des logs de consultation WEB (AWSTAT) ## |
################################################################################## |
param_awstats() |
{ |
ln -s /var/www/awstats $DIR_WEB/awstats |
cp /etc/awstats/awstats.conf /etc/awstats/awstats.conf.default |
$SED "s?^LogFile=.*?LogFile=\"/var/log/squid/access.log\"?g" /etc/awstats/awstats.conf |
$SED "s?^LogFormat=.*?LogFormat=4?g" /etc/awstats/awstats.conf |
$SED "s?^SiteDomain=.*?SiteDomain=\"$HOSTNAME\"?g" /etc/awstats/awstats.conf |
$SED "s?^HostAliases=.*?HostAliases=\"$PRIVATE_IP\"?g" /etc/awstats/awstats.conf |
$SED "s?^DNSLookup=.*?DNSLookup=0?g" /etc/awstats/awstats.conf |
$SED "s?^DirData=.*?DirData=\"/var/lib/awstats\"?g" /etc/awstats/awstats.conf # corrige le fichier de config awstats natif ... |
$SED "s?^StyleSheet=.*?StyleSheet=\"/css/style.css\"?g" /etc/awstats/awstats.conf |
$SED "s?^BuildReportFormat=.*?BuildReportFormat=xhtml?g" /etc/awstats/awstats.conf |
cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf |
<Directory $DIR_WEB/awstats> |
SSLRequireSSL |
Options ExecCGI |
AddHandler cgi-script .pl |
DirectoryIndex awstats.pl |
Order deny,allow |
Deny from all |
Allow from 127.0.0.1 |
Allow from $PRIVATE_NETWORK_MASK |
require valid-user |
AuthType digest |
AuthName $HOSTNAME |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On |
AuthUserFile $DIR_WEB/digest/key_admin |
ErrorDocument 404 https://$PRIVATE_IP/ |
</Directory> |
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins |
EOF |
} # End of param_awstats () |
########################################################## |
## Fonction bind ## |
## - Mise en place des différents fichiers de bind ## |
########################################################## |
param_bind () |
{ |
ln -sf /var/lib/named/etc/trusted_networks_acl.conf /etc/ |
ln -sf /var/lib/named/etc/named.conf /etc/ |
ln -sf /var/lib/named/var/named /var/ |
ln -sf /var/lib/named/var/log/ /var/log/named |
[ -e /var/lib/named/etc/trusted_networks_acl.conf.default ] || cp /var/lib/named/etc/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf.default |
[ -e /var/lib/named/etc/named.conf.default ] || cp /var/lib/named/etc/named.conf /var/lib/named/etc/named.conf.default |
[ -e /var/lib/named/var/named/master/localdomain.zone.default ] || cp /var/lib/named/var/named/master/localdomain.zone /var/lib/named/var/named/master/localdomain.zone.default |
$SED "s?127.0.0.1;.*?127.0.0.1; $CUSTOM_PRIVATE_NETWORK_MASK;?g" /var/lib/named/etc/trusted_networks_acl.conf |
$SED "s?listen-on.*?listen-on port 53 \{ 127.0.0.1; $PRIVATE_IP; \};?g" /var/lib/named/etc/named.conf |
$SED "s?^\/\/[ ]*forwarders.*? forward only; forwarders { $DNS1; $DNS2; };?g" /var/lib/named/etc/named.conf |
# $SED "s?^\/\/ include \"\/etc\/bogon_acl.conf\";.*?include \"\/etc\/bogon_acl.conf\";?g" /var/lib/named/etc/named.conf |
# On crée l'entrée pour le reverse |
for i in $(seq $classe -1 1) |
do |
echo -n `echo $PRIVATE_NETWORK|cut -d"." -f$i`. >> /tmp/rev.txt |
done |
echo "in-addr.arpa" >> /tmp/rev.txt |
reverse_addr=`cat /tmp/rev.txt` |
rm -f /tmp/rev.txt |
cat << EOF >> /var/lib/named/etc/named.conf |
zone "$reverse_addr" IN { |
type master; |
file "reverse/localdomain.rev"; |
allow-update { none; }; |
}; |
EOF |
cp -f $DIR_CONF/localdomain.zone /var/lib/named/var/named/master/localdomain.zone |
echo "$HOSTNAME IN A $PRIVATE_IP" >> /var/lib/named/var/named/master/localdomain.zone |
echo "alcasar IN CNAME $HOSTNAME" >> /var/lib/named/var/named/master/localdomain.zone |
cp -f $DIR_CONF/localdomain.rev /var/lib/named/var/named/reverse/localdomain.rev |
echo "1 IN PTR alcasar." >> /var/lib/named/var/named/reverse/localdomain.rev |
# fichier de blacklistage de named dans ... a venir |
} |
########################################################## |
## Fonction cron ## |
## - Mise en place des différents fichiers de cron ## |
########################################################## |
cron () |
{ |
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00 |
[ -e /etc/crontab.default ] || cp /etc/crontab /etc/crontab.default |
cat <<EOF > /etc/crontab |
SHELL=/bin/bash |
PATH=/sbin:/bin:/usr/sbin:/usr/bin |
MAILTO=root |
HOME=/ |
# run-parts |
01 * * * * root nice -n 19 run-parts --report /etc/cron.hourly |
02 0 * * * root nice -n 19 run-parts --report /etc/cron.daily |
22 0 * * 0 root nice -n 19 run-parts --report /etc/cron.weekly |
42 0 1 * * root nice -n 19 run-parts --report /etc/cron.monthly |
EOF |
[ -e /etc/anacrontab.default ] || cp /etc/anacrontab /etc/anacrontab.default |
cat <<EOF >> /etc/anacrontab |
7 10 cron.logExport nice /etc/cron.d/export_log |
7 15 cron.logClean nice /etc/cron.d/clean_log |
EOF |
# suppression des fichiers de logs de plus d'un an (tous les lundi à 4h30) |
cat <<EOF > /etc/cron.d/clean_log |
30 4 * * 1 root $DIR_DEST_BIN/alcasar-log-clean.sh |
EOF |
# export de la base des usagers (tous les lundi à 4h45) |
cat <<EOF > /etc/cron.d/mysql |
45 4 * * 1 root $DIR_DEST_SBIN/alcasar-mysql.sh -dump |
EOF |
# export des log squid, firewall et apache (tous les lundi à 5h00) |
cat <<EOF > /etc/cron.d/export_log |
#!/bin/sh |
00 5 * * 1 root $DIR_DEST_BIN/alcasar-log-export.sh |
EOF |
# mise à jour des stats de consultation WEB toutes les 30' ## existe en double pour le daily sans l'@IP |
# sans mèl ( > /dev/null 2>&1) |
cat << EOF > /etc/cron.d/awstats |
*/30 * * * * root /var/www/awstats/awstats.pl -config=localhost -update >/dev/null 2>&1 |
EOF |
# mise à jour des stats de connexion (accounting). Scripts provenant de "dialupadmin" (rpm freeradius-web) (cf. wiki.freeradius.org/Dialup_admin). |
# on écrase le crontab d'origine installé par le RPM "freeradius-web" (bug remonté à qa.mandriva.com : 46739). |
# 'tot_stats' (tout les jours à 01h01) : aggrégat des connexions journalières par usager (renseigne la table 'totacct') |
# 'monthly_tot_stat' (tous les jours à 01h05) : aggrégat des connexions mensuelles par usager (renseigne la table 'mtotacct') |
# 'truncate_raddact' (tous les 1er du mois à 01h10) : supprime les entrées journalisées plus vieilles que '$back_days' jours (défini ci-après) |
# 'clean_radacct' (tous les 1er du mois à 01h15) : ferme les session ouvertes de plus de '$back_days' jours (défini ci-après) |
$SED "s?^\$back_days.*?\$back_days = 365;?g" /usr/bin/truncate_radacct |
$SED "s?^\$back_days.*?\$back_days = 30;?g" /usr/bin/clean_radacct |
rm -f /etc/cron.daily/freeradius-web |
rm -f /etc/cron.monthly/freeradius-web |
cat << EOF > /etc/cron.d/freeradius-web |
1 1 * * * root /usr/bin/tot_stats > /dev/null 2>&1 |
5 1 * * * root /usr/bin/monthly_tot_stats > /dev/null 2>&1 |
10 1 1 * * root /usr/bin/truncate_radacct > /dev/null 2>&1 |
15 1 1 * * root /usr/bin/clean_radacct > /dev/null 2>&1 |
EOF |
# réécriture du fichier cron de coova-chilli pour être cohérent avec l'architecture Alcasar (/etc/crond au lieu de /var/spool/cron/root). |
# sans mèl ( > /dev/null 2>&1) |
rm -f /var/spool/cron/root |
cat << EOF > /etc/cron.d/coova |
*/60 * * * * root /etc/init.d/chilli radconfig > /dev/null 2>&1 |
*/10 * * * * root /etc/init.d/chilli checkrunning > /dev/null 2>&1 |
EOF |
# activation du "chien de garde" (watchdog) toutes les 3' afin de déconnecter les usagers authentifiés dont la station est usurpée ou ne répond plus |
cat << EOF > /etc/cron.d/watchdog |
*/3 * * * * root $DIR_DEST_BIN/alcasar-watchdog.sh > /dev/null 2>&1 |
EOF |
} # End cron |
################################################################## |
## Fonction post_install ## |
## - Modification des bannières (locales et ssh) et des prompts ## |
## - Installation de la structure de chiffrement pour root ## |
## - Mise en place du sudoers et de la sécurité sur les fichiers## |
## - Mise en place du la rotation des logs ## |
## - Configuration dans le cas d'une mise à jour ## |
################################################################## |
post_install() |
{ |
# adaptation du script "chien de garde" (watchdog) |
$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh |
# création de la bannière locale |
[ -e /etc/mandriva-release.default ] || cp /etc/mandriva-release /etc/mandriva-release.default |
cat <<EOF > /etc/mandriva-release |
Bienvenue sur $HOSTNAME |
EOF |
# création de la bannière SSH |
cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh |
chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root:root /etc/ssh/alcasar-banner-ssh |
[ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default |
$SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config |
$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config |
# sshd écoute côté LAN |
$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config |
# sshd n'est pas lancé automatiquement au démarrage |
/sbin/chkconfig --del sshd |
# Coloration des prompts |
[ -e /etc/bashrc.default ] || cp /etc/bashrc /etc/bashrc.default |
cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc |
# Droits d'exécution pour utilisateur apache et sysadmin |
[ -e /etc/sudoers.default ] || cp /etc/sudoers /etc/sudoers.default |
cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root:root /etc/sudoers |
$SED "s?^Host_Alias.*?Host_Alias LAN_ORG=$PRIVATE_NETWORK_MASK,localhost #réseau de l'organisme?g" /etc/sudoers |
# prise en compte de la rotation des logs sur 1 an (concerne mysql, htttpd, dansguardian, squid, radiusd, ulogd) |
cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/ |
chmod 644 /etc/logrotate.d/* |
# processus lancés par défaut au démarrage |
for i in netfs ntpd iptables ulogd squid chilli httpd radiusd mysqld dansguardian named |
do |
/sbin/chkconfig --add $i |
done |
# On mets en place la sécurité sur les fichiers |
# des modif par rapport à radius update |
cat <<EOF > /etc/security/msec/perm.local |
/var/log/firewall/ root.apache 750 |
/var/log/firewall/* root.apache 640 |
/etc/security/msec/perm.local root.root 640 |
/etc/security/msec/level.local root.root 640 |
/etc/freeradius-web root.apache 750 |
/etc/freeradius-web/admin.conf root.apache 640 |
/etc/freeradius-web/config.php root.apache 640 |
/etc/raddb/dictionnary root.radius 640 |
/etc/raddb/ldap.attrmap root.radius 640 |
/etc/raddb/hints root.radius 640 |
/etc/raddb/huntgroups root.radius 640 |
/etc/raddb/attrs.access_reject root.radius 640 |
/etc/raddb/attrs.accounting_response root.radius 640 |
/etc/raddb/acct_users root.radius 640 |
/etc/raddb/preproxy_users root.radius 640 |
/etc/raddb/modules/ldap radius.apache 660 |
/etc/raddb/sites-available/alcasar radius.apache 660 |
/etc/pki/* root.apache 750 |
EOF |
/usr/sbin/msec |
if [ "$mode" = "update" ] |
# on charge la conf d'un version précédente |
then |
$DIR_DEST_BIN/alcasar-conf.sh -load |
fi |
cd $DIR_INSTALL |
echo "" |
echo "#############################################################################" |
echo "# Fin d'installation d'ALCASAR #" |
echo "# #" |
echo "# Application Libre pour le Contrôle Authentifié et Sécurisé #" |
echo "# des Accès au Réseau ( ALCASAR ) #" |
echo "# #" |
echo "#############################################################################" |
echo |
echo "- ALCASAR sera fonctionnel après redémarrage du système" |
echo |
echo "- Lisez attentivement la documentation d'exploitation" |
echo |
echo "- L'interface de gestion est consultable à partir de n'importe quel poste" |
echo " situé sur le réseau de consultation à l'URL https://$PRIVATE_IP " |
echo |
echo " Appuyez sur 'Entrée' pour continuer" |
read a |
clear |
reboot |
} # End post_install () |
################################# |
# Boucle principale du script # |
################################# |
usage="Usage: alcasar.sh -install | -uninstall" |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-install) |
header_install |
testing |
# On teste la présence d'une version déjà installée |
header_install |
if [ -e $DIR_WEB/VERSION ] |
then |
echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée"; |
response=0 |
PTN='^[oOnN]$' |
until [[ $(expr $response : $PTN) -gt 0 ]] |
do |
echo -n "Voulez-vous effectuer une mise à jour (O/n)? "; |
read response |
done |
if [ "$response" = "o" ] || [ "$response" = "O" ] |
then |
# On crée le fichier de conf de la version actuelle |
chmod u+x $DIR_SCRIPTS/alcasar-conf.sh |
$DIR_SCRIPTS/alcasar-conf.sh -create |
fi |
# On désinstalle la version actuelle |
$DIR_DEST_SBIN/alcasar-uninstall.sh |
fi |
# On teste la version du système |
fic=`cat /etc/product.id` |
old="$IFS" |
IFS="," |
set $fic |
for i in $* |
do |
if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ] |
then |
version=`echo $i|cut -d"=" -f2` |
fi |
done |
IFS="$old" |
if [ ! "$version" = "$MDV_NEEDED" ] |
then |
echo "Vous devez installer une des versions suivantes de Linux Mandriva ($MDV_NEEDED)" |
echo "'/tmp'alcasar-conf.tar.gz' est le fichier de configuration de la version actuelle d'ALCASAR. Récupérez ce fichier et recopiez-le dans le répertoire '/tmp' après installation du nouveau système" |
exit 0 |
fi |
if [ -e /tmp/alcasar-conf.tar.gz ] |
then |
echo "#### Installation avec mise à jour ####" |
# On récupère le nom d'organisme à partir de fichier de conf |
tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname |
ORGANISME=`cat $DIR_CONF/hostname|cut -b 9-` |
hostname `cat $DIR_CONF/hostname` |
mode="update" |
else |
mode="install" |
fi |
for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian firewall param_awstats param_bind cron post_install |
do |
$func |
# echo "*** 'debug' : end of function $func ***"; read a |
done |
;; |
-uninstall) |
if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ] |
then |
echo "Aucune version d'ALCASAR n'a été trouvée."; |
exit 0 |
fi |
response=0 |
PTN='^[oOnN]$' |
until [[ $(expr $response : $PTN) -gt 0 ]] |
do |
echo -n "Voulez-vous créer le fichier de conf de la version actuelle (0/n)? " |
read response |
done |
if [ "$reponse" = "o" ] || [ "$reponse" = "O" ] |
then |
$DIR_SCRIPT/alcasar-conf.sh -create |
fi |
# On désinstalle la version actuelle |
$DIR_DEST_SBIN/alcasar-uninstall.sh |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
# end of script |
Property changes: |
Added: svn:eol-style |
+LF |
\ No newline at end of property |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:keywords |
+Revision Date |
\ No newline at end of property |
/readme-1.9.txt |
---|
0,0 → 1,19 |
Alcasar-1.8 |
- Nouvelle Installation : elle s'effectue sur la base du CD double architecture (32b et 64b) de la distribution Linux-mandriva 2010.0 (mandriva-linux-free-dual-2010.iso). |
- Mise à jour d'Alcasar V1.7 : |
- 1ère méthode (recommandée) : en effectuant un nouvelle installation et en injectant la base d'usagers issue d'une v1.7 (recommandé). Dans ce cas, vous profitez des évolutions liées à la dernière version du système "Linux mandriva 2010". Archivez préalablement tous les fichiers de traces. |
- 2ème méthode : directement à partir d'une V1.7 fonctionnelle. Lancez la commande "sh alcasar.sh -update" à partir du répertoire de la nouvelle archive (V1.8). Dans ce cas le système reste une Mandriva 2009.0 (architecture 32b) |
Par rapport à la V1.7, les évolutions majeures sont les suivantes : |
- menu "système" intégrant l'activité réseau, l'inventaire des processus et l'interfaçage LDAP ; |
- compatibilité avec les architectures 32b et 64b (détection automatique lors de l'installation de Linux Mandriva 2010) ; |
- amélioration de la fonction de mise à jour (possibilité de garder l'ancien certificat serveur, automatisation, etc.) ; |
- amélioration de la sécurité (définition aléatoire des mots de passe inter-processus, limitation du champ d'écoute réseau, dispositif anti-usurpation MAC/IP, etc.) ; |
- module de filtrage réseau ; |
- correction et amélioration de la page d'interception (réactivité) ; |
- possibilité de supprimer les usagers à la suppression de leur groupe ; |
- gestion des profils d'administration en 3 groupes (admin, manager, backup) ; |
- remplacement "hotspotlogin.cgi" par "intercept.php". Traduction en 5 langues. Prise en compte des réponses Radius ; |
- simplification des scripts de modification du mot de passe usager (+ traduction 5 langues) ; |
- multiples corrections et améliorations des scripts de l'interface de gestion. |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/gpl-3.0.fr.txt |
---|
0,0 → 1,879 |
LICENCE PUBLIQUE GÉNÉRALE GNU |
Version 3, du 29 juin 2007. |
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
Chacun est autorisé à copier et distribuer des copies conformes de ce |
document de licence, mais toute modification en est proscrite. |
Traduction française par Philippe Verdy |
<verdy_p (à) wanadoo (point) fr>, le 30 juin 2007. |
_______________________________________________________________________ |
Avertissement important au sujet de cette traduction française. |
_______________________________________________________________________ |
Ceci est une traduction en français de la licence GNU General Public |
License (GPL). Cette traduction est fournie ici dans lespoir quelle |
facilitera sa compréhension, mais elle ne constitue pas une traduction |
officielle ou approuvée dun point de vue juridique. |
La Free Software Foundation (FSF) ne publie pas cette traduction et ne |
la pas approuvée en tant que substitut valide au plan légal pour la |
licence authentique GNU General Public Licence. Cette traduction na |
pas encore été passée en revue attentivement par un juriste et donc le |
traducteur ne peut garantir avec certitude quelle représente avec |
exactitude la signification légale des termes de la licence authentique |
GNU General Public License publiée en anglais. Cette traduction |
nétablit donc légalement aucun des termes et conditions dutilisation |
dun logiciel sous licence GNU GPL seul le texte original en anglais |
le fait. Si vous souhaitez être sûr que les activités que vous projetez |
seront autorisées par la GNU General Public License, veuillez vous |
référer à sa seule version anglaise authentique. |
La FSF vous recommande fermement de ne pas utiliser cette traduction en |
tant que termes officiels pour vos propres programmes ; veuillez plutôt |
utiliser la version anglaise authentique telle que publiée par la FSF. |
Si vous choisissez dacheminer cette traduction en même temps quun |
Programme sous licence GNU GPL, cela ne vous dispense pas de lobligation |
dacheminer en même temps une copie de la licence authentique en anglais, |
et de conserver dans la traduction cet avertissement important en |
français et son équivalent en anglais ci-dessous. |
_______________________________________________________________________ |
Important Warning About This French Translation. |
_______________________________________________________________________ |
This is a translation of the GNU General Public License (GPL) into |
French. This translation is distributed in the hope that it will |
facilitate understanding, but it is not an official or legally approved |
translation. |
The Free Software Foundation (FSF) is not the publisher of this |
translation and has not approved it as a legal substitute for the |
authentic GNU General Public License. The translation has not been |
reviewed carefully by lawyers, and therefore the translator cannot be |
sure that it exactly represents the legal meaning of the authentic GNU |
General Public License published in English. This translation does not |
legally state the terms and conditions of use of any Program licenced |
under GNU GPL only the original English text of the GNU LGPL does |
that. If you wish to be sure whether your planned activities are |
permitted by the GNU General Public License, please refer to its sole |
authentic English version. |
The FSF strongly urges you not to use this translation as the official |
distribution terms for your programs; instead, please use the authentic |
English version published by the FSF. If you choose to convey this |
translation along with a Program covered by the GPL Licence, this does |
not remove your obligation to convey at the same time a copy of the |
authentic GNU GPL License in English, and you must keep in this |
translation this important warning in English and its equivalent in |
French above. |
_______________________________________________________________________ |
Préambule |
La Licence Publique Générale GNU (GNU General Public License) est une |
licence libre, en copyleft, destinée aux uvres logicielles et |
dautres types de travaux. |
Les licences de la plupart des uvres logicielles et autres travaux de |
pratique sont conçues pour ôter votre liberté de partager et modifier |
ces travaux. En contraste, la Licence Publique Générale GNU a pour but |
de garantir votre liberté de partager et changer toutes les versions |
dun programme afin dassurer quil restera libre pour tous les |
utilisateurs. Nous, la Free Software Foundation, utilisons la Licence |
Publique Générale GNU pour la plupart de nos logiciels ; cela |
sapplique aussi à tout autre travail édité de cette façon par ses |
auteurs. Vous pouvez, vous aussi, lappliquer à vos propres programmes. |
Quand nous parlons de logiciel libre (free), nous nous référons à la |
liberté (freedom), pas au prix. Nos Licences Publiques Générales sont |
conçues pour assurer que vous ayez la liberté de distribuer des copies |
de logiciel libre (et le facturer si vous le souhaitez), que vous |
receviez le code source ou pouviez lobtenir si vous le voulez, que |
vous pouviez modifier le logiciel ou en utiliser toute partie dans de |
nouveaux logiciels libres, et que vous sachiez que vous avez le droit |
de faire tout ceci. |
Pour protéger vos droits, nous avons besoin dempêcher que dautres |
vous restreignent ces droits ou vous demande de leur abandonner ces |
droits. En conséquence, vous avez certaines responsabilités si vous |
distribuez des copies dun tel programme ou si vous le modifiez : |
les responsabilités de respecter la liberté des autres. |
Par exemple, si vous distribuez des copies dun tel programme, que ce |
soit gratuit ou contre un paiement, vous devez accorder aux |
Destinataires les mêmes libertés que vous avez reçues. Vous devez aussi |
vous assurer queux aussi reçoivent ou peuvent recevoir son code |
source. Et vous devez leur montrer les termes de cette licence afin |
quils connaissent leurs droits. |
Les développeurs qui utilisent la GPL GNU protègent vos droits en deux |
étapes : (1) ils affirment leur droits dauteur (copyright) sur le |
logiciel, et (2) vous accordent cette Licence qui vous donne la |
permission légale de le copier, le distribuer et/ou le modifier. |
Pour la protection des développeurs et auteurs, la GPL stipule |
clairement quil ny a pas de garantie pour ce logiciel libre. Aux fins |
à la fois des utilisateurs et auteurs, la GPL requière que les versions |
modifiées soient marquées comme changées, afin que leurs problèmes ne |
soient pas attribués de façon erronée aux auteurs des versions |
précédentes. |
Certains dispositifs sont conçus pour empêcher laccès des utilisateurs |
à linstallation ou lexécution de versions modifiées du logiciel à |
lintérieur de ces dispositifs, alors que les fabricants le peuvent. |
Ceci est fondamentalement incompatible avec le but de protéger la |
liberté des utilisateurs de modifier le logiciel. Laspect systématique |
de tels abus se produit dans le secteur des produits destinés aux |
utilisateurs individuels, ce qui est précidément ce qui est le plus |
inacceptable. Aussi, nous avons conçu cette version de la GPL pour |
prohiber cette pratique pour ces produits. Si de tels problèmes |
surviennent dans dautres domaines, nous nous tenons prêt à étendre |
cette restriction à ces domaines dans de futures versions de la GPL, |
autant quil sera nécessaire pour protéger la liberté des utilisateurs. |
Finalement, chaque programme est constamment menacé par les brevets |
logiciels. Les États ne devraient pas autoriser de tels brevets à |
restreindre le développement et lutilisation de logiciels libres sur |
des ordinateurs dusage général ; mais dans ceux qui le font, nous |
voulons spécialement éviter le danger que les brevets appliqués à un |
programme libre puisse le rendre effectivement propriétaire. Pour |
empêcher ceci, la GPL assure que les brevets ne peuvent être utilisés |
pour rendre le programme non-libre. |
Les termes précis et conditions concernant la copie, la distribution |
et la modification suivent. |
TERMES ET CONDITIONS |
Article 0. Définitions. |
« Cette Licence » se réfère à la version 3 de la GNU General Public |
License (le texte original en anglais). |
« Droit dAuteur » signifie aussi les droits du copyright ou voisins |
qui sappliquent à dautres types de travaux, tels que ceux sur les |
masques de semi-conducteurs. |
« Le Programme » se réfère à tout travail qui peut être sujet au Droit |
dAuteur (copyright) et dont les droits dutilisation sont concédés |
en vertu de cette Licence. Chacun des Licenciés, à qui cette Licence |
est concédée, est désigné par « vous. » Les « Licenciés » et les |
« Destinataires » peuvent être des personnes physiques ou morales |
(individus ou organisations). |
« Modifier » un travail signifie en obtenir une copie et adapter tout |
ou partie du travail dune façon nécessitant une autorisation dun |
titulaire de Droit dAuteur, autre que celle permettant den produire |
une copie conforme. Le travail résultant est appelé une « version |
modifiée » du précédent travail, ou un travail « basé sur » le |
précédent travail. |
Un « Travail Couvert » signifie soit le Programme non modifié soit un |
travail basé sur le Programme. |
« Propager » un travail signifie faire quoi que ce soit avec lui qui, |
sans permission, vous rendrait directement ou indirectement responsable |
dun délit de contrefaçon suivant les lois relatives au Droit dAuteur, |
à lexception de son exécution sur un ordinateur ou de la modification |
dune copie privée. La propagation inclue la copie, la distribution |
(avec ou sans modification), la mise à disposition envers le public, et |
aussi d'autres activités dans certains pays. |
« Acheminer » un travail signifie tout moyen de propagation de celui-ci |
qui permet à dautres parties de réaliser ou recevoir des copies. La |
simple interaction dun utilisateur à travers un réseau informatique, |
sans transfert effectif dune copie, ne constitue pas un acheminement. |
Une interface utilisateur interactive affiche des « Notices Légales |
Appropriées » quand elle comprend un dispositif convenable, bien |
visible et évident qui (1) affiche une notice appropriée sur les droits |
dauteur et (2) informe lutilisateur quil ny a pas de garantie pour |
le travail (sauf si des garanties ont été fournies hors du cadre de |
cette Licence), que les licenciés peuvent acheminer le travail sous |
cette Licence, et comment voir une copie de cette Licence. Si |
linterface présente une liste de commandes utilisateur ou doptions, |
tel quun menu, un élément évident dans la liste présentée remplit ce |
critère. |
Article 1. Code source. |
Le « code source » dun travail signifie la forme préférée du travail |
permettant ou facilitant les modifications de celui-ci. Le « code |
objet » dun travail signifie toute forme du travail qui nen est pas |
le code source. |
Une « Interface Standard » signifie une interface qui est soit celle |
dune norme officielle définie par un organisme de normalisation |
reconnu ou, dans le cas des interfaces spécifiées pour un langage de |
programmation particulier, une interface largement utilisée parmi les |
développeurs travaillant dans ce langage. |
Les « Bibliothèques Système » dun travail exécutable incluent tout ce |
qui, en dehors du travail dans son ensemble, (a) est inclus dans la |
forme usuelle de paquetage dun Composant Majeur mais ne fait pas |
partie de ce Composant Majeur et (b) sert seulement à permettre |
lutilisation du travail avec ce Composant Majeur ou à implémenter une |
Interface Standard pour laquelle une implémentation est disponible au |
public sous forme de code source ; un « Composant Majeur » signifie, |
dans ce contexte, un composant majeur essentiel (noyau, système de |
fenêtrage, etc.) du système dexploitation (le cas échéant) dun |
système sur lequel le travail exécutable fonctionne, ou bien un |
compilateur utilisé pour produire le code objet du travail, ou un |
interprète de code objet utilisé pour exécuter celui-ci. |
Le « Source Correspondant » dun travail sous forme de code objet |
signifie lensemble des codes sources nécessaires pour générer, |
installer et (dans le cas dun travail exécutable) exécuter le code |
objet et modifier le travail, y compris les scripts pour contrôler ces |
activités. Cependant, cela ninclue pas les Bibliothèques Système du |
travail, ni les outils dusage général ou les programmes libres |
généralement disponibles qui peuvent être utilisés sans modification |
pour achever ces activités mais ne sont pas partie de ce travail. Par |
exemple le Source Correspondant inclut les fichiers de définition |
dinterfaces associés aux fichiers sources du travail, et le code |
source des bibliothèques partagées et des sous-routines liées |
dynamiquement, pour lesquelles le travail est spécifiquement conçu pour |
les requérir via, par exemple, des communications de données ou |
contrôles de flux internes entre ces sous-programmes et dautres |
parties du travail. |
Le Source Correspondant na pas besoin dinclure tout ce que les |
utilisateurs peuvent regénérer automatiquement à partir dautres |
parties du Source Correspondant. |
Le Source Correspondant pour un travail sous forme de code source est |
ce même travail. |
Article 2. Permissions de base. |
Tous les droits accordés suivant cette Licence le sont jusquau terme |
des Droits dAuteur (copyright) sur le Programme, et sont |
irrévocables pourvu que les conditions établies soient remplies. Cette |
Licence affirme explicitement votre permission illimitée dexécuter le |
Programme non modifié. La sortie produite par lexécution dun Travail |
Couvert nest couverte par cette Licence que si cette sortie, étant |
donné leur contenu, constitue un Travail Couvert. Cette Licence |
reconnait vos propres droits dusage raisonnable (fair use en |
législation des États-Unis dAmérique) ou autres équivalents, tels |
quils sont pourvus par la loi applicable sur le Droit dAuteur |
(copyright). |
Vous pouvez créer, exécuter et propager sans condition des Travaux |
Couverts que vous nacheminez pas, aussi longtemps que votre licence |
demeure en vigueur. Vous pouvez acheminer des Travaux Couverts à |
dautres personnes dans le seul but de leur faire réaliser des |
modifications à votre usage exclusif, ou pour quils vous fournissent |
des facilités vous permettant dexécuter ces travaux, pourvu que vous |
vous conformiez aux termes de cette Licence lors de lacheminement de |
tout matériel dont vous ne contrôlez pas le Droit dAuteur |
(copyright). Ceux qui, dès lors, réalisent ou exécutent pour vous les |
Travaux Couverts ne doivent alors le faire quexclusivement pour votre |
propre compte, sous votre direction et votre contrôle, suivant des |
termes qui leur interdisent de réaliser, en dehors de leurs relations |
avec vous, toute copie de votre matériel soumis au Droit dAuteur. |
Lacheminement dans toutes les autres circonstances nest permis que |
selon les conditions établies ci-dessous. La concession de |
sous-licences nest pas autorisé ; larticle 10 rend cet usage non |
nécessaire. |
Article 3. Protection des droits légaux des utilisateurs envers les |
lois anti-contournement. |
Aucun Travail Couvert ne doit être vu comme faisant partie dune mesure |
technologique effective selon toute loi applicable remplissant les |
obligations prévues à larticle 11 du traité international sur le droit |
dauteur adopté à lOMPI le 20 décembre 1996, ou toutes lois similaires |
qui prohibent ou restreignent le contournement de telles mesures. |
Si vous acheminez un Travail Couvert, vous renoncez à tout pouvoir légal |
dinterdire le contournement des mesures technologiques dans tous les |
cas où un tel contournement serait effectué en exerçant les droits |
prévus dans cette Licence pour ce Travail Couvert, et vous déclarez |
rejeter toute intention de limiter lopération ou la modification du |
Travail, en tant que moyens de renforcer, à lencontre des utilisateurs |
de ce Travail, vos droits légaux ou ceux de tierces parties dinterdire |
le contournement des mesures technologiques. |
Article 4. Acheminement des copies conformes. |
Vous pouvez acheminer des copies conformes du code source du Programme |
tel que vous lavez reçu, sur nimporte quel support, pourvu que vous |
publiiez scrupuleusement et de façon appropriée sur chaque copie une |
notice de Droit dAuteur appropriée ; gardez intactes toutes les |
notices établissant que cette Licence et tous les termes additionnels non |
permissifs ajoutés en accord avec larticle 7 sappliquent à ce code ; |
et donnez à chacun des Destinataires une copie de cette Licence en même |
temps que le Programme. |
Vous pouvez facturer à un prix quelconque, y compris gratuit, chacune |
des copies que vous acheminez, et vous pouvez offrir une protection |
additionnelle de support ou de garantie en échange dun paiement. |
Article 5. Acheminement des versions sources modifiées. |
Vous pouvez acheminer un travail basé sur le Programme, ou bien les |
modifications pour le produire à partir du Programme, sous la forme de |
code source suivant les termes de larticle 4, pourvu que vous |
satisfassiez aussi à chacune des conditions requises suivantes : |
a) Le travail doit comporter des notices évidentes établissant que |
vous lavez modifié et donnant la date correspondante. |
b) Le travail doit comporter des notices évidentes établissant quil |
est édité selon cette Licence et les conditions ajoutées daprès |
larticle 7. Cette obligation vient modifier lobligation de |
larticle 4 de « garder intactes toutes les notices. » |
c) Vous devez licencier le travail entier, comme un tout, suivant |
cette Licence à quiconque entre en possession dune copie. Cette |
Licence sappliquera en conséquence, avec les termes additionnels |
applicables prévus par larticle 7, à la totalité du travail et |
chacune de ses parties, indépendamment de la façon dont ils sont |
empaquetés. Cette licence ne donne aucune permission de licencier |
le travail dune autre façon, mais elle ninvalide pas une telle |
permission si vous lavez reçue séparément. |
d) Si le travail a des interfaces utilisateurs interactives, chacune |
doit afficher les Notices Légales Appropriées ; cependant si le |
Programme a des interfaces qui naffichent pas les Notices Légales |
Appropriées, votre travail na pas à les modifier pour quelles |
les affichent. |
Une compilation dun Travail Couvert avec dautres travaux séparés et |
indépendants, qui ne sont pas par leur nature des extensions du Travail |
Couvert, et qui ne sont pas combinés avec lui de façon à former un |
programme plus large, dans ou sur un volume de stockage ou un support |
de distribution, est appelé un « aggrégat » si la compilation et son |
Droit dAuteur résultant ne sont pas utilisés pour limiter laccès ou |
les droits légaux des utilisateurs de la compilation en deça de ce que |
permettent les travaux individuels. Linclusion dun Travail Couvert |
dans un aggrégat ne cause pas lapplication de cette Licence aux |
autres parties de laggrégat. |
Article 6. Acheminement des formes non sources. |
Vous pouvez acheminer sous forme de code objet un Travail Couvert |
suivant les termes des articles 4 et 5, pourvu que vous acheminiez |
également suivant les termes de cette Licence le Source Correspondant |
lisible par une machine, dune des façons suivantes : |
a) Acheminer le code objet sur, ou inclus dans, un produit physique |
(y compris un support de distribution physique), accompagné par le |
Source Correspondant fixé sur un support physique durable |
habituellement utilisé pour les échanges de logiciels. |
b) Acheminer le code objet sur, ou inclus dans, un produit physique |
(y compris un support de distribution physique), accompagné dune |
offre écrite, valide pour au moins trois années et valide pour |
aussi longtemps que vous fournissez des pièces de rechange ou un |
support client pour ce modèle de produit, afin de donner à |
quiconque possède le code objet soit (1) une copie du Source |
Correspondant à tout logiciel dans ce produit qui est couvert par |
cette Licence, sur un support physique durable habituellement |
utilisé pour les échanges de logiciels, pour un prix non supérieur |
au coût raisonnable de la réalisation physique de lacheminement |
de la source, ou soit (2) un accès permettant de copier le Source |
Correspondant depuis un serveur réseau sans frais. |
c) Acheminer des copies individuelles du code objet avec une copie de |
loffre écrite de fournir le Source Correspondant. Cette |
alternative est permise seulement occasionellement et non |
commercialement, et seulement si vous avez reçu le code objet avec |
une telle offre, en accord avec larticle 6 alinéa b. |
d) Acheminer le code objet en offrant un accès depuis un emplacement |
désigné (gratuit ou contre facturation) et offrir un accès |
équivalent au Source Correspondant de la même façon via le même |
emplacement et sans facturation supplémentaire. Vous navez pas |
besoin dobliger les Destinataires à copier le Source |
Correspondant en même temps que le code objet. Si lemplacement |
pour copier le code objet est un serveur réseau, le Source |
Correspondant peut être sur un serveur différent (opéré par vous |
ou par un tiers) qui supporte des facilités équivalentes de |
copie, pourvu que vous mainteniez des directions claires à |
proximité du code objet indiquant où trouver le Source |
Correspondant. Indépendamment de quel serveur héberge le Source |
Correspondant, vous restez obligé de vous assurer quil reste |
disponible aussi longtemps que nécessaire pour satisfaire à ces |
obligations. |
e) Acheminer le code objet en utilisant une transmission |
dégal-à-égal, pourvu que vous informiez les autres participants |
sur où le code objet et le Source Correspondant du travail sont |
offerts sans frais au public général suivant larticle 6 alinéa d. |
Une portion séparable du code objet, dont le code source est exclu |
du Source Correspondant en tant que Bibliothèque Système, na pas |
besoin dêtre inclu dans lacheminement du travail sous forme de |
code objet. |
Un « Produit Utilisateur » est soit (1) un « Produit de Consommation, » |
ce qui signifie toute propriété personnelle tangible normalement |
utilisée à des fins personnelles, familiales ou relatives au foyer, |
soit (2) toute chose conçue ou vendue pour lincorporation dans un lieu |
dhabitation. Pour déterminer si un produit constitue un Produit de |
Consommation, les cas ambigus sont résolus en fonction de la |
couverture. Pour un produit particulier reçu par un utilisateur |
particulier, lexpression « normalement utilisée » ci-avant se réfère |
à une utilisation typique ou lusage commun de produits de même |
catégorie, indépendamment du statut de cet utilisateur particulier ou |
de la façon spécifique dont cet utilisateur particulier utilise |
effectivement ou sattend lui-même ou est attendu à utiliser ce |
produit. Un produit est un Produit de Consommation indépendamment du |
fait que ce produit a ou na pas dutilisations substantielles |
commerciales, industrielles ou hors Consommation, à moins que de telles |
utilisations représentent le seul mode significatif dutilisation du |
produit. |
Les « Informations dInstallation » dun Produit Utilisateur signifient |
toutes les méthodes, procédures, clés dautorisation ou autres |
informations requises pour installer et exécuter des versions modifiées |
dun Travail Couvert dans ce Produit Utilisateur à partir dune version |
modifiée de son Source Correspondant. Les informations qui suffisent à |
assurer la continuité de fonctionnement du code objet modifié ne |
doivent en aucun cas être empêchées ou interférées du seul fait quune |
modification a été effectuée. |
Si vous acheminez le code objet dun Travail Couvert dans, ou avec, ou |
spécifiquement pour lutilisation dans, un Produit Utilisateur et |
lacheminement se produit en tant quélément dune transaction dans |
laquelle le droit de possession et dutilisation du Produit |
Utilisateur est transféré au Destinataire définitivement ou pour un |
terme fixé (indépendamment de la façon dont la transaction est |
caractérisée), le Source Correspondant acheminé selon cet article-ci |
doit être accompagné des Informations dInstallation. Mais cette |
obligation ne sapplique pas si ni vous ni aucune tierce partie ne |
détient la possibilité dintaller un code objet modifié sur le Produit |
Utilisateur (par exemple, le travail a été installé en mémoire morte). |
Lobligation de fournir les Informations dInstallation ninclue pas |
celle de continuer à fournir un service de support, une garantie ou des |
mises à jour pour un travail qui a été modifié ou installé par le |
Destinataire, ou pour le Produit Utilisateur dans lequel il a été |
modifié ou installé. Laccès à un réseau peut être rejeté quand la |
modification elle-même affecte matériellement et défavorablement les |
opérations du réseau ou viole les règles et protocoles de communication |
au travers du réseau. |
Le Source Correspondant acheminé et les Informations dInstallation |
fournies, en accord avec cet article, doivent être dans un format |
publiquement documenté (et dont une implémentation est disponible |
auprès du public sous forme de code source) et ne doit nécessiter |
aucune clé ou mot de passe spécial pour le dépaquetage, la lecture ou |
la copie. |
Article 7. Termes additionnels. |
Les « permissions additionelles » désignent les termes qui |
supplémentent ceux de cette Licence en émettant des exceptions à lune |
ou plusieurs de ses conditions. Les permissions additionnelles qui |
sont applicables au Programme entier doivent être traitées comme si |
elles étaient incluent dans cette Licence, dans les limites de leur |
validité suivant la loi applicable. Si des permissions additionnelles |
sappliquent seulement à une partie du Programme, cette partie peut |
être utilisée séparément suivant ces permissions, mais le Programme |
tout entier reste gouverné par cette Licence sans regard aux |
permissions additionelles. |
Quand vous acheminez une copie dun Travail Couvert, vous pouvez à |
votre convenance ôter toute permission additionelle de cette copie, ou |
de nimporte quelle partie de celui-ci. (Des permissions |
additionnelles peuvent être rédigées de façon à requérir leur propre |
suppression dans certains cas où vous modifiez le travail.) Vous |
pouvez placer les permissions additionnelles sur le matériel acheminé, |
ajoutées par vous à un Travail Couvert pour lequel vous avez ou pouvez |
donner les permissions de Droit dAuteur (copyright) appropriées. |
Nonobstant toute autre clause de cette Licence, pour tout constituant |
que vous ajoutez à un Travail Couvert, vous pouvez (si autorisé par les |
titulaires de Droit dAuteur pour ce constituant) supplémenter les |
termes de cette Licence avec des termes : |
a) qui rejettent la garantie ou limitent la responsabilité de façon |
différente des termes des articles 15 et 16 de cette Licence ; ou |
b) qui requièrent la préservation de notices légales raisonnables |
spécifiées ou les attributions dauteur dans ce constituant ou |
dans les Notices Légales Appropriées affichées par les travaux qui |
le contiennent ; ou |
c) qui prohibent la représentation incorrecte de lorigine de ce |
constituant, ou qui requièrent que les versions modifiées dun tel |
constituant soit marquées par des moyens raisonnables comme |
différentes de la version originale ; ou |
d) qui limitent lusage à but publicitaire des noms des concédants de |
licence et des auteurs du constituant ; ou |
e) qui refusent à accorder des droits selon la législation relative |
aux marques commerciales, pour lutilisation dans des noms |
commerciaux, marques commerciales ou marques de services ; ou |
f) qui requièrent lindemnisation des concédants de licences et |
auteurs du constituant par quiconque achemine ce constituant (ou |
des versions modifiées de celui-ci) en assumant contractuellement |
la responsabilité envers le Destinataire, pour toute |
responsabilité que ces engagements contractuels imposent |
directement à ces octroyants de licences et auteurs. |
Tous les autres termes additionnels non permissifs sont considérés |
comme des « restrictions avancées » dans le sens de larticle 10. Si le |
Programme tel que vous lavez reçu, ou toute partie de celui-ci, |
contient une notice établissant quil est gouverné par cette Licence en |
même temps quun terme qui est une restriction avancée, vous pouvez |
ôter ce terme. Si un document de licence contient une restriction |
avancée mais permet la reconcession de licence ou lacheminement |
suivant cette Licence, vous pouvez ajouter un Travail Couvert |
constituant gouverné par les termes de ce document de licence, pourvu |
que la restriction avancée ne survit pas à un telle cession de licence |
ou acheminement. |
Si vous ajoutez des termes à un Travail Couvert en accord avec cet |
article, vous devez placer, dans les fichiers sources appropriés, une |
déclaration des termes additionnels qui sappliquent à ces fichiers, ou |
une notice indiquant où trouver les termes applicables. |
Les termes additionnels, quils soient permissifs ou non permissifs, |
peuvent être établis sous la forme dune licence écrite séparément, ou |
établis comme des exceptions ; les obligations ci-dessus sappliquent |
dans chacun de ces cas. |
Article 8. Terminaison. |
Vous ne pouvez ni propager ni modifier un Travail Couvert autrement que |
suivant les termes de cette Licence. Toute autre tentative de le |
propager ou le modifier est nulle et terminera automatiquement vos |
droits selon cette Licence (y compris toute licence de brevet accordée |
selon le troisième paragraphe de larticle 11). |
Cependant, si vous cessez toute violation de cette Licence, alors votre |
licence depuis un titulaire de Droit dAuteur (copyright) est |
réinstaurée (a) à titre provisoire à moins que et jusquà ce que le |
titulaire de Droit dAuteur termine finalement et explicitement votre |
licence, et (b) de façon permanente si le titulaire de Droit dAuteur |
ne parvient pas à vous notifier de la violation par quelque moyen |
raisonnable dans les soixante (60) jours après la cessation. |
De plus, votre licence depuis un titulaire particulier de Droit |
dAuteur est réinstaurée de façon permanente si ce titulaire vous |
notifie de la violation par quelque moyen raisonnable, cest la |
première fois que vous avez reçu une notification deviolation de cette |
Licence (pour un travail quelconque) depuis ce titulaire de Droit |
dAuteur, et vous résolvez la violation dans les trente (30) jours qui |
suivent votre réception de la notification. |
La terminaison de vos droits suivant cette section ne terminera pas les |
licences des parties qui ont reçu des copies ou droits de votre part |
suivant cette Licence. Si vos droits ont été terminés et non |
réinstaurés de façon permanente, vous nêtes plus qualifié à recevoir |
de nouvelles licences pour les mêmes constituants selon larticle 10. |
Article 9. Acceptation non requise pour obtenir des copies. |
Vous nêtes pas obligé daccepter cette licence afin de recevoir ou |
exécuter une copie du Programme. La propagation asservie dun Travail |
Couvert qui se produit simplement en conséquence dune transmission |
dégal-à-égal pour recevoir une copie ne nécessite pas lacceptation. |
Cependant, rien dautre que cette Licence ne vous accorde la |
permission de propager ou modifier un quelconque Travail Couvert. Ces |
actions enfreignent le Droit dAuteur si vous nacceptez pas cette |
Licence. Par conséquent, en modifiant ou propageant un Travail Couvert, |
vous indiquez votre acceptation de cette Licence pour agir ainsi. |
Article 10. Cession automatique de Licence aux Destinataires et |
intermédiaires. |
Chaque fois que vous acheminez un Travail Couvert, le Destinataire |
reçoit automatiquement une licence depuis les concédants originaux, |
pour exécuter, modifier et propager ce travail, suivant les termes de |
cette Licence. Vous nêtes pas responsable du renforcement de la |
conformation des tierces parties avec cette Licence. |
Une « transaction dentité » désigne une transaction qui transfère le |
contrôle dune organisation, ou de substantiellement tous ses actifs, |
ou la subdivision dune organisation, ou la fusion de plusieurs |
organisations. Si la propagation dun Travail Couvert résulte dune |
transaction dentité, chaque partie à cette transaction qui reçoit une |
copie du travail reçoit aussi les licences pour le travail que le |
prédécesseur intéressé à cette partie avait ou pourrait donner selon le |
paragraphe précédent, plus un droit de possession du Source |
Correspondant de ce travail depuis le prédécesseur intéressé si ce |
prédécesseur en dispose ou peut lobtenir par des efforts raisonnables. |
Vous ne pouvez imposer aucune restriction avancée dans lexercice des |
droits accordés ou affirmés selon cette Licence. Par exemple, vous ne |
pouvez imposer aucun paiement pour la licence, aucune royaltie, ni |
aucune autre charge pour lexercice des droits accordés selon cette |
Licence ; et vous ne pouvez amorcer aucun litige judiciaire (y compris |
une réclamation croisée ou contre-réclamation dans un procès) sur |
lallégation quune revendication de brevet est enfreinte par la |
réalisation, lutilisation, la vente, loffre de vente, ou |
limportation du Programme ou dune quelconque portion de celui-ci. |
Article 11. Brevets. |
Un « contributeur » est un titulaire de Droit dAuteur (copyright) |
qui autorise lutilisation selon cette Licence du Programme ou du |
travail sur lequel le Programme est basé. Le travail ainsi soumis à |
licence est appelé la « version contributive » de ce contributeur. |
Les « revendications de brevet essentielles » sont toutes les |
revendications de brevets détenues ou contrôlées par le contributeur, |
quelles soient déjà acquises par lui ou acquises subséquemment, qui |
pourraient être enfreintes de quelque manière, permises par cette |
Licence, sur la réalisation, lutilisation ou la vente de la version |
contributive de celui-ci. Aux fins de cette définition, le « contrôle » |
inclue le droit de concéder des sous-licences de brevets dune manière |
consistante, nécessaire et suffisante, avec les obligations de cette |
Licence. |
Chaque contributeur vous accorde une licence de brevet non exclusive, |
mondiale et libre de toute royaltie, selon les revendications de brevet |
essentielles, pour réaliser, utiliser, vendre, offrir à la vente, |
importer et autrement exécuter, modifier et propager les contenus de sa |
version contributive. |
Dans les trois paragraphes suivants, une « licence de brevet » désigne |
tous les accords ou engagements exprimés, quel que soit le nom que vous |
lui donnez, de ne pas mettre en vigueur un brevet (telle quune |
permission explicite pour mettre en pratique un brevet, ou un accord |
pour ne pas poursuivre un Destinataire pour cause de violation de |
brevet). « Accorder » une telle licence de brevet à une partie signifie |
conclure un tel accord ou engagement à ne pas faire appliquer le brevet |
à cette partie. |
Si vous acheminez un Travail Couvert, dépendant en connaissance dune |
licence de brevet, et si le Source Correspondant du travail nest pas |
disponible à quiconque copie, sans frais et suivant les termes de cette |
Licence, à travers un serveur réseau publiquement acessible ou tout |
autre moyen immédiatement accessible, alors vous devez soit (1) rendre |
la Source Correspondante ainsi disponible, soit (2) vous engager à vous |
priver pour vous-même du bénéfice de la licence de brevet pour ce |
travail particulier, soit (3) vous engager, dune façon consistante |
avec les obligations de cette Licence, à étendre la licence de brevet |
aux Destinataires de ce travail. « Dépendant en connaissance » signifie |
que vous avez effectivement connaissance que, selon la licence de |
brevet, votre acheminement du Travail Couvert dans un pays, ou |
lutilisation du Travail Couvert par votre Destinataire dans un pays, |
infreindrait un ou plusieurs brevets identifiables dans ce pays où vous |
avez des raisons de penser quils sont valides. |
Si, conformément à ou en liaison avec une même transaction ou un même |
arrangement, vous acheminez, ou propagez en procurant un acheminement |
de, un Travail Couvert et accordez une licence de brevet à lune des |
parties recevant le Travail Couvert pour lui permettre dutiliser, |
propager, modifier ou acheminer une copie spécifique du Travail |
Couvert, alors votre accord est automatiquement étendu à tous les |
Destinataires du Travail Couvert et des travaux basés sur celui-ci. |
Une licence de brevet est « discriminatoire » si, dans le champ de sa |
couverture, elle ninclut pas un ou plusieurs des droits qui sont |
spécifiquement accordés selon cette Licence, ou en prohibe lexercice, |
ou est conditionnée par le non-exercice dun ou plusieurs de ces |
droits. Vous ne pouvez pas acheminer un Travail Couvert si vous êtes |
partie à un arrangement selon lequel une partie tierce exerçant son |
activité dans la distribution de logiciels et à laquelle vous effectuez |
un paiement fondé sur létendue de votre activité dacheminement du |
travail, et selon lequel la partie tierce accorde, à une quelconque |
partie qui recevrait depuis vous le Travail Couvert, une licence de |
brevet discriminatoire (a) en relation avec les copies du Travail |
Couvert acheminées par vous (ou les copies réalisées à partir de ces |
copies), ou (b) avant tout destinée et en relation avec des produits |
spécifiques ou compilations contenant le Travail Couvert, à moins que |
vous ayez conclu cet arrangement ou que la licence de brevet ait été |
accordée avant le 28 mars 2007. |
Rien dans cette Licence ne devrait être interprété comme devant exclure |
ou limiter toute licence implicite ou dautres moyens de défense à une |
infraction qui vous seraient autrement disponible selon la loi |
applicable relative aux brevets. |
Article 12. Non abandon de la liberté des autres. |
Si des conditions vous sont imposées (que ce soit par décision |
judiciaire, par un accord ou autrement) qui contredisent les conditions |
de cette Licence, elles ne vous excusent pas des conditions de cette |
Licence. Si vous ne pouvez pas acheminer un Travail Couvert de façon à |
satisfaire simulténément vos obligations suivant cette Licence et |
toutes autres obligations pertinentes, alors en conséquence vous ne |
pouvez pas du tout lacheminer. Par exemple, si vous avez un accord sur |
des termes qui vous obligent à collecter pour le réacheminement des |
royalties depuis ceux à qui vous acheminez le Programme, la seule façon |
qui puisse vous permettre de satisfaire à la fois à ces termes et ceux |
de cette Licence sera de vous abstenir entièrement dacheminer le |
Programme. |
Article 13. Utilisation avec la Licence Générale Publique Affero GNU. |
Nonobstant toute autre clause de cette Licence, vous avez la permission |
de lier ou combiner tout Travail Couvert avec un travail placé sous la |
version 3 de la Licence Générale Publique GNU Affero (GNU Affero |
General Public License) en un seul travail combiné, et dacheminer le |
travail résultant. Les termes de cette Licence continueront à |
sappliquer à la partie formant un Travail Couvert, mais les |
obligations spéciales de la Licence Générale Publique GNU Affero, |
article 13, concernant linteraction à travers un réseau sappliqueront |
à la combinaison en tant que telle. |
Article 14. Versions révisées de cette License. |
La Free Software Foundation peut publier des versions révisées et/ou |
nouvelles de la Licence Publique Générale GNU (GNU General Public |
License) de temps en temps. De telles version nouvelles resteront |
similaires dans lesprit avec la présente version, mais peuvent |
différer dans le détail afin de traiter de nouveaux problèmes ou |
préoccupations. |
Chaque version reçoit un numéro de version distinctif. Si le Programme |
indique quune version spécifique de la Licence Publique Générale GNU |
« ou toute version ultérieure » (or any later version) sapplique à |
celui-ci, vous avez le choix de suivre soit les termes et conditions de |
cette version numérotée, soit ceux de nimporte quelle version publiée |
ultérieurement par la Free Software Foundation. Si le Programme |
nindique pas une version spécifique de la Licence Publique Générale |
GNU, vous pouvez choisir lune quelconque des versions qui ont été |
publiées par la Free Software Foundation. |
Si le Programme spécifie quun intermédiaire peut décider quelles |
versions futures de la Licence Générale Publique GNU peut être |
utilisée, la déclaration publique dacceptation dune version par cet |
intermédiaire vous autorise à choisir cette version pour le Programme. |
Des versions ultérieures de la licence peuvent vous donner des |
permissions additionelles ou différentes. Cependant aucune obligation |
additionelle nest imposée à lun des auteurs ou titulaires de Droit |
dAuteur du fait de votre choix de suivre une version ultérieure. |
Article 15. Déclaration dabsence de garantie. |
IL NY A AUCUNE GARANTIE POUR LE PROGRAMME, DANS LES LIMITES PERMISES |
PAR LA LOI APPLICABLE. À MOINS QUE CELA NE SOIT ÉTABLI DIFFÉREMMENT PAR |
ÉCRIT, LES PROPRIÉTAIRES DE DROITS ET/OU LES AUTRES PARTIES FOURNISSENT |
LE PROGRAMME « EN LÉTAT » SANS GARANTIE DAUCUNE SORTE, QUELLE SOIT |
EXPRIMÉE OU IMPLICITE, CECI COMPRENANT, SANS SE LIMITER À CELLES-CI, |
LES GARANTIES IMPLICITES DE COMMERCIALISABILITÉ ET DADÉQUATION À UN |
OBJECTIF PARTICULIER. VOUS ASSUMEZ LE RISQUE ENTIER CONCERNANT LA |
QUALITÉ ET LES PERFORMANCES DU PROGRAMME. DANS LÉVENTUALITÉ OÙ LE |
PROGRAMME SAVÉRERAIT DÉFECTUEUX, VOUS ASSUMEZ LES COÛTS DE TOUS LES |
SERVICES, RÉPARATIONS OU CORRECTIONS NÉCESSAIRES. |
Article 16. Limitation de responsabilité. |
EN AUCUNE AUTRE CIRCONSTANCE QUE CELLES REQUISES PAR LA LOI APPLICABLE |
OU ACCORDÉES PAR ÉCRIT, UN TITULAIRE DE DROITS SUR LE PROGRAMME, OU |
TOUT AUTRE PARTIE QUI MODIFIE OU ACHEMINE LE PROGRAMME COMME PERMIS |
CI-DESSUS, NE PEUT ÊTRE TENU POUR RESPONSABLE ENVERS VOUS POUR LES |
DOMMAGES, INCLUANT TOUT DOMMAGE GÉNÉRAL, SPÉCIAL, ACCIDENTEL OU INDUIT |
SURVENANT PAR SUITE DE LUTILISATION OU DE LINCAPACITÉ DUTILISER LE |
PROGRAMME (Y COMPRIS, SANS SE LIMITER À CELLES-CI, LA PERTE DE DONNÉES |
OU LINEXACTITUDE DES DONNÉES RETOURNÉES OU LES PERTES SUBIES PAR VOUS |
OU DES PARTIES TIERCES OU LINCAPACITÉ DU PROGRAMME À FONCTIONNER AVEC |
TOUT AUTRE PROGRAMME), MÊME SI UN TEL TITULAIRE OU TOUTE AUTRE PARTIE |
A ÉTÉ AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES. |
Article 17. Interprétation des sections 15 et 16. |
Si la déclaration dabsence de garantie et la limitation de |
responsabilité fournies ci-dessus ne peuvent prendre effet localement |
selon leurs termes, les cours de justice qui les examinent doivent |
appliquer la législation locale qui approche au plus près possible une |
levée absolue de toute responsabilité civile liée au Programme, à moins |
quune garantie ou assumation de responsabilité accompagne une copie du |
Programme en échange dun paiement. |
FIN DES TERMES ET CONDITIONS. |
_______________________________________________________________________ |
Comment appliquer ces termes à vos nouveaux programmes |
Si vous développez un nouveau programme et voulez quil soit le plus |
possible utilisable par le public, la meilleure façon dy parvenir et |
den faire un logiciel libre que chacun peut redistribuer et changer |
suivant ces termes-ci. |
Pour appliquer ces termes, attachez les notices suivantes au programme. |
Il est plus sûr de les attacher au début de chacun des fichiers sources |
afin de transporter de façon la plus effective possible lexclusion de |
garantie ; et chaque fichier devrait comporter au moins la ligne de |
réservation de droit (copyright) et une indication permettant de savoir |
où la notice complète peut être trouvée : |
<une ligne donnant le nom du programme et une brève idée de ce quil fait.> |
Copyright (C) <année> <nom de lauteur> Tous droits réservés. |
Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le |
modifier suivant les termes de la GNU General Public License telle que |
publiée par la Free Software Foundation : soit la version 3 de cette |
licence, soit (à votre gré) toute version ultérieure. |
Ce programme est distribué dans lespoir quil vous sera utile, mais SANS |
AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ |
ni dADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale |
Publique GNU pour plus de détails. |
Vous devriez avoir reçu une copie de la Licence Générale Publique GNU avec |
ce programme ; si ce nest pas le cas, consultez : |
<http://www.gnu.org/licenses/>. |
Ajoutez également les informations permettant de vous contacter par |
courrier électronique ou postal. |
Si le programme produit une interaction sur un terminal, faites lui |
afficher une courte notice comme celle-ci lors de son démarrage en mode |
interactif : |
<programme> Copyright (C) <année> <nom de lauteur> |
Ce programme vient SANS ABSOLUMENT AUCUNE GARANTIE ; taper affiche g pour |
les détails. Ceci est un logiciel libre et vous êtes invité à le redistribuer |
suivant certaines conditions ; taper affiche c pour les détails. |
Les commandes hypothétiques affiche g and affiche c devrait |
afficher les parties appropriées de la Licence Générale Publique. Bien |
sûr, les commandes de votre programme peuvent être différentes ; pour |
une interface graphique, vous pourriez utiliser une « boîte À propos. » |
Vous devriez également obtenir de votre employeur (si vous travaillez |
en tant que programmeur) ou de votre école un « renoncement aux droits |
de propriété » pour ce programme, si nécessaire. Pour plus |
dinformations à ce sujet, et comment appliquer la GPL GNU, consultez |
<http://www.gnu.org/licenses/>. |
La Licence Générale Publique GNU ne permet pas dincorporer votre |
programme dans des programmes propriétaires. Si votre programme est une |
bibliothèque de sous-routines, vous pourriez considérer quil serait |
plus utile de permettre de lier des applications propriétaires avec la |
bibliothèque. Si cest ce que vous voulez faire, utilisez la Licence |
Générale Publique Limitée GNU au lieu de cette Licence ; mais dabord, |
veuillez lire <http://www.gnu.org/philosophy/why-not-lgpl.html>. |
_______________________________________________________________________ |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/TODO |
---|
0,0 → 1,25 |
# TODO : |
# |
# * Coeur : |
# o prise en compte du mode multi-sites. Ce mode permettra de n'installer qu'un seul portail Alcasar sur une emprise géographique possédant plusieurs organismes (et donc plusieurs responsables RSSI/OSSI) ; |
# o associer l'authentification des usagers avec le contrôle d'accès au média (WIFI et filaire) -> 802.1x ; |
# o installation d'Alcasar et du système hôte (Linux Mandriva) à partir d'un seul CD bootable ; |
# o sécuriser GRUB à la fin de l'installation (mdp du 1er compte d'administration par exemple) ; |
# o Implémenter AJAX (exploitant JSON "JavaScript Object Notation") dans l'interface usager (fenêtre d'authentif et/ou de status) |
# o version anglaise et pseudo-graphique (C-DIALOG) du script d'installation ; |
# o Coupler le proxy à un contrôle antiviral (HAVP par exemple) ; |
# o intégrer un serveur de noms de domaine (DNS) local. |
# |
# * Centre de gestion WEB : |
# o créer un module dynamique de gestion des domaines filtrés par la BlackList ; |
# o activer le contrôle de contenu des pages WEB ; |
# o activer la gestion des Whitelists par protocole (couplé au serveur DNS local); |
# o affichage de la "famille" blacklisté dans la page d'interception DansGuardian ; |
# o Finaliser l'internationnaliser le centre (version anglaise uniquement) ; |
# o produire un fichier "OpenDocument" pour chaque usager ou groupe d'usagers ; |
# o prise en compte des limites de téléchargement par usager (ChilliSpot-Max-Input-Octets", "ChilliSpot-Max-Output-Octets" et "ChilliSpot-Max-Total-Octets" (cf. http://coova.org/wiki/index.php/CoovaChilli/RADIUS) ; |
# o permettre la suppression des fichiers journaux. |
# o affichage des dix dernieres connexions enregistrées (permet de tester l'activité d'accounting) |
# o Indicateur de disponibilité d'une nouvelle version d'ALCASAR |
# o Gérer l'interdiction réseaux (parefeu) d'@IP-FQDN blacklistés |
/VERSION |
---|
0,0 → 1,0 |
1.9a |
/conf/VERSION-BL |
---|
0,0 → 1,0 |
Univ-tlse du 17 décembre 2009 - 23h00 |
/conf/chilli-init |
---|
0,0 → 1,97 |
#!/bin/sh |
# |
# chilli CoovaChilli init |
# |
# chkconfig: 2345 65 35 |
# description: CoovaChilli |
# Source function library. |
. /etc/rc.d/init.d/functions |
. /etc/sysconfig/network |
[ ${NETWORKING} = "no" ] && exit 0 |
[ -f /usr/sbin/chilli ] || exit 0 |
[ -f /etc/chilli.conf ] || exit 0 |
. /etc/chilli/functions |
check_required |
RETVAL=0 |
prog="chilli" |
case $1 in |
start) |
echo -n $"Starting $prog: " |
/sbin/modprobe tun >/dev/null 2>&1 |
echo 1 > /proc/sys/net/ipv4/ip_forward |
writeconfig |
radiusconfig |
# (crontab -l 2>&- | grep -v $0 |
# test ${HS_ADMINTERVAL:-0} -gt 0 && echo "*/$HS_ADMINTERVAL * * * * $0 radconfig" |
# echo "*/10 * * * * $0 checkrunning" |
# echo "*/2 * * * * $0 arping" |
# ) | crontab - 2>&- |
# ifconfig $HS_LANIF 0.0.0.0 |
daemon /usr/sbin/chilli |
RETVAL=$? |
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/chilli |
echo |
;; |
checkrunning) |
[ -e $LKFILE -a ! -e $PIDFILE ] && $0 start |
;; |
radconfig) |
[ -e $MAIN_CONF ] || writeconfig |
radiusconfig |
;; |
reload) |
killall -HUP chilli |
;; |
restart) |
$0 stop |
$0 start |
RETVAL=$? |
;; |
stop) |
echo -n $"Shutting down $prog: " |
crontab -l 2>&- | grep -v $0 | crontab - |
killproc chilli |
[ -f /var/run/chilli.pid ] && { |
kill $(cat /var/run/chilli.pid) |
RETVAL=$ |
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/chilli /var/run/chilli.pid |
} |
echo |
;; |
condrestart) |
if [ -f /var/lock/subsys/chilli ] ; then |
$0 restart |
RETVAL=$? |
fi |
;; |
status) |
status chilli |
RETVAL=$? |
;; |
*) |
echo $"Usage: $0 {start|stop|restart|condrestart|status|reload|radconfig}" |
exit 1 |
esac |
exit $? |
/conf/template-fr.html |
---|
0,0 → 1,324 |
<html> |
<head> |
<title>DansGuardian - Access Denied</title> |
</head> |
<body bgcolor=#FFFFFF> |
<center> |
<table border=0 cellspacing=0 cellpadding=2 height=540 width=700> |
<tr> |
<td colspan=2 bgcolor=#FEA700 height=100 align=center> |
<font face=arial,helvetica size=6> |
<b>Accès refusé</b> |
</td> |
</tr> |
<tr> |
<td colspan=2 bgcolor=#FFFACD height=30 align=right> |
<font face=arial,helvetica size=3 color=black> |
<b>-USER- </b> |
</td> |
</tr> |
<tr> |
<td align=center valign=bottom width=150 bgcolor=#B0C4DE> |
<font face=arial,helvetica size=1 color=black> |
<img src="data:image/gif;base64, |
R0lGODlheQCVAOf/ABIaCxEbGxAbJBkaIRgiIxsiKCArKyMqMCIyIigyMzk6KDk6QjFCJ0JC |
KzhDRDtCSD1BWTxKJEhKJ01Bej9KSz5OLUtKM0tChjtSMD5LbUdSU1FTL1JSOlVJlVtSMURa |
N1lKnllJsVFSfVlaMVRSlkJiMmBaMlBbW1tSpVdSsWdQtF9TyFdiY2piLmljOmFbp2NarVFr |
O1tpU2ZayWha0XFqO1lyQmtxaHpyQ3FrpWB6SWZr13BrxXRydnJqzHV5R1yGP4V6P297e2OF |
QHxxx4h6TJZ5Q3CGSWCPQGKOTHh61YaGQWuOR42GQ3qGhpWHP3CPaGeWRoWHhGyWTmiWWo6O |
SZWOS42OZ4OPkIeF6HuWY5GGym+eToWWX4eWbHydT5eWUJeVY56WS56XUqaWR4uXmJSWk26n |
W5SfULeVUnqmYpKeepKX2JSejYenbJGmYZ2fnJ6lY4iuWIauXqWnUpinfK2mZ5iuYp6uVqOn |
l4i1Xb+mUb6mWIa2ZKWnpM6mT6ml0Jym7rOvW6Kn6Y+7XKK1aIu+XqOvsMCueK62X6C2iY+/ |
bJi+Z9auVry2XLKuzInGaqu2pZTGXpXIZ7W3tLC9i7O3xre+eq+25aTHYp3Jaa22/8W/ZKPH |
fOa2YZTPbL2+qNS/Yby+u8++jdW/fLXHjcfGYqq//6vOacG+z92/d77GnL++777Gr53XbJvX |
c6DWer7OesfGvcnOaMvPYsXHxMrHuK3XcNbHm6bZd8XOj+3HX6nXkNfObKrcc6Xec6PeesXW |
ZtXOjcDVjcTPva7ebsPP0M/VdtPWaebOhPbOX/XOZujNl/DOeeHVZcnWo8vO+d3WebHketnV |
s7bmddbeacrX2PbWa7/mcOnXi9TW09fehb7neLrnhNLW5vXXetjdrM7mc87exL/udv/da9fe |
9P7fetDueefmh/Xnb9/lx/blhOTnr+Xn5N3vx+7vlv7vb/3vduXu9/j1j/72e/D2w/72s//9 |
efv/cvD2+P/+gvP+1/r+7Pj+//z/+////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAP8A |
LAAAAAB5AJUAAAj+AP8JHEiwoMGDCBMqVFhLlKVHgwINAvQIkCVRCzNq3Mixo8eDolI9ArRF |
icksbJRkUZJlx5ZHtT7KnEmzpihAW4jQ2LEji89AmwJtGropUJYdgGoqXcp0oChAgHzQWDFj |
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 |
JYuCEm2QwhikAAY4yKIWEn70tAICADs="/><BR><CENTER>ALCASAR</CENTER> |
</td> |
<td width=550 bgcolor=#FFFFFF align=center valign=center> |
<font face=arial,helvetica color=black> |
<font size=4> |
L'accès à la page : |
<br><br> |
-URL- |
<br><br> |
<font size=3> |
... a été refusé pour la raison suivante : |
<br><br> |
<font color=red> |
<b>-REASONGIVEN-</b> |
<font color=black> |
<br><br><br><br> |
Vous tentez d'accéder à une ressource dont le contenu est réputé |
contenir des informations inappropriées. |
<br><br> |
Contactez votre responsable informatique (RSSI/OSSI), si vous pensez que ce filtrage est abusif. |
<br><br><br><br> |
<font size=1> |
Filtré par <B>DansGuardian</B></a> |
</td> |
</tr> |
</table> |
</body> |
</html> |
<!-- |
The available variables are as follows: |
- URL- gives the URL the user was trying to get to. |
- REASONGIVEN- gives the nice reason (i.e. not quoting the banned phrase). |
- REASONLOGGED- gives the reason that gets logged including full details. |
- USER- gives the username if known. |
- IP- gives the originating IP. |
You need to remove the space between the - and the variable to use them |
in your HTML. They are there above so extra processing is not required. |
More example templates are likely to be found on the DansGuardian web site |
on the Extras page. |
Daniel Barron 2002-03-27 |
--!> |
/conf/template.html |
---|
0,0 → 1,324 |
<html> |
<head> |
<title>DansGuardian - Access Denied</title> |
</head> |
<body bgcolor=#FFFFFF> |
<center> |
<table border=0 cellspacing=0 cellpadding=2 height=540 width=700> |
<tr> |
<td colspan=2 bgcolor=#FEA700 height=100 align=center> |
<font face=arial,helvetica size=6> |
<b>Access has been Denied!</b> |
</td> |
</tr> |
<tr> |
<td colspan=2 bgcolor=#FFFACD height=30 align=right> |
<font face=arial,helvetica size=3 color=black> |
<b>-USER- </b> |
</td> |
</tr> |
<tr> |
<td align=center valign=bottom width=150 bgcolor=#B0C4DE> |
<font face=arial,helvetica size=1 color=black> |
<img src="data:image/gif;base64, |
R0lGODlheQCVAOf/ABIaCxEbGxAbJBkaIRgiIxsiKCArKyMqMCIyIigyMzk6KDk6QjFCJ0JC |
KzhDRDtCSD1BWTxKJEhKJ01Bej9KSz5OLUtKM0tChjtSMD5LbUdSU1FTL1JSOlVJlVtSMURa |
N1lKnllJsVFSfVlaMVRSlkJiMmBaMlBbW1tSpVdSsWdQtF9TyFdiY2piLmljOmFbp2NarVFr |
O1tpU2ZayWha0XFqO1lyQmtxaHpyQ3FrpWB6SWZr13BrxXRydnJqzHV5R1yGP4V6P297e2OF |
QHxxx4h6TJZ5Q3CGSWCPQGKOTHh61YaGQWuOR42GQ3qGhpWHP3CPaGeWRoWHhGyWTmiWWo6O |
SZWOS42OZ4OPkIeF6HuWY5GGym+eToWWX4eWbHydT5eWUJeVY56WS56XUqaWR4uXmJSWk26n |
W5SfULeVUnqmYpKeepKX2JSejYenbJGmYZ2fnJ6lY4iuWIauXqWnUpinfK2mZ5iuYp6uVqOn |
l4i1Xb+mUb6mWIa2ZKWnpM6mT6ml0Jym7rOvW6Kn6Y+7XKK1aIu+XqOvsMCueK62X6C2iY+/ |
bJi+Z9auVry2XLKuzInGaqu2pZTGXpXIZ7W3tLC9i7O3xre+eq+25aTHYp3Jaa22/8W/ZKPH |
fOa2YZTPbL2+qNS/Yby+u8++jdW/fLXHjcfGYqq//6vOacG+z92/d77GnL++777Gr53XbJvX |
c6DWer7OesfGvcnOaMvPYsXHxMrHuK3XcNbHm6bZd8XOj+3HX6nXkNfObKrcc6Xec6PeesXW |
ZtXOjcDVjcTPva7ebsPP0M/VdtPWaebOhPbOX/XOZujNl/DOeeHVZcnWo8vO+d3WebHketnV |
s7bmddbeacrX2PbWa7/mcOnXi9TW09fehb7neLrnhNLW5vXXetjdrM7mc87exL/udv/da9fe |
9P7fetDueefmh/Xnb9/lx/blhOTnr+Xn5N3vx+7vlv7vb/3vduXu9/j1j/72e/D2w/72s//9 |
efv/cvD2+P/+gvP+1/r+7Pj+//z/+////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAP8A |
LAAAAAB5AJUAAAj+AP8JHEiwoMGDCBMqVFhLlKVHgwINAvQIkCVRCzNq3Mixo8eDolI9ArRF |
icksbJRkUZJlx5ZHtT7KnEmzpihAW4jQ2LEji89AmwJtGropUJYdgGoqXcp0oChAgHzQWDFj |
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 |
JYuCEm2QwhikAAY4yKIWEn70tAICADs="/><BR><CENTER>ALCASAR</CENTER> |
</td> |
<td width=550 bgcolor=#FFFFFF align=center valign=center> |
<font face=arial,helvetica color=black> |
<font size=4> |
Access to the page: |
<br><br> |
-URL- |
<br><br> |
<font size=3> |
... has been denied for the following reason: |
<br><br> |
<font color=red> |
<b>-REASONGIVEN-</b> |
<font color=black> |
<br><br><br><br> |
You are seeing this error because what you attempted to access appears to contain, |
or is labeled as containing, material that has been deemed inapproriate. |
<br><br> |
If you have any queries contact your ICT Co-ordinator or Network Manager. |
<br><br><br><br> |
<font size=1> |
Filtered by <B>DansGuardian</B></a> |
</td> |
</tr> |
</table> |
</body> |
</html> |
<!-- |
The available variables are as follows: |
- URL- gives the URL the user was trying to get to. |
- REASONGIVEN- gives the nice reason (i.e. not quoting the banned phrase). |
- REASONLOGGED- gives the reason that gets logged including full details. |
- USER- gives the username if known. |
- IP- gives the originating IP. |
You need to remove the space between the - and the variable to use them |
in your HTML. They are there above so extra processing is not required. |
More example templates are likely to be found on the DansGuardian web site |
on the Extras page. |
Daniel Barron 2002-03-27 |
--!> |
/conf/localdomain.rev |
---|
0,0 → 1,8 |
$TTL 86400 |
@ IN SOA localhost. root.localhost. ( |
1997022700 ; Serial |
28800 ; Refresh |
14400 ; Retry |
3600000 ; Expire |
86400 ) ; Minimum |
IN NS localhost. |
/conf/localdomain.zone |
---|
0,0 → 1,9 |
$TTL 86400 |
@ IN SOA localhost root ( |
2010020401 ; serial (d. adams) |
3H ; refresh |
15M ; retry |
1W ; expiry |
1D ) ; minimum |
IN NS localhost |
localhost IN A 127.0.0.1 |
/conf/user_edit.attrs |
---|
0,0 → 1,50 |
# |
# Attributes which will be visible in the user/group edit pages |
# |
# Format: Attribute Comment |
# |
# |
#Auth-Type <a href="help/auth_type_help.html" target=su_help onclick=window.open("help/auth_type_help.html","su_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Auth-Type Help Page"><font color="blue">Auth-Type</font></a> |
Simultaneous-Use <a href="help/simultaneous_use_help.html" target=su_help onclick=window.open("help/simultaneous_use_help.html","su_help","width=560,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Simultaneous Use Help Page"><font color="blue">Nombre de session simultanée</font></a> |
#Framed-Protocol <a href="help/framed_protocol_help.html" target=fpr_help onclick=window.open("help/framed_protocol_help.htlml","fpr_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Framed-Protocol Help PPage"><font color="blue">Protocol</font></a> |
#Framed-IP-Address <a href="help/framed_ip_address_help.html" target=fia_help onclick=window.open("help/framed_ip_address_help.html","fia_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Framed-IP-Address Help Page"><font color="blue">IP Address</font></a> |
#Framed-IP-Netmask IP Netmask |
#Framed-Route Route |
#Framed-Routing |
#Filter-Id <a href="help/filter_id_help.html" target=fid_help onclick=window.open("help/filter_id_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Filter-ID Help Page"><font color="blue">Filter ID</font></a> |
#Framed-MTU <a href="help/framed_mtu_help.html" target=fid_help onclick=window.open("help/framed_mtu_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Framed-MTU Help Page"><font color="blue">Framed-MTU</font></a> |
#Framed-Compression <a href="help/framed_compression_help.html" target=fc_help onclick=window.open("help/framed_compression_help.html","fc_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="Framed Compression Help Page"><font color="blue">Compression Used</font></a> |
#Service-Type <a href="help/service_type_help.html" target=st_help onclick=window.open("help/service_type_help.html","st_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Service-Type Help Page"><font color="blue">Service Type</font></a> |
#Login-IP-Host |
#Login-Service |
#Login-TCP-Port |
#Callback-Number <a href="help/callback_number_help.html" target=fid_help onclick=window.open("help/callback_number_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Callback-Number Help Page"><font color="blue">Callback-Number</font></a> |
#Callback-Id <a href="help/callback_id_help.html" target=fid_help onclick=window.open("help/callback_id_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Callback-ID Help Page"><font color="blue">Callback-ID</font></a> |
#Framed-IPX-Network |
#Class <a href="help/class_help.html" target=fid_help onclick=window.open("help/class_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Class Help Page"><font color="blue">Class</font></a> |
Session-Timeout <a href="help/session_timeout_help.html" target=st_help onclick=window.open("help/session_timeout_help.html","st_help","width=600,height=250,toolbar=no,scrollbars=no,resizable=yes") title="Session Timeout Help Page"><font color="blue">Durée limite d'une session</font></a><BR>(en secondes) |
#Idle-Timeout <a href="help/idle_timeout_help.html" target=it_help onclick=window.open("help/idle_timeout_help.html","it_help","width=600,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Idle Timeout Help Page"><font color="blue">Idle Timeout</font></a> |
#Termination-Action |
#Login-LAT-Service |
#Login-LAT-Node |
#Login-LAT-Group |
#Framed-AppleTalk-Link |
#Framed-AppleTalk-Network |
#Framed-AppleTalk-Zone |
#Port-Limit <a href="help/port_limit_help.html" target=pl_help onclick=window.open("help/port_limit_help.html","pl_help","width=600,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Port Limit Help Page"><font color="blue">Port Limit</font></a> |
#Login-LAT-Port |
#Dialup-Access <a href="help/dialup_access_help.html" target=da_help onclick=window.open("help/dialup_access_help.html","da_help","width=560,height=200,toolbar=no,scrollbars=no,resizable=yes") title="Dialup Access Help Page"><font color="blue">Dialup Access (use FALSE to lock)</font></a> |
#Dialup-Lock-Msg <a href="help/lock_message_help.html" target=lm_help onclick=window.open("help/lock_message_help.html","lm_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="Lock Message Help Page"><font color="blue">Lock Message</font></a> |
#Reply-Message <a href="help/reply_message_help.html" target=lm_help onclick=window.open("help/reply_message_help.html","lm_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="Reply-Message Help Page"><font color="blue">Reply-Message</font></a> |
Max-Daily-Session <a href="help/session_timeout_help.html" target=st_help onclick=window.open("help/session_timeout_help.html","st_help","width=600,height=250,toolbar=no,scrollbars=no,resizable=yes") title="Session Timeout Help Page"><font color="blue">Durée limite journalière</font></a><BR>(en secondes) |
#Max-Weekly-Session Weekly Limit (secs) |
Max-Monthly-Session <a href="help/session_timeout_help.html" target=st_help onclick=window.open("help/session_timeout_help.html","st_help","width=600,height=250,toolbar=no,scrollbars=no,resizable=yes") title="Session Timeout Help Page"><font color="blue">Durée limite mensuelle</font></a><BR>(en secondes) |
#Login-Time <a href="login_time_create.php?val=$name1&first=yes" target=lt_create onclick=window.open("login_time_create.php?val=$name1&first=yes","lt_create","width=600,height=490,toolbar=no,scrollbars=yes,resizable=yes") title="Login-Time Creation Page"><font color="blue">Période hebdomadaire</font></a><a href="help/login_time_help.html" target=lt_help onclick=window.open("help/login_time_help.html","lt_help","width=600,height=370,toolbar=no,scrollbars=no,resizable=yes") title="Login-Time Help Page"><font color="blue"><BR>(Format UUCP)</font></a> |
Login-Time <a href="help/login_time_help.html" target=lt_help onclick=window.open("help/login_time_help.html","lt_help","width=600,height=370,toolbar=no,scrollbars=no,resizable=yes") title="Login-Time Help Page"><font color="blue">Période hebdomadaire</font></a> |
Expiration <a href="help/expiration_help.html" target=lt_help onclick=window.open("help/expiration_help.html","lt_help","width=600,height=250,toolbar=no,scrollbars=no,resizable=yes") title="Expiration Help Page"><font color="blue">Date d'expiration</font></a> |
# |
# Uncomment this if you are using ldap and you are using user regular profiles. |
# Also make sure that Regular-Profile maps to the correct ldap attribute in |
# extra.ldap-attrmap |
# |
#Regular-Profile User Regular Profile DN |
/conf/ldap |
---|
0,0 → 1,161 |
# -*- text -*- |
# |
# $Id$ |
# Lightweight Directory Access Protocol (LDAP) |
# |
# This module definition allows you to use LDAP for |
# authorization and authentication. |
# |
# See raddb/sites-available/default for reference to the |
# ldap module in the authorize and authenticate sections. |
# |
# However, LDAP can be used for authentication ONLY when the |
# Access-Request packet contains a clear-text User-Password |
# attribute. LDAP authentication will NOT work for any other |
# authentication method. |
# |
# This means that LDAP servers don't understand EAP. If you |
# force "Auth-Type = LDAP", and then send the server a |
# request containing EAP authentication, then authentication |
# WILL NOT WORK. |
# |
# The solution is to use the default configuration, which does |
# work. |
# |
# Setting "Auth-Type = LDAP" is ALMOST ALWAYS WRONG. We |
# really can't emphasize this enough. |
# |
ldap { |
# |
# Note that this needs to match the name in the LDAP |
# server certificate, if you're using ldaps. |
server = "" |
identity = "" |
password = |
basedn = "dc=example,dc=com" |
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" |
base_filter = "" |
# How many connections to keep open to the LDAP server. |
# This saves time over opening a new LDAP socket for |
# every authentication request. |
ldap_connections_number = 5 |
# seconds to wait for LDAP query to finish. default: 20 |
timeout = 4 |
# seconds LDAP server has to process the query (server-side |
# time limit). default: 20 |
# |
# LDAP_OPT_TIMELIMIT is set to this value. |
timelimit = 3 |
# |
# seconds to wait for response of the server. (network |
# failures) default: 10 |
# |
# LDAP_OPT_NETWORK_TIMEOUT is set to this value. |
net_timeout = 1 |
# |
# This subsection configures the tls related items |
# that control how FreeRADIUS connects to an LDAP |
# server. It contains all of the "tls_*" configuration |
# entries used in older versions of FreeRADIUS. Those |
# configuration entries can still be used, but we recommend |
# using these. |
# |
tls { |
# Set this to 'yes' to use TLS encrypted connections |
# to the LDAP database by using the StartTLS extended |
# operation. |
# |
# The StartTLS operation is supposed to be |
# used with normal ldap connections instead of |
# using ldaps (port 689) connections |
start_tls = no |
# cacertfile = /path/to/cacert.pem |
# cacertdir = /path/to/ca/dir/ |
# certfile = /path/to/radius.crt |
# keyfile = /path/to/radius.key |
# randfile = /path/to/rnd |
# Certificate Verification requirements. Can be: |
# "never" (don't even bother trying) |
# "allow" (try, but don't fail if the cerificate |
# can't be verified) |
# "demand" (fail if the certificate doesn't verify.) |
# |
# The default is "allow" |
# require_cert = "demand" |
} |
# default_profile = "cn=radprofile,ou=dialup,o=My Org,c=UA" |
# profile_attribute = "radiusProfileDn" |
# access_attr = "dialupAccess" |
# Mapping of RADIUS dictionary attributes to LDAP |
# directory attributes. |
dictionary_mapping = ${confdir}/ldap.attrmap |
# Set password_attribute = nspmPassword to get the |
# user's password from a Novell eDirectory |
# backend. This will work ONLY IF FreeRADIUS has been |
# built with the --with-edir configure option. |
# |
# See also the following links: |
# |
# http://www.novell.com/coolsolutions/appnote/16745.html |
# https://secure-support.novell.com/KanisaPlatform/Publishing/558/3009668_f.SAL_Public.html |
# |
# Novell may require TLS encrypted sessions before returning |
# the user's password. |
# |
# password_attribute = userPassword |
# Un-comment the following to disable Novell |
# eDirectory account policy check and intruder |
# detection. This will work *only if* FreeRADIUS is |
# configured to build with --with-edir option. |
# |
edir_account_policy_check = no |
# |
# Group membership checking. Disabled by default. |
# |
# groupname_attribute = cn |
# groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))" |
# groupmembership_attribute = radiusGroupName |
# compare_check_items = yes |
# do_xlat = yes |
# access_attr_used_for_allow = yes |
# |
# By default, if the packet contains a User-Password, |
# and no other module is configured to handle the |
# authentication, the LDAP module sets itself to do |
# LDAP bind for authentication. |
# |
# THIS WILL ONLY WORK FOR PAP AUTHENTICATION. |
# |
# THIS WILL NOT WORK FOR CHAP, MS-CHAP, or 802.1x (EAP). |
# |
# You can disable this behavior by setting the following |
# configuration entry to "no". |
# |
# allowed values: {no, yes} |
# set_auth_type = yes |
# set_auth_type = no |
# ldap_debug: debug flag for LDAP SDK |
# (see OpenLDAP documentation). Set this to enable |
# huge amounts of LDAP debugging on the screen. |
# You should only use this if you are an LDAP expert. |
# |
# default: 0x0000 (no debugging messages) |
# Example:(LDAP_DEBUG_FILTER+LDAP_DEBUG_CONNS) |
#ldap_debug = 0x0028 |
} |
/conf/logrotate.d/dansguardian |
---|
0,0 → 1,13 |
/var/log/dansguardian/access.log { |
create 644 dansguardian dansguardian |
rotate 5 |
dateext |
weekly |
sharedscripts |
prerotate |
service dansguardian stop |
endscript |
postrotate |
service dansguardian start |
endscript |
} |
/conf/logrotate.d/syslog |
---|
0,0 → 1,15 |
# WARNING : don't use * wildcard as extension |
# (glob in logrotate will try to rotate all files instead of |
# only the basenames of the logs, i.e. it will rotate |
# already rotated files and recompress them, taking |
# exponential time...) |
/var/log/auth.log /var/log/syslog /var/log/user.log /var/log/secure /var/log/messages /var/log/boot.log /var/log/mail/errors /var/log/mail/info /var/log/mail/warnings /var/log/cron/errors /var/log/cron/info /var/log/cron/warnings /var/log/kernel/errors /var/log/kernel/info /var/log/kernel/warnings /var/log/lpr/errors /var/log/lpr/info /var/log/lpr/warnings /var/log/news/news.err /var/log/news/news.notice /var/log/news/news.crit /var/log/daemons/errors /var/log/daemons/info /var/log/daemons/warnings /var/log/explanations { |
sharedscripts |
rotate 5 |
weekly |
postrotate |
[ -f /var/run/syslog-ng.pid ] && kill -HUP `cat /var/run/syslog-ng.pid` || true |
[ -f /var/run/syslogd.pid ] && kill -HUP `cat /var/run/syslogd.pid` || true |
endscript |
} |
/conf/logrotate.d/httpd |
---|
0,0 → 1,27 |
/var/log/httpd/access_log /var/log/httpd/ssl_access_log{ |
rotate 12 |
monthly |
dateext |
missingok |
notifempty |
compress |
prerotate |
/etc/rc.d/init.d/httpd closelogs > /dev/null 2>&1 |
endscript |
postrotate |
/etc/rc.d/init.d/httpd closelogs > /dev/null 2>&1 |
endscript |
} |
/var/log/httpd/apache_runtime_status /var/log/httpd/ssl_mutex /var/log/httpd/error_ /var/log/httpd/ssl_request_log { |
rotate 4 |
monthly |
missingok |
notifempty |
compress |
prerotate |
/etc/rc.d/init.d/httpd closelogs > /dev/null 2>&1 |
endscript |
postrotate |
/etc/rc.d/init.d/httpd closelogs > /dev/null 2>&1 |
endscript |
} |
/conf/logrotate.d/squid |
---|
0,0 → 1,32 |
/var/log/squid/access.log { |
weekly |
rotate 52 |
dateext |
copytruncate |
compress |
notifempty |
missingok |
} |
/var/log/squid/cache.log { |
weekly |
rotate 5 |
copytruncate |
compress |
notifempty |
missingok |
} |
/var/log/squid/store.log { |
weekly |
rotate 5 |
copytruncate |
compress |
notifempty |
missingok |
# This script asks squid to rotate its logs on its own. |
# Restarting squid is a long process and it is not worth |
# doing it just to rotate logs |
postrotate |
/usr/sbin/squid -k rotate |
endscript |
} |
/conf/logrotate.d/mysqld |
---|
0,0 → 1,37 |
# This logname can be set in /etc/my.cnf |
# by setting the variable "err-log" |
# in the [safe_mysqld] section as follows: |
# |
# [safe_mysqld] |
# err-log=/var/lib/mysql/mysqld.log |
# |
# If the root user has a password you have to create a |
# /root/.my.cnf configuration file with the following |
# content: |
# |
# [mysqladmin] |
# password = <secret> |
# user= root |
# |
# where "<secret>" is the password. |
# |
# ATTENTION: This /root/.my.cnf should be readable ONLY |
# for root ! |
/var/log/mysqld/mysqld.log { |
# create 600 mysql mysql |
notifempty |
daily |
rotate 31 |
dateext |
missingok |
compress |
postrotate |
# just if mysqld is really running |
if test -x /usr/bin/mysqladmin && \ |
/usr/bin/mysqladmin ping &>/dev/null |
then |
/usr/bin/mysqladmin flush-logs |
fi |
endscript |
} |
/conf/logrotate.d/ulogd |
---|
0,0 → 1,10 |
/var/log/firewall/firewall.log { |
missingok |
rotate 52 |
weekly |
dateext |
sharedscripts |
postrotate |
/etc/init.d/ulogd restart |
endscript |
} |
/conf/logrotate.d/radiusd |
---|
0,0 → 1,7 |
/var/log/radius/radacct/*/detail /var/log/radius/*.log /var/log/radius/radutmp /var/log/radius/radwtmp { |
monthly |
rotate 4 |
nocreate |
missingok |
compress |
} |
/conf/sudoers |
---|
0,0 → 1,48 |
# sudoers file. |
# |
# This file MUST be edited with the 'visudo' command as root. |
# |
# See the sudoers man page for the details on how to write a sudoers file. |
# |
# Host alias specification |
Host_Alias LAN_ORG=192.168.182.0/24,localhost #réseau de l'organisme |
# User alias specification |
User_Alias ADMIN=sysadmin # compte d'admin local de l'organisme |
User_Alias ADMOSSI=apache # compte d'admin OSSI (web) |
# Cmnd alias specification |
Cmnd_Alias NET=/sbin/arping,/sbin/arp,/usr/sbin/arpscan,/usr/sbin/tcpdump # commandes réseau |
Cmnd_Alias URPMI=/usr/sbin/urpmi,/usr/sbin/urpmi.update # gestion des paquetages |
Cmnd_Alias BYPASS=/usr/local/sbin/alcasar-bypass-on.sh,/usr/local/sbin/alcasar-bypass-off.sh # contournement du système d'authentification |
Cmnd_Alias RADDB=/usr/bin/radwho,/usr/sbin/chilli_query # pour la gestion des usagers en ligne |
Cmnd_Alias SQL=/usr/local/sbin/alcasar-mysql.sh # pour exporter la base mysql |
Cmnd_Alias GHOST=/usr/local/bin/alcasar-mondo.sh # pour générer une image iso du serveur |
Cmnd_Alias EXPORT=/usr/local/bin/alcasar-log-export.sh # pour exporter/sauvegarder les fichiers journaux |
Cmnd_Alias BL=/usr/local/sbin/alcasar-bl.sh # pour gérer les blacklists et whitelist |
Cmnd_Alias NF=/usr/local/sbin/alcasar-nf.sh # pour gérer le filtrage réseau |
Cmnd_Alias LOGOUT=/usr/local/sbin/alcasar-logout.sh # pour déconnecter les usagers |
Cmnd_Alias UAM=/usr/local/sbin/alcasar-uamallowed.sh # pour gérer les site de confiance (uamallowed) |
Cmnd_Alias SERVICE=/sbin/service,/usr/bin/killall # pour gérer les site de confiance (uamallowed) |
# Defaults specification |
# Defaults syslog=auth |
# Runas alias specification |
# User privilege specification |
root ALL=(ALL) ALL |
# Uncomment to allow people in group wheel to run all commands |
# %wheel ALL=(ALL) ALL |
# Same thing without a password |
# %wheel ALL=(ALL) NOPASSWD: ALL |
# Samples |
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom |
# %users localhost=/sbin/shutdown -h now |
ADMOSSI LAN_ORG=(root) NOPASSWD: NET,BYPASS,GHOST,SQL,BL,NF,EXPORT,RADDB,LOGOUT,UAM,SERVICE |
ADMIN LAN_ORG=(root) NOPASSWD: NET,/sbin/poweroff,/sbin/shutdown -h now,/sbin/reboot,URPMI,BYPASS,GHOST,SQL,EXPORT |
/conf/ldap.attrmap |
---|
0,0 → 1,77 |
# |
# Mapping of RADIUS dictionary attributes to LDAP directory attributes |
# to be used by LDAP authentication and authorization module (rlm_ldap) |
# |
# Format: |
# ItemType RADIUS-Attribute-Name ldapAttributeName [operator] |
# |
# Where: |
# ItemType = checkItem or replyItem |
# RADIUS-Attribute-Name = attribute name in RADIUS dictionary |
# ldapAttributeName = attribute name in LDAP schema |
# operator = optional, and may not be present. |
# If not present, defaults to "==" for checkItems, |
# and "=" for replyItems. |
# If present, the operator here should be one |
# of the same operators as defined in the "users"3 |
# file ("man users", or "man 5 users"). |
# If an operator is present in the value of the |
# LDAP entry (i.e. ":=foo"), then it over-rides |
# both the default, and any operator given here. |
# |
# If $GENERIC$ is specified as RADIUS-Attribute-Name, the line specifies |
# a LDAP attribute which can be used to store any RADIUS |
# attribute/value-pair in LDAP directory. |
# |
# You should edit this file to suit it to your needs. |
# |
# Au moins une définition doit être présente pour l'authentification LDAP seule |
# ==--> (rajout de uid et commentaire de tout le reste pour laisser le soin à sql radius |
# de gérer les personnalisations de comportement du portail |
checkItem $GENERIC$ uid |
#checkItem $GENERIC$ radiusCheckItem |
#replyItem $GENERIC$ radiusReplyItem |
#checkItem Auth-Type radiusAuthType |
#checkItem Simultaneous-Use radiusSimultaneousUse |
#checkItem Called-Station-Id radiusCalledStationId |
#checkItem Calling-Station-Id radiusCallingStationId |
#checkItem LM-Password lmPassword |
#checkItem NT-Password ntPassword |
#checkItem LM-Password sambaLmPassword |
#checkItem NT-Password sambaNtPassword |
#checkItem LM-Password dBCSPwd |
#checkItem SMB-Account-CTRL-TEXT acctFlags |
#checkItem SMB-Account-CTRL-TEXT sambaAcctFlags |
#checkItem Expiration radiusExpiration |
#checkItem NAS-IP-Address radiusNASIpAddress |
# |
#replyItem Service-Type radiusServiceType |
#replyItem Framed-Protocol radiusFramedProtocol |
#replyItem Framed-IP-Address radiusFramedIPAddress |
#replyItem Framed-IP-Netmask radiusFramedIPNetmask |
#replyItem Framed-Route radiusFramedRoute |
#replyItem Framed-Routing radiusFramedRouting |
#replyItem Filter-Id radiusFilterId |
#replyItem Framed-MTU radiusFramedMTU |
#replyItem Framed-Compression radiusFramedCompression |
#replyItem Login-IP-Host radiusLoginIPHost |
#replyItem Login-Service radiusLoginService |
#replyItem Login-TCP-Port radiusLoginTCPPort |
#replyItem Callback-Number radiusCallbackNumber |
#replyItem Callback-Id radiusCallbackId |
#replyItem Framed-IPX-Network radiusFramedIPXNetwork |
#replyItem Class radiusClass |
#replyItem Session-Timeout radiusSessionTimeout |
#replyItem Idle-Timeout radiusIdleTimeout |
#replyItem Termination-Action radiusTerminationAction |
#replyItem Login-LAT-Service radiusLoginLATService |
#replyItem Login-LAT-Node radiusLoginLATNode |
#replyItem Login-LAT-Group radiusLoginLATGroup |
#replyItem Framed-AppleTalk-Link radiusFramedAppleTalkLink |
#replyItem Framed-AppleTalk-Network radiusFramedAppleTalkNetwork |
#replyItem Framed-AppleTalk-Zone radiusFramedAppleTalkZone |
#replyItem Port-Limit radiusPortLimit |
#replyItem Login-LAT-Port radiusLoginLATPort |
#replyItem Reply-Message radiusReplyMessage |
/conf/alcasar-radius |
---|
0,0 → 1,503 |
###################################################################### |
# |
# As of 2.0.0, FreeRADIUS supports virtual hosts using the |
# "server" section, and configuration directives. |
# |
# Virtual hosts should be put into the "sites-available" |
# directory. Soft links should be created in the "sites-enabled" |
# directory to these files. This is done in a normal installation. |
# |
# $Id$ |
# |
###################################################################### |
# |
# Read "man radiusd" before editing this file. See the section |
# titled DEBUGGING. It outlines a method where you can quickly |
# obtain the configuration you want, without running into |
# trouble. See also "man unlang", which documents the format |
# of this file. |
# |
# This configuration is designed to work in the widest possible |
# set of circumstances, with the widest possible number of |
# authentication methods. This means that in general, you should |
# need to make very few changes to this file. |
# |
# The best way to configure the server for your local system |
# is to CAREFULLY edit this file. Most attempts to make large |
# edits to this file will BREAK THE SERVER. Any edits should |
# be small, and tested by running the server with "radiusd -X". |
# Once the edits have been verified to work, save a copy of these |
# configuration files somewhere. (e.g. as a "tar" file). Then, |
# make more edits, and test, as above. |
# |
# There are many "commented out" references to modules such |
# as ldap, sql, etc. These references serve as place-holders. |
# If you need the functionality of that module, then configure |
# it in radiusd.conf, and un-comment the references to it in |
# this file. In most cases, those small changes will result |
# in the server being able to connect to the DB, and to |
# authenticate users. |
# |
###################################################################### |
# |
# In 1.x, the "authorize", etc. sections were global in |
# radiusd.conf. As of 2.0, they SHOULD be in a server section. |
# |
# The server section with no virtual server name is the "default" |
# section. It is used when no server name is specified. |
# |
# We don't indent the rest of this file, because doing so |
# would make it harder to read. |
# |
# Authorization. First preprocess (hints and huntgroups files), |
# then realms, and finally look in the "users" file. |
# |
# The order of the realm modules will determine the order that |
# we try to find a matching realm. |
# |
# Make *sure* that 'preprocess' comes before any realm if you |
# need to setup hints for the remote radius server |
authorize { |
# |
# The preprocess module takes care of sanitizing some bizarre |
# attributes in the request, and turning them into attributes |
# which are more standard. |
# |
# It takes care of processing the 'raddb/hints' and the |
# 'raddb/huntgroups' files. |
# |
# It also adds the %{Client-IP-Address} attribute to the request. |
preprocess |
# |
# If you want to have a log of authentication requests, |
# un-comment the following line, and the 'detail auth_log' |
# section, above. |
# auth_log |
# |
# The chap module will set 'Auth-Type := CHAP' if we are |
# handling a CHAP request and Auth-Type has not already been set |
# chap |
# |
# If the users are logging in with an MS-CHAP-Challenge |
# attribute for authentication, the mschap module will find |
# the MS-CHAP-Challenge attribute, and add 'Auth-Type := MS-CHAP' |
# to the request, which will cause the server to then use |
# the mschap module for authentication. |
# mschap |
# |
# If you have a Cisco SIP server authenticating against |
# FreeRADIUS, uncomment the following line, and the 'digest' |
# line in the 'authenticate' section. |
# digest |
# |
# Look for IPASS style 'realm/', and if not found, look for |
# '@realm', and decide whether or not to proxy, based on |
# that. |
# IPASS |
# |
# If you are using multiple kinds of realms, you probably |
# want to set "ignore_null = yes" for all of them. |
# Otherwise, when the first style of realm doesn't match, |
# the other styles won't be checked. |
# |
# suffix |
# ntdomain |
# |
# This module takes care of EAP-MD5, EAP-TLS, and EAP-LEAP |
# authentication. |
# |
# It also sets the EAP-Type attribute in the request |
# attribute list to the EAP type from the packet. |
# |
# As of 2.0, the EAP module returns "ok" in the authorize stage |
# for TTLS and PEAP. In 1.x, it never returned "ok" here, so |
# this change is compatible with older configurations. |
# |
# The example below uses module failover to avoid querying all |
# of the following modules if the EAP module returns "ok". |
# Therefore, your LDAP and/or SQL servers will not be queried |
# for the many packets that go back and forth to set up TTLS |
# or PEAP. The load on those servers will therefore be reduced. |
# |
# eap { |
# ok = return |
# } |
# |
# Pull crypt'd passwords from /etc/passwd or /etc/shadow, |
# using the system API's to get the password. If you want |
# to read /etc/passwd or /etc/shadow directly, see the |
# passwd module in radiusd.conf. |
# |
# unix |
# |
# Read the 'users' file |
# files |
# |
# Look in an SQL database. The schema of the database |
# is meant to mirror the "users" file. |
# |
# See "Authorization Queries" in sql.conf |
sql |
noresetcounter |
dailycounter |
monthlycounter |
# |
# If you are using /etc/smbpasswd, and are also doing |
# mschap authentication, the un-comment this line, and |
# configure the 'etc_smbpasswd' module, above. |
# etc_smbpasswd |
# |
# The ldap module will set Auth-Type to LDAP if it has not |
# already been set |
# ldap |
# |
# Enforce daily limits on time spent logged in. |
# daily |
# |
# Use the checkval module |
# checkval |
expiration |
logintime |
# |
# If no other module has claimed responsibility for |
# authentication, then try to use PAP. This allows the |
# other modules listed above to add a "known good" password |
# to the request, and to do nothing else. The PAP module |
# will then see that password, and use it to do PAP |
# authentication. |
# |
# This module should be listed last, so that the other modules |
# get a chance to set Auth-Type for themselves. |
# |
# pap |
# |
# If "status_server = yes", then Status-Server messages are passed |
# through the following section, and ONLY the following section. |
# This permits you to do DB queries, for example. If the modules |
# listed here return "fail", then NO response is sent. |
# |
# Autz-Type Status-Server { |
# |
# } |
} |
# Authentication. |
# |
# |
# This section lists which modules are available for authentication. |
# Note that it does NOT mean 'try each module in order'. It means |
# that a module from the 'authorize' section adds a configuration |
# attribute 'Auth-Type := FOO'. That authentication type is then |
# used to pick the apropriate module from the list below. |
# |
# In general, you SHOULD NOT set the Auth-Type attribute. The server |
# will figure it out on its own, and will do the right thing. The |
# most common side effect of erroneously setting the Auth-Type |
# attribute is that one authentication method will work, but the |
# others will not. |
# |
# The common reasons to set the Auth-Type attribute by hand |
# is to either forcibly reject the user (Auth-Type := Reject), |
# or to or forcibly accept the user (Auth-Type := Accept). |
# |
# Note that Auth-Type := Accept will NOT work with EAP. |
# |
# Please do not put "unlang" configurations into the "authenticate" |
# section. Put them in the "post-auth" section instead. That's what |
# the post-auth section is for. |
# |
authenticate { |
# # |
# # PAP authentication, when a back-end database listed |
# # in the 'authorize' section supplies a password. The |
# # password can be clear-text, or encrypted. |
# Auth-Type PAP { |
# pap |
# } |
# |
# # |
# # Most people want CHAP authentication |
# # A back-end database listed in the 'authorize' section |
# # MUST supply a CLEAR TEXT password. Encrypted passwords |
# # won't work. |
# Auth-Type CHAP { |
# chap |
# } |
# |
# # |
# # MSCHAP authentication. |
# Auth-Type MS-CHAP { |
# mschap |
# } |
# |
# # |
# # If you have a Cisco SIP server authenticating against |
# # FreeRADIUS, uncomment the following line, and the 'digest' |
# # line in the 'authorize' section. |
# digest |
# |
# # |
# # Pluggable Authentication Modules. |
# pam |
# |
# # |
# # See 'man getpwent' for information on how the 'unix' |
# # module checks the users password. Note that packets |
# # containing CHAP-Password attributes CANNOT be authenticated |
# # against /etc/passwd! See the FAQ for details. |
# # |
# unix |
# |
# # Uncomment it if you want to use ldap for authentication |
# # |
# # Note that this means "check plain-text password against |
# # the ldap database", which means that EAP won't work, |
# # as it does not supply a plain-text password. |
# Auth-Type LDAP { |
# ldap |
# } |
# |
# # |
# # Allow EAP authentication. |
# eap |
} |
# |
# Pre-accounting. Decide which accounting type to use. |
# |
preacct { |
preprocess |
# |
# Ensure that we have a semi-unique identifier for every |
# request, and many NAS boxes are broken. |
# acct_unique |
# |
# Look for IPASS-style 'realm/', and if not found, look for |
# '@realm', and decide whether or not to proxy, based on |
# that. |
# |
# Accounting requests are generally proxied to the same |
# home server as authentication requests. |
# IPASS |
# suffix |
# ntdomain |
# |
# Read the 'acct_users' file |
# files |
} |
# |
# Accounting. Log the accounting data. |
# |
accounting { |
# |
# Create a 'detail'ed log of the packets. |
# Note that accounting requests which are proxied |
# are also logged in the detail file. |
# detail |
# daily |
# Update the wtmp file |
# |
# If you don't use "radlast", you can delete this line. |
# unix |
# |
# For Simultaneous-Use tracking. |
# |
# Due to packet losses in the network, the data here |
# may be incorrect. There is little we can do about it. |
# radutmp |
sradutmp |
# Return an address to the IP Pool when we see a stop record. |
# main_pool |
# |
# Log traffic to an SQL database. |
# |
# See "Accounting queries" in sql.conf |
sql |
# |
# Instead of sending the query to the SQL server, |
# write it into a log file. |
# |
# sql_log |
# Cisco VoIP specific bulk accounting |
# pgsql-voip |
# Filter attributes from the accounting response. |
attr_filter.accounting_response |
# |
# See "Autz-Type Status-Server" for how this works. |
# |
# Acct-Type Status-Server { |
# |
# } |
} |
# Session database, used for checking Simultaneous-Use. Either the radutmp |
# or rlm_sql module can handle this. |
# The rlm_sql module is *much* faster |
session { |
# radutmp |
# |
# See "Simultaneous Use Checking Queries" in sql.conf |
sql |
} |
# Post-Authentication |
# Once we KNOW that the user has been authenticated, there are |
# additional steps we can take. |
post-auth { |
# Get an address from the IP Pool. |
# main_pool |
# |
# If you want to have a log of authentication replies, |
# un-comment the following line, and the 'detail reply_log' |
# section, above. |
# reply_log |
# |
# After authenticating the user, do another SQL query. |
# |
# See "Authentication Logging Queries" in sql.conf |
# sql |
# |
# Instead of sending the query to the SQL server, |
# write it into a log file. |
# |
# sql_log |
# |
# Un-comment the following if you have set |
# 'edir_account_policy_check = yes' in the ldap module sub-section of |
# the 'modules' section. |
# |
# ldap |
# exec |
# |
# Access-Reject packets are sent through the REJECT sub-section of the |
# post-auth section. |
# |
# Add the ldap module name (or instance) if you have set |
# 'edir_account_policy_check = yes' in the ldap module configuration |
# |
Post-Auth-Type REJECT { |
attr_filter.access_reject |
} |
} |
# |
# When the server decides to proxy a request to a home server, |
# the proxied request is first passed through the pre-proxy |
# stage. This stage can re-write the request, or decide to |
# cancel the proxy. |
# |
# Only a few modules currently have this method. |
# |
pre-proxy { |
# attr_rewrite |
# Uncomment the following line if you want to change attributes |
# as defined in the preproxy_users file. |
# files |
# Uncomment the following line if you want to filter requests |
# sent to remote servers based on the rules defined in the |
# 'attrs.pre-proxy' file. |
# attr_filter.pre-proxy |
# If you want to have a log of packets proxied to a home |
# server, un-comment the following line, and the |
# 'detail pre_proxy_log' section, above. |
# pre_proxy_log |
} |
# |
# When the server receives a reply to a request it proxied |
# to a home server, the request may be massaged here, in the |
# post-proxy stage. |
# |
post-proxy { |
# If you want to have a log of replies from a home server, |
# un-comment the following line, and the 'detail post_proxy_log' |
# section, above. |
# post_proxy_log |
# attr_rewrite |
# Uncomment the following line if you want to filter replies from |
# remote proxies based on the rules defined in the 'attrs' file. |
# attr_filter.post-proxy |
# |
# If you are proxying LEAP, you MUST configure the EAP |
# module, and you MUST list it here, in the post-proxy |
# stage. |
# |
# You MUST also use the 'nostrip' option in the 'realm' |
# configuration. Otherwise, the User-Name attribute |
# in the proxied request will not match the user name |
# hidden inside of the EAP packet, and the end server will |
# reject the EAP request. |
# |
# eap |
# |
# If the server tries to proxy a request and fails, then the |
# request is processed through the modules in this section. |
# |
# The main use of this section is to permit robust proxying |
# of accounting packets. The server can be configured to |
# proxy accounting packets as part of normal processing. |
# Then, if the home server goes down, accounting packets can |
# be logged to a local "detail" file, for processing with |
# radrelay. When the home server comes back up, radrelay |
# will read the detail file, and send the packets to the |
# home server. |
# |
# With this configuration, the server always responds to |
# Accounting-Requests from the NAS, but only writes |
# accounting packets to disk if the home server is down. |
# |
# Post-Proxy-Type Fail { |
# detail |
# } |
} |
/conf/radiusd-db-vierge.sql |
---|
0,0 → 1,349 |
-- MySQL dump 10.11 |
-- |
-- Host: localhost Database: radius |
-- ------------------------------------------------------ |
-- Server version 5.0.67 |
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; |
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; |
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; |
/*!40101 SET NAMES utf8 */; |
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; |
/*!40103 SET TIME_ZONE='+00:00' */; |
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; |
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; |
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; |
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; |
-- |
-- Current Database: `radius` |
-- |
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `radius` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */; |
USE `radius`; |
-- |
-- Table structure for table `mtotacct` |
-- |
DROP TABLE IF EXISTS `mtotacct`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `mtotacct` ( |
`MTotAcctId` bigint(21) NOT NULL auto_increment, |
`UserName` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`AcctDate` date NOT NULL default '0000-00-00', |
`ConnNum` bigint(12) default NULL, |
`ConnTotDuration` bigint(12) default NULL, |
`ConnMaxDuration` bigint(12) default NULL, |
`ConnMinDuration` bigint(12) default NULL, |
`InputOctets` bigint(12) default NULL, |
`OutputOctets` bigint(12) default NULL, |
`NASIPAddress` varchar(15) collate utf8_unicode_ci default NULL, |
PRIMARY KEY (`MTotAcctId`), |
KEY `UserName` (`UserName`), |
KEY `AcctDate` (`AcctDate`), |
KEY `UserOnDate` (`UserName`,`AcctDate`), |
KEY `NASIPAddress` (`NASIPAddress`) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `mtotacct` |
-- |
LOCK TABLES `mtotacct` WRITE; |
/*!40000 ALTER TABLE `mtotacct` DISABLE KEYS */; |
/*!40000 ALTER TABLE `mtotacct` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radacct` |
-- |
DROP TABLE IF EXISTS `radacct`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radacct` ( |
`radacctid` bigint(21) NOT NULL auto_increment, |
`acctsessionid` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`acctuniqueid` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`username` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`groupname` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`realm` varchar(64) collate utf8_unicode_ci default '', |
`nasipaddress` varchar(15) collate utf8_unicode_ci NOT NULL default '', |
`nasportid` varchar(15) collate utf8_unicode_ci default NULL, |
`nasporttype` varchar(32) collate utf8_unicode_ci default NULL, |
`acctstarttime` datetime default NULL, |
`acctstoptime` datetime default NULL, |
`acctsessiontime` int(12) default NULL, |
`acctauthentic` varchar(32) collate utf8_unicode_ci default NULL, |
`connectinfo_start` varchar(50) collate utf8_unicode_ci default NULL, |
`connectinfo_stop` varchar(50) collate utf8_unicode_ci default NULL, |
`acctinputoctets` bigint(20) default NULL, |
`acctoutputoctets` bigint(20) default NULL, |
`calledstationid` varchar(50) collate utf8_unicode_ci NOT NULL default '', |
`callingstationid` varchar(50) collate utf8_unicode_ci NOT NULL default '', |
`acctterminatecause` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`servicetype` varchar(32) collate utf8_unicode_ci default NULL, |
`framedprotocol` varchar(32) collate utf8_unicode_ci default NULL, |
`framedipaddress` varchar(15) collate utf8_unicode_ci NOT NULL default '', |
`acctstartdelay` int(12) default NULL, |
`acctstopdelay` int(12) default NULL, |
`xascendsessionsvrkey` varchar(10) collate utf8_unicode_ci default NULL, |
PRIMARY KEY (`radacctid`), |
KEY `username` (`username`), |
KEY `framedipaddress` (`framedipaddress`), |
KEY `acctsessionid` (`acctsessionid`), |
KEY `acctsessiontime` (`acctsessiontime`), |
KEY `acctuniqueid` (`acctuniqueid`), |
KEY `acctstarttime` (`acctstarttime`), |
KEY `acctstoptime` (`acctstoptime`), |
KEY `nasipaddress` (`nasipaddress`) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radacct` |
-- |
LOCK TABLES `radacct` WRITE; |
/*!40000 ALTER TABLE `radacct` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radacct` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radcheck` |
-- |
DROP TABLE IF EXISTS `radcheck`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radcheck` ( |
`id` int(11) unsigned NOT NULL auto_increment, |
`username` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`attribute` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`op` char(2) collate utf8_unicode_ci NOT NULL default '==', |
`value` varchar(253) collate utf8_unicode_ci NOT NULL default '', |
PRIMARY KEY (`id`), |
KEY `username` (`username`(32)) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radcheck` |
-- |
LOCK TABLES `radcheck` WRITE; |
/*!40000 ALTER TABLE `radcheck` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radcheck` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radgroupcheck` |
-- |
DROP TABLE IF EXISTS `radgroupcheck`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radgroupcheck` ( |
`id` int(11) unsigned NOT NULL auto_increment, |
`groupname` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`attribute` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`op` char(2) collate utf8_unicode_ci NOT NULL default '==', |
`value` varchar(253) collate utf8_unicode_ci NOT NULL default '', |
PRIMARY KEY (`id`), |
KEY `groupname` (`groupname`(32)) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radgroupcheck` |
-- |
LOCK TABLES `radgroupcheck` WRITE; |
/*!40000 ALTER TABLE `radgroupcheck` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radgroupcheck` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radgroupreply` |
-- |
DROP TABLE IF EXISTS `radgroupreply`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radgroupreply` ( |
`id` int(11) unsigned NOT NULL auto_increment, |
`groupname` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`attribute` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`op` char(2) collate utf8_unicode_ci NOT NULL default '=', |
`value` varchar(253) collate utf8_unicode_ci NOT NULL default '', |
PRIMARY KEY (`id`), |
KEY `groupname` (`groupname`(32)) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radgroupreply` |
-- |
LOCK TABLES `radgroupreply` WRITE; |
/*!40000 ALTER TABLE `radgroupreply` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radgroupreply` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radpostauth` |
-- |
DROP TABLE IF EXISTS `radpostauth`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radpostauth` ( |
`id` int(11) NOT NULL auto_increment, |
`username` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`reply` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`authdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, |
PRIMARY KEY (`id`) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radpostauth` |
-- |
LOCK TABLES `radpostauth` WRITE; |
/*!40000 ALTER TABLE `radpostauth` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radpostauth` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radreply` |
-- |
DROP TABLE IF EXISTS `radreply`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radreply` ( |
`id` int(11) unsigned NOT NULL auto_increment, |
`username` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`attribute` varchar(32) collate utf8_unicode_ci NOT NULL default '', |
`op` char(2) collate utf8_unicode_ci NOT NULL default '=', |
`value` varchar(253) collate utf8_unicode_ci NOT NULL default '', |
PRIMARY KEY (`id`), |
KEY `username` (`username`(32)) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radreply` |
-- |
LOCK TABLES `radreply` WRITE; |
/*!40000 ALTER TABLE `radreply` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radreply` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `radusergroup` |
-- |
DROP TABLE IF EXISTS `radusergroup`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `radusergroup` ( |
`username` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`groupname` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`priority` int(11) NOT NULL default '1', |
KEY `username` (`username`(32)) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `radusergroup` |
-- |
LOCK TABLES `radusergroup` WRITE; |
/*!40000 ALTER TABLE `radusergroup` DISABLE KEYS */; |
/*!40000 ALTER TABLE `radusergroup` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `totacct` |
-- |
DROP TABLE IF EXISTS `totacct`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `totacct` ( |
`TotAcctId` bigint(21) NOT NULL auto_increment, |
`UserName` varchar(64) collate utf8_unicode_ci NOT NULL default '', |
`AcctDate` date NOT NULL default '0000-00-00', |
`ConnNum` bigint(12) default NULL, |
`ConnTotDuration` bigint(12) default NULL, |
`ConnMaxDuration` bigint(12) default NULL, |
`ConnMinDuration` bigint(12) default NULL, |
`InputOctets` bigint(12) default NULL, |
`OutputOctets` bigint(12) default NULL, |
`NASIPAddress` varchar(15) collate utf8_unicode_ci default NULL, |
PRIMARY KEY (`TotAcctId`), |
KEY `UserName` (`UserName`), |
KEY `AcctDate` (`AcctDate`), |
KEY `UserOnDate` (`UserName`,`AcctDate`), |
KEY `NASIPAddress` (`NASIPAddress`), |
KEY `NASIPAddressOnDate` (`AcctDate`,`NASIPAddress`) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `totacct` |
-- |
LOCK TABLES `totacct` WRITE; |
/*!40000 ALTER TABLE `totacct` DISABLE KEYS */; |
/*!40000 ALTER TABLE `totacct` ENABLE KEYS */; |
UNLOCK TABLES; |
-- |
-- Table structure for table `userinfo` |
-- |
DROP TABLE IF EXISTS `userinfo`; |
SET @saved_cs_client = @@character_set_client; |
SET character_set_client = utf8; |
CREATE TABLE `userinfo` ( |
`id` int(10) NOT NULL auto_increment, |
`UserName` varchar(30) collate utf8_unicode_ci default NULL, |
`Name` varchar(200) collate utf8_unicode_ci default NULL, |
`Mail` varchar(200) collate utf8_unicode_ci default NULL, |
`Department` varchar(200) collate utf8_unicode_ci default NULL, |
`WorkPhone` varchar(200) collate utf8_unicode_ci default NULL, |
`HomePhone` varchar(200) collate utf8_unicode_ci default NULL, |
`Mobile` varchar(200) collate utf8_unicode_ci default NULL, |
PRIMARY KEY (`id`), |
KEY `UserName` (`UserName`), |
KEY `Department` (`Department`) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SET character_set_client = @saved_cs_client; |
-- |
-- Dumping data for table `userinfo` |
-- |
LOCK TABLES `userinfo` WRITE; |
/*!40000 ALTER TABLE `userinfo` DISABLE KEYS */; |
/*!40000 ALTER TABLE `userinfo` ENABLE KEYS */; |
UNLOCK TABLES; |
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; |
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; |
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; |
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; |
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; |
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; |
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; |
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; |
-- Dump completed on 2009-01-01 21:20:42 |
/conf/blacklists.tar.gz |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/conf/dansguardian-init |
---|
0,0 → 1,103 |
#!/bin/sh |
# |
# Startup script for dansguardian |
# |
# chkconfig: 345 92 8 |
# description: A web content filtering plugin for web \ |
# proxies, developed to filter using lists of \ |
# banned phrases, MIME types, filename \ |
# extensions and PICS labelling. |
# processname: dansguardian |
# pidfile: /var/run/dansguardian.pid |
# config: /etc/dansguardian/dansguardian.conf |
### BEGIN INIT INFO |
# Provides: dansguardian |
# Required-Start: $network |
# Required-Stop: $network |
# Should-Start: $named |
# Should-Stop: $named |
# Default-Start: 3 4 5 |
# Short-Description: Starts the dansguardian daemon |
# Description: A web content filtering plugin for web \ |
# proxies, developed to filter using lists of \ |
# banned phrases, MIME types, filename \ |
# extensions and PICS labelling. |
### END INIT INFO |
# Source function library. |
. /etc/rc.d/init.d/functions |
# Source networking configuration. |
. /etc/sysconfig/network |
# Check that networking is up. |
[ ${NETWORKING} = "no" ] && exit 0 |
RETVAL=0 |
start() { |
gprintf "Starting dansguardian: " |
daemon dansguardian |
RETVAL=$? |
echo |
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dansguardian |
return $RETVAL |
} |
stop() { |
gprintf "Shutting down dansguardian: " |
killproc dansguardian |
if [ ! -z "`pidof dansguardian`" ]; then |
echo |
gprintf "Giving dansguardian more time to exit: " |
while [ ! -z "`pidof dansguardian`" ]; do echo -n "."; sleep 1; done && success || failure |
fi |
echo |
RETVAL=$? |
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dansguardian /var/run/dansguardian/dansguardian.pid \ |
/var/lib/dansguardian/.dguardianipc /var/lib/dansguardian/.dguardianurlipc \ |
/var/lib/dansguardian/.dguardianipipc |
return $RETVAL |
} |
restart() { |
stop |
start |
} |
reload() { |
gprintf "Reloading dansguardian: " |
killproc dansguardian -HUP |
RETVAL=$? |
echo |
return $RETVAL |
} |
case "$1" in |
start) |
start |
;; |
stop) |
stop |
;; |
restart) |
restart |
;; |
reload) |
reload |
;; |
condrestart) |
[ -e /var/lock/subsys/dansguardian ] && restart |
RETVAL=$? |
;; |
status) |
status dansguardian |
RETVAL=$? |
;; |
*) |
gprintf "Usage: %s {start|stop|restart|reload|condrestart|status}\n" "$0" |
RETVAL=1 |
esac |
exit $RETVAL |
/conf/rpms-update/python-coova-chilli-1.2.1-1mdv2010.0.noarch.rpm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/conf/rpms-update/coova-chilli-1.2.1-1mdv2010.0.i586.rpm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/conf/rpms-update/libchilli0-1.2.1-1mdv2010.0.i586.rpm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/conf/rpms-update/mindi-2.0.7.1-1.mdv2010.0.i586.rpm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/conf/bashrc |
---|
0,0 → 1,46 |
# /etc/bashrc |
# System wide functions and aliases |
# Environment stuff goes in /etc/profile |
# by default, we want this to get set. |
# Even for non-interactive, non-login shells. |
if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then |
umask 002 |
else |
umask 022 |
fi |
# are we an interactive shell? |
if [ "$PS1" ]; then |
case $TERM in |
xterm*) |
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' |
;; |
*) |
;; |
esac |
# [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " |
if [ `id -un` = root ]; then |
PS1='\[\033[1;31m\]\h:\w\$\[\033[0m\] ' |
else |
PS1='\[\033[1;30m\]\h:\w\$\[\033[0m\] ' |
fi |
if [ -z "$loginsh" ]; then # We're not a login shell |
# Not all scripts in profile.d are compatible with other shells |
# TODO: make the scripts compatible or check the running shell by |
# themselves. |
if [ -n "${BASH_VERSION}${KSH_VERSION}${ZSH_VERSION}" ]; then |
for i in /etc/profile.d/*.sh; do |
if [ -x $i ]; then |
. $i |
fi |
done |
unset i |
fi |
fi |
fi |
unset loginsh |
/conf/dialup.conf |
---|
0,0 → 1,303 |
# -*- text -*- |
## |
## dialup.conf -- MySQL configuration for default schema (schema.sql) |
## |
## $Id$ |
# Safe characters list for sql queries. Everything else is replaced |
# with their mime-encoded equivalents. |
# The default list should be ok |
#safe-characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /" |
####################################################################### |
# Query config: Username |
####################################################################### |
# This is the username that will get substituted, escaped, and added |
# as attribute 'SQL-User-Name'. '%{SQL-User-Name}' should be used below |
# everywhere a username substitution is needed so you you can be sure |
# the username passed from the client is escaped properly. |
# |
# Uncomment the next line, if you want the sql_user_name to mean: |
# |
# Use Stripped-User-Name, if it's there. |
# Else use User-Name, if it's there, |
# Else use hard-coded string "DEFAULT" as the user name. |
#sql_user_name = "%{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}" |
# |
sql_user_name = "%{User-Name}" |
####################################################################### |
# Default profile |
####################################################################### |
# This is the default profile. It is found in SQL by group membership. |
# That means that this profile must be a member of at least one group |
# which will contain the corresponding check and reply items. |
# This profile will be queried in the authorize section for every user. |
# The point is to assign all users a default profile without having to |
# manually add each one to a group that will contain the profile. |
# The SQL module will also honor the User-Profile attribute. This |
# attribute can be set anywhere in the authorize section (ie the users |
# file). It is found exactly as the default profile is found. |
# If it is set then it will *overwrite* the default profile setting. |
# The idea is to select profiles based on checks on the incoming packets, |
# not on user group membership. For example: |
# -- users file -- |
# DEFAULT Service-Type == Outbound-User, User-Profile := "outbound" |
# DEFAULT Service-Type == Framed-User, User-Profile := "framed" |
# |
# By default the default_user_profile is not set |
# |
#default_user_profile = "DEFAULT" |
####################################################################### |
# NAS Query |
####################################################################### |
# This query retrieves the radius clients |
# |
# 0. Row ID (currently unused) |
# 1. Name (or IP address) |
# 2. Shortname |
# 3. Type |
# 4. Secret |
####################################################################### |
nas_query = "SELECT id, nasname, shortname, type, secret FROM ${nas_table}" |
####################################################################### |
# Authorization Queries |
####################################################################### |
# These queries compare the check items for the user |
# in ${authcheck_table} and setup the reply items in |
# ${authreply_table}. You can use any query/tables |
# you want, but the return data for each row MUST |
# be in the following order: |
# |
# 0. Row ID (currently unused) |
# 1. UserName/GroupName |
# 2. Item Attr Name |
# 3. Item Attr Value |
# 4. Item Attr Operation |
####################################################################### |
# Use these for case sensitive usernames. |
authorize_check_query = "SELECT id, username, attribute, value, op \ |
FROM ${authcheck_table} \ |
WHERE username = BINARY '%{SQL-User-Name}' \ |
ORDER BY id" |
authorize_reply_query = "SELECT id, username, attribute, value, op \ |
FROM ${authreply_table} \ |
WHERE username = BINARY '%{SQL-User-Name}' \ |
ORDER BY id" |
# The default queries are case insensitive. (for compatibility with |
# older versions of FreeRADIUS) |
# authorize_check_query = "SELECT id, username, attribute, value, op \ |
# FROM ${authcheck_table} \ |
# WHERE username = '%{SQL-User-Name}' \ |
# ORDER BY id" |
# authorize_reply_query = "SELECT id, username, attribute, value, op \ |
# FROM ${authreply_table} \ |
# WHERE username = '%{SQL-User-Name}' \ |
# ORDER BY id" |
# Use these for case sensitive usernames. |
group_membership_query = "SELECT groupname \ |
FROM ${usergroup_table} \ |
WHERE username = BINARY '%{SQL-User-Name}' \ |
ORDER BY priority" |
# group_membership_query = "SELECT groupname \ |
# FROM ${usergroup_table} \ |
# WHERE username = '%{SQL-User-Name}' \ |
# ORDER BY priority" |
authorize_group_check_query = "SELECT id, groupname, attribute, \ |
Value, op \ |
FROM ${groupcheck_table} \ |
WHERE groupname = '%{Sql-Group}' \ |
ORDER BY id" |
authorize_group_reply_query = "SELECT id, groupname, attribute, \ |
value, op \ |
FROM ${groupreply_table} \ |
WHERE groupname = '%{Sql-Group}' \ |
ORDER BY id" |
####################################################################### |
# Accounting Queries |
####################################################################### |
# accounting_onoff_query - query for Accounting On/Off packets |
# accounting_update_query - query for Accounting update packets |
# accounting_update_query_alt - query for Accounting update packets |
# (alternate in case first query fails) |
# accounting_start_query - query for Accounting start packets |
# accounting_start_query_alt - query for Accounting start packets |
# (alternate in case first query fails) |
# accounting_stop_query - query for Accounting stop packets |
# accounting_stop_query_alt - query for Accounting start packets |
# (alternate in case first query doesn't |
# affect any existing rows in the table) |
####################################################################### |
accounting_onoff_query = "\ |
UPDATE ${acct_table1} \ |
SET \ |
acctstoptime = '%S', \ |
acctsessiontime = unix_timestamp('%S') - \ |
unix_timestamp(acctstarttime), \ |
acctterminatecause = '%{Acct-Terminate-Cause}', \ |
acctstopdelay = %{%{Acct-Delay-Time}:-0} \ |
WHERE acctstoptime IS NULL \ |
AND nasipaddress = '%{NAS-IP-Address}' \ |
AND acctstarttime <= '%S'" |
accounting_update_query = " \ |
UPDATE ${acct_table1} \ |
SET \ |
framedipaddress = '%{Framed-IP-Address}', \ |
acctsessiontime = '%{Acct-Session-Time}', \ |
acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Input-Octets}:-0}', \ |
acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Output-Octets}:-0}' \ |
WHERE acctsessionid = '%{Acct-Session-Id}' \ |
AND username = '%{SQL-User-Name}' \ |
AND nasipaddress = '%{NAS-IP-Address}'" |
accounting_update_query_alt = " \ |
INSERT INTO ${acct_table1} \ |
(acctsessionid, acctuniqueid, username, \ |
realm, nasipaddress, nasportid, \ |
nasporttype, acctstarttime, acctsessiontime, \ |
acctauthentic, connectinfo_start, acctinputoctets, \ |
acctoutputoctets, calledstationid, callingstationid, \ |
servicetype, framedprotocol, framedipaddress, \ |
acctstartdelay, xascendsessionsvrkey) \ |
VALUES \ |
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \ |
'%{SQL-User-Name}', \ |
'%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', \ |
'%{NAS-Port-Type}', \ |
DATE_SUB('%S', \ |
INTERVAL (%{%{Acct-Session-Time}:-0} + \ |
%{%{Acct-Delay-Time}:-0}) SECOND), \ |
'%{Acct-Session-Time}', \ |
'%{Acct-Authentic}', '', \ |
'%{%{Acct-Input-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Input-Octets}:-0}', \ |
'%{%{Acct-Output-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Output-Octets}:-0}', \ |
'%{Called-Station-Id}', '%{Calling-Station-Id}', \ |
'%{Service-Type}', '%{Framed-Protocol}', \ |
'%{Framed-IP-Address}', \ |
'0', '%{X-Ascend-Session-Svr-Key}')" |
accounting_start_query = " \ |
INSERT INTO ${acct_table1} \ |
(acctsessionid, acctuniqueid, username, \ |
realm, nasipaddress, nasportid, \ |
nasporttype, acctstarttime, acctstoptime, \ |
acctsessiontime, acctauthentic, connectinfo_start, \ |
connectinfo_stop, acctinputoctets, acctoutputoctets, \ |
calledstationid, callingstationid, acctterminatecause, \ |
servicetype, framedprotocol, framedipaddress, \ |
acctstartdelay, acctstopdelay, xascendsessionsvrkey) \ |
VALUES \ |
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \ |
'%{SQL-User-Name}', \ |
'%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', \ |
'%{NAS-Port-Type}', '%S', NULL, \ |
'0', '%{Acct-Authentic}', '%{Connect-Info}', \ |
'', '0', '0', \ |
'%{Called-Station-Id}', '%{Calling-Station-Id}', '', \ |
'%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', \ |
'%{%{Acct-Delay-Time}:-0}', '0', '%{X-Ascend-Session-Svr-Key}')" |
accounting_start_query_alt = " \ |
UPDATE ${acct_table1} SET \ |
acctstarttime = '%S', \ |
acctstartdelay = '%{%{Acct-Delay-Time}:-0}', \ |
connectinfo_start = '%{Connect-Info}' \ |
WHERE acctsessionid = '%{Acct-Session-Id}' \ |
AND username = '%{SQL-User-Name}' \ |
AND nasipaddress = '%{NAS-IP-Address}'" |
accounting_stop_query = " \ |
UPDATE ${acct_table2} SET \ |
acctstoptime = '%S', \ |
acctsessiontime = '%{Acct-Session-Time}', \ |
acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Input-Octets}:-0}', \ |
acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Output-Octets}:-0}', \ |
acctterminatecause = '%{Acct-Terminate-Cause}', \ |
acctstopdelay = '%{%{Acct-Delay-Time}:-0}', \ |
connectinfo_stop = '%{Connect-Info}' \ |
WHERE acctsessionid = '%{Acct-Session-Id}' \ |
AND username = '%{SQL-User-Name}' \ |
AND nasipaddress = '%{NAS-IP-Address}'" |
accounting_stop_query_alt = " \ |
INSERT INTO ${acct_table2} \ |
(acctsessionid, acctuniqueid, username, \ |
realm, nasipaddress, nasportid, \ |
nasporttype, acctstarttime, acctstoptime, \ |
acctsessiontime, acctauthentic, connectinfo_start, \ |
connectinfo_stop, acctinputoctets, acctoutputoctets, \ |
calledstationid, callingstationid, acctterminatecause, \ |
servicetype, framedprotocol, framedipaddress, \ |
acctstartdelay, acctstopdelay) \ |
VALUES \ |
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \ |
'%{SQL-User-Name}', \ |
'%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', \ |
'%{NAS-Port-Type}', \ |
DATE_SUB('%S', \ |
INTERVAL (%{%{Acct-Session-Time}:-0} + \ |
%{%{Acct-Delay-Time}:-0}) SECOND), \ |
'%S', '%{Acct-Session-Time}', '%{Acct-Authentic}', '', \ |
'%{Connect-Info}', \ |
'%{%{Acct-Input-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Input-Octets}:-0}', \ |
'%{%{Acct-Output-Gigawords}:-0}' << 32 | \ |
'%{%{Acct-Output-Octets}:-0}', \ |
'%{Called-Station-Id}', '%{Calling-Station-Id}', \ |
'%{Acct-Terminate-Cause}', \ |
'%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', \ |
'0', '%{%{Acct-Delay-Time}:-0}')" |
####################################################################### |
# Simultaneous Use Checking Queries |
####################################################################### |
# simul_count_query - query for the number of current connections |
# - If this is not defined, no simultaneouls use checking |
# - will be performed by this module instance |
# simul_verify_query - query to return details of current connections for verification |
# - Leave blank or commented out to disable verification step |
# - Note that the returned field order should not be changed. |
####################################################################### |
# Uncomment simul_count_query to enable simultaneous use checking |
simul_count_query = "SELECT COUNT(*) \ |
FROM ${acct_table1} \ |
WHERE username = '%{SQL-User-Name}' \ |
AND acctstoptime IS NULL" |
#simul_verify_query = "SELECT radacctid, acctsessionid, username, \ |
#nasipaddress, nasportid, framedipaddress, \ |
#callingstationid, framedprotocol \ |
#FROM ${acct_table1} \ |
#WHERE username = '%{SQL-User-Name}' \ |
#AND acctstoptime IS NULL" |
####################################################################### |
# Authentication Logging Queries |
####################################################################### |
# postauth_query - Insert some info after authentication |
####################################################################### |
# (username, pass, reply, authdate) \ |
# '%{%{User-Password}:-%{Chap-Password}}', \ |
postauth_query = "INSERT INTO ${postauth_table} \ |
(username, reply, authdate) \ |
VALUES ( \ |
'%{User-Name}', \ |
'%{reply:Packet-Type}', '%S')" |
/conf/bannedurllist |
---|
0,0 → 1,41 |
# site de test : |
badboys.com |
#univ-toulouse url/blacklists collection. |
.Include</etc/dansguardian/lists/blacklists/adult/urls> |
.Include</etc/dansguardian/lists/blacklists/agressif/urls> |
#.Include</etc/dansguardian/lists/blacklists/astrology/urls> |
#.Include</etc/dansguardian/lists/blacklists/audio-video/urls> |
#.Include</etc/dansguardian/lists/blacklists/blog/urls> |
#.Include</etc/dansguardian/lists/blacklists/celebrity/urls> |
#.Include</etc/dansguardian/lists/blacklists/child/urls> |
#.Include</etc/dansguardian/lists/blacklists/cleaning/urls> |
.Include</etc/dansguardian/lists/blacklists/dangerous_material/urls> |
.Include</etc/dansguardian/lists/blacklists/dating/urls> |
.Include</etc/dansguardian/lists/blacklists/drogue/urls> |
#.Include</etc/dansguardian/lists/blacklists/filehosting/urls> |
#.Include</etc/dansguardian/lists/blacklists/financial/urls> |
#.Include</etc/dansguardian/lists/blacklists/forums/urls> |
.Include</etc/dansguardian/lists/blacklists/gambling/urls> |
#.Include</etc/dansguardian/lists/blacklists/games/urls> |
.Include</etc/dansguardian/lists/blacklists/hacking/urls> |
.Include</etc/dansguardian/lists/blacklists/malware/urls> |
#.Include</etc/dansguardian/lists/blacklists/manga/urls> |
.Include</etc/dansguardian/lists/blacklists/marketingware/urls> |
.Include</etc/dansguardian/lists/blacklists/mixed_adult/urls> |
#.Include</etc/dansguardian/lists/blacklists/mobile-phone/urls> |
.Include</etc/dansguardian/lists/blacklists/phishing/urls> |
#.Include</etc/dansguardian/lists/blacklists/publicite/urls> |
#.Include</etc/dansguardian/lists/blacklists/radio/urls> |
#.Include</etc/dansguardian/lists/blacklists/reaffected/urls> |
.Include</etc/dansguardian/lists/blacklists/redirector/urls> |
.Include</etc/dansguardian/lists/blacklists/sect/urls> |
#.Include</etc/dansguardian/lists/blacklists/sexual_education/urls> |
#.Include</etc/dansguardian/lists/blacklists/shopping/urls> |
.Include</etc/dansguardian/lists/blacklists/strict_redirector/urls> |
.Include</etc/dansguardian/lists/blacklists/strong_redirector/urls> |
.Include</etc/dansguardian/lists/blacklists/tricheur/urls> |
.Include</etc/dansguardian/lists/blacklists/warez/urls> |
#.Include</etc/dansguardian/lists/blacklists/webmail/urls> |
.Include</etc/dansguardian/lists/blacklists/ossi/urls> |
/conf/bannedsitelist |
---|
0,0 → 1,41 |
# site de test : |
badboys.com |
#univ-toulouse url/blacklists collection. |
.Include</etc/dansguardian/lists/blacklists/adult/domains> |
.Include</etc/dansguardian/lists/blacklists/agressif/domains> |
#.Include</etc/dansguardian/lists/blacklists/astrology/domains> |
#.Include</etc/dansguardian/lists/blacklists/audio-video/domains> |
#.Include</etc/dansguardian/lists/blacklists/blog/domains> |
#.Include</etc/dansguardian/lists/blacklists/celebrity/domains> |
#.Include</etc/dansguardian/lists/blacklists/child/domains> |
#.Include</etc/dansguardian/lists/blacklists/cleaning/domains> |
.Include</etc/dansguardian/lists/blacklists/dangerous_material/domains> |
.Include</etc/dansguardian/lists/blacklists/dating/domains> |
.Include</etc/dansguardian/lists/blacklists/drogue/domains> |
#.Include</etc/dansguardian/lists/blacklists/filehosting/domains> |
#.Include</etc/dansguardian/lists/blacklists/financial/domains> |
#.Include</etc/dansguardian/lists/blacklists/forums/domains> |
.Include</etc/dansguardian/lists/blacklists/gambling/domains> |
#.Include</etc/dansguardian/lists/blacklists/games/domains> |
.Include</etc/dansguardian/lists/blacklists/hacking/domains> |
.Include</etc/dansguardian/lists/blacklists/malware/domains> |
#.Include</etc/dansguardian/lists/blacklists/manga/domains> |
.Include</etc/dansguardian/lists/blacklists/marketingware/domains> |
.Include</etc/dansguardian/lists/blacklists/mixed_adult/domains> |
#.Include</etc/dansguardian/lists/blacklists/mobile-phone/domains> |
.Include</etc/dansguardian/lists/blacklists/phishing/domains> |
#.Include</etc/dansguardian/lists/blacklists/publicite/domains> |
#.Include</etc/dansguardian/lists/blacklists/radio/domains> |
#.Include</etc/dansguardian/lists/blacklists/reaffected/domains> |
.Include</etc/dansguardian/lists/blacklists/redirector/domains> |
.Include</etc/dansguardian/lists/blacklists/sect/domains> |
#.Include</etc/dansguardian/lists/blacklists/sexual_education/domains> |
#.Include</etc/dansguardian/lists/blacklists/shopping/domains> |
.Include</etc/dansguardian/lists/blacklists/strict_redirector/domains> |
.Include</etc/dansguardian/lists/blacklists/strong_redirector/domains> |
.Include</etc/dansguardian/lists/blacklists/tricheur/domains> |
.Include</etc/dansguardian/lists/blacklists/warez/domains> |
#.Include</etc/dansguardian/lists/blacklists/webmail/domains> |
.Include</etc/dansguardian/lists/blacklists/ossi/domains> |
/CHANGELOG |
---|
0,0 → 1,304 |
************ CHANGELOG *********** |
31/03/10 - prise en compte version 'stable' et 'devel" dans la page de garde |
- correction bug (adresse en 0.0.0.0 du menu activité) |
29/03/10 - mise en place des properties svn avec $Revision $Date |
27/03/10 - mise en place des exceptions au filtrage (web + réseau). Correction bug utf8. |
14/03/10 - "alcasar.sh" : modif config carte eth0 (dns local et ifcfg-eth0.default) |
13/03/10 - bascule du développement sur subversion |
11/02/10 - "alcasar.sh" : debug de la partie "mise à jour" + ajout de la zone reverse (localdomain.rev) |
09/02/10 - "alcasar.sh" : correction config coova (les DNS sont pré-renseignés dans la conf par défaut). Ajout de l'entrée "alcasar" dans la zone DNS "localdomain" |
- "alcasar.CA" : renommage des "OU" et préparation d'un deuxième certificat serveur pour le CN "alcasar" |
08/02/10 - "alcasar.sh", "alcasar-conf.sh" : procedure externe pour créer l'archive des fichiers de conf |
07/02/10 - "alcasar.sh", "alcasar-uninstall.sh", "alcasar-CA.sh", "alcasar-conf.sh" : réécriture de la procédure de mise à jour |
- "alcasar-iptables.sh" : suppression DNS sur TCP (uniquement UDP) |
- "alcasar-urpmi.sh" : prise en compte de la "mirrorlist" centralisée chez Mandriva |
03/02/10 - "alcasar.sh" : suppression des daemons ifplugd associés à chaque carte réseau (mii_not_suported=yes) |
- : durcissement de l'entrée du nom d'organisme (pour les 2 mains gauches ;-) ) |
- "service.php" : ajout du service "named" |
29/01/10 - "alcasar-iptables.sh" : rajout des redirections et autorisations tcp domain dans parefeu |
- "alcasar.sh" : activation du DNS bind [install uninstall(alcasar-uninstall.sh) et update] |
27/01/10 - "intercept.php" : intégration de la variable "userurl" dans les arguments de la demande d'authentification afin que la page demandée par l'usager soit prise en compte par le cache ARP de chilli (et donc affichée après l'authentification) ouf... ;-) |
24/01/10 - "intercept.php" : suppression caractères superflus ("\"). Ajout variable "urladmin" : permet de choisir la page chargée après authentification |
- "alcasar.sh" : fonction 'chilli' -> creation du fichier d'exception par @mac (alcasar-macallowed) |
- "menu.php", "auth.php", "filtering.php" : modification du menu |
- "exception.php" : intégration php de la gestion des exceptions par @MAC + traduction |
20/01/10 - "alcasar-iptables-filter.sh" : correction bug sur le nom du chemin du fichier ligne 30 |
- "alcasar-iptables.sh" : intégration Bind ( mais non activé ) |
- "alcasar.sh" : + intégration de Bind ( mais non actif pour le moment ) |
+- Intégration de param_bind dans menu -install et -update |
+- ln et modification de /etc/trusted_network_acl.conf ( LAN autorisé à query ) |
+ radius et update RPM : --> suite aux problèmes d'update RPM ( à affiner si suppression de certains modules radius ( rlm_, etc...) |
+- rajout/modification de droits msec sur /etc/raddb |
+- touch sur control-socket, default et inner-tunnel sous /etc/raddb/site-enabled (ln rajoutés par un update RPM de freeradius systématiquement ... et qui empêche le démarrage de radius) |
19/01/10 - "alcasar.sh" : mise à jour de l'install ntpd ("ntpdate" étant devenu obsolète) |
- "alcasar-uninstall.sh" : suppression des spécificités de la V1.7 |
17/01/10 - intercept.php : correction bug (compatibilité ie8). |
- mise à jour du répertoire "conf/rpms-update" (rpm de "mindi" compatible ext4) |
- "alcasar-mondo.sh" : correction proposée par Michel GAUDET |
15/01/10 - ajout du processus "sshd" dans la page "système/services". |
14/01/10 - "alcasar-radius" : suppression des tags config- de l'ancien plugin ldap. |
- "alcasar.sh" : augmentation de la taille des fichiers en "upload" par php (pour l'import de la base usager) |
: suppression des particularités issue d'une mise à jour 1.7 vers 1.8 |
: le service sshd n'est plus lancé automatiquement au démarrage (activable via l'interface de gestion) |
12/01/09 - "menu.php, filtering.php, activity.php" : prise en compte des @mac autorisée dans la fenêtre "activité" (+ corrections) |
06/01/10 - "alcasar-iptables-filter.sh : a voir avec richard pour les conntrack modules pour ftp ... |
---- 1.8 ---- |
21/12/09 - "alcasar-bypass.sh" : amélioration du script |
- création des 2 scripts d'initialisation des daemons "chilli" et "dansguardian" |
- "alcasar.sh" et "alcasar-uninstall.sh" : création de la fonction "dansguardian" |
20/12/09 - "alcasar.sh" : intégration du RPM "coova-chilli" réalisé par Mandriva. |
- mise à jour des docs |
- "alcasar-iptable-bypass.sh" : adaptation à la dernière version de netfilter. |
15/12/09 - "alcasar-iptable-filter.sh" : traitement du filtrage ICMP |
14/12/08 - "alcasar.sh" : désactivation par défaut du filtrage WEB et du filtrage réseau |
- "alcasar-iptables.sh" + "alcasar-iptables-filter.sh" : optimisation des règles de filtrage. |
09/12/09 - ajout du charset (utf-8) dans intercept.php |
08/12/09 - adaptation de phpsysinfo : (portail.php, index.php, fr.php et en.php) |
- test internet sur page accueil, |
- modif fichier de langue et limitation à 'en' et 'fr' pour éviter les variables non définies sur les langues connues par phpsysinfo mais non traduites pour alcasar |
- "alcasar-CA.sh" : suppression des caractères superflus lors de la génération du certificat de l'A.C. |
- "service.php" : mise en conformité graphique |
07/12/09 - mises à jour network.php (internationnalisation et suppression des erreurs php) |
02/12/09 - alcasar-urpmi.sh et alcasar.sh : adaptation de la procédure de mises à jour pour les architectures 64b |
19/11/09 - mises à jour des fichiers de la partie "système" du centre de gestion (internationalisation, utf8... partie à finaliser...) |
15/11/09 - intégration de la page activité dans "système/réseau" et adaptation du menu |
- ajout du fichier ldap.css pour un meilleur affichage de la gestion LDAP |
14/11/09 - adaptation du code aux évolutions php5 (fonction "split" dépréciée, fonction "new" retourne directement une valeur, variables _get et _post interdites de visibilité globale) |
- fichiers modifiés : intercept.php, uam.php, net-filter.php, bl.php, bl2.php, sauvegarde.php, 15 fichiers de phpsysinfo, to be continued ... |
12/11/09 - "alcasar.sh" : adaptation pour le module 'ldap') : |
09/11/09 - "alcasar.sh" : adaptation à MdV-2010, corrections : log_martians, lancement des fonctions, rpm orphelins |
03/11/09 - tri des services, amélioration des fonctions php d'ouverture de fichiers (bl + wl) |
01/11/09 - prise en compte d'une whitelist par protocole autorisé (création du fichier /usr/local/etc/alcasar-services) |
25/10/09 - "alcasar.sh" : suppression de l'écoute sur le port 80. Suppression du filtrage ultrasurf. Evolution de la gestion du filtrage (alcasar-nf.sh + modules php) |
22/10/09 - "alcasar.sh conf/logrotate.d/dansguardian" - adaptation de dansguardian dans la rotation des logs et modif du script alcasar.sh |
21/10/09 - "alcasar.sh" : suppression du filtrage des fichiers téléchargés, mise à jour système automatique, modif page d'erreur apache "401", limitation de l'écoute d'apache sur le port 443 (eth1) |
- "alcasar-unistall.sh : mise à jour |
20/10/09 - Modification du menu de centre de gestion : ajout menu systeme(services/réseau/ldap) |
- Ajout des pages de configuration des Services, Réseau et LDAP. |
19/10/09 - "alcasar.sh" : modification des msec local (perm.local) --> prise en compte de l'interface ldap --> a confirmer |
19/10/09 - "alcasar.sh" : adaptation des délais pour anacron |
16/10/09 - "alcasar-iptables-filter.sh" : debug de la ligne de récupération des @IP ultrasurf |
15/10/09 - "alcasar-iptables.sh" : adaptation des règles à la nouvelle norme d'écriture (le "!" placé avant) |
- "alcasar.sh" : adaptation du module "radius" pour mandriva 2009.0 & 2009.1 |
14/10/09 - "alcasar.sh" : suppression du filtrage d'URL via les expressions régulières (REGEX) pour dansguardian |
- prémices de l'interface de filtrage réseau (alcasar-nf.sh + modules php) |
10/10/09 - "alcasar.sh" : génération de mot de passe aléatoire au sein des briques Alcasar même après une mise à jour. |
07/10/09 - mise à jour de "mondoarchive" et "mindi" dans l'archive des RPM (alcasar-1.8-rpms.tar.gz) |
06/10/09 - "alcasar.sh" : modif de la conf dansguardian (afin de préparer l'interfaçage graphique) |
- 'alcasar-uninstall.sh" : mise à jour et désinstallation complète de mysql |
05/10/09 - "alcasar.sh" : pour Dansguardian, on désactive le contrôle dans l'URL, on bloque les URL avec @IP, on bloque le https par le port 80 |
- "sauvegarde.php" : suppression de l'affichage des journaux du proxy |
- ajout de 3 RPMs liés au "backportage" de "mondo-mindi" |
02/10/09 - "alcasar.sh" : ajout des cron.d/export et clean pour une prise en compte en cas d'arrêt du serveur pendant l'exécution |
30/09/09 - "alcasar.sh" : suppression des # dans le plugin_ldap ( ne prend pas en compte le lancement multiple ... |
29/09/09 - "alcasar-log-export.sh, alcasar-log-clean.sh, conf/logrotate.d/dansguardian" : prise en compte des logs de dansGuardian ... dans les exports de logs et le nettoyage # a voir si on garde ? |
- "alcasar.sh" : prise en compte de la tabulation avant et derrière le # dans radiusd.conf |
- "alcasar-mondo.sh" : suppression du paramètre -F qui crash sur la Mandriva 2009.1 |
21/09/09 - "alcasar-bl.sh" : mise à jour des liens internes liés au téléchargement de la BL Toulouse |
20/09/09 - "phpsysinfo" : activation de la barre de charge (load-bar) dans la page d'accueil |
- correction bug : affichage des exceptions (bl.php) et sauvegarde du fichier "/etc/dansguardian/exceptioniplist" en cas de mise à jour |
--- 1.8a --- |
09/09/09 - modif du système de comptage des usagers en ligne de la page d'accueil (chilli_query au lieu de radwho) |
- amélioration de la fonction de mise à jour |
07/09/09 - définition aléatoire des mots de passe inter-processus (alcasar.sh) |
- réécriture des règles iptables pour prévenir l'impossibilité future de filtrer sur la table NAT (alcasat-iptables.sh) |
08/09 - possibilité de garder l'ancien certificat serveur lors de la mise à jour |
- installation de dialupadmin + conforme (uniquement les fichiers modifiés) |
- réarchitecture des pages du centre et homogénéisation graphique. |
- correction javascript dans la page d'interception |
- possibilité de supprimer les usagers à la suppression de leur groupe |
- correction faille de conf apache (suppression de la directive "method") |
- gestion des profils d'administration en 3 groupes (admin, manager, backup) |
- correction de la "double redirection" lors de l'interception par coova |
21/06/09 - suppression de la fonction "OnBlur" de intercept.php |
- amélioration de la conf de squid (suite au remplacement de squidGurad par Dansguardian) |
- amélioration de la rubrique "activité réseau" (affichage trié et déconnexion d'un usager (même si plusieurs sessions simultanées) |
16/06/09 - modification des menus de l'interface |
- correction d'un bug et "durcissement" de la conf de coova-chilli à l'install (alcasar.sh) |
14/06/09 - remplacement "hotspotlogin.cgi" par "intercept.php". Traduction en 5 langues. Prise en compte des réponses Radius. |
- simplification des scripts de modification du mot de passe usager (+ traduction 5 langues) |
- affichage du nom d'organisme sur la page d'interception |
11/06/09 - correction de bug dans "alcasar.sh" : appel de 'htdigest' par son chemin complet, amélioration des calculs pour les réseaux de classe A et B, procédure de mise à jour (option -update) |
01/06/09 - correction du fichier "dhcpd.conf" (ajout de l'entrée "ddns-update-style interim") |
- correction et agrégation des 2 scripts "alcasar-bypass-on / off" |
--- 1.7 --- |
09/05/09 - intégration du module de filtrage applicatif |
- traitement des vpn https "ultrasurf" (contournement du filtrage d'URL) |
- mise en conformité de l'interface des sites de confiances ("uamallow" et "uamdomain") |
- mise à jour de la doc |
30/04/09 - module graphique de visualisation de l'activité du réseau de consultation (équipements et usagers) |
26/04/09 - correction bug "sauvegarde.php" |
- correction bug freeradius-web/lib/sql/drivers/mysql/functions.php (merci M.G.) |
- adaptation cron de chilli à notre logique (/etc.cron.d au lieu de /var/spool/cron/root) |
- suppression des mails pour les cron journaliers (awstat, chilli, etc.) |
- modification radius (écriture dans sradutmp et radutmp) --> récupération de la fonction "radwho" |
- relooking type Alcasar de "accounting.php" et suppression d'affichage des champs "NAS*" |
--- 1.7-rc4 --- |
19/04/09 - recodage UTF8 alcasar.sh, alcasar-iptables, etc. |
- modif alcasar-iptables (le "/etc/init.d/iptable save" est réalisé ici) et alcasar-iptables-filter (ancien alcasar-iptables-local) en vue d'intégrer le filtrage applicatif. |
- agrégat uam.php + uam2.php (suppression uamallow.php et alcasar-uamallow.sh) |
- sécurisation /etc/pki |
17/04/09 - modification et intégration du fichier de conf "radiusd.conf" + conforme |
--> gestion de la casse pour les noms d'usager |
--> suppression des méthodes d'authentif inusitées |
--> activation des compteurs SQL (module rlm_sqlcounter.so) |
- remplacement "ssmtp" par "postfix" afin de préparer l'avenir ;-) et d'éviter les erreurs de "crond" |
- création et mise en ligne de l'archive des RPMs additionnels pour les installation "faible débit" |
14/04/09 - phpsysinfo : nom de la distribution de nouveau disponible (phpsysinfo/distro.ini <-- Mandrivalinux au lieu de Mandriva) |
12/04/09 - adaptation de admin/uam.php ( et uam2.php) pour génération web des urls et domaines de confiance |
10/04/09 - suppression de shorewall-common et pas uniquement shorewall |
- intégration dans /etc/chilli/config de alcasar-uamallowed et alcasar-uamdomain (fichiers de sites et de domaines de confiance) |
27/03/09 - modif de alcasar-iptables.sh pour permettre l'icmp sur INTIF et pas seulement sur TUNIF |
- modif alcasar-uamallowed.sh pour intégrer un fichier alcasar-uamdomain ( domaines sans restriction) |
--> adaptation de alcasar.sh pour adapter les droits du fichier créé (par défaut vide) avec les bons droits |
23/03/09 - modif "sauvegarde.php" pour ordonner la liste des sauvegardes (base, firewall, système) |
- modif "hotspotlogin" pour intégrer un traitement à la fermeture du popup de déconnexion |
20/03/09 - modif /etc/alcasar-bypass.sh en /usr/local/bin/alcasar-iptables.bypass.sh |
- modif alcasar-bypass-local.sh pour intégrer des filtres applicatifs + déplacement dans alcasar-iptables.sh |
13/03/09 - intégration coova "+ conforme" (modif du fichier de conf par défaut) |
- suppression des modifs iptables effectuées par coova (/etc/chilli/up.sh) |
- ajout du contrôle des flux DNS (pour éviter les tunnels DNS) |
- remplacement de la page d'interception de dansguardian |
10/03/09 - intégration du module LDAP dans /etc/raddb et alcasar.sh |
--- 1.7-rc3 --- |
02/03/09 - Correction bugs dans "alcasar-log-export" |
- Suppression des broadcast sur EXTIF |
- Suppressions des envois de mail pour cron (générait une erreur en absence de MTA) |
01/03/09 - correction config awstat et intégration graphique |
- intégration Squid "+ conforme" (modif du fichier de conf par défaut) |
24/02/09 - suppression du snmp_finger inutile dans "/etc/freeradius-web/admin.conf" |
- correction du bug mktime() de la page "stat journalière" |
- modif menu pour les pages "stats journalières" et "stat usagers" |
22/02/09 - correction bug de la page des connexions actives ("sradutmp" dans "/etc/raddb/site-available/alcasar" et @IP réelle du NAS (et non loopback)) |
07/02/09 - intégration du plugin ldap : les scripts php ne sont pas retenus (mais conservés). |
- implémentation et adaptation pour authentification seule (pas de récupération des attributs Radius dans ldap ) |
- ajout de la commande service dans sudoers ; pourra ètre utile pour insérer l'état des services utiles (status et restart) dans phpsysinfo |
- ajout des fichiers modifiés ldap.attrmap et ldap (sera modifié par le script plus tard :-) issus de freeradius-ldap |
- modification du fichier d'installation alcasar.sh pour rajouter une option -ldap indépendante de l'install/update et uninstall |
--- 1.7-rc2 --- |
06/02/09 - correction de code php afin de supprimer les warnings dans /var/log/http/ssl_error |
05/02/09 - correction de quelques coquilles ( logo |
02/02/09 - intégration de la gestion des sessions simultanées |
27/01/09 - correction bug dans la page d'info usager - rubrique "password-check" (freeradius-web/lib/sql/password_check.php) |
- intégration du travail de P.Romero (générateur de mots de passe aléatoires dans htdocs/user_new.php et htdocs/user_edit.php) |
26/01/09 - suppression des log_martian via msec -> fichier /etc/security/msec/level.local (alcasar.sh) |
21/01/09 - ajout des RegEx de saisie d'adresse IP (alcasar.sh) |
18/01/09 - création du script de gestion des profils "alcasar-profil.sh", adaptation d'alcasar.sh |
17/01/09 - correction bug sauvegarde.php : répertoire "/var/Save/log/proxy" au lieu de "/var/Save/log/squid", |
14/01/09 - correction d'un bug dans le fichier de conf d'awstat |
10/01/09 - ajout de la possibilité de changer le plan d'addressage à l'install, correction bugs date d'installation + install via archive RPM |
--- 1.7-rc1 --- |
31/12/08 - intégration page uamallowed, modification du menu, lien symbolique /etc/radius/radutmp sur /etc/radius/sradutmp (pour radwho --> à revoir), vérif mdp chiffré dans mysql --> ok. |
30/12/08 - correction bug dhcp.conf. Mise à jour alcasar-bypass-on, alcasar-bypass-off alcasar-uninstall, /etc/sudoers. |
20/12/08 - Intégration dansguardian (reste la page de choix des domaines) |
07/12/08 - modif archive RPMS, iptables, squid.conf (pour ce dernier, on devrait pouvoir partir du fichier de conf de base) |
03/12/08 - suppression des paquetage avahi, mandi, shorewall, drakxtool-curses et les orphelins créés (à la fin de l'install) |
- création de l'archive rpm optionnel "alcasar-rpms.tar.gz" (nécessaire quand on a pas Internet (dans le train par exemple ;-) )) |
01/12/08 - déplacement de /etc/chilli/defaults en /etc/chilli/defaults.old pour éviter les uamallowed insérés automatiquement par coova |
- modif import-user.php, déplacement dans freeradius-web/htdocs (en import_user.php) et modif page d'appel (usager.php) |
- correction des requetes SQL sur la table "usergroup" au lieu de "radusergroup" (import_user.php et portail.php). Correction du MCD. |
22/11/08 - suppression de l'affichage du logo "coova" (/etc/chilli/config) |
- suppression des log parefeu https, ssh et dhcp (les logs des daemon httpd, sshd et coova suffisent) |
- suppression de la modif du fichier syslog.conf à l'install |
- mise à jour de la page d'interception (hotspotlogin) |
15/11/08 - mise à jour alcasar-uninstall, config ssh, alcasar-bypass-iptables |
11/11/08 - affectation dynamique du role des cartes RSO (alcasar.sh) |
- correction de bugs (alcasar-iptables.sh + alcasar.sh) |
- généralisation de l'utilisation des variables "intif" et "extif" dans le script d'install |
7/11/08 - prise en compte des nouvelles structure des RPM repository (alcasar-urpmi.sh) |
21/10/08 - adaptation du script d'install en mandriva 2009 |
- intégration native de coova-chilli |
--- 1.7 --- |
27/06/08 - Suppression de l'enregistrement du mot de passe dans la table "radpostauth" |
15/06/08 - intégration dans alcasar.sh à l'installation-update |
- intégration structure ossi-bl et ossi-wl dans squidGard.conf et alcasar.sh --> reste dans script web |
14/06/08 - intégration de coova-chilli en substitution à chillispot ; reste à intégrer dans alcasar.sh à l'installation-update |
10/06/08 - modif import_user.php : |
- remontée de import_user.php à la racine du centre de gestion ; modification dans les différentes interfaces dont les menus |
- sortie sur un fichier unique ; reste à récupérer par le biais de l'interface |
01/05/08 - modif chilli.conf : interval=0 (évite le relancement de chilli toute les heures) |
--- 1.6 --- |
- Durcissement du parefeu (fermeture de ports) et adaptation des règles à l'interface "firewalleyes" |
- Simplification de la structure des fichiers de sauvegardes (/var/Save) |
- Mise à jour du fichier de configuration squidGuard (intégration de tous les domaines de la BL de Toulouse) |
- Séparation des RPM additionnels de l'archive du portail |
- Réécriture du script de génération des certificats de l'A.C et du serveur WEB |
- Automatisation de la procédure de mise à jour |
- Amélioration de l'interface de gestion : |
- Meilleure intégration graphique et francisation |
- Prise en compte des créneaux horaires, de la durée des sessions et de la date d'expiration du mot de passe |
- Suppression du menu certificat (intégration dans la page d'accueil) |
- Refonte de la page de gestion des blacklists et rationalisation des scripts php associés |
- Import d'usagers (à partir d'un fichier texte ou d'une base complète) et RAZ de la base |
- Déconnexion des usagers par ALCASAR (radiusd + chilli) et non plus seulement par le navigateur WEB (paramètre 'coaport') |
- Modification squid.conf (compatibilité toute distrib MDV). |
- Simplification du module de création de l'image système (alcasar-mondo.sh). |
- Correction des bugs suivants : |
- Disparition des statistiques de consultation web après une mise à jour |
- Deconnexion d'un usager à partir de l'interface de gestion |
- possibilité de créer des groupes vides (en fait avec un usager virtuel portant le même nom que le groupe). |
- Création des scripts alcasar-bl.sh (activation/désactivation/mise à jour du filtrage), alcasar-logout.sh (déconnexion des usagers) et alcasar-mysql (import usagers via txt et sql + raz de la base). |
--- 1.5 --- |
- prise en compte du nom de baptême du portail : ALCASAR |
- intégration d'un script PHP permettant de personnaliser le logo |
- intégration du contournement du bug 'MSIE' pour les pages gestion. |
- Intégration de l'interface PHP d'informations système ( phpsysinfo) et ajout d'un module Alcasar (nbr.usagers, version d'installation, version de la blacklist, @IP publique). |
- Réécriture des scripts d'install et de désinstall (alcasar-uninstall.sh) |
- intégration d'un test de connectivité à Internet |
- réorganisation des fonctions |
- création de l'option 'uninstall' permettant de désinstaller complétement le portail (afin de pouvoir lancer des séquences d'install/désinstall pour les tests) |
- permettre le choix du nom pour les comptes autorisés à administrer le portail |
- Réécriture de la page de gestion et intégration des fonctionnalités nouvelles suivantes : |
- mise à jour de la blacklist squidGuard (globale + OSSI) |
- sauvegarde à chaud du système, sauvegarde des logs et de la base usagers |
- visu des logs du parefeu |
- Modification du fichier sudoers permettant le lancement des commandes via la page de gestion |
- Ajout de l'option -update pour mettre à jour le portail déjà installé (option compatible avec versions >= 1.5) |
- Amélioration des règles du pare-feu (moins de Logs mais plus pertinents) |
- Gestion des erreurs 404 d'apache par une redirection sur la page d'accueil |
- Possibilité de changer son mot de passe via la page de connexion et la page de gestion |
- Correction des bugs suivants : |
- la comptabilité utilisateur dans dialupadmin est de nouveau fonctionnelle |
- l'export chaque semaine de la base des utilisateurs est de nouveau fonctionnel |
- homogénéisation de la gestion des cron ==> tout dans /etc/cron.d/ |
- déplacement de la structure d'awstat pour permettre la visu complète des pages (var/www/awstats -> /var/www/html/awstats) |
- Intégration d'une interface PHP de lecture des log du parefeu ( firewallEyes ) |
- Implémentation du certificat gnupg pour le chiffrement éventuel des logs |
- Modification mineure du script de génération à chaud d'image système (alcasar-mondo.sh) |
- Modification des pages de dialupadmin ( francisation, simplification, etc.) |
- Intégration dans le fichier archive des rpms supplémentaires et de la blacklist (évite leur téléchargement par internet) |
--- 1.4 --- |
- Réécriture du script de mise à jour de la blacklist squidGuard |
- Uniformisation du script d'install |
- Correction du script de désinstallation (alcasar-uninstall.sh) et de sauvegarde de la base radius (alcasar-mysql.sh) |
- Mise en place d'une page WEB d'accueil pour la gestion du portail |
- Suppression des cgi-bin installés par défaut |
--- V1.3 --- |
- Création d'une structure 'OSSI' dans la blacklist SquidGuard |
- Modification de la page d'interception SquidGuard. |
- Anonymisation de la structure LAN dans les trames traitées par Squid (forward_for off dans squid.conf). |
- Correction de la fonction 'bypass'. |
- Mise en place de la possibilité de chiffrer les logs (par gnupg). |
- Correction du mot de passe dans le script d'export lorsqu'il est changé à l'install. |
- Correction de la structure d'archivage et prise en compte du contenu des fichiers à sauvegarder. |
- Mise en place du cron de sauvegarde des configurations. |
--- V1.2 --- |
- Consolidation de la fonction de désinstallation (création systématique de fichiers '.default' lors de modification) |
- Configuration des services lancés au démarrage (chkconfig). |
- Françisation du CGI "hotspotlogin" (codage des accents). |
- Possibilité de lancer le script sans argument (-all par défaut). |
- Suppression des "Logs Martians". |
--- V1.1 --- |
- Consolidation de la variable FIC_PARAM. |
- Suppression de la déclaration des DNS dans le fichier de conf de chilli (on s'appuie sur les DNS locaux définis dans "/etc/resolv.conf"). |
- Modification de la page d'authentification (plus générique). |
- Réorganisation de la structure de l'archive d'install. |
- Modification des directives de chiffrement d'apache (SSLRequireSSL). |
--- V1.0 --- |
- Version initiale que l'on trouve déjà excellente ;-) |
Property changes: |
Added: svn:keywords |
+Revision Date |
\ No newline at end of property |
/scripts/etc/alcasar-filter-exceptions |
---|
0,0 → 1,0 |
/scripts/etc/alcasar-services |
---|
0,0 → 1,5 |
#icmp - |
#ssh 22 |
#smtp 25 |
#pop 110 |
#https 443 |
/scripts/sbin/alcasar-bl.sh |
---|
0,0 → 1,77 |
#/bin/sh |
# Gestion des Blacklists/Whitelists |
DIR_tmp="/root/blacklists" |
DIR_DANSGUARDIAN="/etc/dansguardian/lists/" |
BL_SERVER="cri.univ-tlse1.fr" |
SED="/bin/sed -i" |
function transfert () { |
mkdir -p $DIR_tmp |
cd $DIR_tmp |
wget http://$BL_SERVER/blacklists/download/blacklists.tar.gz |
} |
function install () { |
[ -d $DIR_DANSGUARDIAN ] || mkdir -p $DIR_DANSGUARDIAN |
[ -d $DIR_DANSGUARDIAN/blacklists/ossi ] && mv -f $DIR_DANSGUARDIAN/blacklists/ossi $DIR_tmp |
tar zxvf $DIR_tmp/blacklists.tar.gz --directory=$DIR_DANSGUARDIAN |
[ -d $DIR_tmp/ossi ] && mv -f $DIR_tmp/ossi $DIR_DANSGUARDIAN/blacklists/ |
cd /root |
rm -rf $DIR_tmp |
} |
usage="Usage: alcasar-bl.sh -on | -off | -download| -reload" |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-on) |
# activation du filtrage |
$SED "s/^reportinglevel =.*/reportinglevel = 3/g" /etc/dansguardian/dansguardian.conf |
service dansguardian reload |
;; |
-off) |
# désactivation du filtrage |
$SED "s/^reportinglevel =.*/reportinglevel = -1/g" /etc/dansguardian/dansguardian.conf |
service dansguardian reload |
;; |
-download) |
# Mise a jour de la blacklist 'Toulouse' et compilation de la base |
rm -rf /tmp/con_ok.html |
`/usr/bin/curl $BL_SERVER -# -o /tmp/con_ok.html` |
if [ ! -e /tmp/con_ok.html ] |
then |
echo "Erreur : le serveur de blacklist ($BL_SERVER) n'est pas joignable" |
else |
transfert |
install |
chown -R dansguardian:apache $DIR_DANSGUARDIAN |
chmod -R g+w $DIR_DANSGUARDIAN |
service dansguardian reload |
DATE=`date '+%d %B %Y - %Hh%M'` |
echo "Univ-tlse du $DATE " > /var/www/html/VERSION-BL |
rm -rf /tmp/con_ok.html |
fi |
;; |
-reload) |
# regénération de la base OSSI/RSSI |
chown -R dansguardian:apache $DIR_DANSGUARDIAN/blacklists/ossi |
chmod -R g+w $DIR_DANSGUARDIAN/blacklists/ossi |
service dansguardian reload |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/sbin/alcasar-nf.sh |
---|
0,0 → 1,47 |
#/bin/sh |
# active ou desactive le filtrage réseau |
# by rexy |
SED="/bin/sed -i" |
FIC_SERVICES="/usr/local/etc/alcasar-services" |
FIC_EXCEPTIONS="/usr/local/etc/alcasar-filter-exceptions" |
usage="Usage: alcasar-nf.sh -on | -off " |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-on) |
# activation du filtrage réseau |
$SED "s?^FILTERING.*?FILTERING=\"yes\"?g" /usr/local/bin/alcasar-iptables.sh |
# tri du fichier de services |
sort -k2n $FIC_SERVICES > /tmp/alcasar-services-sort |
mv -f /tmp/alcasar-services-sort $FIC_SERVICES |
chown root:apache $FIC_SERVICES |
chmod 660 $FIC_SERVICES |
# vérification de présence du fichier d'exception |
[ -e $FIC_EXCEPTIONS ] || touch $FIC_EXCEPTIONS |
chown root:apache $FIC_EXCEPTIONS |
chmod 664 $FIC_EXCEPTIONS |
/usr/local/bin/alcasar-iptables.sh |
;; |
-off) |
# désactivation du filtrage réseau |
$SED "s?^FILTERING.*?FILTERING=\"no\"?g" /usr/local/bin/alcasar-iptables.sh |
/usr/local/bin/alcasar-iptables.sh |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/sbin/alcasar-profil.sh |
---|
0,0 → 1,120 |
#/bin/sh |
# Gestion des comptes liés aux profils |
ADM_PROFIL="admin" |
PROFILS="backup manager" |
ALL_PROFILS=`echo $ADM_PROFIL $PROFILS` |
DIR_KEY="/var/www/html/digest" |
SED="/bin/sed -i" |
HOSTNAME=`uname -n` |
# liste les comptes de chaque profile |
function list () { |
for i in $ALL_PROFILS |
do |
echo "Comptes liés au profil '$i' :" |
cat $DIR_KEY/key_only_$i | cut -d':' -f1|sort |
done |
} |
# ajoute les comptes du profil "admin" aux autres profils |
function concat () { |
for i in $PROFILS |
do |
cp -f $DIR_KEY/key_only_$ADM_PROFIL $DIR_KEY/key_$i |
cat $DIR_KEY/key_only_$i >> $DIR_KEY/key_$i |
done |
cp -f $DIR_KEY/key_only_$ADM_PROFIL $DIR_KEY/key_$ADM_PROFIL |
chown -R root:apache $DIR_KEY |
chmod 640 $DIR_KEY/key_* |
} |
usage="Usage: alcasar-profil.sh -list -add | -del | -pass" |
nb_args=$# |
args=$1 |
# on met en place la structure minimale |
if [ ! -e $DIR_KEY/key_$ADM_PROFIL ] |
then |
touch $DIR_KEY/key_$ADM_PROFIL |
fi |
cp -f $DIR_KEY/key_$ADM_PROFIL $DIR_KEY/key_only_$ADM_PROFIL |
for i in $PROFILS |
do |
if [ ! -e $DIR_KEY/key_only_$i ] |
then |
touch $DIR_KEY/key_only_$i |
fi |
done |
concat |
if [ $nb_args -eq 0 ] |
then |
echo $usage |
exit 0 |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-add) |
# ajout d'un compte |
list |
echo -n "Choisissez un profil ($ALL_PROFILS) : " |
read profil |
echo -n "Entrez le nom du compte à créer (profil '$profil') : " |
read account |
# on teste s'il n'existe pas déjà |
for i in $ALL_PROFILS |
do |
tmp_account=`cat $DIR_KEY/key_only_$i | cut -d':' -f1` |
for j in $tmp_account |
do |
if [ "$j" = "$account" ] |
then echo "Ce compte existe déjà" |
exit 0 |
fi |
done |
done |
/usr/sbin/htdigest $DIR_KEY/key_only_$profil $HOSTNAME $account |
concat |
list |
;; |
-del) |
# suppression d'un compte |
list |
echo -n "entrez le nom du compte à supprimer : " |
read account |
for i in $ALL_PROFILS |
do |
$SED "/^$account:/d" $DIR_KEY/key_only_$i |
done |
concat |
list |
;; |
-pass) |
# changement du mot de passe d'un compte |
list |
echo "Changement de mot de passe" |
echo -n "Entrez le nom du compte : " |
read account |
for i in $ALL_PROFILS |
do |
tmp_account=`cat $DIR_KEY/key_only_$i | cut -d':' -f1` |
for j in $tmp_account |
do |
if [ "$j" = "$account" ] |
then |
/usr/sbin/htdigest $DIR_KEY/key_only_$i $HOSTNAME $account |
fi |
done |
done |
concat |
;; |
-list) |
# liste des comptes par profile |
list |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/sbin/alcasar-uninstall.sh |
---|
0,0 → 1,143 |
#!/bin/sh |
# alcasar-uninstall.sh |
# by 3abtux, angel95 and rexy |
# This script is distributed under the Gnu General Public License (GPL) |
clear |
echo "-----------------------------------------------------------------------------" |
echo "** Désinstallation d'ALCASAR **" |
echo "-----------------------------------------------------------------------------" |
echo |
#services_stop |
for i in ntpd iptables ulogd dansguardian squid chilli httpd radiusd named |
do |
/sbin/chkconfig --del $i |
/etc/init.d/$i stop |
done |
echo "Réinitialisation des fonctions : " |
#init |
echo -en "\n-1 init(1) : " |
#les script /usr/local/bin alcasar* sont supprimés à la fin car encore utiles ici |
rm -f /root/ALCASAR* && echo -n "1," |
sleep 1 |
# network |
echo -en "\n-2 network(9) : " |
hostname localhost |
[ -e /etc/sysconfig/network-scripts/default-ifcfg-eth1 ] && mv /etc/sysconfig/network-scripts/default-ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1 && echo -n "1, " |
[ -e /etc/sysconfig/network.default ] && mv /etc/sysconfig/network.default /etc/sysconfig/network && echo -n "2, " |
[ -e /etc/hosts.default ] && mv /etc/hosts.default /etc/hosts && echo -n "3, " |
[ -e /etc/sysconfig/network-scripts/ifcfg-eth1 ] && rm -f /etc/sysconfig/network-scripts/ifcfg-eth1 && echo -n "4, " |
[ -e /etc/ntp.conf.default ] && mv /etc/ntp.conf.default /etc/ntp.conf && echo -n "5, " |
[ -e /etc/dhcpd.conf.default ] && mv /etc/dhcpd.conf.default /etc/dhcpd.conf && echo -n "6, " |
[ -e /etc/sysconfig/dhcpd.default ] && mv /etc/sysconfig/dhcpd.default /etc/sysconfig/dhcpd && echo -n "7, " |
[ -e /etc/hosts.allow.default ] && mv /etc/hosts.allow.default /etc/hosts.allow && echo -n "8, " |
[ -e /etc/hosts.deny.default ] && mv /etc/hosts.deny.default /etc/hosts.deny && echo -n "9" |
sleep 1 |
# gestion |
echo -en "\n-3 gestion(4) : " |
[ -d /var/www/html ] && rm -rf /var/www/html && echo -n "1, " |
[ -e /etc/httpd/conf/httpd.conf.default ] && mv /etc/httpd/conf/httpd.conf.default /etc/httpd/conf/httpd.conf && echo -n "2, " |
[ -e /etc/httpd/conf/webapps.d/alcasar.conf ] && rm -f /etc/httpd/conf/webapps.d/alcasar.conf && echo -n "3, " |
[ -e /var/www/error/include/bottom.html.default ] && mv /var/www/error/include/bottom.html.default /var/www/error/include/bottom.html && echo -n "4 " |
sleep 1 |
# CA |
echo -en "\n-4 AC(4) : " |
[ -e /etc/pki/CA/alcasar-ca.crt ] && rm -f /etc/pki/CA/alcasar-ca.crt && echo -n "1, " |
[ -e /etc/pki/CA/private/alcasar-ca.key ] && rm -f /etc/pki/CA/private/alcasar-ca.key && echo -n "2, " |
[ -e /etc/pki/tls/certs/alcasar.crt ] && rm -f /etc/pki/tls/certs/alcasar.crt && echo -n "3, " |
[ -e /etc/pki/tls/private/alcasar.key ] && rm -f /etc/pki/tls/private/alcasar.key && echo -n "4" |
sleep 1 |
#init_db |
echo -en "\n-5 init_db(2) : 1, " |
[ -e /etc/my.cnf.default ] && mv -f /etc/my.cnf.default /etc/my.cnf && echo -n "2 " |
/sbin/chkconfig --del mysqld |
/etc/init.d/mysqld stop |
/usr/bin/killall mysqld 2>/dev/null |
rm -rf /var/lib/mysql* |
sleep 1 |
#param_radius |
echo -en "\n-6 param_radius(7) : " |
[ -e /etc/raddb/radiusd-db-vierge.sql ] && rm -f /etc/raddb/radiusd-db-vierge.sql && echo -n "1, " |
[ -e /etc/raddb/radiusd.conf.default ] && mv /etc/raddb/radiusd.conf.default /etc/raddb/radiusd.conf && echo -n "2, " |
[ -e /etc/raddb/sites-enabled/alcasar ] && rm /etc/raddb/sites-enabled/alcasar && echo -n "3, " |
[ -e /etc/raddb/sites-available/alcasar ] && rm /etc/raddb/sites-available/alcasar && echo -n "4, " |
[ -e /etc/raddb/clients.conf.default ] && mv /etc/raddb/clients.conf.default /etc/raddb/clients.conf && echo -n "5, " |
[ -e /etc/raddb/sql.conf.default ] && mv /etc/raddb/sql.conf.default /etc/raddb/sql.conf && echo -n "6, " |
[ -e /etc/raddb/sql/mysql/dialup.conf.default ] && mv /etc/raddb/sql/mysql/dialup.conf.default /etc/raddb/sql/mysql/dialup.conf && echo -n "7" |
sleep 1 |
#param_web_radius |
echo -en "\n-7 param_web_radius(3) : " |
[ -e /etc/freeradius-web/admin.conf.default ] && mv /etc/freeradius-web/admin.conf.default /etc/freeradius-web/admin.conf && echo -n "1, " |
[ -e /etc/freeradius-web/naslist.conf ] && rm /etc/freeradius-web/naslist.conf && echo -n "2, " |
[ -e /etc/freeradius-web/user_edit.attrs.default ] && mv /etc/freeradius-web/user_edit.attrs.default /etc/freeradius-web/user_edit.attrs && echo -n "3" |
sleep 1 |
#param_chilli |
echo -en "\n-8 param_chilli(5) : " |
[ -e /etc/chilli/functions.default ] && mv /etc/chilli/functions.default /etc/chilli/functions && echo -n "1, " |
[ -e /etc/init.d/chilli.default ] && mv /etc/init.d/chilli.default /etc/init.d/chilli && echo -n "2, " |
[ -e /etc/chilli/config ] && rm /etc/chilli/config && echo -n "3, " |
[ -e /etc/chilli/alcasar-uamallowed ] && rm /etc/chilli/alcasar-uamallowed && echo -n "4, " |
[ -e /etc/chilli/alcasar-uamdomain ] && rm /etc/chilli/alcasar-uamdomain && echo -n "5" |
sleep 1 |
#param_squid |
echo -en "\n-9 param_squid(2) : " |
[ -e /etc/squid/squid.conf.default ] && mv /etc/squid/squid.conf.default /etc/squid/squid.conf && echo -n "1, " |
[ -d /var/spool/squid ] && rm -rf /var/spool/squid/* && echo -n "2" |
#param_dansguardian |
echo -en "\n-10 param_dansguardian(10) : " |
[ -e /etc/init.d/dansguardian.default ] && mv /etc/init.d/dansguardian.default /etc/init.d/dansguardian && echo -n "1, " |
[ -d /var/dansguardian ] && rm -rf /var/dansguardian && echo -n "2, " |
[ -e /etc/dansguardian/dansguardian.conf.default ] && mv /etc/dansguardian/dansguardian.conf.default /etc/dansguardian/dansguardian.conf && echo -n "3, " |
[ -e /etc/dansguardian/lists/bannedphraselist.default ] && mv /etc/dansguardian/lists/bannedphraselist.default /etc/dansguardian/lists/bannedphraselist && echo -n "4, " |
[ -e /etc/dansguardian/dansguardianf1.conf.default ] && mv /etc/dansguardian/dansguardianf1.conf.default /etc/dansguardian/dansguardianf1.conf && echo -n "5, " |
[ -e /etc/dansguardian/lists/bannedextensionlist.default ] && mv /etc/dansguardian/lists/bannedextensionlist.default /etc/dansguardian/lists/bannedextensionlist && echo -n "6, " |
[ -e /etc/dansguardian/lists/bannedmimetypelist.default ] && mv /etc/dansguardian/lists/bannedmimetypelist.default /etc/dansguardian/lists/bannedmimetypelist && echo -n "7, " |
[ -e /etc/dansguardian/lists/exceptioniplist.default ] && mv /etc/dansguardian/lists/exceptioniplist.default /etc/dansguardian/lists/exceptioniplist && echo -n "8, " |
[ -e /etc/dansguardian/lists/bannedsitelist.default ] && mv /etc/dansguardian/lists/bannedsitelist.default /etc/dansguardian/lists/bannedsitelist && echo -n "9, " |
[ -d /etc/dansguardian/lists/blacklists.default ] && mv -f /etc/dansguardian/lists/blacklists.default /etc/dansguardian/lists/blacklists && echo -n "10" |
sleep 1 |
#firewall |
echo -en "\n-11 firewall(1) : " |
[ -e /etc/sysconfig/iptables ] && rm -f /etc/sysconfig/iptables && echo -n "1" |
sleep 1 |
#awstats |
echo -en "\n-12 awstats(1) : " |
[ -e /etc/awstats/awstats.conf.default ] && mv /etc/awstats/awstats.conf.default /etc/awstats/awstats.conf && echo -n "1" |
sleep 1 |
#Bind |
echo -en "\n-13 bind(4) : " |
[ -e /var/lib/named/etc/named.conf.default ] && mv /var/lib/named/etc/named.conf.default /var/lib/named/etc/named.conf && echo -n "1, " |
[ -e /var/lib/named/etc/trusted_networks_acl.conf.default ] && mv /var/lib/named/etc/trusted_networks_acl.conf.default /var/lib/named/etc/trusted_networks_acl.conf && echo -n "2, " |
[ -e /var/lib/named/var/named/master/localdomain.zone.default ] && mv /var/lib/named/var/named/master/localdomain.zone.default /var/lib/named/var/named/master/localdomain.zone && echo -n "3, " |
[ -e /var/lib/named/var/named/reverse/localdomain.rev ] && rm /var/lib/named/var/named/reverse/localdomain.rev && echo -n "4" |
sleep 1 |
#cron |
echo -en "\n-13 cron(9) : " |
[ -e /etc/crontab.default ] && mv /etc/crontab.default /etc/crontab && echo -n "1, " |
[ -e /etc/anacrontab.default ] && mv /etc/anacrontab.default /etc/anacrontab && echo -n "2, " |
[ -e /etc/cron.d/mysql ] && rm -f /etc/cron.d/mysql && echo -n "3, " |
[ -e /etc/cron.d/export_log ] && rm -f /etc/cron.d/export_log && echo -n "4, " |
[ -e /etc/cron.d/clean_log ] && rm -f /etc/cron.d/clean_log && echo -n "5, " |
[ -e /etc/cron.d/awstats ] && rm -f /etc/cron.d/awstats && echo -n "6, " |
[ -e /etc/cron.d/freeradius-web ] && rm -f /etc/cron.d/freeradius-web && echo -n "7, " |
[ -e /etc/cron.d/coova ] && rm -f /etc/cron.d/coova && echo -n "8, " |
[ -e /etc/cron.d/watchdog ] && rm -f /etc/cron.d/watchdog && echo -n "9" |
sleep 1 |
#plugin_ldap |
[ -e /etc/raddb/ldap.attrmap.default ] && mv /etc/raddb/ldap.attrmap.default /etc/raddb/ldap.attrmap |
[ -e /etc/raddb/ldap.default ] && mv /etc/raddb/ldap.default /etc/raddb/modules/ldap |
sleep 1 |
#post_install |
echo -en "\n-14 post_install(11) : " |
[ -e /etc/mandriva-release.default ] && mv /etc/mandriva-release.default /etc/mandriva-release && echo -n "1, " |
[ -e /etc/ssh/alcasar-banner-ssh ] && rm -f /etc/ssh/alcasar-banner-ssh && echo -n "2, " |
[ -e /etc/ssh/sshd_config.default ] && mv /etc/ssh/sshd_config.default /etc/ssh/sshd_config && echo -n "3, " |
[ -e /etc/bashrc.default ] && mv /etc/bashrc.default /etc/bashrc && echo -n "4, " |
[ -e /etc/sudoers.default ] && mv /etc/sudoers.default /etc/sudoers && echo -n "5, " |
[ -e /etc/logrotate.d/mysqld ] && rm -f /etc/logrotate.d/mysqld && echo -n "6, " |
[ -e /etc/logrotate.d/httpd ] && rm -f /etc/logrotate.d/httpd && echo -n "7, " |
[ -e /etc/logrotate.d/squid ] && rm -f /etc/logrotate.d/squid && echo -n "8, " |
[ -e /etc/logrotate.d/radiusd ] && rm -f /etc/logrotate.d/radiusd && echo -n "9, " |
[ -e /etc/logrotate.d/ulogd ] && rm -f /etc/logrotate.d/ulogd && echo -n "10, " |
[ -e /usr/local/sbin/alcasar-uninstall.sh ] && rm -f /usr/local/sbin/alcasar* && rm -f /usr/local/bin/alcasar* && echo -n "11" |
sleep 1 |
echo |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/sbin/alcasar-mysql.sh |
---|
0,0 → 1,53 |
#! /bin/bash |
## Script de sauvegarde de la base MySQL 'radius' (by rexy) |
LANG="fr_FR@euro" # choix de la langue |
rep_tr="/var/Save/base" # répertoire d'accueil des sauvegardes |
ext="sql" # extention des fichiers de sauvegarde |
DB_RADIUS="db_radius" # nom de la base |
DB_USER="db_user" # nom d'utilisateur mysql (base des usagers) |
radiuspwd="radius_pwd" # mot de passe d'accès |
new="$(date +%F-%Hh%M)" # date et heure des fichiers |
fichier="$DB_RADIUS-$new.$ext" # nom du fichier de sauvegarde |
usage="Usage: alcasar-mysql.sh -dump | -import | -raz" |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-dump) |
[ -d $rep_tr ] || mkdir -p $rep_tr |
if [ -e $fichier ]; |
then rm -f $fichier |
fi |
echo "Export de la base 'db_radius' dans le fichier : $fichier" |
mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC $DB_RADIUS > $rep_tr/$fichier |
echo "Fin de Sauvegarde mysql $( date "+%Hh %Mmn" )" |
;; |
-import) |
if [ $nb_args -ne 2 ] |
then |
echo "Entrez le nom d'un fichier SQL (.sql)" |
exit 0 |
else |
mysql -u $DB_USER -p$radiuspwd < $2 |
fi |
;; |
-raz) |
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < /etc/raddb/radiusd-db-vierge.sql |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/sbin/alcasar-logout.sh |
---|
0,0 → 1,23 |
#/bin/sh |
# deconnexion d'un usager |
radiussecret="" |
usage="Usage: alcasar-logout.sh nom_d'usager" |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
*) |
echo "User-Name = $args" | /usr/bin/radclient 127.0.0.1:3799 40 $radiussecret |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/sbin/alcasar-bypass.sh |
---|
0,0 → 1,45 |
#!/bin/sh |
# Script portail-bypass |
# Permet d'activer ou de désactiver le contournement de l'authentification et du filtrage WEB |
usage="Usage: alcasar-bypass.sh -on | -off" |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-on) |
# activation du contournement |
for i in chilli squid dansguardian httpd mysqld radiusd |
do |
if (pgrep $i) > /dev/null ; then /etc/init.d/$i stop ; fi |
done |
echo "Configure eth1 ..." |
ifup eth1 |
sh /usr/local/bin/alcasar-iptables-bypass.sh |
if ! (pgrep dhcpd) > /dev/null ; then /etc/init.d/dhcpd start ; fi |
echo "Le contournement du module d'authentification et de filtrage WEB est activé" |
echo "les journaux du parefeu continuent néanmoins d'être enregistrés" |
;; |
-off) |
# désactivation du contournement |
if (pgrep dhcpd) > /dev/null ; then /etc/init.d/dhcpd stop ; fi |
for i in chilli squid dansguardian httpd mysqld radiusd |
do |
if ! (pgrep $i) > /dev/null ; then /etc/init.d/$i start ; fi |
done |
sh /usr/local/bin/alcasar-iptables.sh |
echo "L'authentification et le filtrage WEB sont de nouveau activés" |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-conf.sh |
---|
0,0 → 1,99 |
#/bin/sh |
# by rexy |
# Ce script permet de créer ou de charger l'archive des fichiers de configuration (/tmp/alcasar-conf.tar.gz) |
DIR_UPDATE="/tmp/conf" # répertoire de stockage des fichier de conf pour une mise à jour |
DIR_WEB="/var/www/html" # répertoire du centre de gestion |
DIR_DEST_SBIN="/usr/local/sbin" # répertoire des scripts d'admin |
DIR_DEST_ETC="/usr/local/etc" # répertoire des fichiers de conf |
DB_USER="db_user" # nom d'utilisateur mysql (base usagers) |
radiuspwd="radius_pwd" # mot de passe d'accès |
usage="Usage: alcasar-conf.sh -create | -load" |
nb_args=$# |
args=$1 |
if [ $nb_args -eq 0 ] |
then |
nb_args=1 |
args="-h" |
fi |
case $args in |
-\? | -h* | --h*) |
echo "$usage" |
exit 0 |
;; |
-create) |
DIR_UPDATE="/tmp/conf" # répertoire de stockage des fichier de conf pour une mise à jour |
[ -d $DIR_UPDATE ] && rm -rf $DIR_UPDATE |
mkdir $DIR_UPDATE |
# Sauvegarde des certificats (serveur et CA) |
cert_date=`/usr/bin/openssl x509 -noout -in /etc/pki/tls/certs/alcasar.crt -dates|grep After|cut -d"=" -f2` |
cp -f /etc/pki/tls/certs/alcasar.crt $DIR_UPDATE |
cp -f /etc/pki/tls/private/alcasar.key $DIR_UPDATE |
cp -f /etc/pki/CA/alcasar-ca.crt $DIR_UPDATE |
cp -f /etc/pki/CA/private/alcasar-ca.key $DIR_UPDATE |
# Sauvegarde de la base des usagers |
/usr/local/sbin/alcasar-mysql.sh -dump |
cp /var/Save/base/`ls /var/Save/base|tail -1` $DIR_UPDATE |
# Sauvegarde des comptes de gestion |
cp -rf $DIR_WEB/digest $DIR_UPDATE |
# Sauvegarde du nom d'organisme |
echo `hostname` > $DIR_UPDATE/hostname |
# Sauvegarde du logo |
cp -f $DIR_WEB/images/organisme.png $DIR_UPDATE |
# Sauvegarde des fichiers d'exceptions (urls, domains et mac) |
cp -f /etc/chilli/alcasar-* $DIR_UPDATE |
# Sauvegarde des listes de filtrage |
echo "sauvegarde de l'ancienne blacklist ..." |
cp -rf /etc/dansguardian/lists/ $DIR_UPDATE |
# sauvegarde des fichiers de filtrage réseau |
mkdir $DIR_UPDATE/etc/ |
cp -rf $DIR_DEST_ETC/* $DIR_UPDATE/etc/ |
# création de l'archive |
cd /tmp |
tar -cf alcasar-conf.tar conf/ |
gzip -f alcasar-conf.tar |
rm -rf $DIR_UPDATE |
;; |
-load) |
cd /tmp |
tar -xf /tmp/alcasar-conf.tar.gz |
# Récupération du nom d'organisme |
ORGANISME=`cat $DIR_UPDATE/hostname|cut -b 9-` |
hostname `cat $DIR_UPDATE/hostname` |
# Récupération du logo |
cp -f $DIR_UPDATE/organisme.png $DIR_WEB/images/ |
chown apache:apache $DIR_WEB/images/organisme.png $DIR_WEB/intercept.php |
# Récupération des certificats (CA et serveur) |
cp -f $DIR_UPDATE/alcasar-ca.crt /etc/pki/CA/ |
cp -f $DIR_UPDATE/alcasar-ca.key /etc/pki/CA/private/ |
cp -f $DIR_UPDATE/alcasar.crt /etc/pki/tls/certs/ |
cp -f $DIR_UPDATE/alcasar.key /etc/pki/tls/private/ |
chown -R root:apache /etc/pki |
chmod -R 750 /etc/pki |
# Import de la dernière base usagers |
mysql -u$DB_USER -p$radiuspwd < `ls $DIR_UPDATE/radius*` |
# Récupération des uamallowed |
cp -f $DIR_UPDATE/alcasar-uam* /etc/chilli/. |
chown root:apache /etc/chilli/alcasar-uam* |
chmod 660 /etc/chilli/alcasar-uam* |
# Récupération des listes de filtrage (BL principale et secondaire, @IP non filtrés, etc.) |
rm -rf /etc/dansguardian/lists |
cp -rf $DIR_UPDATE/lists /etc/dansguardian/ |
chown -R dansguardian:apache /etc/dansguardian/lists |
chmod -R g+rw /etc/dansguardian/lists |
# Récupération des comptes de gestion (admin + manager + backup) |
cp -rf $DIR_UPDATE/digest $DIR_WEB/ |
$DIR_DEST_SBIN/alcasar-profil.sh -list |
# Récupération des règles de filtrage réseau |
cp -f $DIR_UPDATE/etc/* $DIR_DEST_ETC/ |
chown root:apache $DIR_DEST_ETC/* |
chmod 660 $DIR_DEST_ETC/* |
rm -rf $DIR_UPDATE |
;; |
*) |
echo "Argument inconnu :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
+* |
\ No newline at end of property |
/scripts/alcasar-iptables-filter.sh |
---|
0,0 → 1,62 |
#!/bin/sh |
# by rexy (version 1.9 du 12/2009) |
# a voir la relation avec nf_nat_ftp |
# modprobe ip_conntrack_irc |
# modprobe ip_conntrack_ftp |
################## FILTRAGE PARTICULIER ################## |
# Administration à distance par exemple : |
## Autoriser SSH depuis l'extérieur sur le port 12222 #### |
## Ne pas oublier la règle de PAT sur le modem/routeur (box ADSL) ! ainsi que l'adresse IP de votre machine distante dans /etc/hosts.allow |
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -m state --state NEW -j ULOG --ulog-prefix "RULE Admin2 -- ACCEPT |
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -j REDIRECT --to-port 22 |
# $IPTABLES -A INPUT -i $EXTIF -p tcp --dport ssh -j ACCEPT |
########################################################## |
################# FILTRAGE APPLICATIF #################### |
## Positionnez la variable "FILTERING" du fichier "alcasar-iptables.sh" à "yes" pour activer le filtrage |
## Modifiez le fichier /usr/local/etc/alcasar-services pour l'adapter à vos besoins |
if [ $FILTERING = "yes" ] |
then |
# si le fichier d'exception est renseigné on le traite |
nb_exceptions=`wc -w /usr/local/etc/alcasar-filter-exceptions | cut -d" " -f1` |
if [ $nb_exceptions != "0" ] |
then |
while read ip_exception |
do |
echo $ip_exception |
$IPTABLES -A FORWARD -i $TUNIF -s $ip_exception -m state --state NEW -j ULOG --ulog-prefix "RULE IP-exception -- ACCEPT " |
$IPTABLES -A FORWARD -i $TUNIF -s $ip_exception -m state --state NEW,ESTABLISHED -j ACCEPT |
done < /usr/local/etc/alcasar-filter-exceptions |
fi |
# On autorise les protoles non commentés |
while read svc_line |
do |
svc_on=`echo $svc_line|cut -b1` |
if [ $svc_on != "#" ] |
then |
svc_name=`echo $svc_line|cut -d" " -f1` |
svc_port=`echo $svc_line|cut -d" " -f2` |
if [ $svc_name = "icmp" ] |
then |
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j ACCEPT |
# else if [ $svc_name = "ftp-passif" ] |
# then |
# /sbin/modprobe nf_nat_ftp |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ULOG --ulog-prefix "RULE F_ftp-passifE -- ACCEPT " |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state RELATED -j ULOG --ulog-prefix "RULE F_ftp-passifR -- ACCEPT " |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT |
# fi |
else |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW -j ULOG --ulog-prefix "RULE F_$svc_name -- ACCEPT " |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW,ESTABLISHED -j ACCEPT |
fi |
fi |
done < /usr/local/etc/alcasar-services |
#tout le reste est bloqué |
$IPTABLES -A FORWARD -i $TUNIF -p tcp -j REJECT --reject-with tcp-reset |
$IPTABLES -A FORWARD -i $TUNIF -p udp -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j REJECT |
fi |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-urpmi.sh |
---|
0,0 → 1,43 |
#!/bin/sh |
# script d'ajout des medias logiciels |
# 3abtux & rexy |
# changelog : |
# + prise en compte dynamique de la version de la distribution |
# + prise en compte de la nouvelle struture RPM |
# + test avant sortie |
fic=`cat /etc/product.id` |
old="$IFS" |
IFS="," |
set $fic |
for i in $* |
do |
if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ] |
then |
ARCH=`echo $i|cut -d"=" -f2` |
fi |
if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ] |
then |
VERSION=`echo $i|cut -d"=" -f2` |
fi |
done |
IFS="$old" |
# For International install |
# MIRRORLIST="http://api.mandriva.com/mirrors/basic.$VERSION.$ARCH.list" |
# For french ALCASARistes |
MIRRORLIST="http://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/$VERSION/$ARCH" |
urpmi.removemedia -a |
urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST main /media/main/release |
urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST main_updates /media/main/updates |
urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST contrib /media/contrib/release |
urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST contrib_updates /media/contrib/updates |
nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l` |
if [ "$nb_repository" != "4" ] |
then |
exit 1 |
else exit 0 |
fi |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-watchdog.sh |
---|
0,0 → 1,51 |
#/bin/sh |
# by rexy |
# Ce script permet de déconnecter les usagers dont |
# - les équipementis réseau ne répondent plus |
# - les adresses MAC sont usurpées |
# The aim of this script is to disconnect users whose |
# - PCs are quiet |
# - MAC address are in used by other systems (usurped) |
INTIF="eth1" |
PRIVATE_IP="192.168.182.1" |
tmp_file="/tmp/watchdog.txt" |
IFS=$'\n' |
# lecture du fichier contenant les adresses IP des stations muettes |
if [ -e $tmp_file ]; then |
cat $tmp_file | while read noresponse |
do |
noresponse_ip=`echo $noresponse | cut -d" " -f1` |
noresponse_mac=`echo $noresponse | cut -d" " -f2` |
arp_reply=`/usr/sbin/arping -b -I$INTIF -s$PRIVATE_IP -c1 $noresponse_ip|grep response|cut -d" " -f2` |
if [[ $(expr $arp_reply) -eq 0 ]] |
then |
logger "alcasar-watchdog $noresponse_ip ($noresponse_mac) reste muette. On déconnecte." |
/usr/sbin/chilli_query logout $noresponse_mac |
fi |
done |
rm $tmp_file |
fi |
# on traite chaque équipements connus de chilli |
for system in `/usr/sbin/chilli_query list` |
do |
active_ip=`echo $system |cut -d" " -f2` |
active_session=`echo $system |cut -d" " -f5` |
active_mac=`echo $system | cut -d" " -f1` |
# on ne traite que les équipements exploitées par un usager authentifié |
if [[ $(expr $active_session) -eq 1 ]] |
then |
arp_reply=`/usr/sbin/arping -b -I$INTIF -s$PRIVATE_IP -c2 $active_ip|grep response|cut -d" " -f2` |
# on stocke les adresses IP des stations muettes |
if [[ $(expr $arp_reply) -eq 0 ]] |
then |
echo "$active_ip $active_mac" >> $tmp_file |
fi |
# on deconnecte l'usager d'une stations usurpée (@MAC) |
if [[ $(expr $arp_reply) -gt 2 ]] |
then |
logger "alcasar-watchdog : $active_ip est usurpée ($active_mac). On déconnecte." |
/usr/sbin/chilli_query logout $active_mac |
fi |
fi |
done |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-iptables.sh |
---|
0,0 → 1,118 |
#!/bin/sh |
# script de mise en place des regles du parefeu d'Alcasar (mode normal) |
# Rexy - 3abtux - CPN |
# version 1.8 (12/2009) |
# changelog : |
# + prise en compte des règles de "filtrage réseau" (alcasar-iptables-filter.sh) |
# + suppression log vers syslog |
# + suppression des broadcast sur EXTIF et INTIF |
# + suppression du filtrage par la table "NAT" -> utilisation de la table "MANGLE" |
IPTABLES="/sbin/iptables" |
FILTERING="no" |
EXTIF="eth0" |
INTIF="eth1" |
TUNIF="tun0" |
PRIVATE_NETWORK_MASK="192.168.182.0/24" |
PRIVATE_IP="192.168.182.1" |
# On vide (flush) toutes les règles existantes |
$IPTABLES -F |
$IPTABLES -t nat -F |
$IPTABLES -t mangle -F |
$IPTABLES -F INPUT |
$IPTABLES -F FORWARD |
$IPTABLES -F OUTPUT |
# On indique les politiques par défaut |
$IPTABLES -P INPUT DROP |
$IPTABLES -P FORWARD DROP |
$IPTABLES -P OUTPUT ACCEPT |
$IPTABLES -t nat -P PREROUTING ACCEPT |
$IPTABLES -t nat -P POSTROUTING ACCEPT |
$IPTABLES -t nat -P OUTPUT ACCEPT |
# On efface toutes les chaines qui ne sont pas par défaut dans les tables filter et nat |
$IPTABLES -X |
$IPTABLES -t nat -X |
# On autorise tout sur loopback |
$IPTABLES -A INPUT -i lo -j ACCEPT |
# on autorise les requêtes dhcp |
$IPTABLES -A INPUT -i $INTIF -p udp -m udp --sport bootpc --dport bootps -j ACCEPT |
# On ferme INTIF (tout passe par TUNIF) |
$IPTABLES -A INPUT -i $INTIF -j ULOG --ulog-prefix "RULE Protect1 -- REJECT " |
$IPTABLES -A INPUT -i $INTIF -j REJECT |
# Règles d'antispoofing |
$IPTABLES -A INPUT -i $TUNIF ! -s $PRIVATE_NETWORK_MASK -j ULOG --ulog-prefix "RULE Antispoof1 -- DENY " |
$IPTABLES -A INPUT -i $TUNIF ! -s $PRIVATE_NETWORK_MASK -j DROP |
$IPTABLES -A INPUT -i $EXTIF -s $PRIVATE_NETWORK_MASK -j ULOG --ulog-prefix "RULE Antispoof2 -- DENY " |
$IPTABLES -A INPUT -i $EXTIF -s $PRIVATE_NETWORK_MASK -j DROP |
# On drop le broadcast et le multicast sur les interfaces (sans Log) |
$IPTABLES -A INPUT -m addrtype --dst-type BROADCAST,MULTICAST -j DROP |
# On autorise le ping dans les deux sens (icmp N°0 & 8) en provenance du LAN |
$IPTABLES -A INPUT -i $TUNIF -s $PRIVATE_NETWORK_MASK -p icmp --icmp-type 0 -j ACCEPT |
$IPTABLES -A INPUT -i $TUNIF -s $PRIVATE_NETWORK_MASK -p icmp --icmp-type 8 -j ACCEPT |
# On ajoute ici les règles de filtrage réseau |
if [ -f /usr/local/bin/alcasar-iptables-filter.sh ]; then |
. /usr/local/bin/alcasar-iptables-filter.sh |
fi |
# On autorise le transfert de flux dans les deux sens (avec log sur les demandes de connexion sortantes) |
$IPTABLES -A FORWARD -i $TUNIF -m state --state NEW -j ULOG --ulog-prefix "RULE Transfert1 -- ACCEPT " |
$IPTABLES -A FORWARD -i $TUNIF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT |
$IPTABLES -A FORWARD -o $TUNIF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT |
# On autorise les flux entrant dns, ntp, https, ssh et le port 3990 (connexion/deconnexion des usagers). Retour autorisé par politique accept en OUTPUT |
$IPTABLES -A INPUT -i $TUNIF -p udp --dport domain -j ACCEPT |
$IPTABLES -A INPUT -i $TUNIF -p udp --dport ntp -j ACCEPT |
$IPTABLES -A INPUT -i $TUNIF -p tcp --dport https -j ACCEPT |
$IPTABLES -A INPUT -i $TUNIF -p tcp --dport ssh -j ACCEPT |
$IPTABLES -A INPUT -i $TUNIF -p tcp --dport 3990 -j ACCEPT |
# On autorise le retour des connexions sortantes (politique ouput accept) |
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT |
# On redirige les requêtes DNS sortantes sur BIND local |
# log DNS query present dans log du service BIND query.log --> pas de log dans firewall.log |
#$IPTABLES -A PREROUTING -t nat -i $TUNIF -p udp ! -d $PRIVATE_IP -m udp --dport domain -j ULOG --ulog-prefix "RULE direct-DNS -- REDIRECT " |
$IPTABLES -A PREROUTING -t nat -i $TUNIF -p udp ! -d $PRIVATE_IP --dport domain -j REDIRECT --to-port domain |
#$IPTABLES -A PREROUTING -t nat -i $TUNIF -p tcp ! -d $PRIVATE_IP -m tcp --dport domain -j ULOG --ulog-prefix "RULE direct-DNS -- REDIRECT " |
$IPTABLES -A PREROUTING -t nat -i $TUNIF -p tcp ! -d $PRIVATE_IP --dport domain -j REDIRECT --to-port domain |
# On interdit les connexions directes sur le port de DansGuardian (8080) |
# les paquets concernés sont marqués par une règle de PREROUTING (cf. ci-après) |
$IPTABLES -A INPUT -i $TUNIF -p tcp --dport 8080 -m mark --mark 1 -j DROP |
# On autorise les connexions sur DansGuardian |
$IPTABLES -A INPUT -i $TUNIF -p tcp --dport 8080 -m state --state NEW --syn -j ACCEPT |
# On log les requêtes HTTP sortantes (demande de connexion seulement) |
$IPTABLES -A PREROUTING -t nat -i $TUNIF -p tcp ! -d $PRIVATE_IP --dport http -m state --state NEW -j ULOG --ulog-prefix "RULE Transfert2 -- ACCEPT " |
# On redirige les requête http sortantes vers DansGuardian (mode "proxy transparent") |
$IPTABLES -A PREROUTING -t nat -i $TUNIF -p tcp ! -d $PRIVATE_IP --dport http -j REDIRECT --to-port 8080 |
# On traite les tentatives de contournement par accès direct à DansGuardian (marquage des paquets) |
$IPTABLES -A PREROUTING -t nat -i $TUNIF -p tcp -d $PRIVATE_IP -m tcp --dport 8080 -j ULOG --ulog-prefix "RULE direct-proxy -- DENY " |
$IPTABLES -A PREROUTING -t mangle -i $TUNIF -p tcp -d $PRIVATE_IP -m tcp --dport 8080 -j MARK --set-mark 1 |
# On interdit et on log le reste sur les 2 interfaces d'accès |
$IPTABLES -A INPUT -i $TUNIF -j ULOG --ulog-prefix "RULE rej-int -- REJECT " |
$IPTABLES -A INPUT -i $EXTIF -j ULOG --ulog-prefix "RULE rej-ext -- REJECT " |
$IPTABLES -A INPUT -p tcp -j REJECT --reject-with tcp-reset |
$IPTABLES -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable |
# On active le masquage d'adresse par translation (NAT) |
$IPTABLES -A POSTROUTING -t nat -o $EXTIF -j MASQUERADE |
# On sauvegarde les règles |
/etc/init.d/iptables save |
# On ne log pas les Log_martians (pour la mdv 2009 seulement) |
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians |
# Fin du script des règles du parefeu |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-CA.sh |
---|
0,0 → 1,246 |
#!/bin/sh |
# |
# alcasar-CA.sh |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY |
# This script is distributed under the Gnu General Public License (GPL) |
# |
# Some ideas from "nessus-mkcert" script written by Renaud Deraison <deraison@cvs.nessus.org> |
# and Michel Arboi <arboi@alussinan.org> |
# |
DIR_TMP=${TMPDIR-/tmp}/alcasar-mkcert.$$ |
DIR_PKI=/etc/pki |
DIR_CERT=$DIR_PKI/tls |
DIR_WEB=/var/www/html |
CACERT=$DIR_PKI/CA/alcasar-ca.crt |
CAKEY=$DIR_PKI/CA/private/alcasar-ca.key |
SRVCERT=$DIR_CERT/certs/alcasar.crt |
SRVKEY=$DIR_CERT/private/alcasar.key |
SRVREQ=$DIR_CERT/alcasar.req |
FIC_PARAM="/root/ALCASAR-parameters.txt" |
CACERT_LIFETIME="1460" |
SRVCERT_LIFETIME="1460" |
COUNTRY="FR" |
PROVINCE="none" |
LOCATION="Paris" |
ORGANIZATION="ALCASAR-Team" |
mkdir $DIR_TMP || exit 1 |
# dynamic conf file for openssl |
cat <<EOF >$DIR_TMP/ssl.conf |
RANDFILE = $HOME/.rnd |
# |
[ ca ] |
default_ca = AlcasarCA |
[ AlcasarCA ] |
dir = $DIR_TMP # Where everything is kept |
certs = \$dir # Where the issued certs are kept |
crl_dir = \$dir # Where the issued crl are kept |
database = \$dir/index.txt # database index file. |
new_certs_dir = \$dir # default place for new certs. |
certificate = $CACERT # The CA certificate |
serial = \$dir/serial # The current serial number |
crl = \$dir/crl.pem # The current CRL |
private_key = $CAKEY # The private key |
x509_extensions = usr_cert # The extentions to add to the cert |
crl_extensions = crl_ext |
default_days = 365 # how long to certify for |
default_crl_days= 30 # how long before next CRL |
default_md = md5 # which md to use. |
preserve = no # keep passed DN ordering |
policy = policy_anything |
[ policy_anything ] |
countryName = optional |
stateOrProvinceName = optional |
localityName = optional |
organizationName = optional |
organizationalUnitName = optional |
commonName = supplied |
emailAddress = optional |
[ req ] |
default_bits = 1024 |
distinguished_name = req_distinguished_name |
# attributes = req_attributes |
x509_extensions = v3_ca # The extentions to add to the self signed cert |
[ req_distinguished_name ] |
countryName = Country Name (2 letter code) |
countryName_default = FR |
countryName_min = 2 |
countryName_max = 2 |
stateOrProvinceName = State or Province Name (full name) |
stateOrProvinceName_default = Some-State |
localityName = Locality Name (eg, city) |
localityName_default = Lyon |
0.organizationName = Organization Name (eg, company) |
0.organizationName_default = your organization name |
# we can do this but it is not needed normally :-) |
#1.organizationName = Second Organization Name (eg, company) |
#1.organizationName_default = World Wide Web Pty Ltd |
organizationalUnitName = Organizational Unit Name (eg, section) |
#organizationalUnitName_default = |
commonName = Common Name (eg, your name or your server\'s hostname) |
commonName_max = 255 |
emailAddress = Email Address |
emailAddress_max = 255 |
# SET-ex3 = SET extension number 3 |
[ usr_cert ] |
# These extensions are added when 'ca' signs a request. |
# This goes against PKIX guidelines but some CAs do it and some software |
# requires this to avoid interpreting an end user certificate as a CA. |
#basicConstraints=CA:FALSE |
# Here are some examples of the usage of nsCertType. If it is omitted |
# the certificate can be used for anything *except* object signing. |
# This is OK for an SSL server. |
# nsCertType = nsCertType |
# For normal client use this is typical |
# nsCertType = client, email |
nsCertType = server |
keyUsage = nonRepudiation, digitalSignature, keyEncipherment |
# This will be displayed in Netscape's comment listbox. |
nsComment = "OpenSSL Generated Certificate" |
# PKIX recommendations harmless if included in all certificates. |
subjectKeyIdentifier=hash |
authorityKeyIdentifier=keyid,issuer:always |
# This stuff is for subjectAltName and issuerAltname. |
# Import the email address. |
subjectAltName=email:copy |
# Copy subject details |
issuerAltName=issuer:copy |
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem |
#nsBaseUrl |
#nsRevocationUrl |
#nsRenewalUrl |
#nsCaPolicyUrl |
#nsSslServerName |
[ v3_ca ] |
# PKIX recommendation. |
subjectKeyIdentifier=hash |
authorityKeyIdentifier=keyid:always,issuer:always |
# This is what PKIX recommends but some broken software chokes on critical |
# extensions. |
basicConstraints = critical,CA:true |
# So we do this instead. |
#basicConstraints = CA:true |
# Key usage: this is typical for a CA certificate. However since it will |
# prevent it being used as an test self-signed certificate it is best |
# left out by default. |
keyUsage = cRLSign, keyCertSign |
nsCertType = sslCA |
EOF |
hostname=`hostname` |
if [ -z "$hostname" ]; |
then |
echo "Impossible de déterminer le nom d'hôte !!!" |
exit 1 |
fi |
# The value for organizationalUnitName must be 64 chars or less; |
# thus, hostname must be 36 chars or less. If it's too big, |
# try removing domain (merci REXY ;-) ). |
hostname_len=`echo $hostname| wc -c` |
if [ $hostname_len -gt 36 ]; |
then |
hostname=`echo $hostname | cut -d '.' -f 1` |
fi |
if [ ! -f /etc/sysconfig/network-scripts/ifcfg-eth1 ] |
then |
echo "Impossible de déterminer l'@-IP" |
exit 1 |
fi |
IPADDR=`cat /etc/sysconfig/network-scripts/ifcfg-eth1 |grep IPADDR|cut -d"=" -f2` |
CAMAIL=ca@$hostname |
SRVMAIL=apache@$hostname |
echo 01 > $DIR_TMP/serial |
touch $DIR_TMP/index.txt |
# CA key |
rm -f $CAKEY |
echo "*********CAKEY*********" > $DIR_TMP/openssl-log |
openssl genrsa -out $CAKEY 1024 2>> $DIR_TMP/openssl-log |
# CA certificate |
rm -f $CACERT |
echo "*********CACERT*********" >> $DIR_TMP/openssl-log |
echo "$COUNTRY |
$PROVINCE |
$LOCATION |
$ORGANIZATION |
Certification Authority for $hostname |
ALCASAR-local-CA |
$CAMAIL" | |
openssl req -config $DIR_TMP/ssl.conf -new -x509 -days $CACERT_LIFETIME -key $CAKEY -out $CACERT 2>> $DIR_TMP/openssl-log |
# Server key |
rm -f $SRVKEY |
echo "*********SRVKEY*********" >> $DIR_TMP/openssl-log |
openssl genrsa -out $SRVKEY 1024 2>> $DIR_TMP/openssl-log |
# Server certificate "request" |
echo "*********SRVRQST*********" >> $DIR_TMP/openssl-log |
echo "$COUNTRY |
$PROVINCE |
$LOCATION |
$ORGANIZATION |
Server certificate for $hostname |
$IPADDR |
$SRVMAIL" | |
openssl req -config $DIR_TMP/ssl.conf -new -key $SRVKEY -out $SRVREQ 2>> $DIR_TMP/openssl-log |
# Sign the server certificate "request" to create server certificate |
rm -f $SRVCERT |
echo "*********SRVCERT*********" >> $DIR_TMP/openssl-log |
openssl ca -config $DIR_TMP/ssl.conf -name AlcasarCA -batch -days $SRVCERT_LIFETIME -in $SRVREQ -out $SRVCERT 2>> $DIR_TMP/openssl-log |
rm -f $SRVREQ |
chmod a+r $CACERT $SRVCERT |
if [ -s "$CACERT" -a -s "$CAKEY" -a -s "$SRVCERT" -a -s "$SRVKEY" ]; |
then |
echo "- Certificat de l'Authorité de Certification : " >> $FIC_PARAM |
echo " Certificat = $CACERT" >> $FIC_PARAM |
echo " Clée privée = $CAKEY" >> $FIC_PARAM |
echo "- Certificat du serveur : " >> $FIC_PARAM |
echo " Certificat = $SRVCERT" >> $FIC_PARAM |
echo " Clée privée = $SRVKEY" >> $FIC_PARAM |
[ -d $DIR_WEB/certs ] || mkdir -p $DIR_WEB/certs |
rm -f $DIR_WEB/certs/* |
ln -s $CACERT $DIR_WEB/certs/certificat_alcasar_ca.pem |
ln -s $SRVCERT $DIR_WEB/certs/certificat_alcasar.pem |
rm -rf $DIR_TMP |
exit 0 |
else |
echo "Problème lors de la création des certificats (cf. $DIR_TMP/openssl-log)" >> $FIC_PARAM |
exit 1 |
fi |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-iptables-bypass.sh |
---|
0,0 → 1,80 |
#!/bin/sh |
# script d'initialisation des regles du parefeu en mode ByPass |
# Rexy - 3abtux |
# version 1.8 - 12/2009 |
# changelog : |
# + prise en compte optionnelle d'un fichier iptables 'personnel' permettant de bloquer certains flux/services |
# + suppression log vers syslog |
# + suppression du broadcast et du multicast sur les interfaces |
IPTABLES="/sbin/iptables" |
EXTIF="eth0" |
INTIF="eth1" |
PRIVATE_NETWORK_MASK="192.168.182.0/24" |
# On vide (flush) toutes les règles existantes |
$IPTABLES -F |
$IPTABLES -t nat -F |
$IPTABLES -F INPUT |
$IPTABLES -F FORWARD |
$IPTABLES -F OUTPUT |
# On indique les politiques par défaut |
$IPTABLES -P INPUT DROP |
$IPTABLES -P FORWARD DROP |
$IPTABLES -P OUTPUT ACCEPT |
$IPTABLES -t nat -P PREROUTING ACCEPT |
$IPTABLES -t nat -P POSTROUTING ACCEPT |
$IPTABLES -t nat -P OUTPUT ACCEPT |
# On efface toutes les chaînes qui ne sont pas par défaut dans les tables filter et nat |
$IPTABLES -X |
$IPTABLES -t nat -X |
# On autorise tout sur loopback |
$IPTABLES -A INPUT -i lo -j ACCEPT |
# on autorise les requêtes dhcp |
$IPTABLES -A INPUT -i $INTIF -p udp -m udp --sport bootpc --dport bootps -j ACCEPT |
# Règles d'antispoofing |
$IPTABLES -A INPUT -i $INTIF ! -s $PRIVATE_NETWORK_MASK -j ULOG --ulog-prefix "RULE Antispoof1 -- DENY " |
$IPTABLES -A INPUT -i $INTIF ! -s $PRIVATE_NETWORK_MASK -j DROP |
$IPTABLES -A INPUT -i $EXTIF -s $PRIVATE_NETWORK_MASK -j ULOG --ulog-prefix "RULE Antispoof2 -- DENY " |
$IPTABLES -A INPUT -i $EXTIF -s $PRIVATE_NETWORK_MASK -j DROP |
# On drop le broadcast et le multicasat sur les interfaces (sans Log) |
$IPTABLES -A INPUT -m addrtype --dst-type BROADCAST,MULTICAST -j DROP |
# On autorise le ping dans les deux sens (icmp N°0 & 8) en provenance du LAN |
$IPTABLES -A INPUT -i $INTIF -s $PRIVATE_NETWORK_MASK -p icmp --icmp-type 0 -j ACCEPT |
$IPTABLES -A INPUT -i $INTIF -s $PRIVATE_NETWORK_MASK -p icmp --icmp-type 8 -j ACCEPT |
# On autorise le tranfert des requête DNS (sans LOG) |
$IPTABLES -A FORWARD -i $INTIF -p udp --dport domain -j ACCEPT |
# On autorise le flux dans les deux sens (avec Log sur les demandes de connexion). |
$IPTABLES -A FORWARD -i $INTIF -m state --state NEW -j ULOG --ulog-prefix "RULE Transfert -- ACCEPT " |
$IPTABLES -A FORWARD -i $INTIF -m state --state NEW -j ACCEPT |
$IPTABLES -A FORWARD -i $INTIF -m state --state RELATED,ESTABLISHED -j ACCEPT |
$IPTABLES -A FORWARD -o $INTIF -m state --state RELATED,ESTABLISHED -j ACCEPT |
# On autorise les flux entrant ntp et ssh via INTIF |
$IPTABLES -A INPUT -i $INTIF -p udp --dport ntp -j ACCEPT |
$IPTABLES -A INPUT -i $INTIF -p tcp --dport ssh -j ACCEPT |
# On autorise les flux entrant des connexions déjà établies (ping à partir du portail par exemple) |
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT |
# On interdit et on log le reste sur les 2 interfaces d'accès |
$IPTABLES -A INPUT -i $INTIF -j ULOG --ulog-prefix "RULE rej-int -- REJECT " |
$IPTABLES -A INPUT -i $EXTIF -j ULOG --ulog-prefix "RULE rej-ext -- REJECT " |
$IPTABLES -A INPUT -p tcp -j REJECT --reject-with tcp-reset |
$IPTABLES -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable |
# On active le masquage d'adresse par translation (NAT) |
$IPTABLES -A POSTROUTING -t nat -o $EXTIF -j MASQUERADE |
/etc/init.d/iptables save |
# Fin du script des regles du parefeu |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-mondo.sh |
---|
0,0 → 1,28 |
#!/bin/sh |
# by 3abtux (with debug helps by Michel GAUDET) |
DIR_TMP="/var/log/mondo" |
DIR_ISO="/var/Save/ISO" |
date=`date +%F-%Hh%M` |
HOSTNAME=`hostname -s` |
ROOT="root" |
ISOFile=$HOSTNAME-$date |
EXCLUDE="$DIR_ISO $DIR_TMP /tmp /mnt /media" |
echo "Les répertoires exclus de l'image ISO sont : $EXCLUDE " |
echo "##################################################" |
echo "# Création de l'archive ISO système d'Alcasar ! #" |
echo "##################################################" |
echo "" |
echo "--------------------------------------------------------" |
echo "Les ISOs seront disponibles dans le répertoire suivant :" |
echo "==--> $DIR_ISO" |
/bin/touch $DIR_ISO/creation-of-the-current-archive |
mkdir $DIR_TMP |
/bin/nice -n 19 /usr/sbin/mondoarchive -p $ISOFile -Oi -s 4300m -d $DIR_ISO -T $DIR_TMP -S $DIR_TMP -E "$EXCLUDE" |
cd $DIR_ISO |
for i in `ls *.iso` ;do |
/usr/bin/md5sum $i > $i.md5 |
done |
rm -rf $DIR_TMP/mondo.scratch.* $DIR_TMP/tmp.mondo.* $DIR_TMP/.*.dat |
rm -f $DIR_ISO/creation-of-the-current-archive |
exit 0 |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-log-export.sh |
---|
0,0 → 1,36 |
#!/bin/sh |
# |
# alcasar-log-export.sh |
# by Franck BOUIJOUX |
# This script is distributed under the Gnu General Public License (GPL) |
# Script permettant d'exporter des logs des répertoires /var/log/(squid-firewall-httpd ) à des fins d'archivages. |
# Une fonction EXPERIMENTALE de chiffrement et de signature des logs a été implémentée dans ce script. Son activation par la mise à '1' de la variable 'CHIFFREMENT' et/ou 'SIGNATURE' permet de chiffrer-signer ou signer les logs contenus dans /var/Save/logs/. |
# Il est nécessaire de détenir la passphrase de la clé privée de l'utilisateur 'admin-chillispot' pour rendre ces logs lisibles (la passphrase est actuellement détenue par l'équipe projet. |
# changelog : |
# - 20080114 - implémentation de la signature des archives logs |
date=`date +%F` |
TO_SAVE="/var/Save/logs" # répertoire accessible par webs |
REP_SAVE="/var/log" # répertoire local des logs |
REP_SERVICE="squid httpd firewall" # liste des répertoires contenant des logs à exporter |
CHIFFREMENT="0" # chiffrement des logs ( 0=non / 1=oui ) |
GPG_USER="" # utilisateur autorisé à déchiffrer les logs. Son biclé est inclus dans le portefeuille gnupg de root (/root/.gnupg) |
for i in $REP_SERVICE ; do |
[ -d $TO_SAVE/$i ] || mkdir -p $TO_SAVE/$i # utile une seule fois mais crée le répertoire si nécessaire |
cd $REP_SAVE/$i |
if [ $CHIFFREMENT -eq "1" ] |
then |
# chiffrement des logs dans /var/Save/logs/(squid|firewall|httpd) |
find . \( -mtime -7 -o -ctime 0 \) -a \( -name '*access*log*.gz' -o -name 'firewall*.gz' -o -name 'admin*.gz' \) -exec gpg --output $TO_SAVE/$i/{}.gpg --encrypt --recipient $GPG_USER {} \; |
else |
# copie simple des logs dans /var/Save/logs/(squid|firewall|httpd) |
find . \( -mtime -7 -o -ctime 0 \) -a \( -name '*access*log*.gz' -o -name 'firewall*.gz' -o -name 'admin*.gz' \) -exec cp {} $TO_SAVE/$i/. \; |
fi |
done |
chown -R apache.apache $TO_SAVE |
exit 0 |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/scripts/alcasar-log-clean.sh |
---|
0,0 → 1,14 |
#!/bin/sh |
# script de nettoyage des archives supérieures à 1 an ( 365 jours) |
DATE=`date +%F` |
REP="/var/log/squid/ /var/log/httpd/ /var/log/firewall/ /var/Save/base/ /var/Save/logs/firewall/ /var/Save/logs/squid/ /var/Save/logs/httpd/" |
delay=365 |
for i in $REP |
do |
find $i -mtime +$delay -name '*.gz' -exec rm -f {} \; |
find $i -mtime +$delay -name '*.sql' -exec rm -f {} \; |
done |
exit 0 |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
/gestion/admin/network.php |
---|
0,0 → 1,181 |
<?php |
/* written by steweb57 */ |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_network_title = "Configuration réseau"; |
$l_network_title1 = "Gestion de la configuration réseau"; |
$l_eth0_legend = "Eth0 (Interface connectée à Internet)"; |
$l_eth1_legend = "Eth1 (Réseau de consultation)"; |
$l_internet_legend = "INTERNET"; |
$l_ip_adr = "Adresse IP"; |
$l_ip_mask = "Masque"; |
$l_ip_router = "Passerelle"; |
$l_ip_public = "Adresse IP public"; |
$l_ip_dns1 = "DNS1"; |
$l_ip_dns2 = "DNS2"; |
} else { |
$l_network_title = "Network configuration"; |
$l_network_title1 = "Network configuration managment"; |
$l_eth0_legend = "Eth0 (Internet connected interface)"; |
$l_eth1_legend = "Eth1 (Private network)"; |
$l_internet_legend = "INTERNET"; |
$l_ip_adr = "IP Address"; |
$l_ip_mask = "Mask"; |
$l_ip_router = "Router"; |
$l_ip_public = "Public IP address"; |
$l_ip_dns1 = "DNS1 :"; |
$l_ip_dns2 = "DNS2"; |
} |
/******************************************************************** |
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION * |
*********************************************************************/ |
define ("ALCASAR_CHILLI", "/etc/chilli/config"); |
define ("ALCASAR_ETH0", "/etc/sysconfig/network-scripts/default-ifcfg-eth0"); |
define ("ALCASAR_ETH1", "/etc/sysconfig/network-scripts/ifcfg-eth1"); |
/******************************************************************** |
* TEST DES FICHIERS DE CONFIGURATION * |
*********************************************************************/ |
//Test de présence et des droits en lecture des fichiers de configuration. |
if (!file_exists(ALCASAR_CHILLI)){ |
exit("Fichier de configuration ".ALCASAR_CHILLI." non présent"); |
} |
if (!file_exists(ALCASAR_ETH0)){ |
exit("Fichier de configuration ".ALCASAR_ETH0." non présent"); |
} |
if (!file_exists(ALCASAR_ETH0)){ |
exit("Fichier de configuration ".ALCASAR_ETH1." non présent"); |
} |
if (!is_readable(ALCASAR_ETH0)){ |
exit("Vous n'avez pas les droits de lecture sur le fichier ".ALCASAR_ETH0); |
} |
if (!is_readable(ALCASAR_ETH0)){ |
exit("Vous n'avez pas les droits de lecture sur le fichier ".ALCASAR_ETH1); |
} |
/******************************************************************** |
* Lecture du fichier ALCASAR_CHILLI * |
*********************************************************************/ |
//Lecture du fichier ALCASAR_ETH0 |
$ouvre=fopen(ALCASAR_CHILLI,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if (strpos($tampon,"=")!==false){ |
$tmp = explode("=",$tampon); |
$chilli[$tmp[0]] = $tmp[1]; |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier ".ALCASAR_CHILLI); |
} |
fclose($ouvre); |
/******************************************************************** |
* Lecture du fichier ALCASAR_ETH0 * |
*********************************************************************/ |
//Lecture du fichier ALCASAR_ETH0 |
$ouvre=fopen(ALCASAR_ETH0,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if (strpos($tampon,"=")!==false){ |
$tmp = explode("=",$tampon); |
$eth0[$tmp[0]] = $tmp[1]; |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier ".ALCASAR_ETH0); |
} |
fclose($ouvre); |
/******************************************************************** |
* Lecture du fichier ALCASAR_ETH1 * |
*********************************************************************/ |
//Lecture du fichier ALCASAR_ETH1 |
$ouvre=fopen(ALCASAR_ETH1,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if (strpos($tampon,"=")!==false){ |
$tmp = explode("=",$tampon); |
$eth1[$tmp[0]] = $tmp[1]; |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier ".ALCASAR_ETH1); |
} |
fclose($ouvre); |
/******************************************************************** |
* Recherche IP public * |
*********************************************************************/ |
$IP_PUB = exec ("wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1"); |
/************************ |
* TO DO * |
*************************/ |
//modification de la conf réseau, cmd : ifconfig eth0 ..... |
//synchro de la modification réseau dans les différentes couches d'alcasar |
//gestion du dhcp (affichage,modification, ajout @static) |
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<html><!-- written by steweb57 --> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
<title><?php echo $l_network_title; ?></title> |
<link rel="stylesheet" href="../css/style.css" type="text/css"> |
</head> |
<body> |
<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
<tr><th><?php echo $l_network_title1; ?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</table> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<fieldset> |
<legend><?php echo $l_eth0_legend; ?></legend> |
<table> |
<tr><td><?php echo $l_ip_adr." : </td><td>".$eth0["IPADDR"];?></td></tr> |
<tr><td><?php echo $l_ip_mask." : </td><td>".$eth0["NETMASK"];?></td></tr> |
<tr><td><?php echo $l_ip_router." : </td><td>".$eth0["GATEWAY"];?></td></tr> |
</table> |
</fieldset> |
<br /> |
<fieldset> |
<legend><?php echo $l_eth1_legend; ?></legend> |
<table> |
<tr><td><?php echo $l_ip_adr." : </td><td>".$eth1["IPADDR"];?></td></tr> |
<tr><td><?php echo $l_ip_mask." : </td><td>".$eth1["NETMASK"];?></td></tr> |
</table> |
</fieldset> |
<br /> |
<fieldset> |
<legend><?php echo $l_internet_legend; ?></legend> |
<table> |
<tr><td><?php echo $l_ip_public." : </td><td>".$IP_PUB;?></td></tr> |
<tr><td><?php echo $l_ip_dns1." : </td><td>".$eth0["DNS1"];?></td></tr> |
<tr><td><?php echo $l_ip_dns2." : </td><td>".$eth0["DNS2"];?></td></tr> |
</table> |
</fieldset> |
<br /> |
</td></tr> |
</table> |
</body> |
</html> |
/gestion/admin/ldap.php |
---|
0,0 → 1,334 |
<?php |
/* written by steweb57 */ |
/**************************************************************** |
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION * |
*****************************************************************/ |
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-available/alcasar"); |
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/modules/ldap"); |
/******************************************************** |
* TEST DES FICHIERS DE CONFIGURATION * |
*********************************************************/ |
//Test de présence et des droits en lecture des fichiers de configuration. |
if (!file_exists(ALCASAR_RADIUS_SITE)){ |
exit("Fichier ".ALCASAR_RADIUS_SITE." non présent"); |
} |
if (!file_exists(ALCASAR_RADIUS_MODULE_LDAP)){ |
exit("Fichier ".ALCASAR_RADIUS_MODULE_LDAP." non présent"); |
} |
if (!is_readable(ALCASAR_RADIUS_SITE)){ |
exit("Vous n'avez pas les droits d'écriture sur le fichier ".ALCASAR_RADIUS_SITE); |
} |
if (!is_readable(ALCASAR_RADIUS_MODULE_LDAP)){ |
exit("Vous n'avez pas les droits d'écriture sur le fichier ".ALCASAR_RADIUS_MODULE_LDAP); |
} |
/******************************************************** |
* VARIABLES DE FORMULAIRE * |
*********************************************************/ |
if (isset($_GET['erreur'])&&(!($_GET['erreur']==""))) $erreur = $_GET['erreur']; else $erreur = false;//valeur de $erreur non controlée car ne sert qu'un afficher un msg. |
if (isset($_GET['update'])&&($_GET['update']=="ok")) $update = true; else $update = false; |
$message = ""; |
if ((bool)$erreur){ |
$message = "<div align=\"center\"><br />"; |
$message.="<strong><font color=\"red\">".$erreur."</font></strong><br />"; |
$message.="<br /></div>"; |
}else{ |
if ($update){ |
$message = "<div align=\"center\"><br />"; |
$message.="<strong><font color=\"red\">Mise à jour des paramètres ldap réalisé avec succès</font><br /></strong>"; |
$message.="<br /></div>"; |
} |
} |
/**************************************************************** |
* VARIABLES RESULTATS * |
*****************************************************************/ |
//Création des variables nécessaires |
//variables ldap |
$ldap = ""; |
$ldap_server = ""; //IP ou nom DNS du seveur LDAP (ou AD) |
//par défaut : server = "ldap.your.domain" |
$ldap_identity = ""; //nom d'utilisateur qui intérroge le ldap (vide = anonyme) |
//par défaut : # identity = "cn=admin,o=My Org,c=UA" |
$ldap_password = ""; //mot de passe de l'utilisateur intérrogeant le ldap |
//par défaut : # password = mypass |
$ldap_basedn = ""; //DN de base ou l'on recherchera les utilisateurs |
//par défaut : basedn = "o=My Org,c=UA" |
$ldap_filter = ""; //permet entre autre de déterminer l'attribut utilisé pour la recherche d'un utilisateur dans LDAP |
//attribut uid pour un ldap standard, samaccountname pour AD |
//par défaut : filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" |
$ldap_base_filter = ""; // |
//par défaut : # base_filter = "(objectclass=radiusprofile)" |
/******************************************************** |
* Fichier ALCASAR_RADIUS_SITE * |
*********************************************************/ |
//variables pour le parcourt des fichiers |
//$ouvre : fichier ouvert |
//$tampon : ligne en cours |
// |
//Lecture du fichier /etc/raddb/sites-available/alcasar |
$continue = true; |
$ouvre=fopen(ALCASAR_RADIUS_SITE,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if ((preg_match('`^([\s#]*ldap[\s]*)$`',$tampon))&&$continue){ |
//Récupération dans la section authorise de la ligne ldap |
//valeur : ldap = authentification ldap authorisée |
//valeur : #ldap = authentification ldap non authorisée |
//section authenticat utile ? |
//section post-auth non utilisée |
$ldap = trim($tampon); |
$continue = false;//arret de la boucle lorsque l'on trouve le premier élément "ldap" dans le fichier |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier /etc/raddb/sites-available/alcasar"); |
} |
fclose($ouvre); |
/**************************************************************** |
* Fichier ALCASAR_RADIUS_MODULE_LDAP * |
*****************************************************************/ |
//Lecture du fichier /etc/raddb/modules/ldap |
$ouvre=fopen(ALCASAR_RADIUS_MODULE_LDAP,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if (preg_match('`^([\s#]*server(\s*)=)`',$tampon)){ |
//if (preg_match('`^((\s*)(#*)(\s*)server\b(\s*)=)`i',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap server |
$ldap_server = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*identity(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap identity |
$ldap_identity = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*password(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap password |
$ldap_password = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*basedn(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap basedn |
$ldap_basedn = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*filter(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap filter |
$ldap_filter = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*base_filter(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap base_filter |
$ldap_base_filter = ltrim($tampon); |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier /etc/raddb/modules/ldap"); |
} |
fclose($ouvre); |
//mise en forme des parametres ldap récupérés |
//A FAIRE : test de contrôle des valeurs $tmp[O] pour être sur d'avoir les bonnes lignes du fichier de conf !!! |
//pas de test de la variable ldap car tester dans la comparaison du formulaire ci-dessous (si $ldap = "ldap" authentification LDAP activée, elle est désactivé). |
$tmp = explode("=",$ldap_server,2); |
$ldap_server = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_server = trim($ldap_server); //suppression des espaces avant et après la chaine |
$tmp = explode("=",$ldap_identity,2); |
$ldap_identity = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_identity = trim($ldap_identity); //suppression des espaces avant et après la chaine |
$tmp = explode("=",$ldap_password,2); |
$ldap_password = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_password = trim($ldap_password); //suppression des espaces avant et après la chaine |
$tmp = explode("=",$ldap_basedn,2); |
$ldap_basedn = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_basedn = trim($ldap_basedn); //suppression des espaces avant et après la chaine |
$tmp = explode("=",$ldap_filter,3); |
$ldap_filter = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_filter = trim($ldap_filter); //suppression des espaces avant et après la chaine |
$ldap_filter = str_replace("(","",$ldap_filter);//suppression du ( dans la chaine |
$tmp = explode("=",$ldap_base_filter,2); |
$ldap_base_filter = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_base_filter = trim($ldap_base_filter); //suppression des espaces avant et après la chaine |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_ldap_title = "Authentification externe : LDAP"; |
$l_ldap_legend = "Authentification LDAP"; |
$l_ldap_auth_enable_label = "Activer l'authentification LDAP:"; |
$l_ldap_YES = "OUI"; |
$l_ldap_NO = "NON"; |
$l_ldap_server_label = "Nom du serveur LDAP:"; |
$l_ldap_server_text = "Nom ou IP du serveur LDAP éventuel."; |
$l_ldap_base_dn_label = "DN de la base LDAP:"; |
$l_ldap_base_dn_text = "DN est le 'Distinguished Name', il situe les informations utilisateurs, exemple: 'o=Mon entreprise, c=FR'."; |
$l_ldap_filter_label = "Identifiant LDAP:"; |
$l_ldap_filter_text = "Clé utilisée pour la recherche d'un identifiant de connexion, exemple: 'uid', 'sn', etc. Pour un AD mettre 'sAMAccountName'."; |
$l_ldap_base_filter_label = "Filtre de l'utilisateur LDAP:"; |
$l_ldap_base_filter_text = "Sur option, vous pouvez en plus limiter les objets recherchés avec des filtres additionnels. Par exemple 'objectClass=posixGroup' aurait comme conséquence l'utilisation de '(&(uid=username)(objectClass=posixGroup))'"; |
$l_ldap_user_label = "Utilisateur LDAP dn:"; |
$l_ldap_user_text = "Laissez vide pour utiliser un accès invité. Si renseigné, il se connectera au serveur LDAP en tant qu'un utilisateur spécifié, exemple: 'uid=Utilisateur,ou=MonUnité,o=MaCompagnie,c=FR'. Requis pour les serveurs possédant un Active Directory."; |
$l_ldap_password_label = "Mot de passe LDAP:"; |
$l_ldap_password_text = "Laissez vide pour un accès invité. Sinon, indiquez le mot de passe de connexion. Requis pour les serveurs possédant un Active Directory."; |
$l_ldap_submit = "Enregistrer"; |
$l_ldap_reset = "Annuler"; |
} else { |
$l_ldap_title = "External authentication : LDAP"; |
$l_ldap_legend = "LDAP authentication"; |
$l_ldap_auth_enable_label = "Use LDAP authentication :"; |
$l_ldap_YES = "YES"; |
$l_ldap_NO = "NO"; |
$l_ldap_server_label = "LDAP server name:"; |
$l_ldap_server_text = "This is the hostname or IP address of the LDAP server."; |
$l_ldap_base_dn_label = "LDAP base dn:"; |
$l_ldap_base_dn_text = "This is the 'Distinguished Name', locating the user information, e.g. 'o=My Company,c=US'."; |
$l_ldap_filter_label = "LDAP uid:"; |
$l_ldap_filter_text = "This is the key under which to search for a given login identity, e.g. 'uid', 'sn', etc.. For AD use 'sAMAccountName'."; |
$l_ldap_base_filter_label = "LDAP user filter:"; |
$l_ldap_base_filter_text = "Optionally you can further limit the searched objects with additional filters. For example 'objectClass=posixGroup' would result in the use of '(&(uid=username)(objectClass=posixGroup))'"; |
$l_ldap_user_label = "LDAP user dn:"; |
$l_ldap_user_text = "Leave blank to use anonymous binding. If filled uses the specified distinguished name on login attempts to find the correct user, e.g. 'uid=Username,ou=MyUnit,o=MyCompany,c=US'. Required for Active Directory Servers."; |
$l_ldap_password_label = "LDAP password:"; |
$l_ldap_password_text = "Leave blank to use anonymous binding. Else fill in the password for the above user. Required for Active Directory Servers."; |
$l_ldap_submit = "Save"; |
$l_ldap_reset = "Reset"; |
} |
/******************************** |
* TO DO * |
*********************************/ |
//internationnalisation à mettre en haut du fichier pour internationnaliser les erreurs de script! |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html><!-- written by steweb57 --> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
<title><?php echo $l_ldap_title; ?></title> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
<link rel="stylesheet" href="../css/ldap.css" type="text/css"> |
<script language="javascript"> |
function testLdapActif(){ |
//List des ID des éléments à désactiver |
var listToDisables = new Array("ldap_server","ldap_dn","ldap_filter","ldap_base_filter","ldap_user","ldap_password"); |
if (document.getElementById("auth_enable").value == "1"){ |
for (var i=0;i<listToDisables.length;i++){ |
document.getElementById(listToDisables[i]).style.backgroundColor ="#ffffff"; |
document.getElementById(listToDisables[i]).disabled = false; |
} |
} else { |
for (var i=0;i<listToDisables.length;i++){ |
document.getElementById(listToDisables[i]).style.backgroundColor ="#c0c0c0"; |
document.getElementById(listToDisables[i]).disabled = true; |
} |
} |
} |
</script> |
</head> |
<body onLoad="testLdapActif();"> |
<table width="100%" border=0 cellspacing=0 cellpadding=0> |
<tr><th><?php echo $l_ldap_legend; ?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width=1 height=2></td></tr> |
</table> |
<table width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<form name="config_ldap" method="post" action="update_ldap.php"> |
<fieldset> |
<legend><?php echo $message; ?></legend> |
<dl> |
<dt> |
<label for="auth_enable"><?php echo $l_ldap_auth_enable_label; ?></label> |
</dt> |
<dd> |
<select id="auth_enable" name="auth_enable" onchange="testLdapActif();"> |
<?php if ($ldap == "ldap") { |
echo "<option value=\"1\" selected=\"selected\">$l_ldap_YES</option>"; |
echo "<option value=\"0\">$l_ldap_NO</option>"; |
}else{ |
echo "<option value=\"1\">$l_ldap_YES</option>"; |
echo "<option value=\"0\" selected=\"selected\">$l_ldap_NO</option>"; |
}?> |
</select> |
</dd> |
</dl> |
<dl> |
<dt> |
<label for="ldap_server"><?php echo $l_ldap_server_label; ?></label> |
<br /> |
<?php echo $l_ldap_server_text; ?></dt> |
<dd> |
<input id="ldap_server" size="40" name="ldap_server" value="<?php echo htmlspecialchars($ldap_server); ?>"/> |
</dd> |
</dl> |
<dl> |
<dt> |
<label for="ldap_dn"><?php echo $l_ldap_base_dn_label; ?></label> |
<br /> |
<?php echo $l_ldap_base_dn_text; ?></dt> |
<dd> |
<input id="ldap_dn" size="40" name="ldap_base_dn" value="<?php echo htmlspecialchars($ldap_basedn); ?>" /> |
</dd> |
</dl> |
<dl> |
<dt> |
<label for="ldap_filter"><?php echo $l_ldap_filter_label; ?></label> |
<br /> |
<?php echo $l_ldap_filter_text; ?></dt> |
<dd> |
<input id="ldap_filter" size="40" name="ldap_filter" value="<?php echo htmlspecialchars($ldap_filter); ?>" /> |
</dd> |
</dl> |
<dl> |
<dt> |
<label for="ldap_base_filter"><?php echo $l_ldap_base_filter_label; ?></label> |
<br /> |
<?php echo $l_ldap_base_filter_text; ?></dt> |
<dd> |
<input id="ldap_base_filter" size="40" name="ldap_base_filter" value="<?php echo htmlspecialchars($ldap_base_filter); ?>" /> |
</dd> |
</dl> |
<dl> |
<dt> |
<label for="ldap_user"><?php echo $l_ldap_user_label; ?></label> |
<br /> |
<?php echo $l_ldap_user_text; ?></dt> |
<dd> |
<input id="ldap_user" size="40" name="ldap_user" value="<?php echo htmlspecialchars($ldap_identity); ?>" /> |
</dd> |
</dl> |
<dl> |
<dt> |
<label for="ldap_password"><?php echo $l_ldap_password_label; ?></label> |
<br /> |
<?php echo $l_ldap_password_text; ?></dt> |
<dd> |
<input id="ldap_password" type="password" size="40" name="ldap_password" value="<?php echo htmlspecialchars($ldap_password);?>" /> |
</dd> |
</dl> |
<p> |
<input id="submit" type="submit" value="<?php echo $l_ldap_submit; ?>" name="submit" /> |
<input id="reset" type="reset" value="<?php echo $l_ldap_reset; ?>" name="reset" /> |
</p> |
</fieldset> |
</form> |
<br /> |
</td></tr> |
</table> |
</body> |
</html> |
/gestion/admin/auth_exceptions.php |
---|
0,0 → 1,221 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<HTML><!-- written by Rexy - 3abtux --> |
<HEAD> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<TITLE>Exceptions</TITLE> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
</HEAD> |
<body> |
<? |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_trusted_sites = "Sites Internet de confiance"; |
$l_trusted_sites_explain1 = "Entrez ici les noms de site ou d'URLs Internet pouvant être joints sans authentification"; |
$l_trusted_sites_explain2 = "Entrez un noms par ligne"; |
$l_trusted_sites_list = "Liste de sites Internet de confiance"; |
$l_trusted_urls_list = "Liste d'URLs Internet de confiance"; |
$l_trusted_mac = "Équipements de confiance"; |
$l_trusted_mac_explain1 = "Entrez ici les adresses MAC des équipements autorisés à joindre Internet sans authentification"; |
$l_trusted_mac_explain2 = "Entrez une adresse MAC par ligne"; |
$l_trusted_mac_list = "Liste des adresses MAC de confiance"; |
$l_submit = "Enregistrer"; |
} |
else { |
$l_trusted_sites = "Trusted Internet sites"; |
$l_trusted_sites_explain1 = "Enter name of Internet sites or URLS that could be joined without authentication"; |
$l_trusted_sites_explain2 = "Enter one name per line"; |
$l_trusted_sites_list = "Trusted Internet sites list"; |
$l_trusted_urls_list = "Trusted Internet URLs list"; |
$l_trusted_mac = "Trusted Equipments"; |
$l_trusted_mac_explain1 = "Enter MAC address of equipments that could contact Internet without authentification"; |
$l_trusted_mac_explain2 = "Enter one Mac address per line"; |
$l_trusted_mac_list = "Trusted MAC addresses list"; |
$l_submit = "Submit"; |
} |
if (isset($_POST['choix'])){ |
switch ($_POST['choix']) |
{ |
case 'MAJ_UAMALLOWED' : |
$nb_domain=0; |
$tab_domains = explode ("\n", $_POST['trusted_domains']); |
$fichier=fopen("/etc/chilli/alcasar-uamdomain","w+"); |
fputs ($fichier, "HS_UAMDOMAINS=\""); |
foreach ($tab_domains as $domain ){ |
$tr_domain=trim($domain); |
$nb_domain++; |
if ($tr_domain != ""){ |
if ($nb_domain>1) fputs ($fichier, ",".$tr_domain); |
else fputs ($fichier, $tr_domain); |
} |
} |
fputs ($fichier, "\""); |
fclose($fichier); |
unset($_POST['trusted_domains']); |
unset($nb_domain); |
$nb_url=0; |
$tab_urls = explode ("\n", $_POST['trusted_urls']); |
$fichier=fopen("/etc/chilli/alcasar-uamallowed","w+"); |
fputs ($fichier, "HS_UAMALLOW=\""); |
foreach ($tab_urls as $url ){ |
$tr_url=trim($url); |
$nb_url++; |
if ($tr_url != ""){ |
if ($nb_url>1) fputs ($fichier, ",".$tr_url); |
else fputs ($fichier, $tr_url); |
} |
} |
fputs ($fichier, "\""); |
fclose($fichier); |
unset($_POST['trusted_urls']); |
unset($nb_url); |
exec ("sudo service chilli restart"); |
unset ($_POST['choix']); |
break; |
case 'MAJ_MACALLOWED' : |
$nb_mac=0; |
$tab_macs = explode ("\n", $_POST['trusted_macs']); |
$fichier=fopen("/etc/chilli/alcasar-macallowed","w+"); |
fputs ($fichier, "HS_MACALLOW=\""); |
foreach ($tab_macs as $macs ){ |
$tr_macs=trim($macs); |
$nb_mac++; |
if ($tr_macs != ""){ |
if ($nb_mac>1) fputs ($fichier, ",".$tr_macs); |
else fputs ($fichier, $tr_macs); |
} |
} |
fputs ($fichier, "\""); |
fclose($fichier); |
unset($_POST['trusted_macs']); |
unset($nb_mac); |
exec ("sudo service chilli restart"); |
unset ($_POST['choix']); |
break; |
} |
} |
?> |
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0"> |
<tr><th><?php echo $l_trusted_sites ;?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</TABLE> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=1> |
<tr bgcolor="#666666"><td> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=2> |
<tr><td valign="middle" align="left"> |
<center><?php |
echo "$l_trusted_sites_explain1 <BR>"; |
echo "$l_trusted_sites_explain2" ; |
echo "<FORM action='$_SERVER[PHP_SELF]' method='POST'>";?> |
<TABLE cellspacing=2 cellpadding=3 border=1> |
<tr><td width=50% height=100% align=center> |
<H3><?php echo $l_trusted_sites_list ;?></H3> |
exemple1 : www.domain1.org<BR> |
exemple2 : domain2.net<BR> |
<?php |
echo "<textarea name='trusted_domains' rows=5 cols=40>"; |
$trusted_domains_file="/etc/chilli/alcasar-uamdomain"; |
$ouvre=fopen($trusted_domains_file,"r"); |
if ($ouvre) |
{ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
$domains = substr($tampon,15,-1); |
$tab_domains = explode (",", $domains); |
foreach ($tab_domains as $domain ){ |
if ($domain != "\"") echo $domain."\n"; |
} |
} |
} |
else { |
echo "failed to open $trusted_domains_file"; |
} |
fclose($ouvre); |
echo "</textarea>"; |
?> |
</td> |
<td width=50% height=100% align=center> |
<H3><?php echo $l_trusted_urls_list ;?></H3> |
exemple1 : www.domain3.net/admin/index.htm<BR> |
exemple2 : domain4.org/~polux/index.html<BR> |
<?php |
echo "<textarea name='trusted_urls' rows=5 cols=40>"; |
$trusted_urls_file="/etc/chilli/alcasar-uamallowed"; |
$ouvre=fopen($trusted_urls_file,"r"); |
if ($ouvre) |
{ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
$urls = substr($tampon,13,-1); |
$tab_urls = explode (",", $urls); |
foreach ($tab_urls as $url ){ |
if ($url != "\"") echo $url."\n"; |
} |
} |
} |
else { |
echo "failed to open $trusted_urls_file"; |
} |
fclose($ouvre); |
echo "</textarea>"; |
?> |
</td></tr> |
</TABLE> |
<input type='hidden' name='choix' value='MAJ_UAMALLOWED'> |
<input type='submit' value='<?php echo $l_submit ;?>'> |
</FORM> |
</td></tr> |
</TABLE> |
</TABLE> |
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0"> |
<tr><th><?php echo $l_trusted_mac ;?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</TABLE> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=1> |
<tr bgcolor="#666666"><td> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=2> |
<tr><td valign="middle" align="left"> |
<center><?php |
echo "$l_trusted_mac_explain1 <BR>"; |
echo "$l_trusted_mac_explain2"; |
echo "<FORM action='$_SERVER[PHP_SELF]' method='POST'>";?> |
<TABLE cellspacing=2 cellpadding=3 border=1> |
<tr><td width=60% height=100% align=center> |
<H3><?php echo $l_trusted_mac_list ;?></H3> |
exemple : 12-2f-36-a4-df-43<BR> |
<?php |
echo "<textarea name='trusted_macs' rows=5 cols=40>"; |
$trusted_macs_file="/etc/chilli/alcasar-macallowed"; |
$ouvre=fopen($trusted_macs_file,"r"); |
if ($ouvre) |
{ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
$macs = substr($tampon,13,-1); |
$tab_macs = explode (",", $macs); |
foreach ($tab_macs as $macs ){ |
if ($macs != "\"") echo $macs."\n"; |
} |
} |
} |
else { |
echo "failed to open $trusted_macs_file"; |
} |
fclose($ouvre); |
echo "</textarea>"; |
?> |
</td></tr> |
</TABLE> |
<input type='hidden' name='choix' value='MAJ_MACALLOWED'> |
<input type='submit' value='<?php echo $l_submit ;?>'> |
</FORM> |
</td></tr> |
</TABLE> |
</BODY> |
</HTML> |
/gestion/admin/web_filter2.php |
---|
0,0 → 1,96 |
<?php |
function echo_file ($filename) |
{ |
if (file_exists($filename)) |
{ |
if (filesize($filename) != 0) |
{ |
$pointeur=fopen($filename,"r"); |
$tampon = fread($pointeur, filesize($filename)); |
fclose($pointeur); |
echo $tampon; |
} |
} |
else |
{ |
echo "erreur d'ouverture du fichier $filename"; |
} |
} |
?> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0> |
<tr><th> |
<? |
echo "$l_main_bl"; |
echo_file ("/var/www/html/VERSION-BL"); |
echo ")"; |
?> |
</th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</table> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<BR><FORM action='/admin/web_filter.php' method=POST> |
<input type='hidden' name='choix' value='MAJ_bl'> |
<?php |
echo "<input type='submit' value='$l_download'>"; |
echo " ($l_warning)"; |
?> |
</FORM> |
</td></tr> |
</TABLE> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0> |
<tr><th><?echo "$l_secondary_bl";?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</table> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<FORM action='/admin/web_filter.php' method='POST'> |
<TABLE cellspacing=2 cellpadding=3 border=1> |
<tr><td width=50% height=100% align=center> |
<H3>Liste des noms de domaine interdits</H3> |
Entrez ici des noms de domaine inconnus de la liste noire principale<BR> |
et que vous désirez bloquer<BR> |
Entrez un nom de domaine par ligne (exemple : domaine.org) |
<textarea name='OSSI_bl_domains' rows=5 cols=40> |
<?php |
echo_file ("/etc/dansguardian/lists/blacklists/ossi/domains"); |
?> |
</textarea> |
</td><td width=50% height=100% align=center> |
<H3>Liste des noms de domaine réabilités</H3> |
Entrez ici des noms de domaine bloqués par la liste noire principale<BR> |
que vous désirez réhabiliter<BR> |
Entrez un nom de domaine par ligne (exemple : domaine2.org) |
<textarea name='OSSI_wl_domains' rows=5 cols=40> |
<?php |
echo_file ("/etc/dansguardian/lists/exceptionsitelist"); |
?> |
</textarea> |
</td></tr> |
<tr><td width=50% height=100% align=center> |
<H3>Liste des URLs interdites</H3> |
Entrez ici des URLs inconnues de la liste noire principale<BR> |
que vous désirez bloquer<BR> |
Entrez une URL par ligne (exemple : www.domaine.org/perso/index.htm) |
<textarea name='OSSI_bl_urls' rows=5 cols=40> |
<?php |
echo_file ("/etc/dansguardian/lists/blacklists/ossi/urls"); |
?> |
</textarea> |
</td><td width=50% height=100% align=center> |
<H3>Liste des URLs réabilités</H3> |
Entrez ici des URLs bloquées par la liste noire principale<BR> |
que vous désirez réhabiliter<BR> |
Entrez une URL par ligne (exemple : www.domaine2.org/perso/index.htm) |
<textarea name='OSSI_wl_urls' rows=5 cols=40> |
<?php |
echo_file ("/etc/dansguardian/lists/exceptionurllist"); |
?> |
</textarea> |
</td></tr> |
</TABLE> |
<input type='hidden' name='choix' value='MAJ_OSSI'> |
<input type='submit' value='Enregistrer les modifications'> |
</FORM> |
</td></tr> |
</TABLE> |
/gestion/admin/filter_exceptions.php |
---|
0,0 → 1,115 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<HTML><!-- written by Rexy --> |
<HEAD> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<TITLE>ALCASAR Filter Exceptions</TITLE> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
</HEAD> |
<body> |
<? |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_exception_IP = "Exception au filtrage"; |
$l_exception_txt="Entrez ici les adresses IP des stations du réseau de consultation ne subissant pas de filtrage<BR>Entrez une adresse IP par ligne"; |
$l_submit = "Enregistrer"; |
} |
else { |
$l_exception_IP = "Network filtering exceptions"; |
$l_exception_txt="Put here the stations IP address that won't be filtered<BR>Put one IP per row"; |
$l_submit = "Submit"; |
} |
if (isset($_POST['choix'])){ |
switch ($_POST['choix']) |
{ |
case 'IP_exceptions' : |
// réencodage iso + format unix + rc fin de ligne (ouf...) |
$ip_list = str_replace("\r\n", "\n", utf8_decode($_POST['exception_list'])); |
if ($ip_list[strlen($ip_list)-1] != "\n") { $ip_list[strlen($ip_list)]="\n";} ; |
unset($_POST['exception_list']); |
$pointeur = fopen("/etc/dansguardian/dansguardian.conf", "r"); |
$result = false; |
if ($pointeur) |
{ |
while (!feof($pointeur)) |
{ |
$ligne = fgets($pointeur); |
if (preg_match("/^reportinglevel = 3/", $ligne, $r)) |
{ |
$result = true; |
break; |
} |
} |
} |
fclose($pointeur); |
if ($result) |
{ |
$fichier=fopen("/etc/dansguardian/lists/exceptioniplist", "w+"); |
fputs($fichier,$ip_list); |
fclose($fichier); |
exec ("sudo /usr/local/sbin/alcasar-bl.sh -reload"); |
} |
$pointeur = fopen("/usr/local/bin/alcasar-iptables.sh", "r"); |
$result = False ; |
if ($pointeur) |
{ |
while (!feof($pointeur)) |
{ |
$ligne = fgets($pointeur); |
if (preg_match('/^FILTERING="yes"/', $ligne, $r)) |
{ |
$result = True ; |
break; |
} |
} |
} |
fclose($pointeur); |
if ($result) |
{ |
$fichier=fopen("/usr/local/etc/alcasar-filter-exceptions", "w+"); |
fputs($fichier, $ip_list); |
fclose($fichier); |
exec ("sudo /usr/local/sbin/alcasar-nf.sh -on"); |
} |
break; |
} |
} |
?> |
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0"> |
<tr><th><?php echo $l_exception_IP ;?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</TABLE> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<TABLE width=70% border=0> |
<?php |
echo "<form action='$_SERVER[PHP_SELF]' method='POST'>"; |
echo " $l_exception_txt"; |
echo "<BR><textarea name='exception_list' rows=5 cols=40>"; |
$filename="/usr/local/etc/alcasar-filter-exceptions"; |
if (file_exists($filename)) |
{ |
if (filesize($filename) != 0) |
{ |
$pointeur=fopen($filename,"r"); |
$tampon = fread($pointeur, filesize($filename)); |
fclose($pointeur); |
echo $tampon; |
} |
} |
else |
{ |
echo "erreur d'ouverture du fichier $filename"; |
} |
echo "</textarea><BR>"; |
?> |
<input type='hidden' name='choix' value='IP_exceptions'> |
<input type='submit' value='Enregistrer les modifications'></CENTER> |
</FORM> |
</td></tr> |
</TABLE> |
</BODY> |
</HTML> |
/gestion/admin/net_filter.php |
---|
0,0 → 1,131 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<HTML><!-- written by Rexy --> |
<HEAD> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<TITLE>Network Filter</TITLE> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
</HEAD> |
<body> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0> |
<? |
$services_list="/usr/local/etc/alcasar-services"; |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_title = "Filtrage réseau"; |
$l_netfilter_on="Le filtrage réseau est actuellement activé"; |
$l_netfilter_off="Le filtrage réseau est actuellement désactivé"; |
$l_switch_on="Activer le filtrage réseau"; |
$l_switch_off="Désactiver le filtrage réseau"; |
$l_comment_on="(choisissez les protocoles que vous voulez autoriser)"; |
$l_comment_off="(les usagers authentifiés peuvent exploiter tous les protocoles réseau)"; |
$l_protocols="Protocoles autorisés"; |
$l_error_open_file="Erreur d'ouverture du fichier"; |
$l_proto_port="Protocole / port"; |
$l_enabled="Autorisé"; |
$l_save_modif="Enregistrer les modifications"; |
} |
else { |
$l_title = "Network Filter"; |
$l_netfilter_on="Actually, the network filter is enable"; |
$l_netfilter_off="Actually, the network filter is disable"; |
$l_switch_on="Switch the Network Filter on"; |
$l_switch_off="Switch the Network Filter off"; |
$l_comment_on="(choose the authorized network protocols)"; |
$l_comment_off="(all the network protocols are allowed for authenticated users)"; |
$l_protocols="Authorize protocols"; |
$l_error_open_file="Error opening the file"; |
$l_proto_port="Protocol / port"; |
$l_enabled="Enable"; |
$l_save_modif="Save modifications"; |
} |
echo " |
<tr><th>$l_title</th></tr> |
<tr bgcolor=\"#FFCC66\"><td><img src=\"/images/pix.gif\" width=1 height=2></td></tr> |
</TABLE>"; |
if (isset($_POST['choix'])){$choix=$_POST['choix'];} else {$choix="";} |
switch ($choix) |
{ |
case 'NF_On' : |
exec ("sudo /usr/local/sbin/alcasar-nf.sh -on"); |
break; |
case 'NF_Off' : |
exec ("sudo /usr/local/sbin/alcasar-nf.sh -off"); |
break; |
case 'change' : |
$tab=file($services_list); |
if ($tab) |
{ |
//on active|désactive les protocoles |
$pointeur=fopen($services_list,"w+"); |
foreach ($tab as $ligne) |
{ |
$proto_f=explode(" ", $ligne); |
$name_svc1=trim($proto_f[0],"#"); |
$actif = False; |
foreach ($_POST as $key => $value) |
{ |
if (strstr($key,'chk-')) |
{ |
$name_svc2 = str_replace('chk-','',$key); |
if ($name_svc1 == $name_svc2) |
{ |
$actif = True; |
break; |
} |
} |
} |
if (! $actif) |
{ |
$line="#$name_svc1 $proto_f[1]"; |
} |
else { $line="$name_svc1 $proto_f[1]";} |
fputs($pointeur,$line); |
} |
fclose($pointeur); |
} |
else {echo "$l_error_open_file $services_list";} |
exec ("sudo /usr/local/sbin/alcasar-nf.sh -on"); |
break; |
} |
echo "<TABLE width=\"100%\" border=1 cellspacing=0 cellpadding=1>"; |
echo "<tr><td valign=\"middle\" align=\"left\">"; |
$pointeur = fopen("/usr/local/bin/alcasar-iptables.sh", "r"); |
$result = False ; |
if ($pointeur) |
{ |
while (!feof($pointeur)) |
{ |
$ligne = fgets($pointeur); |
if (preg_match('/^FILTERING="yes"/', $ligne, $r)) |
{ |
$result = True ; |
break; |
} |
} |
} |
fclose($pointeur); |
if ($result) |
{ |
echo "<CENTER><H3>$l_netfilter_on</H3>$l_comment_on</CENTER>"; |
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; |
echo "<input type=hidden name='choix' value=\"NF_Off\">"; |
echo "<input type=submit value=\"$l_switch_off\">"; |
} |
else |
{ |
echo "<CENTER><H3>$l_netfilter_off</H3>$l_comment_off</CENTER>"; |
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; |
echo "<input type=hidden name='choix' value=\"NF_On\">"; |
echo "<input type=submit value=\"$l_switch_on\">"; |
} |
echo "</FORM>"; |
echo "</td></tr>"; |
echo "</TABLE>"; |
if ($result) require ('net_filter2.php'); |
?> |
</BODY> |
</HTML> |
/gestion/admin/net_filter2.php |
---|
0,0 → 1,42 |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0> |
<tr><th><?echo "$l_protocols";?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</table> |
<table width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<form action='net_filter.php' method='POST'> |
<table cellspacing=2 cellpadding=3 border=1> |
<? |
echo "<tr><th>$l_proto_port<th>$l_enabled</tr>"; |
// On ouvre le fichier de filtrage de protocoles |
$pointeur=fopen($services_list,"r"); |
if ($pointeur) |
{ |
while (!feof ($pointeur)) |
{ |
$ligne=fgets($pointeur, 4096); |
if ($ligne) |
{ |
$proto=explode(" ", $ligne); |
$name_svc=trim($proto[0],"#"); |
echo "<tr><td>$name_svc / $proto[1]"; |
echo "<td><input type='checkbox' name='chk-$name_svc'"; |
// si la ligne est commentée -> protocole non autorisé |
if (preg_match('/^#/',$ligne, $r)) { |
echo ">";} |
else { |
echo "checked>";} |
} |
} |
} |
else { |
echo "$l_error_open_file $services_list"; |
} |
fclose($pointeur); |
?> |
</td></tr></table> |
<input type='hidden' name='choix' value='change'> |
<input type='submit' value='<?echo"$l_save_modif";?>'> |
</form> |
</td></tr> |
</table> |
/gestion/admin/web_filter.php |
---|
0,0 → 1,117 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<HTML><!-- written by Rexy --> |
<HEAD> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<TITLE>ALCASAR WEB filtering</TITLE> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
</HEAD> |
<body> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0> |
<? |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_title = "Filtrage WEB"; |
$l_webfilter_on="Le filtrage WEB est actuellement activé"; |
$l_webfilter_off="Le filtrage WEB est actuellement désactivé"; |
$l_switch_on="Activer le filtrage WEB"; |
$l_switch_off="Désactiver le filtrage WEB"; |
$l_comment_on="(la consultation WEB est filtrée selon les critères définis ci-dessous)"; |
$l_comment_off="(la consultation WEB est autorisée sans restriction)"; |
$l_main_bl="Liste noire principale (version actuelle : "; |
$l_download="Télécharger la dernière version"; |
$l_warning="<B>Attention</B> : ce téléchargement dure plusieurs minutes."; |
$l_secondary_bl="Liste noire et liste blanche secondaires"; |
} |
else { |
$l_title = "WEB Filter"; |
$l_webfilter_on="Actually, the WEB filter is on"; |
$l_webfilter_off="Actually, the WEB filter is off"; |
$l_switch_on="Switch the WebFilter on"; |
$l_switch_off="Switch the WebFilter off"; |
$l_comment_on="(The WEB consultation is filtered as defined below)"; |
$l_comment_off="(The WEB consultation is allowed without any restriction)"; |
$l_main_bl="Main blacklist (current version : "; |
$l_download="Download the last version"; |
$l_warning="<B>Be carefull</B> : this download is estimate to fiew minutes."; |
$l_secondary_bl="Secondary blacklist and whitelist"; |
} |
echo " |
<tr><th>$l_title</th></tr> |
<tr bgcolor=\"#FFCC66\"><td><img src=\"/images/pix.gif\" width=1 height=2></td></tr> |
</TABLE>"; |
if (isset($_POST['choix'])){ $choix=$_POST['choix']; } else { $choix=""; } |
switch ($choix) |
{ |
case 'BL_On' : |
exec ("sudo /usr/local/sbin/alcasar-bl.sh -on"); |
break; |
case 'BL_Off' : |
exec ("sudo /usr/local/sbin/alcasar-bl.sh -off"); |
break; |
case 'MAJ_bl' : |
exec ("sudo /usr/local/sbin/alcasar-bl.sh -download"); |
break; |
case 'MAJ_OSSI' : |
$fichier=fopen("/etc/dansguardian/lists/blacklists/ossi/domains","w+"); |
fputs($fichier, $_POST['OSSI_bl_domains']); |
fclose($fichier); |
unset($_POST['OSSI_bl_domains']); |
$fichier=fopen("/etc/dansguardian/lists/exceptionsitelist","w+"); |
fputs($fichier, $_POST['OSSI_wl_domains']); |
fclose($fichier); |
unset($_POST['OSSI_wl_domains']); |
$fichier=fopen("/etc/dansguardian/lists/blacklists/ossi/urls","w+"); |
fputs($fichier, $_POST['OSSI_bl_urls']); |
fclose($fichier); |
unset($_POST['OSSI_bl_urls']); |
$fichier=fopen("/etc/dansguardian/lists/exceptionurllist","w+"); |
fputs($fichier, $_POST['OSSI_wl_urls']); |
fclose($fichier); |
unset($_POST['OSSI_wl_urls']); |
exec ("sudo /usr/local/sbin/alcasar-bl.sh -reload"); |
break; |
} |
?> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<?php |
$pointeur = fopen("/etc/dansguardian/dansguardian.conf", "r"); |
$result = false; |
if ($pointeur) |
{ |
while (!feof($pointeur)) |
{ |
$ligne = fgets($pointeur); |
if (preg_match("/^reportinglevel = 3/", $ligne, $r)) |
{ |
$result = true; |
break; |
} |
} |
} |
fclose($pointeur); |
if ($result) |
{ |
echo "<CENTER><H3>$l_webfilter_on</H3>$l_comment_on</CENTER>"; |
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; |
echo "<input type=hidden name='choix' value=\"BL_Off\">"; |
echo "<input type=submit value=\"$l_switch_off\">"; |
} |
else |
{ |
echo "<CENTER><H3>$l_webfilter_off</H3>$l_comment_off</CENTER>"; |
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>"; |
echo "<input type=hidden name='choix' value=\"BL_On\">"; |
echo "<input type=submit value=\"$l_switch_on\">"; |
} |
echo "</FORM>"; |
echo "</td></tr>"; |
echo "</TABLE>"; |
if ($result) require ('web_filter2.php'); |
?> |
</BODY> |
</HTML> |
/gestion/admin/services.php |
---|
0,0 → 1,190 |
<?php |
//------------------------------- |
// Fonctions |
//------------------------------- |
// Fonction de test de connectivité internet |
function internetTest(){ |
$host = "www.google.fr"; |
$port = "80"; |
//var $num; //non utilisé |
//var $error; //non utilisé |
if (! $sock = @fsockopen($host, $port, $num, $error, 5)) { |
return false; |
} else { |
fclose($sock); |
return true; |
} |
} |
// Fonction de test du filtrage |
function filtrageTest($file, $search_regex){ |
$pointeur = fopen($file,"r"); |
$result = false; |
if ($pointeur) |
{ |
while (!feof($pointeur)) |
{ |
$ligne = fgets($pointeur); |
if (preg_match($search_regex, $ligne, $r)) |
{ |
$result = true; |
break; |
} |
} |
} |
fclose($pointeur); |
return $result; |
} |
//fonction pour faire une action (start,stop,restart) sur un service |
function serviceExec($service, $action){ |
if (($action == "start")||($action == "stop")||($action == "restart")){ |
exec("sudo /sbin/service $service $action",$retval, $retstatus); |
return $retstatus; |
} else { |
return false; |
} |
} |
//fonction définissant le status d'un service |
//(en fonction de la présence d'un mot clé dans la valeur de status) |
function checkServiceStatus($service, $strMatch){ |
$response = false; |
exec("sudo /sbin/service $service status",$retval); |
foreach( $retval as $val ) { |
if (strpos($val,$strMatch)){ |
$response = true; |
break; |
} |
} |
return $response; |
} |
//------------------------------- |
// Les actions sur un service |
//------------------------------- |
//sécurité sur les actions à réaliser |
$autorizeService = array("radiusd","chilli","dansguardian","mysqld","squid","named","sshd"); |
$autorizeAction = array("start","stop","restart"); |
if (isset($_GET['service'])&&(in_array($_GET['service'], $autorizeService))) { |
if (isset($_GET['action'])&&(in_array($_GET['action'], $autorizeAction))) { |
$execStatus = serviceExec($_GET['service'], $_GET['action']); |
// execStatus non exploité |
} |
} |
//------------------------------- |
//recherche du status des services |
//------------------------------- |
$serviceStatus = array(); |
$serviceStatus['radiusd'] = checkServiceStatus("radiusd","pid"); |
$serviceStatus['chilli'] = checkServiceStatus("chilli","pid"); |
$serviceStatus['dansguardian'] = checkServiceStatus("dansguardian","pid"); |
$serviceStatus['mysqld'] = checkServiceStatus("mysqld","OK"); |
$serviceStatus['squid'] = checkServiceStatus("squid","pid"); |
$serviceStatus['named'] = checkServiceStatus("named","up"); |
$serviceStatus['sshd'] = checkServiceStatus("sshd","pid"); |
?> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<html> |
<!-- written by steweb57 --> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<title>Services</title> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
</head> |
<body> |
<?php |
# choice of language |
$Language = "en"; |
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2));} |
if ($Language == 'fr'){ |
$l_service = "Services"; |
$l_service_internet = "Lien Internet"; |
$l_netfilter="Filtrage réseau"; |
$l_webfilter="Filtrage WEB"; |
$l_enable = "actif"; |
$l_disable = "inactif"; |
$l_service_title = "Nom du services"; |
$l_service_start = "Démarrer"; |
$l_service_stop = "Arrêter"; |
$l_service_restart = "Redémarrer"; |
$l_service_status = "Status"; |
$l_service_action = "Actions"; |
$l_service_status_img_ok = "Démarré"; |
$l_service_status_img_ko = "Arrêté"; |
} |
else { |
$l_service = "Services"; |
$l_service_internet = "Internet connexion"; |
$l_netfilter = "Network filter"; |
$l_webfilter="WEB filter"; |
$l_enable = "enable"; |
$l_disable = "disable"; |
$l_service_title = "Name of service"; |
$l_service_start = "Start"; |
$l_service_stop = "Stop"; |
$l_service_restart = "Restart"; |
$l_service_status = "Status"; |
$l_service_action = "Actions"; |
$l_service_status_img_ok = "Started"; |
$l_service_status_img_ko = "Stopped"; |
} |
?> |
<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
<tr><th><?php echo $l_service;?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td> </tr> |
</table> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<?php |
if (InternetTest()){ |
echo "<h1><img src='/images/state_ok.gif'> $l_service_internet : <font color='green'>$l_enable</font></h1>"; |
} else { |
echo "<h1><img src='/images/state_error.gif'> $l_service_internet : <font color='red'>$l_disable</font></h1>"; |
} |
if (filtrageTest("/usr/local/bin/alcasar-iptables.sh", "/^FILTERING=\"yes\"/")){ |
echo "<h1><img src='/images/state_ok.gif'> $l_netfilter : <font color='green'>$l_enable</font></h1>"; |
} else { |
echo "<h1><img src='/images/state_error.gif'> $l_netfilter : <font color='red'>$l_disable</font></h1>"; |
} |
if (filtrageTest("/etc/dansguardian/dansguardian.conf","/^reportinglevel = 3/")){ |
echo "<h1><img src='/images/state_ok.gif'> $l_webfilter : <font color='green'>$l_enable</font></h1>"; |
} else { |
echo "<h1><img src='/images/state_error.gif'> $l_webfilter : <font color='red'>$l_disable</font></h1>"; |
} |
?> |
</td></tr> |
</table> |
<table width="100%" border=0 cellspacing=0 cellpadding=0> |
<tr><th><?php echo $l_service_status;?></th><th><?php echo $l_service_title;?></th><th colspan="3"><?php echo $l_service_action;?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td><td><img src="/images/pix.gif" width="1" height="2"></td><td><img src="/images/pix.gif" width="1" height="2"></td></tr> |
</table> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=0> |
<TR align="center"> |
<?php foreach( $serviceStatus as $serviceName => $statusOK ) { ?> |
<tr> |
<?php if ($statusOK) { ?> |
<td><img src="/images/state_ok.gif" width="15" height="15" alt="<?php echo $l_service_status_img_ok; ?>"></td> |
<td><?php echo $serviceName ;?></td> |
<td width="30" align="center">---</td> |
<td width="30" align="center"><a href="services.php?action=stop&service=<?php echo $serviceName;?>"><?php echo $l_service_stop;?></a></td> |
<td width="30" align="center"><a href="services.php?action=restart&service=<?php echo $serviceName;?>"><?php echo $l_service_restart;?></a></td> |
<?php } else { ?> |
<td><img src="/images/state_error.gif" width="15" height="15" alt="<?php echo $l_service_status_img_ko ?>"></td> |
<td><?php echo $serviceName ;?></td> |
<td width="30" align="center"><a href="services.php?action=start&service=<?php echo $serviceName;?>"><?php echo $l_service_start;?></a></td> |
<td width="30" align="center">---</td> |
<td width="30" align="center">---</td> |
<?php } ?> |
</tr> |
<?php } ?> |
</td></tr></table> |
</table> |
</body> |
</html> |
/gestion/admin/activity.php |
---|
0,0 → 1,115 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<HTML><!-- written by Rexy --> |
<head> |
<META HTTP-EQUIV="Refresh" CONTENT="30"> |
<meta http-equiv="Content-Type" content="text/html; charset=$config[general_charset]"> |
<title>État du réseau</title> |
<link rel="stylesheet" href="/css/style.css"> |
</head> |
<body> |
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0"> |
<? |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_activity = "Activité sur le réseau de consultation"; |
$l_ip_adr = "Adresse IP"; |
$l_mac_adr = "Adresse MAC"; |
$l_user = "Usager"; |
$l_mac_allowed = "@MAC autorisée"; |
$l_action = "Action"; |
$l_dissociate = "Dissocier"; |
$l_disconnect = "Déconnecter"; |
$l_refresh = "Cette page est rafraichie toutes les 30 secondes"; |
} |
else { |
$l_activity = "Activity on the consultation LAN"; |
$l_ip_adr = "IP Adress"; |
$l_mac_adr = "MAC Adress"; |
$l_user = "User"; |
$l_mac_allowed = "@MAC allowed"; |
$l_action = "Action"; |
$l_dissociate = "Dissociate"; |
$l_disconnect = "Disconnect"; |
$l_refresh = "This frame is refreshed every 30'"; |
} |
echo " |
<tr><th>$l_activity</th></tr> |
<tr bgcolor=\"#FFCC66\"><td><img src=\"/images/pix.gif\" width=\"1\" |
height=\"2\"></td></tr> |
</TABLE>"; |
if (isset($_POST['action'])){ |
switch ($_POST['action']){ |
case 'user_unconnect' : |
exec ("sudo /usr/local/sbin/alcasar-logout.sh $_POST[user]"); |
unset ($_POST['user']); |
unset ($_POST['choix']); |
break; |
case 'mac_unconnect' : |
exec ("sudo /usr/sbin/chilli_query logout $_POST[mac_addr]"); |
unset ($_POST['mac_addr']); |
unset ($_POST['choix']); |
break; |
} |
} |
?> |
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1> |
<tr><td valign="middle" align="left"> |
<center> |
<? echo "$l_refresh";?> |
<table border=1 width="80%" bordercolordark="#ffffe0" bordercolorlight="#000000" width="100%" cellpadding=2 cellspacing=0 bgcolor="#ffffe0" valign=top> |
<tr bgcolor="#d0ddb0"> |
<? echo " |
<th>#</th> |
<th>$l_ip_adr</th> |
<th>$l_mac_adr</th> |
<th>$l_user</th> |
<th>$l_action</th> |
</tr>"; |
$output = array(); $nb_ligne = 0; |
exec ('sudo /usr/sbin/chilli_query list|sort -k5 -r', $output); |
while (list(,$ligne) = each($output)){ |
$detail = explode (" ", $ligne); |
$nb_ligne ++; |
echo "<FORM action='activity.php' method=POST>"; |
echo "<TR>"; |
echo "<TD>"; echo $nb_ligne; echo "</TD>"; |
echo "<TD>"; echo $detail[1]; echo "</TD>"; |
echo "<TD>"; echo $detail[0]; echo "</TD>"; |
echo "<TD>"; |
# station authorisée |
if ($detail[4] == "1"){ |
# par @MAC |
if ($detail[5] == "-"){ |
echo "$l_mac_allowed</TD><TD> ";} |
# par usager authentifié |
else { |
echo "<a href=\"/manager/htdocs/user_admin.php?login=$detail[5]\" title=\"Editer l'utilisateur $detail[5]\">$detail[5]</a>"; |
echo "</TD>"; |
echo "<TD>"; |
echo "<INPUT type='hidden' name='action' value='mac_unconnect'>"; |
echo "<INPUT type='hidden' name='user' value='$detail[5]'>"; |
echo "<INPUT type='hidden' name='mac_addr' value='$detail[0]'>"; |
echo "<INPUT type=submit value='$l_disconnect'>"; |
} |
} |
# station sans usager connecté |
else { |
echo " "; |
echo "</TD>"; |
echo "<TD>"; |
echo "<INPUT type='hidden' name='action' value='mac_unconnect'>"; |
echo "<INPUT type='hidden' name='mac_addr' value='$detail[0]'>"; |
echo "<INPUT type='submit' value='$l_dissociate'>"; |
} |
echo "</TD></TR></FORM>"; |
} |
?> |
</td></tr> |
</table> |
</td></tr> |
</table> |
</html> |
/gestion/admin/logo.php |
---|
0,0 → 1,66 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<HTML><!-- Written by Rexy --> |
<HEAD> |
<TITLE>Modif logo organisme</TITLE> |
<link rel="stylesheet" href="/css/style.css" type="text/css"> |
<SCRIPT language="javascript" type="text/javascript"> |
function rafraichissement(cadre1, val1) |
{ |
eval(cadre1+".location='"+val1+"'"); |
} |
</SCRIPT> |
</HEAD> |
<body> |
<?php |
if(isset($_FILES['logo'])) |
{ |
unset($result); |
$taille_max = 100000; |
$destination = '/var/www/html/images/organisme.png'; |
$extension = strstr($_FILES['logo']['name'], '.'); |
if ($extension != '.png') |
{ |
$result = 'Veuillez sélectionner un fichier de type png !'; |
} |
elseif (file_exists($_FILES['logo']['tmp_name']) and filesize($_FILES['logo']['tmp_name']) > $taille_max) |
{ |
$result = 'La taille du fichier doit être inférieur à 100Ko !'; |
} |
if (!isset($result)) |
{ |
move_uploaded_file($_FILES['logo']['tmp_name'], $destination); |
} |
} |
?> |
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0"> |
<tr><th>Personnalisation du logo d'organisme</th></tr> |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" |
height="2"></td></tr> |
</TABLE> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=1> |
<tr bgcolor="#666666"><td> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=2> |
<tr><td valign="middle" align="left"> |
<CENTER><H3>Logo actuel : <img src="/images/organisme.png" width="90"><BR> |
Vous pouvez sélectionnez un nouveau logo :</H3></CENTER> |
<FORM action="logo.php" method=POST ENCTYPE="multipart/form-data"> |
<input type="file" name="logo"> |
<input type="hidden" name="MAX_FILE_SIZE" value="100000"> |
<input type="submit" value="Envoyer"> |
</FORM> |
<?php |
if (isset($result)) |
{ |
echo '<H3>'; echo $result; echo '</H3><BR>'; |
} |
?> |
<CENTER>Attention</CENTER> |
- le logo que vous choisissez doit être un fichier au format libre 'PNG'.<BR> |
- la taille de ce fichier doit être inférieure à 100Ko<BR> |
- rafraîchissez les pages du navigateur pour voir le résultat<BR> |
</TD></TR> |
</TABLE> |
</td></tr> |
</TABLE> |
</BODY> |
</HTML> |
/gestion/admin/update_ldap.php |
---|
0,0 → 1,240 |
<?php |
/* written by steweb57 */ |
/******************************************************************** |
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION * |
*********************************************************************/ |
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-available/alcasar"); |
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/modules/ldap"); |
/******************************************************************** |
* FONCTION ERREUR * |
*********************************************************************/ |
function erreur($er){ |
header('Location:ldap.php?erreur=$er'); |
exit(); |
} |
/******************************************************************** |
* VARIABLES DE FORMULAIRE * |
*********************************************************************/ |
//variables pour le parcourt des fichiers |
// - $ouvre : fichier ouvert |
// - $tampon : ligne en cours |
//autres variables utilisées |
// - $fichier : fichier temporaire utilisé pour la mise à jours des fichiers de configuration |
// - les variables contennant les données de formulaire |
//Récupération des variables de formulaire |
if (isset($_POST['auth_enable'])) $auth_enable = $_POST['auth_enable']; else erreur('Erreur de variable auth_enable'); |
if ($auth_enable == "1"){ //test $auth_enable |
if (isset($_POST['ldap_server'])) $ldap_server = $_POST['ldap_server']; else erreur('Erreur de variable ldap_server'); |
if (isset($_POST['ldap_base_dn'])) $ldap_base_dn = $_POST['ldap_base_dn']; else erreur('Erreur de variable ldap_base_dn'); |
if (isset($_POST['ldap_filter'])) $ldap_filter = $_POST['ldap_filter']; else erreur('Erreur de variable ldap_filter'); |
if (isset($_POST['ldap_base_filter'])) $ldap_base_filter = $_POST['ldap_base_filter']; else erreur('Erreur de variable ldap_base_filter'); |
if (isset($_POST['ldap_user'])) $ldap_user = $_POST['ldap_user']; else erreur('Erreur de variable ldap_user'); |
if (isset($_POST['ldap_password'])) $ldap_password = $_POST['ldap_password']; else erreur('Erreur de variable ldap_password'); |
} //test $auth_enable |
/******************************************************************** |
* TEST DES FICHIERS DE CONFIGURATION * |
*********************************************************************/ |
//Test de présence et des droits en modification des fichiers de configuration. |
if (!file_exists(ALCASAR_RADIUS_SITE)){ |
exit("Fichier de configuration du virtual-host 'alcasar' de freeradius non présent"); |
} |
if (!file_exists(ALCASAR_RADIUS_MODULE_LDAP)){ |
exit("Fichier de configuration du module ldap pour freeradius non présent"); |
} |
if (!is_writable(ALCASAR_RADIUS_SITE)){ |
exit("Vous n'avez pas les droits d'écriture sur le fichier /etc/raddb/sites-available/alcasar"); |
} |
if (!is_writable(ALCASAR_RADIUS_MODULE_LDAP)){ |
exit("Vous n'avez pas les droits d'écriture sur le fichier /etc/raddb/modules/ldap"); |
} |
/******************************************************************** |
* VARIABLES TEMPORAIRES * |
*********************************************************************/ |
//création des nouveaux fichiers de configuration |
//Initialisation de $fichier |
$fichier = ""; |
//variables de test pour la section autorize |
$section_autorize = false; // indique si on est dans la section autorize |
$num_section_autorize = 0; // indique si on se situe dans une sous section (pouvant avoir un parametre ldap ???) |
$nb_ldap = 0; // indique si le paramtre ldap n'est pas saisie deux fois (y compris les commentaires) |
//variables de test pour la section authenticate |
$section_authenticate = false; // indique si on est dans la section authenticate |
$section_authenticate_section_ldap = false; // indique si on se situe dans la sous section Auth-Type LDAP |
$section_authenticate_section_ldap_1 = false; // indique si Auth-Type LDAP déjà configuré |
$section_authenticate_section_ldap_2 = false; // indique si parametre ldap de Auth-Type LDAP déjà configuré |
$section_authenticate_section_ldap_3 = false; // indique si la fin de Auth-Type LDAP déjà configuré |
$num_section_authenticate = 0; |
/******************************************************************** |
* Fichier ALCASAR_RADIUS_SITE * |
*********************************************************************/ |
//Lecture du fichier /etc/raddb/sites-available/alcasar et création d'une nouvelle version du fichier. |
$continue = true; |
$ouvre=fopen(ALCASAR_RADIUS_SITE,"r"); |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if ((!$section_autorize) && (preg_match('`^([\s]*authorize[\s]*{[\s]*)$`',$tampon))){ //test si on est dans la section authorize |
$section_autorize = true; |
} |
if ((!$section_authenticate) && (preg_match('`^([\s]*authenticate[\s]*{[\s]*)$`',$tampon))){ //on est dans la section authenticate |
$section_authenticate = true; |
} |
/******************************************************************** |
* SECTION AUTHORIZE * |
*********************************************************************/ |
if ($section_autorize){ //on est dans la section authorize |
if ((preg_match('`^([\s[:alnum:]-_]*{[\s]*)$`',$tampon)) && (!preg_match('`^([\s]*authorize[\s]*{[\s]*)$`',$tampon))){ //on trouve des sous sections non commentées |
$num_section_autorize = $num_section_autorize + 1; |
$fichier = $fichier.$tampon; |
} elseif ((preg_match('`^([\s#]*ldap[\s]*)$`',$tampon))&&($num_section_autorize == 0)){ // conf du parametre ldap uniquement si l'on n'est pas dans une sous section! |
//Récupération dans la section authorise de la ligne ldap |
//valeur : ldap = authentification ldap authorisée |
//valeur : #ldap = authentification ldap non authorisée |
if (($auth_enable == "1") && ($nb_ldap ==0)){ |
$fichier = $fichier."ldap\n"; |
}else{ |
$fichier = $fichier."# ldap\n"; |
} |
$nb_ldap = $nb_ldap + 1;//calcule si le parametre ldap n'est pas présent plusieurs fois. |
} elseif (preg_match('`^([\s]*}[\s]*)$`',$tampon)){ //une section se termine |
if ($num_section_autorize == 0){ // fin de la section authorize |
$section_autorize = false; |
} else { // on referme une sous section |
$num_section_autorize = $num_section_autorize - 1; |
} |
$fichier = $fichier.$tampon; |
} else { |
$fichier = $fichier.$tampon; |
} |
//fin de section authorize |
} elseif (($section_authenticate)){ //on est dans la section authenticate |
/******************************************************************** |
* SECTION AUTHENTICATE * |
*********************************************************************/ |
// pas de test de sous-section! |
//on recherhe la section ldap |
## Auth-Type LDAP { |
# ldap |
## } |
if (preg_match('`^([\s#]*Auth-Type[\s]*LDAP[\s]{[\s]*)$`',$tampon)) { // test si on est dans la sous section Auth-Type LDAP (commentée ou non !) |
$section_authenticate_section_ldap = true; |
if (($auth_enable == "1") && (!$section_authenticate_section_ldap_1)){ |
$fichier = $fichier."Auth-Type LDAP { \n"; |
} else { |
$fichier = $fichier."# Auth-Type LDAP { \n"; |
} |
$section_authenticate_section_ldap_1 = true; // Auth-Type LDAP { est traité, les prochaines occurences trouvées seront tous mis en commentaire |
} else { |
if ($section_authenticate_section_ldap){ // on est dans la section Auth-Type LDAP |
if (preg_match('`^([\s#]*ldap[\s]*)$`',$tampon)){ //parametre ldap |
if (($auth_enable == "1") && (!$section_authenticate_section_ldap_2)){ |
$fichier = $fichier."ldap\n"; |
} else { |
$fichier = $fichier."# ldap\n"; |
} |
$section_authenticate_section_ldap_2 = true; // le parametre ldap est traité, les prochaines occurences trouvées seront tous mis en commentaire |
} elseif (preg_match('`^([\s#]*}[\s]*)$`',$tampon)){ //fin de section Auth-Type LDAP (le premier #} ou } trouvé dans la section Auth-Type LDAP indique la fin de la section) |
if (($auth_enable == "1") && (!$section_authenticate_section_ldap_3)){ |
$fichier = $fichier."}\n"; |
} else { |
$fichier = $fichier."# }\n"; |
} |
$section_authenticate_section_ldap_3 = true; // } de fin de section Auth-Type LDAP est traité, les prochaines occurences trouvées seront tous mis en commentaire //!inutile |
$section_authenticate_section_ldap = false; //inutile de continuer de parcourir la section Auth-Type LDAP |
$section_authenticate = false; //inutile de continuer de parcourir la section authenticate |
} else { |
$fichier = $fichier.$tampon; // on écrit tous les autres valeurs ou commentaires présents dans la section Auth-Type LDAP du fichier |
} |
} else { |
$fichier = $fichier.$tampon; // on écrit tous les autres valeurs ou commentaires présents dans la section authenticate du fichier |
} |
} |
//fin de section authenticate |
} else { //on est ni dans la section authorize ni dans la section authenticate |
$fichier = $fichier.$tampon; |
} |
} |
fclose($ouvre); |
//Sauvegarde du /etc/raddb/sites-available/alcasar |
$ouvre=fopen(ALCASAR_RADIUS_SITE,"w+"); |
fwrite($ouvre, $fichier); |
fclose($ouvre); |
/******************************************************************** |
* Fichier ALCASAR_RADIUS_MODULE_LDAP * |
*********************************************************************/ |
// TO DO : faire le controle des doublons comme sur le fichiers précédent ! |
//on ne modifie ALCASAR_RADIUS_MODULE_LDAP uniquement si l'authentification ldap est active |
if ($auth_enable == "1"){ //test $auth_enable |
//Ré-Initialisation de $fichier |
$fichier = ""; |
//Lecture du fichier /etc/raddb/modules/ldap et création d'une nouvelle version du fichier. |
$ouvre=fopen(ALCASAR_RADIUS_MODULE_LDAP,"r"); |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if (preg_match('`^([\s#]*server(\s*)=)`',$tampon)){ |
//Mise a jour du paramettre ldap server |
$fichier = $fichier."server = \"".$ldap_server."\"\n"; |
} elseif (preg_match('`^([\s#]*identity(\s*)=)`',$tampon)){ |
//Mise a jour du paramettre ldap identity |
$fichier = $fichier."identity = \"".$ldap_user."\"\n"; |
} elseif (preg_match('`^([\s#]*password(\s*)=)`',$tampon)){ |
//Mise a jour du paramettre ldap password |
$fichier = $fichier."password = ".$ldap_password."\n"; |
} elseif (preg_match('`^([\s#]*basedn(\s*)=)`',$tampon)){ |
//Mise a jour du paramettre ldap basedn |
$fichier = $fichier."basedn = \"".$ldap_base_dn."\"\n"; |
} elseif (preg_match('`^([\s#]*filter(\s*)=)`',$tampon)){ |
//Mise a jour du paramettre ldap filter |
$fichier = $fichier."filter = \"(".$ldap_filter."=%{Stripped-User-Name:-%{User-Name}})\"\n"; |
} elseif (preg_match('`^([\s#]*base_filter(\s*)=)`',$tampon)){ |
//Mise a jour du paramettre ldap base_filter |
$fichier = $fichier."base_filter = \"".$ldap_base_filter."\"\n"; |
} else { |
//On ne fait rien |
$fichier = $fichier.$tampon; |
} |
} |
fclose($ouvre); |
//sauvegarde du fichier /etc/raddb/modules/ldap |
$ouvre=fopen(ALCASAR_RADIUS_MODULE_LDAP,"w+"); |
fwrite($ouvre, $fichier); |
fclose($ouvre); |
} //test $auth_enable |
/******************************************************************** |
* Redémarage du service radius * |
*********************************************************************/ |
exec ("sudo service radiusd restart"); |
/******************************************************************** |
* Redirection vers la page de configuration LDAP * |
*********************************************************************/ |
header('Location:ldap.php?update=ok'); |
exit(); |
?> |
/gestion/admin/firewallEyes/gpl.txt |
---|
0,0 → 1,342 |
GNU GENERAL PUBLIC LICENSE |
Version 2, June 1991 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Everyone is permitted to copy and distribute verbatim copies |
of this license document, but changing it is not allowed. |
Preamble |
The licenses for most software are designed to take away your |
freedom to share and change it. By contrast, the GNU General Public |
License is intended to guarantee your freedom to share and change free |
software--to make sure the software is free for all its users. This |
General Public License applies to most of the Free Software |
Foundation's software and to any other program whose authors commit to |
using it. (Some other Free Software Foundation software is covered by |
the GNU Library General Public License instead.) You can apply it to |
your programs, too. |
When we speak of free software, we are referring to freedom, not |
price. Our General Public Licenses are designed to make sure that you |
have the freedom to distribute copies of free software (and charge for |
this service if you wish), that you receive source code or can get it |
if you want it, that you can change the software or use pieces of it |
in new free programs; and that you know you can do these things. |
To protect your rights, we need to make restrictions that forbid |
anyone to deny you these rights or to ask you to surrender the rights. |
These restrictions translate to certain responsibilities for you if you |
distribute copies of the software, or if you modify it. |
For example, if you distribute copies of such a program, whether |
gratis or for a fee, you must give the recipients all the rights that |
you have. You must make sure that they, too, receive or can get the |
source code. And you must show them these terms so they know their |
rights. |
We protect your rights with two steps: (1) copyright the software, and |
(2) offer you this license which gives you legal permission to copy, |
distribute and/or modify the software. |
Also, for each author's protection and ours, we want to make certain |
that everyone understands that there is no warranty for this free |
software. If the software is modified by someone else and passed on, we |
want its recipients to know that what they have is not the original, so |
that any problems introduced by others will not reflect on the original |
authors' reputations. |
Finally, any free program is threatened constantly by software |
patents. We wish to avoid the danger that redistributors of a free |
program will individually obtain patent licenses, in effect making the |
program proprietary. To prevent this, we have made it clear that any |
patent must be licensed for everyone's free use or not licensed at all. |
The precise terms and conditions for copying, distribution and |
modification follow. |
GNU GENERAL PUBLIC LICENSE |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
0. This License applies to any program or other work which contains |
a notice placed by the copyright holder saying it may be distributed |
under the terms of this General Public License. The "Program", below, |
refers to any such program or work, and a "work based on the Program" |
means either the Program or any derivative work under copyright law: |
that is to say, a work containing the Program or a portion of it, |
either verbatim or with modifications and/or translated into another |
language. (Hereinafter, translation is included without limitation in |
the term "modification".) Each licensee is addressed as "you". |
Activities other than copying, distribution and modification are not |
covered by this License; they are outside its scope. The act of |
running the Program is not restricted, and the output from the Program |
is covered only if its contents constitute a work based on the |
Program (independent of having been made by running the Program). |
Whether that is true depends on what the Program does. |
1. You may copy and distribute verbatim copies of the Program's |
source code as you receive it, in any medium, provided that you |
conspicuously and appropriately publish on each copy an appropriate |
copyright notice and disclaimer of warranty; keep intact all the |
notices that refer to this License and to the absence of any warranty; |
and give any other recipients of the Program a copy of this License |
along with the Program. |
You may charge a fee for the physical act of transferring a copy, and |
you may at your option offer warranty protection in exchange for a fee. |
2. You may modify your copy or copies of the Program or any portion |
of it, thus forming a work based on the Program, and copy and |
distribute such modifications or work under the terms of Section 1 |
above, provided that you also meet all of these conditions: |
a) You must cause the modified files to carry prominent notices |
stating that you changed the files and the date of any change. |
b) You must cause any work that you distribute or publish, that in |
whole or in part contains or is derived from the Program or any |
part thereof, to be licensed as a whole at no charge to all third |
parties under the terms of this License. |
c) If the modified program normally reads commands interactively |
when run, you must cause it, when started running for such |
interactive use in the most ordinary way, to print or display an |
announcement including an appropriate copyright notice and a |
notice that there is no warranty (or else, saying that you provide |
a warranty) and that users may redistribute the program under |
these conditions, and telling the user how to view a copy of this |
License. (Exception: if the Program itself is interactive but |
does not normally print such an announcement, your work based on |
the Program is not required to print an announcement.) |
These requirements apply to the modified work as a whole. If |
identifiable sections of that work are not derived from the Program, |
and can be reasonably considered independent and separate works in |
themselves, then this License, and its terms, do not apply to those |
sections when you distribute them as separate works. But when you |
distribute the same sections as part of a whole which is a work based |
on the Program, the distribution of the whole must be on the terms of |
this License, whose permissions for other licensees extend to the |
entire whole, and thus to each and every part regardless of who wrote it. |
Thus, it is not the intent of this section to claim rights or contest |
your rights to work written entirely by you; rather, the intent is to |
exercise the right to control the distribution of derivative or |
collective works based on the Program. |
In addition, mere aggregation of another work not based on the Program |
with the Program (or with a work based on the Program) on a volume of |
a storage or distribution medium does not bring the other work under |
the scope of this License. |
3. You may copy and distribute the Program (or a work based on it, |
under Section 2) in object code or executable form under the terms of |
Sections 1 and 2 above provided that you also do one of the following: |
a) Accompany it with the complete corresponding machine-readable |
source code, which must be distributed under the terms of Sections |
1 and 2 above on a medium customarily used for software interchange; or, |
b) Accompany it with a written offer, valid for at least three |
years, to give any third party, for a charge no more than your |
cost of physically performing source distribution, a complete |
machine-readable copy of the corresponding source code, to be |
distributed under the terms of Sections 1 and 2 above on a medium |
customarily used for software interchange; or, |
c) Accompany it with the information you received as to the offer |
to distribute corresponding source code. (This alternative is |
allowed only for noncommercial distribution and only if you |
received the program in object code or executable form with such |
an offer, in accord with Subsection b above.) |
The source code for a work means the preferred form of the work for |
making modifications to it. For an executable work, complete source |
code means all the source code for all modules it contains, plus any |
associated interface definition files, plus the scripts used to |
control compilation and installation of the executable. However, as a |
special exception, the source code distributed need not include |
anything that is normally distributed (in either source or binary |
form) with the major components (compiler, kernel, and so on) of the |
operating system on which the executable runs, unless that component |
itself accompanies the executable. |
If distribution of executable or object code is made by offering |
access to copy from a designated place, then offering equivalent |
access to copy the source code from the same place counts as |
distribution of the source code, even though third parties are not |
compelled to copy the source along with the object code. |
4. You may not copy, modify, sublicense, or distribute the Program |
except as expressly provided under this License. Any attempt |
otherwise to copy, modify, sublicense or distribute the Program is |
void, and will automatically terminate your rights under this License. |
However, parties who have received copies, or rights, from you under |
this License will not have their licenses terminated so long as such |
parties remain in full compliance. |
5. You are not required to accept this License, since you have not |
signed it. However, nothing else grants you permission to modify or |
distribute the Program or its derivative works. These actions are |
prohibited by law if you do not accept this License. Therefore, by |
modifying or distributing the Program (or any work based on the |
Program), you indicate your acceptance of this License to do so, and |
all its terms and conditions for copying, distributing or modifying |
the Program or works based on it. |
6. Each time you redistribute the Program (or any work based on the |
Program), the recipient automatically receives a license from the |
original licensor to copy, distribute or modify the Program subject to |
these terms and conditions. You may not impose any further |
restrictions on the recipients' exercise of the rights granted herein. |
You are not responsible for enforcing compliance by third parties to |
this License. |
7. If, as a consequence of a court judgment or allegation of patent |
infringement or for any other reason (not limited to patent issues), |
conditions are imposed on you (whether by court order, agreement or |
otherwise) that contradict the conditions of this License, they do not |
excuse you from the conditions of this License. If you cannot |
distribute so as to satisfy simultaneously your obligations under this |
License and any other pertinent obligations, then as a consequence you |
may not distribute the Program at all. For example, if a patent |
license would not permit royalty-free redistribution of the Program by |
all those who receive copies directly or indirectly through you, then |
the only way you could satisfy both it and this License would be to |
refrain entirely from distribution of the Program. |
If any portion of this section is held invalid or unenforceable under |
any particular circumstance, the balance of the section is intended to |
apply and the section as a whole is intended to apply in other |
circumstances. |
It is not the purpose of this section to induce you to infringe any |
patents or other property right claims or to contest validity of any |
such claims; this section has the sole purpose of protecting the |
integrity of the free software distribution system, which is |
implemented by public license practices. Many people have made |
generous contributions to the wide range of software distributed |
through that system in reliance on consistent application of that |
system; it is up to the author/donor to decide if he or she is willing |
to distribute software through any other system and a licensee cannot |
impose that choice. |
This section is intended to make thoroughly clear what is believed to |
be a consequence of the rest of this License. |
8. If the distribution and/or use of the Program is restricted in |
certain countries either by patents or by copyrighted interfaces, the |
original copyright holder who places the Program under this License |
may add an explicit geographical distribution limitation excluding |
those countries, so that distribution is permitted only in or among |
countries not thus excluded. In such case, this License incorporates |
the limitation as if written in the body of this License. |
9. The Free Software Foundation may publish revised and/or new versions |
of the General Public License from time to time. Such new versions will |
be similar in spirit to the present version, but may differ in detail to |
address new problems or concerns. |
Each version is given a distinguishing version number. If the Program |
specifies a version number of this License which applies to it and "any |
later version", you have the option of following the terms and conditions |
either of that version or of any later version published by the Free |
Software Foundation. If the Program does not specify a version number of |
this License, you may choose any version ever published by the Free Software |
Foundation. |
10. If you wish to incorporate parts of the Program into other free |
programs whose distribution conditions are different, write to the author |
to ask for permission. For software which is copyrighted by the Free |
Software Foundation, write to the Free Software Foundation; we sometimes |
make exceptions for this. Our decision will be guided by the two goals |
of preserving the free status of all derivatives of our free software and |
of promoting the sharing and reuse of software generally. |
NO WARRANTY |
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
REPAIR OR CORRECTION. |
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGES. |
END OF TERMS AND CONDITIONS |
How to Apply These Terms to Your New Programs |
If you develop a new program, and you want it to be of the greatest |
possible use to the public, the best way to achieve this is to make it |
free software which everyone can redistribute and change under these terms. |
To do so, attach the following notices to the program. It is safest |
to attach them to the start of each source file to most effectively |
convey the exclusion of warranty; and each file should have at least |
the "copyright" line and a pointer to where the full notice is found. |
<one line to give the program's name and a brief idea of what it does.> |
Copyright (C) <year> <name of author> |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Also add information on how to contact you by electronic and paper mail. |
If the program is interactive, make it output a short notice like this |
when it starts in an interactive mode: |
Gnomovision version 69, Copyright (C) year name of author |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
This is free software, and you are welcome to redistribute it |
under certain conditions; type `show c' for details. |
The hypothetical commands `show w' and `show c' should show the appropriate |
parts of the General Public License. Of course, the commands you use may |
be called something other than `show w' and `show c'; they could even be |
mouse-clicks or menu items--whatever suits your program. |
You should also get your employer (if you work as a programmer) or your |
school, if any, to sign a "copyright disclaimer" for the program, if |
necessary. Here is a sample; alter the names: |
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
<signature of Ty Coon>, 1 April 1989 |
Ty Coon, President of Vice |
This General Public License does not permit incorporating your program into |
proprietary programs. If your program is a subroutine library, you may |
consider it more useful to permit linking proprietary applications with the |
library. If this is what you want to do, use the GNU Library General |
Public License instead of this License. |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/gestion/admin/firewallEyes/info.php |
---|
0,0 → 1,161 |
<?php |
/* |
* firewall Eyes |
* Copyright (C) 2004 Creabilis |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* the Free Software Foundation; either version 2 of the License, or (at |
* your option) any later version. |
* |
* This program is distributed in the hope that it will be useful, but |
* WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with this program; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
* |
*/ |
include("configuration.php"); |
include("include.php"); |
// authentification check |
authenticationCheck(); |
// Date in the past |
header("Expires: Mon, 26 Jul 2009 00:00:00 GMT"); |
// always modified |
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); |
// HTTP/1.1 |
header("Cache-Control: no-store, no-cache, must-revalidate"); |
header("Cache-Control: post-check=0, pre-check=0", false); |
// HTTP/1.0 |
header("Pragma: no-cache"); |
set_time_limit (120); |
// GET INPUT |
$type=stripslashes($_GET["type"]); |
$p1=stripslashes($_GET["p1"]); |
$tool=stripslashes($_GET["tool"]); |
$toolsArray=$tools[$type]; |
$maxWidth=0; |
for($i=0; $i<count($logFields); $i++) { |
$maxWidth+=$logFields[$i][2]; |
} |
?> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<html> |
<head> |
<title>informations</title> |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> |
<link href="log.css" rel="stylesheet" type="text/css"/> |
</head> |
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF"> |
<div align="left" style="padding-left:18px"> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>"> |
<tr> |
<td class="toolBox"> |
<form method="GET" action="info.php"> |
<br/> |
<b>Informations on </b> |
<input type="text" name="p1" class="inputText" maxlength="100" value="<?=htmlentities(stripslashes($p1))?>"> |
<input type="hidden" name="type" value="<?=htmlentities(stripslashes($type))?>"> |
<br/><br/> |
<?php |
foreach($toolsArray as $toolName=>$toolInfos) { |
?> |
<input class="toolbutton" type="submit" name="tool" value="<?=htmlentities($toolName)?>"> |
<?php |
} |
?> |
</form> |
</td> |
</tr> |
</table> |
<?php |
flush(); |
if($tool) { |
if($toolsArray[$tool]["type"]=="command") { |
$myCommand=$toolsArray[$tool]["value"]; |
$myparam=$p1; |
if($toolsArray[$tool]["precompute"]=="extractdomain") { |
if (preg_match("/\d+\.\d+\.\d+\.\d+/", $p1)) { // it's an ip address |
$myparam=$p1; |
} else { |
$myparam=substr(strstr($p1,"."),1); // remove first part of canonical name |
} |
} |
$myCommand=str_replace("%p1%",$myparam,$myCommand); |
} |
if($toolsArray[$tool]["type"]=="url") { |
$myCommand=$toolsArray[$tool]["value"]; |
$myCommand=str_replace("%p1%",urlencode($p1),$myCommand); |
} |
?> |
<br/> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>"> |
<tr> |
<td class="toolCommandBoxHeader"> |
<?php |
if($toolsArray[$tool]["type"]=="url") { |
?> |
<a style="color: #FFFFFF" href="<?=$myCommand?>" target="q"><?=$myCommand?></a> |
<?php |
} else { |
echo($myCommand); |
} |
?> |
</td> |
</tr> |
</table> |
<?php |
flush(); |
?> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>"> |
<tr> |
<td class="toolCommandBox"> |
<?php |
if($toolsArray[$tool]["type"]=="command") { |
echo("<pre>"); |
passthru(escapeshellcmd($myCommand)); |
echo("</pre>"); |
} |
if($toolsArray[$tool]["type"]=="url") { |
?> |
<iframe name="window_recherche_affaire_resultat" src="<?=$myCommand?>" width="<?=$maxWidth+5?>" height="750" FRAMEBORDER=0> |
Your browser doesn't support iframe, unable to get url. |
</iframe> |
<?php |
} |
?> |
</td> |
</tr> |
</table> |
<?php |
} |
?> |
<br> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>" class="footer"> |
<tr> |
<td align="center"> |
<A HREF="http://www.creabilis.com" target="creabilis">Firewall Eyes</A> - <A HREF="http://www.gnu.org/licenses/gpl.html">GPL</A> - Creabilis © 2004 - Web site : <A HREF="http://firewalleyes.creabilis.com">http://firewalleyes.creabilis.com</A> |
</td> |
</tr> |
</table> |
</div> |
</body> |
</html> |
/gestion/admin/firewallEyes/images/info.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/dst-port.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/port-dst.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/header-background.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
Property changes: |
Added: svn:mime-type |
+image/jpeg |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/source.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/destination.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/commandHeaderBkg.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
Property changes: |
Added: svn:mime-type |
+image/jpeg |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/firewallEyes.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
Property changes: |
Added: svn:mime-type |
+image/jpeg |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/logo-firewallEyes.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/src-port.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/port-src.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/gestion/admin/firewallEyes/images/buttonBkg.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
Property changes: |
Added: svn:mime-type |
+image/jpeg |
\ No newline at end of property |
/gestion/admin/firewallEyes/messages |
---|
0,0 → 1,21 |
Sep 24 04:03:01 firewall kernel: RULE 5 -- ACCEPT IN=eth1 OUT=eth2 SRC=192.168.0.5 DST=64.246.30.37 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=33597 DF PROTO=TCP SPT=3247 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0 |
Sep 24 04:03:02 firewall kernel: RULE 6 -- DENY IN=eth1 OUT=eth1 SRC=172.50.230.95 DST=192.168.14.5 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18765 PROTO=TCP SPT=2277 DPT=25 LEN=28 |
Sep 24 04:03:02 firewall kernel: RULE 7 -- DENY IN=eth1 OUT=eth1 SRC=172.79.3.1 DST=192.168.0.12 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18764 PROTO=TCP SPT=3767 DPT=443 LEN=28 |
Sep 24 04:03:05 firewall kernel: RULE 2 -- ACCEPT IN=eth1 OUT=eth2 SRC=192.168.0.55 DST=10.10.5.4 LEN=48 TOS=0x00 PREC=0x00 TTL=122 ID=45067 DF PROTO=TCP SPT=1549 DPT=8080 WINDOW=8192 RES=0x00 SYN URGP=0 |
Sep 24 04:03:05 firewall kernel: RULE 8 -- ACCEPT IN=eth1 OUT=eth1 SRC=192.79.1.1 DST=172.48.3.1 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18775 PROTO=TCP SPT=1793 DPT=80 LEN=28 |
Sep 24 04:03:05 firewall kernel: RULE 2 -- REJECT IN=eth1 OUT=eth1 SRC=192.169.230.95 DST=192.168.31.51 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18774 PROTO=UDP SPT=1179 DPT=137 LEN=28 |
Sep 24 04:03:07 firewall kernel: RULE 9 -- ACCEPT IN=eth1 OUT=eth1 SRC=172.79.1.78 DST=10.10.6.4 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18775 PROTO=TCP SPT=9957 DPT=80 LEN=28 |
Sep 24 04:03:08 firewall kernel: RULE 16 -- DENY IN=eth1 OUT=eth2 SRC=192.168.6.162 DST=64.4.23.188 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=33598 DF PROTO=TCP SPT=3247 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0 |
Sep 24 04:03:08 firewall kernel: RULE 16 -- ACCEPT IN=eth1 OUT=eth1 SRC=192.169.230.95 DST=192.168.31.51 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18780 PROTO=UDP SPT=7453 DPT=137 LEN=28 |
Sep 24 04:03:08 firewall kernel: RULE 11 -- REJECT IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:10:b5:4f:4b:60:08:00 SRC=172.38.45.78 DST=10.10.5.7 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=18808 PROTO=TCP SPT=2487 DPT=21 LEN=28 |
Sep 24 04:03:11 firewall kernel: RULE 13 -- DENY IN=eth1 OUT=eth1 SRC=192.169.0.5 DST=192.168.0.50 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18791 PROTO=UDP SPT=2813 DPT=137 LEN=28 |
Sep 24 04:03:11 firewall kernel: RULE 17 -- DENY IN=eth1 OUT=eth1 SRC=192.169.230.95 DST=192.168.1.51 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18790 PROTO=UDP SPT=2779 DPT=137 LEN=28 |
Sep 24 04:03:14 firewall kernel: RULE 16 -- ACCEPT IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:10:b5:4f:4b:60:08:00 SRC=192.169.230.95 DST=10.0.12.5 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=18796 PROTO=UDP SPT=4476 DPT=137 LEN=28 |
Sep 24 04:03:14 firewall kernel: RULE 11 -- REJECT IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:10:b5:4f:4b:60:08:00 SRC=172.38.45.78 DST=10.10.5.7 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=18808 PROTO=TCP SPT=2487 DPT=21 LEN=28 |
Sep 24 04:03:14 firewall kernel: RULE 16 -- DENY IN=eth1 OUT=eth1 SRC=10.10.45.7 DST=192.168.1.51 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18795 PROTO=UDP SPT=2781 DPT=123 LEN=28 |
Sep 24 04:03:14 firewall kernel: RULE 14 -- ACCEPT IN=eth1 OUT=eth1 SRC=192.168.1.5 DST=192.168.0.51 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18794 PROTO=UDP SPT=33660 DPT=53 LEN=28 |
Sep 24 04:03:17 firewall kernel: RULE 5 -- ACCEPT IN=eth1 OUT=eth2 SRC=192.168.1.5 DST=64.246.30.37 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=33597 DF PROTO=TCP SPT=3247 DPT=80 WINDOW=64242 RES=0x00 SYN URGP=0 |
Sep 24 04:03:17 firewall kernel: RULE 5 -- ACCEPT IN=eth1 OUT=eth2 SRC=192.168.2.5 DST=192.168.1.78 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=33597 DF PROTO=TCP SPT=3657 DPT=80 WINDOW=64242 RES=0x00 SYN URGP=0 |
Sep 24 04:03:17 firewall kernel: RULE 11 -- REJECT IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:10:b5:4f:4b:60:08:00 SRC=172.38.45.78 DST=10.10.5.7 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=18808 PROTO=TCP SPT=2487 DPT=21 LEN=28 |
Sep 24 04:03:17 firewall kernel: RULE 3 -- ACCEPT IN=eth1 OUT=eth1 SRC=10.10.45.7 DST=192.168.0.8 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=18806 PROTO=TCP SPT=2267 DPT=110 LEN=28 |
Sep 24 04:03:20 firewall kernel: RULE 5 -- ACCEPT IN=eth1 OUT=eth2 SRC=192.168.0.5 DST=64.246.30.37 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=33597 DF PROTO=TCP SPT=1842 DPT=80 WINDOW=64248 RES=0x00 SYN URGP=0 |
/gestion/admin/firewallEyes/log.css |
---|
0,0 → 1,147 |
.tabCell { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
white-space: nowrap; |
float: left; |
overflow: hidden; |
border-left: 0px solid #9EB2E2; |
padding-top: 3px; |
padding-bottom: 3px; |
margin: 0px; |
text-align: left; |
} |
.header { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
background-color: #EEF1F9; |
border-top: 1px solid #9EB2E2; |
border-bottom: 1px solid #9EB2E2; |
color: #0C1E6C; |
font-weight: bold; |
text-align: center; |
} |
.footer { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 9px; |
background-color: #F4F8FB; |
border: 1px solid #9EB2E2; |
color: #0C1E6C; |
padding: 2px; |
} |
a { |
color: #0C1E6C; |
text-decoration:none; |
} |
a:hover { |
color: #800000; |
text-decoration:underline; |
} |
.ACCEPT { |
color: #006633; |
border-right: 1px solid #9EB2E2; |
border-left: 1px solid #9EB2E2; |
} |
.DROP { |
color: #800000; |
border-right: 1px solid #9EB2E2; |
border-left: 1px solid #9EB2E2; |
} |
.REJECT { |
color: #804040; |
border-right: 1px solid #9EB2E2; |
border-left: 1px solid #9EB2E2; |
} |
.ACCOUNTING { |
color: #000000; |
border-right: 1px solid #9EB2E2; |
border-left: 1px solid #9EB2E2; |
} |
.line1 { |
background-color: #FFFFFF; |
} |
.line2 { |
background-color: #F4F8FB; |
} |
.inputBlock { |
padding: 0px; |
margin: 0px; |
border: none; |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
white-space: nowrap; |
float: left; |
overflow: hidden; |
border-left: 1px solid #9EB2E2; |
padding: 2px; |
} |
.inputText { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 9px; |
color: #0C1E6C; |
border:1px solid #9EB2E2; |
padding: 2px; |
} |
.button { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 10px; |
font-weight: bold; |
color: #0C1E6C; |
background-color: #FFFFFF; |
width: 80px; |
height: 25px; |
background-image: url(images/buttonBkg.jpg); |
background-repeat: no-repeat; |
text-align: left; |
padding-left: 18pt; |
} |
.toolbutton { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 10px; |
font-weight: bold; |
color: #0C1E6C; |
background-color: #FFFFFF; |
width: 100px; |
height: 25px; |
background-image: url(images/buttonBkg.jpg); |
background-repeat: no-repeat; |
text-align: left; |
padding-left: 18pt; |
} |
.toolBox { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
font-weight: bold; |
background-color: #EEF1F9; |
border: 1px solid #9EB2E2; |
color: #0C1E6C; |
text-align: left; |
padding-left: 2pt; |
} |
.toolCommandBoxHeader { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
font-weight: bold; |
background-image: url(images/commandHeaderBkg.jpg); |
border: 1px solid #9EB2E2; |
color: #FFFFFF; |
text-align: center; |
} |
.toolCommandBox { |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
background-color: #F4F7FF; |
border: 1px solid #9EB2E2; |
color: #0C1E6C; |
text-align: left; |
padding-left: 2pt; |
} |
.topbox { |
color: #FFFFFF; |
font-family: Arial, Helvetica, sans-serif; |
font-size: 11px; |
border: none; |
padding: 2px; |
margin: 0px; |
} |
/gestion/admin/firewallEyes/include.php |
---|
0,0 → 1,139 |
<?php |
/* |
* firewall Eyes |
* Copyright (C) 2004 Creabilis |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* the Free Software Foundation; either version 2 of the License, or (at |
* your option) any later version. |
* |
* This program is distributed in the hope that it will be useful, but |
* WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with this program; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
* |
*/ |
// **************************************************************************** |
// return the regexp index for $columnName |
// **************************************************************************** |
function authenticationCheck() { |
global $IPAuthentication,$allowedClientIP; |
if ($IPAuthentication) { |
if(!in_array($_SERVER["REMOTE_ADDR"],$allowedClientIP)) { |
exit(); |
} |
} |
} |
// **************************************************************************** |
// return the regexp index for $columnName |
// **************************************************************************** |
function getIndexForColumn($columnName,$logFields) { |
for($i=0; $i<count($logFields); $i++) { |
if($logFields[$i][0]==$columnName) { |
Return $logFields[$i][1]; |
} |
} |
} |
// **************************************************************************** |
// return true if all criteria matches |
// **************************************************************************** |
function criteriaMatches($criteria,$logFields,$infoTab,$exactSearch) { |
$returnValue=true; |
for($i=0; $i<count($logFields); $i++) { |
$currentColumn=$logFields[$i][0]; |
$currentData=$infoTab[$logFields[$i][1]]; |
if($currentCriteria=$criteria[$currentColumn]) { // if criteria exists |
// test |
if(!searchString ($currentData,$currentCriteria,$exactSearch)) { |
Return false; |
} |
} |
} |
Return $returnValue; |
} |
// **************************************************************************** |
// return true strings founded |
// **************************************************************************** |
function searchString($haystack, $searchedWords,$exactSearch) { |
if($searchedWords[0]=="!") { |
$negate=true; |
$searchedWords=substr($searchedWords,1); |
} |
$returnValue=false; |
$wordTab=preg_split ("/[\s,]+/", $searchedWords); |
if($wordTab) { |
for($i=0; $i<count($wordTab); $i++) { |
if($currentWord=$wordTab[$i]) { |
// test |
if(($exactSearch ? $haystack==$currentWord : stristr ($haystack,$currentWord))) { |
$returnValue=true; |
break; |
} |
} |
} |
} |
if($negate) { |
Return (!$returnValue); |
} else { |
Return $returnValue; |
} |
} |
// **************************************************************************** |
// change lines to resolved items |
// **************************************************************************** |
function resolvAll() { |
global $logFields,$infoTab,$resolvIp,$resolvService,$indexForProtocol,$infoTabOriginal; |
for($i=0; $i<count($logFields); $i++) |
{ |
if($resolvIp) { |
if($logFields[$i][3]=="ip" && !strstr($infoTab[$logFields[$i][1]],"255")) { |
$infoTab[$logFields[$i][1]]=gethostbyaddr($infoTab[$logFields[$i][1]]); |
} |
} |
if($resolvService) { |
if($logFields[$i][3]=="service") { |
$currentProtocolIndex=$indexForProtocol; |
$service=getservbyport($infoTab[$logFields[$i][1]],strtolower($infoTab[$currentProtocolIndex])); |
if($service) { |
$infoTabOriginal[$logFields[$i][1]]=$infoTab[$logFields[$i][1]]; |
$infoTab[$logFields[$i][1]]=$service; |
} |
} |
} |
} |
} |
// **************************************************************************** |
// fgetrs : read line and put pointer at the begining |
// **************************************************************************** |
function fgetrs($fileHandle) { |
while (ftell($fileHandle)>=0) { |
$char = fgetc($fileHandle); |
if (ftell($fileHandle)==1) { |
fseek ($fileHandle,-1,SEEK_CUR); |
return $char.$line; |
} |
if ($char == "\n" || ftell($fileHandle)==1) { |
fseek ($fileHandle,-2,SEEK_CUR); |
return $line; |
} |
else { |
fseek ($fileHandle,-2,SEEK_CUR); |
$line = $char . $line; |
} |
} |
return $line; |
} |
?> |
/gestion/admin/firewallEyes/index.html |
---|
0,0 → 1,17 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> |
<html> |
<head> |
<title>firewall Eyes - Creabilis</title> |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
</head> |
<frameset rows="115,*" frameborder="NO" border="0" framespacing="0"> |
<frame src="header.php" name="topFrame" scrolling="yes"> |
<frame src="logs.php" name="mainFrame"> |
</frameset> |
<noframes> |
<body> |
Your browser doesn't support frames. Unable to get it working. |
</body> |
</noframes> |
</html> |
/gestion/admin/firewallEyes/logs.php |
---|
0,0 → 1,148 |
<?php |
/* |
* firewall Eyes |
* Copyright (C) 2004 Creabilis |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* the Free Software Foundation; either version 2 of the License, or (at |
* your option) any later version. |
* |
* This program is distributed in the hope that it will be useful, but |
* WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with this program; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
* |
*/ |
include("configuration.php"); |
include("include.php"); |
// authentification check |
authenticationCheck(); |
// Date in the past |
header("Expires: Mon, 26 Jul 2004 00:00:00 GMT"); |
// always modified |
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); |
// HTTP/1.1 |
header("Cache-Control: no-store, no-cache, must-revalidate"); |
header("Cache-Control: post-check=0, pre-check=0", false); |
// HTTP/1.0 |
header("Pragma: no-cache"); |
set_time_limit (300); |
// GET INPUT |
// log file, get input or first logfile |
$logfile=($_GET["logfile2display"] ? $logfiles[$_GET["logfile2display"]] : $logfiles[0]); |
$displayedLines=($_GET["displayedLines"] ? $_GET["displayedLines"] : $configuration["displayedLines"]); |
$configurationVars=Array("resolvIp","resolvService","readFromTheEnd","exactSearch","automaticRefresh"); |
foreach($configurationVars as $confVarName) { |
${$confVarName}=($_GET["searchAction"] ? $_GET[$confVarName] : $configuration[$confVarName]); |
} |
// init |
$lineCount=0; |
$indexForAction=getIndexForColumn("action",$logFields); |
$indexForProtocol=getIndexForColumn("protocol",$logFields); |
// get inputs |
$criteria=$_GET["criteria"]; |
$maxWidth=0; |
for($i=0; $i<count($logFields); $i++) { |
$maxWidth+=$logFields[$i][2]; |
} |
?> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<html> |
<head> |
<title>Creabilis fw-Eyes</title> |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> |
<link href="log.css" rel="stylesheet" type="text/css"/> |
<?php if ($automaticRefresh) {?> |
<meta http-equiv="refresh" content="<?=$automaticRefreshInterval?>"> |
<?php } ?> |
</head> |
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF"> |
<div align="left" style="padding-left:18px"> |
<?php |
if(!file_exists ($logfile)) { |
die("Le fichier n'existe pas : $logfile"); |
} |
if(!is_readable ($logfile)) { |
die("Ne peut pas lire le fichier : $logfile"); |
} |
$fd = fopen ($logfile, "r"); |
if ($readFromTheEnd){ |
// to the end |
fseek($fd,0,SEEK_END); |
} |
while (($readFromTheEnd ? ftell($fd)>0 : !feof ($fd))) { |
$line = ($readFromTheEnd ? fgetrs($fd) : fgets($fd, 1024)); |
if(preg_match($detectLine, $line)) { // it's a firewall line |
if(preg_match($LineRegExp, $line, $infoTab)) { |
// resolv dns/services |
$infoTabOriginal=null; |
resolvAll(); |
// Apply search array |
if(criteriaMatches($criteria,$logFields,$infoTab,$exactSearch)) { |
$lineCount++; |
$nb=($nb==1 ? 2 : 1); // for alternate display |
// line display |
?> |
<table class="<?=$infoTab[$indexForAction]?>" border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>"> |
<tr class="line<?=$nb?>"> |
<?php |
for($i=0; $i<count($logFields); $i++) |
{ |
?> |
<td title="<?=($infoTabOriginal[$logFields[$i][1]] ? $infoTabOriginal[$logFields[$i][1]]." - " : "")?><?=$infoTab[$logFields[$i][1]]?>"> |
<span class="tabCell" style="width: <?=$logFields[$i][2]?>px" > |
<?php |
if($logFields[$i][4]) { |
?> |
<a href="info.php?type=<?=urlencode($logFields[$i][4])?>&p1=<?=urlencode($infoTab[$logFields[$i][1]])?>" title="informations"><img src="images/<?=str_replace(" ","-",($logFields[$i][0]))?>.gif" width="15" height="15" border="0" align="absmiddle"></a> |
<?php |
} |
?> |
<?=$infoTab[$logFields[$i][1]]?> |
</span> |
</td> |
<?php |
}?></tr> |
</table> |
<?php |
flush(); |
} |
} |
} |
if($lineCount>=$displayedLines) break; |
} |
// close file |
fclose ($fd); |
?> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth+2?>" class="footer"> |
<tr> |
<td align="center"> |
<A HREF="http://www.creabilis.com" target="creabilis">Firewall Eyes</A> - <A HREF="http://www.gnu.org/licenses/gpl.html">GPL</A> - Creabilis © 2004 - Web site : <A HREF="http://firewalleyes.creabilis.com">http://firewalleyes.creabilis.com</A> |
</td> |
</tr> |
</table> |
</div> |
</body> |
</html> |
/gestion/admin/firewallEyes/readme.txt |
---|
0,0 → 1,2 |
Latest documentation and installation instructions on : |
http://firewalleyes.creabilis.com |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/gestion/admin/firewallEyes/configuration.php |
---|
0,0 → 1,121 |
<?php |
/* |
* firewall Eyes |
* Copyright (C) 2004 Creabilis |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* the Free Software Foundation; either version 2 of the License, or (at |
* your option) any later version. |
* |
* This program is distributed in the hope that it will be useful, but |
* WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with this program; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
* |
*/ |
// ***************** CONFIGURATION ********************* |
// activate authentication by IP |
// $IPAuthentication=true|false; |
$IPAuthentication=false; |
// alowed clientIP |
// one line by IP |
// $allowedClientIP[]="127.0.0.1"; |
$allowedClientIP[]="127.0.0.1"; |
// logfiles to parse, default is first |
// you can use file path like /etc/log/messages or nfs |
// or http like http://www.host.com/messages |
// or ftp like ftp://user:password@ftp.host.com/messages |
// $logfiles[]="/var/log/messages"; |
//$logfiles[]="/var/log/messages"; |
//$logfiles[]="/var/log/messages.1"; |
//$logfiles[]="/var/log/messages.2"; |
//$logfiles[]="/var/log/messages.3"; |
//$logfiles[]="/var/log/messages.4"; |
$folder = "/var/log/firewall"; |
$dossier = opendir($folder); |
$index=0; |
while ($Fichier = readdir($dossier)) { |
$exclusion = stripos ($Fichier, '.gz'); |
if ($Fichier != "." && $Fichier != ".." && $exclusion == 0) { |
$index ++; |
$logfiles[]=$folder . "/" . $Fichier; |
} # end if |
} # end while |
closedir($dossier); |
// automatic submit |
// automatic reload log display just after changing a display option (search strings, resolving, ...) |
// $automaticSubmit=true|false; |
$automaticSubmit=true; |
// default number of lines to display |
$configuration["displayedLines"]=50; |
// resolv ip |
$configuration["resolvIp"]=false; |
// resolv service |
$configuration["resolvService"]=true; |
// read log file from the end |
$configuration["readFromTheEnd"]=true; |
// exact search |
$configuration["exactSearch"]=false; |
// automatic refresh page every x secondes |
//$configuration["automaticRefresh"]=false|true; |
$configuration["automaticRefresh"]=false; |
// refresh interval in seconds |
$automaticRefreshInterval=10; |
// column array |
// syntax : name, index in regexp, width in pixels, type, toolname |
// type can be ip or service or protocol, used for resolution |
// to hide a column, just comment it with // |
$logFields[]=Array("date","1","60",null,null); |
$logFields[]=Array("heure","2","60",null,null); |
$logFields[]=Array("intf","5","50",null,null); |
$logFields[]=Array("source","6","150","ip","iptools"); |
$logFields[]=Array("destination","7","150","ip","iptools"); |
$logFields[]=Array("protocol","8","60","protocol",null); |
$logFields[]=Array("src port","9","60",null,null); |
$logFields[]=Array("dst port","10","80","service","srvtools"); |
$logFields[]=Array("règle","3","80",null,null); |
$logFields[]=Array("action","4","80",null,null); |
// ip tools |
// types are command or url |
// use %originalParameter% for values like ip address |
// use %transformedParameter% for values like dns address |
$tools["iptools"]["ping"]= array("type"=>"command", "value"=>"ping -c 5 %p1%"); |
$tools["iptools"]["traceroute"]=array("type"=>"command", "value"=>"traceroute %p1%"); |
$tools["iptools"]["DNS lookup"]= array("type"=>"command", "value"=>"host %p1%"); |
$tools["iptools"]["whois"]= array("type"=>"command", "value"=>"whois %p1%","precompute"=>"extractdomain"); |
$tools["iptools"]["nmap"]= array("type"=>"command", "value"=>"nmap %p1%"); |
$tools["iptools"]["HTTP Test"]= array("type"=>"url", "value"=>"http://%p1%"); |
// service tool |
$tools["srvtools"]["ISS Port db"]= array("type"=>"url", "value"=>"http://www.iss.net/security_center/advice/Exploits/Ports/%p1%/default.htm"); |
$tools["srvtools"]["IANA ports"]= array("type"=>"url", "value"=>"http://www.iana.org/assignments/port-numbers"); |
$tools["srvtools"]["Google"]= array("type"=>"url", "value"=>"http://www.google.com/search?hl=en&q=port+%p1%"); |
// regExp for detecting a firewall line |
$detectLine="/RULE/S"; |
// regExp for line parsing |
$LineRegExp="/(\w+\s+\d+)\s+(\S+)\s+\S+.*RULE (\S+).+-\s+(\S+).*IN=(\S+).*SRC=(\S+)\s+DST=(\S+).*PROTO=(\S+).*SPT=(\S+).*DPT=(\S+)/S"; |
//line sample : |
//Sep 24 18:07:35 passerelle kernel: RULE 14 -- ACCEPT IN=eth1 OUT= MAC=00:04:e2:43:1c:c4:00:0b:cd:f9:f4:42:08:00 SRC=192.168.0.1 DST=172.31.0.253 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=11059 DF PROTO=TCP SPT=1537 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 |
?> |
/gestion/admin/firewallEyes/header.php |
---|
0,0 → 1,154 |
<?php |
/* |
* firewall Eyes |
* Copyright (C) 2004 Creabilis |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* the Free Software Foundation; either version 2 of the License, or (at |
* your option) any later version. |
* |
* This program is distributed in the hope that it will be useful, but |
* WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with this program; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
* |
*/ |
include("configuration.php"); |
include("include.php"); |
// authentification check |
authenticationCheck(); |
// Date in the past |
header("Expires: Mon, 26 Jul 2004 00:00:00 GMT"); |
// always modified |
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); |
// HTTP/1.1 |
header("Cache-Control: no-store, no-cache, must-revalidate"); |
header("Cache-Control: post-check=0, pre-check=0", false); |
// HTTP/1.0 |
header("Pragma: no-cache"); |
set_time_limit (300); |
// TODO: |
// predifined filters : all accept, all dropped/rejected |
//line example : |
//Sep 24 18:07:35 passerelle kernel: RULE 14 -- ACCEPT IN=eth1 OUT= MAC=00:04:e2:43:1c:c4:00:0b:cd:f9:f4:42:08:00 SRC=172.31.200.189 DST=172.31.1.253 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=11059 DF PROTO=TCP SPT=1537 DPT=8080 WINDOW=65535 RES=0x00 SYN URGP=0 |
$logfile=$configuration["logfile"]; |
$displayedLines=($_GET["displayedLines"] ? $_GET["displayedLines"] : $configuration["displayedLines"]); |
$configurationVars=Array("resolvIp","resolvService","readFromTheEnd","exactSearch","automaticRefresh"); |
foreach($configurationVars as $confVarName) { |
${$confVarName}=($_GET["searchAction"] ? $_GET[$confVarName] : $configuration[$confVarName]); |
} |
// init |
$lineCount=0; |
$indexForAction=getIndexForColumn("action",$logFields); |
$indexForProtocol=getIndexForColumn("protocol",$logFields); |
// get inputs |
$criteria=$_GET["criteria"]; |
$maxWidth=0; |
for($i=0; $i<count($logFields); $i++) { |
$maxWidth+=$logFields[$i][2]; |
} |
?> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<html> |
<head> |
<title>Creabilis fw-Eyes</title> |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> |
<link href="log.css" rel="stylesheet" type="text/css"/> |
<script> |
function myrefresh() { |
<?php if ($automaticSubmit) {?> |
document.forms["search"].submit() |
<?php } ?> |
} |
</script> |
</head> |
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF"> |
<table width="100%" height="100" border="0" cellpadding="0" cellspacing="0" background="images/header-background.jpg"> |
<tr> |
<td valign="bottom" align="left" style="padding-left:19px"> |
<form method="GET" action="logs.php" style="margin: 0px;padding: 0px;" name="search" target="mainFrame"> |
<INPUT type="hidden" name="searchAction" value="1"> |
<div class="topbox" > |
</div> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>"> |
<tr> |
<td rowspan="2" valign="top"><img src="images/logo-firewallEyes.gif" width="58" height="38" align="top"><img src="images/firewallEyes.jpg" width="199" height="48" align="top"></td> |
<td align="right" class="topbox"> lignes affichées |
<input name="displayedLines" type="text" class="inputText" style="width:30 px;" size="3" maxlength="6" value="<?=htmlentities(stripslashes($displayedLines))?>" onChange="myrefresh()"> |
fichier log <select name="logfile2display" class="inputText" onChange="myrefresh()"> |
<?php |
foreach($logfiles as $currentIndex=>$currentLogfile) { |
?> |
<option value="<?=htmlspecialchars($currentIndex)?>"> |
<?=htmlspecialchars($currentLogfile)?> |
</option> |
<?php |
} |
?> |
</select> <input type="checkbox" name="readFromTheEnd" id="readFromTheEnd" value="1" <?= ($readFromTheEnd ? "checked" : "")?> onClick="myrefresh()"> |
<label for="readFromTheEnd"> lecture depuis la fin </label></td> |
</tr> |
<tr> |
<td colspan="<?=count($logFields)?>" align="left" class="topbox"> |
<input type="checkbox" name="automaticRefresh" id="automaticRefresh" value="1" <?= ($automaticRefresh ? "checked" : "")?> onClick="myrefresh()"> |
<label for="automaticRefresh">raffraichissement auto </label> |
<input type="checkbox" name="resolvIp" id="resolvIp" value="1" <?= ($resolvIp ? "checked" : "")?> onClick="myrefresh()"> |
<label for="resolvIp">resolv IP </label> |
<input type="checkbox" name="resolvService" id="resolvService" value="1" <?= ($resolvService ? "checked" : "")?> onClick="myrefresh()"> |
<label for="resolvService">resolv services </label> |
<input type="checkbox" name="exactSearch" id="exactSearch" value="1" <?= ($exactSearch ? "checked" : "")?> onClick="myrefresh()"> |
<label for="exactSearch">recherche exacte </label> |
<input class="button" type="submit" value="Afficher"> |
<!-- <input class="button" type="button" value="reset" onClick="top.window.location='index.html'">--> |
</td> |
</tr> |
</table> |
<table border="0" cellpadding="0" cellspacing="0" width="<?=$maxWidth?>"> |
<tr> |
<?php |
// tab header |
for($i=0; $i<count($logFields); $i++) { |
?><td class="header"><span style="width: <?=$logFields[$i][2]?>px" class="header"> <?=$logFields[$i][0]?></span> |
</td><?php |
}?> |
</tr> |
<tr> |
<?php |
// search form |
for($i=0; $i<count($logFields); $i++) { |
?><td><span style="width: <?=$logFields[$i][2]?>px"><input type="text" name="criteria[<?=htmlentities($logFields[$i][0])?>]" value="<?=htmlentities(stripslashes($criteria[$logFields[$i][0]]))?>" style="width: <?=$logFields[$i][2]?>px" class="inputText" onChange="myrefresh()"></span> |
</td> |
<?php |
}?> |
</tr> |
</table> |
</form> |
</td> |
</tr> |
</table> |
</body> |
</html> |
/gestion/menu.php |
---|
0,0 → 1,154 |
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0"> |
<HTML> |
<!-- written by Rexy ! --> |
<HEAD> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<TITLE>menu</TITLE> |
<link rel="stylesheet" href="css/style.css" type="text/css"> |
</HEAD> |
<? |
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']); |
$Language = strtolower(substr(chop($Langue[0]),0,2)); } |
if($Language == 'fr'){ |
$l_home = "ACCUEIL"; |
$l_system = "SYSTÈME"; |
$l_auth = "AUTHENTIFICATION"; |
$l_filter = "FILTRAGE"; |
$l_statistics = "STATISTIQUES"; |
$l_backup = "SAUVEGARDES"; |
$l_activity = "Activité"; |
$l_services = "Services"; |
$l_network = "Réseau"; |
$l_ldap = "Ldap"; |
$l_access_nb = "Accès au centre"; |
$l_create_user = "Créer usager"; |
$l_edit_user = "Éditer usager"; |
$l_create_group = "Créer groupe"; |
$l_edit_group = "Éditer groupe"; |
$l_import_empty = "Importer / Vider"; |
$l_network = "Réseau"; |
$l_stat_user_day = "usager/jour"; |
$l_stat_con = "connexions"; |
$l_stat_daily ="usage journalier"; |
$l_stat_web ="traffic WEB"; |
$l_firewall ="parefeu"; |
} |
else { |
$l_home = "HOME"; |
$l_system = "SYSTEM"; |
$l_auth = "AUTHENTICATION"; |
$l_filter = "FILTERING"; |
$l_statistics = "STATISTICS"; |
$l_backup = "BACKUPS"; |
$l_activity = "Activity"; |
$l_services = "Services"; |
$l_network = "Network"; |
$l_ldap = "Ldap"; |
$l_access_nb = "Access to center"; |
$l_create_user = "Create user"; |
$l_edit_user = "Edit user"; |
$l_create_group = "Create group"; |
$l_edit_group = "Edit group"; |
$l_import_empty = "Import / Empty"; |
$l_network = "Network"; |
$l_stat_user_day = "user/day"; |
$l_stat_con = "connections"; |
$l_stat_daily ="daily use"; |
$l_stat_web ="WEB traffic"; |
$l_firewall ="firewall"; |
} |
echo " |
<TABLE width=150 border=0 cellspacing=0 cellpadding=0> |
<tr><th>Menu</th></tr> |
<tr bgcolor=\"#FFCC66\"><td><img src=\"/images/pix.gif\" width=1 |
height=2></td></tr> |
</TABLE> |
<TABLE width=150 border=1 cellspacing=0 cellpadding=0> |
<tr bgcolor=\"#666666\"><td> |
<TABLE width=\"100%\" border=0 cellspacing=0 cellpadding=2> |
<TR><TD valign=\"middle\" align=\"left\"> |
<img src=\"images/right.gif\" height=10 width=10 border=no nosave><A HREF=\"phpsysinfo/\" TARGET=\"REXY2\">$l_home</A></TD></TR>"; |
if (isset($_GET['a'])) { $a=$_GET['a']; } |
else $a=0; |
if (isset($_GET['b'])) { $b=$_GET['b']; } |
else $b=0; |
$selection[0]=$l_system; |
$selection[1]=$l_auth; |
$selection[2]=$l_filter; |
$selection[3]=$l_statistics; |
$fichier[0]="system.php"; |
$fichier[1]="auth.php"; |
$fichier[2]="filtering.php"; |
$fichier[3]="stat.php"; |
$i=0; |
$nb1=count($selection); |
while ($i != $nb1) |
{ |
if ($a==1 AND $i==$b) |
{ |
echo "<TR><TD valign=\"middle\" align=\"left\"><img src=\"images/down2.gif\" height=10 width=10 border=no nosave><a href=\"menu.php?a=0&b=0\"><font color=\"black\"><b>$selection[$i]</b></font></a></TD></TR>"; |
include($fichier[$i]); |
} |
else |
{ |
echo "<TR><TD valign=\"middle\" align=\"left\"><img src=\"images/right.gif\" height=10 width=10 border=no nosave><a href=\"menu.php?a=1&b=$i\">$selection[$i]</a></TD></TR>"; |
} |
$i++; |
} |
echo " |
<TR><TD valign=\"middle\" align=\"left\"> |
<img src=\"images/right.gif\" height=10 width=10 border=no nosave><A HREF=\"backup/sauvegarde.php\" TARGET=\"REXY2\">$l_backup</A></TD></TR>"; |
?> |
</TABLE> |
</td></tr> |
</TABLE> |
<br> |
<TABLE width="150" border="0" cellspacing="0" cellpadding="0"> |
<tr><th>Doc</th></tr> |
<tr bgcolor="#FFCC66"><td><img src="images/pix.gif" width="1" |
height="2"></td></tr> |
</TABLE> |
<TABLE width="150" border=1 cellspacing=0 cellpadding=0> |
<tr bgcolor="#666666"><td> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=2> |
<tr><td valign="middle" align="left"><img src="images/right.gif" height=10 |
width=10 border=no nosave><a href="alcasar-1.8-presentation.pdf" target="_blank">Présentation</a></td></tr> |
<tr><td valign="middle" align="left"><img src="images/right.gif" height=10 |
width=10 border=no nosave><a href="alcasar-1.8-installation.pdf" target="_blank">Installation</a></td></tr> |
<tr><td valign="middle" align="left"><img src="images/right.gif" height=10 |
width=10 border=no nosave><a href="alcasar-1.8-exploitation.pdf" target="_blank">Exploitation</a></td></tr> |
</TABLE> |
</td></tr> |
</TABLE> |
<BR> |
<TABLE width="150" border="0" cellspacing="0" cellpadding="0"> |
<tr><th><? echo "$l_access_nb"; ?></th></tr> |
<tr bgcolor="#FFCC66"><td><img src="images/pix.gif" width="1" height="2"></td></tr> |
</TABLE> |
<TABLE width="150" border=1 cellspacing=0 cellpadding=0> |
<tr bgcolor="#666666"><td> |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0> |
<tr><td valign="middle" align="center"> |
<? // Compteur d'accès |
$name_fic="compteur.txt"; |
// Recuperation du nombre de visite |
if (($fp=fopen($name_fic,"r")) == false) exit; |
$nb=fgets($fp,10); |
fclose($fp); |
$nb+=1; |
printf("%d", $nb); |
// Ecriture du nombre de visite |
if (($fp=fopen($name_fic,"w")) == false) exit; |
fputs($fp, "$nb\n"); |
fclose($fp); |
?> |
<br>depuis le 23/12/2009<br></center></td></tr> |
</TABLE> |
</TD> |
</TR> |
</TABLE> |
</BODY> |
</HTML> |
/gestion/phpsysinfo/includes/xml/portail.php |
---|
0,0 → 1,179 |
<?php |
/*************************************************************************** |
* Copyright (C) 2006 by phpSysInfo - A PHP System Information Script * |
* http://phpsysinfo.sourceforge.net/ * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
// $Id: vitals.php,v 1.32 2007/02/18 18:59:54 bigmichi1 Exp $ |
// xml_utilisateur() |
function utilisateur () { |
$strResult = 0; |
// Déclaration des paramètres de connexion |
$host = "localhost"; |
$DB_USER = "radius"; |
$DB_RADIUS = "radius"; |
$radiuspwd = "gLMmnOpk"; |
// Connexion au serveur |
mysql_connect($host, $DB_USER,$radiuspwd) or die("erreur de connexion au serveur"); |
mysql_select_db($DB_RADIUS) or die("erreur de connexion a la base de donnees"); |
// Creation et envoi de la requete |
$query = "SELECT UserName FROM userinfo"; |
$result = mysql_query($query); |
// Recuperation des resultats |
$strResult = mysql_num_rows($result); |
// Deconnexion de la base de donnees |
mysql_close(); |
return $strResult; |
} |
function groupe () { |
$strResult = 0; |
// Déclaration des paramètres de connexion |
$host = "localhost"; |
$DB_USER = "radius"; |
$DB_RADIUS = "radius"; |
$radiuspwd = "gLMmnOpk"; |
// Connexion au serveur |
mysql_connect($host, $DB_USER,$radiuspwd) or die("erreur de connexion au serveur"); |
mysql_select_db($DB_RADIUS) or die("erreur de connexion a la base de donnees"); |
// Creation et envoi de la requete |
$query = "SELECT GroupName FROM radusergroup GROUP BY GroupName"; |
$result = mysql_query($query); |
// Recuperation des resultats |
$strResult = mysql_num_rows($result); |
// Deconnexion de la base de donnees |
mysql_close(); |
return $strResult; |
} |
function xml_portail () { |
global $sysinfo; |
$_text = " <Portail>\n" |
// . " <Utilisateur>" . htmlspecialchars( $sysinfo->utilisateur(), ENT_QUOTES ) . "</Utilisateur>\n" |
. " <Utilisateur>" . htmlspecialchars( utilisateur(), ENT_QUOTES ) . "</Utilisateur>\n" |
. " <Groupe>" . htmlspecialchars( trim( groupe() ), ENT_QUOTES ) . "</Groupe>\n"; |
$_text .= " </Portail>\n"; |
return $_text; |
} |
// Fonction de test de connectivité internet |
function internetTest(){ |
$host = "www.google.fr"; |
$port = "80"; |
//var $num; //non utilisé |
//var $error; //non utilisé |
if (! $sock = @fsockopen($host, $port, $num, $error, 5)) { |
return false; |
} else { |
fclose($sock); |
return true; |
} |
} |
// html_portail() |
function html_portail () { |
global $webpath; |
global $XPath; |
global $text; |
$file_version = "/var/www/html/VERSION"; |
$handle = fopen ($file_version, "r"); |
$INSTALLEDVERSION = fread ($handle, filesize ($file_version)); |
fclose ($handle); |
$version_stable = dns_get_record("version.alcasar.info",DNS_TXT); |
$AVAILABLEDVERSION = $version_stable[0]['txt']; |
$version_devel = dns_get_record("devel.alcasar.info",DNS_TXT); |
$DEVELVERSION = $version_devel[0]['txt']; |
$file_bl = "/var/www/html/VERSION-BL"; |
$handle = fopen ($file_bl, "r"); |
$VERSIONBL = fread ($handle, filesize ($file_bl)); |
fclose ($handle); |
$nbr_user = utilisateur (); |
$nbr_grp = groupe (); |
$nbr_user_online = exec ("sudo /usr/sbin/chilli_query list | cut -d\" \" -f5 | grep \"1\" | wc -l"); |
if (InternetTest()){ |
$internet_status = "<img src='/images/state_ok.gif'>".$text['internet_enable']; |
} else { |
$internet_status = "<img src='/images/state_error.gif'>".$text['internet_disable']; |
} |
$_text = "<table border=\"0\" width=\"100%\" align=\"center\">\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['portail-version'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $INSTALLEDVERSION . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['portail-stable'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $AVAILABLEDVERSION . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['portail-devel'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $DEVELVERSION . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['utilisateur'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $nbr_user_online . " / " . $nbr_user . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['groupe'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $nbr_grp . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['bl-version'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $VERSIONBL . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['internet_link'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $internet_status . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\" colspan=\"2\"><font size=\"-1\"><a href=\"/certs/certificat_alcasar_ca.pem\">" . $text['ca'] . "</a></font></td>\n" |
. " </tr>\n" |
. "</table>\n"; |
return $_text; |
} |
function wml_portail () { |
global $XPath; |
global $text; |
$_text = "<card id=\"vitals\" title=\"" . $text['vitals'] . "\">\n" |
. "<p>" . $text['hostname'] . ":<br/>\n" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/Hostname" ) . "</p>\n" |
. "<p>" . $text['ip'] . ":<br/>\n" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/IPAddr" ) . "</p>\n" |
. "<p>" . $text['kversion'] . ":<br/>\n" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/Kernel" ) . "</p>\n" |
. "<p>" . $text['uptime'] . ":<br/>\n" |
. "- " . uptime( $XPath->getData( "/phpsysinfo/Vitals/Uptime" ) ) . "</p>\n" |
. "<p>" . $text['users'] . ":<br/>" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/Users" ) . "</p>\n" |
. "<p>" . $text['loadavg'] . ":<br/>" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/LoadAvg" ) . "</p>\n" |
. "</card>\n"; |
return $_text; |
} |
?> |
/gestion/phpsysinfo/includes/xml/network.php |
---|
0,0 → 1,95 |
<?php |
/*************************************************************************** |
* Copyright (C) 2006 by phpSysInfo - A PHP System Information Script * |
* http://phpsysinfo.sourceforge.net/ * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
// $Id: network.php,v 1.15 2007/02/08 20:16:25 bigmichi1 Exp $ |
// |
// xml_network() |
// |
function xml_network () { |
global $sysinfo; |
$arrNet = $sysinfo->network(); |
$_text = " <Network>\n"; |
foreach( $arrNet as $strDev => $arrStats ) { |
$_text .= " <NetDevice>\n" |
. " <Name>" . htmlspecialchars( trim( $strDev ), ENT_QUOTES ) . "</Name>\n" |
. " <RxBytes>" . htmlspecialchars( $arrStats['rx_bytes'], ENT_QUOTES ) . "</RxBytes>\n" |
. " <TxBytes>" . htmlspecialchars( $arrStats['tx_bytes'], ENT_QUOTES ) . "</TxBytes>\n" |
. " <Errors>" . htmlspecialchars( $arrStats['errs'], ENT_QUOTES ) . "</Errors>\n" |
. " <Drops>" . htmlspecialchars( $arrStats['drop'], ENT_QUOTES ) . "</Drops>\n" |
. " </NetDevice>\n"; |
} |
$_text .= " </Network>\n"; |
return $_text; |
} |
// |
// html_network() |
// |
function html_network () { |
global $XPath; |
global $text; |
$textdir = direction(); |
$_text = "<table border=\"0\" width=\"100%\" align=\"center\">\n" |
. " <tr>\n" |
. " <td align=\"" . $textdir['left'] . "\" valign=\"top\"><font size=\"-1\"><b>" . $text['device'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\"><b>" . $text['received'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\"><b>" . $text['sent'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\"><b>" . $text['errors'] . "</b></font></td>\n" |
. " </tr>\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/Network" ) ); $i < $max; $i++ ) { |
if( $XPath->match( "/phpsysinfo/Network/NetDevice[" . $i . "]/Name" ) ) { |
$_text .= " <tr>\n"; |
$_text .= " <td align=\"" . $textdir['left'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/Name" ) . "</font></td>\n"; |
$_text .= " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . format_bytesize( $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/RxBytes" ) / 1024 ) . "</font></td>\n"; |
$_text .= " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . format_bytesize( $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/TxBytes" ) / 1024 ) . "</font></td>\n"; |
$_text .= " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/Errors" ) . '/' . $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/Drops" ) . "</font></td>\n"; |
$_text .= " </tr>\n"; |
} |
} |
$_text .= "</table>"; |
return $_text; |
} |
function wml_network() { |
global $XPath; |
global $text; |
$_text = "<card id=\"network\" title=\"" . $text['netusage'] . "\">\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/Network" ) ); $i < $max; $i++ ) { |
if( $XPath->match( "/phpsysinfo/Network/NetDevice[" . $i . "]/Name" ) ) { |
$_text .= "<p>" . $text['device'] . ": " . $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/Name" ) . "<br/>\n" |
. "- U: " . format_bytesize( $XPath->getData("/phpsysinfo/Network/NetDevice[" . $i . "]/TxBytes" ) / 1024 ) . "<br/>\n" |
. "- D: " . format_bytesize( $XPath->getData("/phpsysinfo/Network/NetDevice[" . $i . "]/RxBytes" ) / 1024 ) . "<br/>\n" |
. "- E: " . $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/Errors" ) . '/' . $XPath->getData( "/phpsysinfo/Network/NetDevice[" . $i . "]/Drops" ) . "</p>\n"; |
} |
} |
$_text .= "</card>\n"; |
return $_text; |
} |
?> |
/gestion/phpsysinfo/includes/xml/utilisateur.php.2 |
---|
0,0 → 1,87 |
<?php |
/*************************************************************************** |
* Copyright (C) 2006 by phpSysInfo - A PHP System Information Script * |
* http://phpsysinfo.sourceforge.net/ * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
// $Id: vitals.php,v 1.32 2007/02/18 18:59:54 bigmichi1 Exp $ |
// xml_vitals() |
function xml_utilisateur () { |
global $sysinfo; |
global $loadbar; |
global $show_vhostname; |
$strLoadavg = ""; |
$arrBuf = ( $loadbar ? $sysinfo->loadavg( $loadbar ) : $sysinfo->loadavg() ); |
foreach( $arrBuf['avg'] as $strValue) { |
$strLoadavg .= $strValue . ' '; |
} |
$_text = " <Portail>\n" |
. " <Utilisateur>" . htmlspecialchars( $show_vhostname ? $sysinfo->vhostname() : $sysinfo->chostname(), ENT_QUOTES ) . "</Utilisateur>\n" |
. " <Groupe>" . htmlspecialchars( $show_vhostname ? $sysinfo->vip_addr() : $sysinfo->ip_addr(), ENT_QUOTES ) . "</Groupe>\n"; |
$_text .= " </Portail>\n"; |
return $_text; |
} |
// html_vitals() |
function html_utilisateur () { |
global $webpath; |
global $XPath; |
global $text; |
$textdir = direction(); |
$scale_factor = 2; |
$strLoadbar = ""; |
$uptime = ""; |
if( $XPath->match( "/phpsysinfo/Portail/User" ) ) |
$strLoadbar = "<br>" . create_bargraph( $XPath->getData( "/phpsysinfo/Vitals/CPULoad" ), 100, $scale_factor ) . " " . $XPath->getData( "/phpsysinfo/Portail/User" ) . "%"; |
$_text = "<table border=\"0\" width=\"100%\" align=\"center\">\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['utilisateur'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/Portail/Utilisateur" ) . "</font></td>\n" |
. " </tr>\n" |
. " <tr>\n" |
. " <td valign=\"top\"><font size=\"-1\">" . $text['groupe'] . "</font></td>\n" |
. " <td><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/Portail/Groupe" ) . "</font></td>\n" |
. " </tr>\n" |
. "</table>\n"; |
return $_text; |
} |
function wml_utilisateur () { |
global $XPath; |
global $text; |
$_text = "<card id=\"vitals\" title=\"" . $text['vitals'] . "\">\n" |
. "<p>" . $text['hostname'] . ":<br/>\n" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/Hostname" ) . "</p>\n" |
. "<p>" . $text['ip'] . ":<br/>\n" |
. "- " . $XPath->getData( "/phpsysinfo/Vitals/IPAddr" ) . "</p>\n" |
. "</card>\n"; |
return $_text; |
} |
?> |
/gestion/phpsysinfo/includes/xml/mbinfo.php |
---|
0,0 → 1,208 |
<?php |
/*************************************************************************** |
* Copyright (C) 2006 by phpSysInfo - A PHP System Information Script * |
* http://phpsysinfo.sourceforge.net/ * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
// $Id: mbinfo.php,v 1.20 2007/02/18 19:11:31 bigmichi1 Exp $ |
function xml_mbinfo() { |
global $text; |
global $mbinfo; |
$_text = ""; |
$arrBuff = $mbinfo->temperature(); |
$_text = " <MBinfo>\n"; |
if( sizeof($arrBuff ) > 0 ) { |
$_text .= " <Temperature>\n"; |
foreach( $arrBuff as $arrValue ) { |
$_text .= " <Item>\n"; |
$_text .= " <Label>" . htmlspecialchars( $arrValue['label'], ENT_QUOTES ) . "</Label>\n"; |
$_text .= " <Value>" . htmlspecialchars( $arrValue['value'], ENT_QUOTES ) . "</Value>\n"; |
$_text .= " <Limit>" . htmlspecialchars( $arrValue['limit'], ENT_QUOTES ) . "</Limit>\n"; |
$_text .= " </Item>\n"; |
} |
$_text .= " </Temperature>\n"; |
} |
$arrBuff = $mbinfo->fans(); |
if( sizeof( $arrBuff ) > 0 ) { |
$_text .= " <Fans>\n"; |
foreach( $arrBuff as $arrValue ) { |
$_text .= " <Item>\n"; |
$_text .= " <Label>" . htmlspecialchars( $arrValue['label'], ENT_QUOTES ) . "</Label>\n"; |
$_text .= " <Value>" . htmlspecialchars( $arrValue['value'], ENT_QUOTES ) . "</Value>\n"; |
$_text .= " <Min>" . htmlspecialchars( $arrValue['min'], ENT_QUOTES ) . "</Min>\n"; |
$_text .= " </Item>\n"; |
} |
$_text .= " </Fans>\n"; |
} |
$arrBuff = $mbinfo->voltage(); |
if( sizeof( $arrBuff ) > 0 ) { |
$_text .= " <Voltage>\n"; |
foreach( $arrBuff as $arrValue ) { |
$_text .= " <Item>\n"; |
$_text .= " <Label>" . htmlspecialchars( $arrValue['label'], ENT_QUOTES ) . "</Label>\n"; |
$_text .= " <Value>" . htmlspecialchars( $arrValue['value'], ENT_QUOTES ) . "</Value>\n"; |
$_text .= " <Min>" . htmlspecialchars( $arrValue['min'], ENT_QUOTES ) . "</Min>\n"; |
$_text .= " <Max>" . htmlspecialchars( $arrValue['max'], ENT_QUOTES ) . "</Max>\n"; |
$_text .= " </Item>\n"; |
} |
$_text .= " </Voltage>\n"; |
} |
$_text .= " </MBinfo>\n"; |
return $_text; |
} |
function html_mbtemp() { |
global $text; |
global $XPath; |
$textdir = direction(); |
$scale_factor = 2; |
$_text = " <tr>\n" |
. " <td><font size=\"-1\"><b>" . $text['s_label'] . "</b></font></td>\n" |
. " <td><font size=\"-1\"><b>" . $text['s_value'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\"><b>" . $text['s_limit'] . "</b></font></td>\n" |
. " </tr>\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/MBinfo/Temperature" ) ); $i < $max; $i++ ) { |
$_text .= " <tr>\n" |
. " <td align=\"" . $textdir['left'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Label" ) . "</font></td>\n" |
. " <td align=\"" . $textdir['left'] . "\" valign=\"top\"><font size=\"-1\">"; |
if( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Value" ) == 0) { |
$_text .= "Unknown - Not connected?"; |
} else { |
$_text .= create_bargraph( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Value" ), $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Limit" ), $scale_factor ); |
} |
$_text .= temperature( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Value" ) ) . "</font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . temperature( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Limit" ) ) . "</font></td>\n" |
. " </tr>\n"; |
} |
return $_text; |
} |
function html_mbfans() { |
global $text; |
global $XPath; |
$textdir = direction(); |
$booShowfans = false; |
$_text ="<table width=\"100%\">\n"; |
$_text .= " <tr>\n" |
. " <td><font size=\"-1\"><b>" . $text['s_label'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\"><font size=\"-1\"><b>" . $text['s_value'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\"><font size=\"-1\"><b>" . $text['s_min'] . "</b></font></td>\n" |
. " </tr>\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/MBinfo/Fans" ) ); $i < $max; $i++ ) { |
$_text .= " <tr>\n" |
. " <td align=\"" . $textdir['left'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Fans/Item[" . $i . "]/Label" ) . "</font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . round( $XPath->getData( "/phpsysinfo/MBinfo/Fans/Item[" . $i . "]/Value" ) ) . " " . $text['rpm_mark'] . "</font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Fans/Item[" . $i . "]/Min" ) . " " . $text['rpm_mark'] . "</font></td>\n" |
. " </tr>\n"; |
if( round( $XPath->getData( "/phpsysinfo/MBinfo/Fans/Item[" . $i . "]/Value" ) ) > 0 ) { |
$booShowfans = true; |
} |
} |
$_text .= "</table>\n"; |
if( ! $booShowfans ) { |
$_text = ""; |
} |
return $_text; |
} |
function html_mbvoltage() { |
global $text; |
global $XPath; |
$textdir = direction(); |
$_text = "<table width=\"100%\">\n"; |
$_text .= " <tr>\n" |
. " <td><font size=\"-1\"><b>" . $text['s_label'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\"><font size=\"-1\"><b>" . $text['s_value'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\"><font size=\"-1\"><b>" . $text['s_min'] . "</b></font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\"><font size=\"-1\"><b>" . $text['s_max'] . "</b></font></td>\n" |
. " </tr>\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/MBinfo/Voltage" ) ); $i < $max; $i++ ) { |
$_text .= " <tr>\n" |
. " <td align=\"" . $textdir['left'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Voltage/Item[" . $i . "]/Label" ) . "</font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Voltage/Item[" . $i . "]/Value" ) . " " . $text['voltage_mark'] . "</font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Voltage/Item[" . $i . "]/Min" ) . " " . $text['voltage_mark'] . "</font></td>\n" |
. " <td align=\"" . $textdir['right'] . "\" valign=\"top\"><font size=\"-1\">" . $XPath->getData( "/phpsysinfo/MBinfo/Voltage/Item[" . $i . "]/Max" ) . " " . $text['voltage_mark'] . "</font></td>\n" |
. " </tr>\n"; |
} |
$_text .= "</table>\n"; |
return $_text; |
} |
function wml_mbtemp() { |
global $XPath; |
$_text = ""; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/MBinfo/Temperature" ) ); $i < $max; $i++ ) { |
$_text .= "<p>" . $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Label" ) . ": "; |
if( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Value" ) == 0 ) { |
$_text .= "Unknown - Not connected?</p>"; |
} else { |
$_text .= " " . str_replace( "°", "", temperature( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Value" ) ) ) . "</p>\n"; |
} |
} |
return $_text; |
} |
function wml_mbfans() { |
global $text; |
global $XPath; |
$_text = "<card id=\"fans\" title=\"" . $text['fans'] . "\">\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/MBinfo/Fans" ) ); $i < $max; $i++ ) { |
$_text .= "<p>" . $XPath->getData( "/phpsysinfo/MBinfo/Fans/Item[" . $i . "]/Label" ) . ": " . round( $XPath->getData( "/phpsysinfo/MBinfo/Temperature/Item[" . $i . "]/Value" ) ) . " " . $text['rpm_mark'] . "</p>\n"; |
} |
$_text .= "</card>\n"; |
return $_text; |
} |
function wml_mbvoltage() { |
global $text; |
global $XPath; |
$_text = "<card id=\"volt\" title=\"" . $text['voltage'] . "\">\n"; |
for( $i = 1, $max = sizeof( $XPath->getDataParts( "/phpsysinfo/MBinfo/Voltage" ) ); $i < $max; $i++ ) { |
$_text .= "<p>" . $XPath->getData( "/phpsysinfo/MBinfo/Voltage/Item[" . $i . "]/Label" ) . ": " . $XPath->getData( "/phpsysinfo/MBinfo/Voltage/Item[" . $i . "]/Value" ) . " " . $text['voltage_mark'] . "</p>\n"; |
} |
$_text .= "</card>\n"; |
return $_text; |
} |
?> |
/gestion/phpsysinfo/includes/xml/hardware.php |
---|
0,0 → 1,224 |
<?php |
/*************************************************************************** |
* Copyright (C) 2006 by phpSysInfo - A PHP System Information Script * |
* http://phpsysinfo.sourceforge.net/ * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
// $Id: hardware.php,v 1.36 2007/01/21 11:13:51 bigmichi1 Exp $ |
function xml_hardware() { |
global $sysinfo; |
global $text; |
$strPcidevices = ""; $strIdedevices = ""; $strUsbdevices = ""; $strScsidevices = ""; |
$arrSys = $sysinfo->cpu_info(); |
$arrBuf = finddups( $sysinfo->pci() ); |
if( count( $arrBuf ) ) { |
for( $i = 0, $max = sizeof($arrBuf); $i < $max; $i++ ) { |
if( $arrBuf[$i] ) { |
$strPcidevices .= " <Device><Name>" . htmlspecialchars( chop( $arrBuf[$i] ), ENT_QUOTES ) . "</Name></Device>\n"; |
} |
} |
} |
$arrBuf = $sysinfo->ide(); |
if( count( $arrBuf ) ) { |
foreach( $arrBuf as $strKey => $arrValue ) { |
$strIdedevices .= " <Device>\n<Name>" . htmlspecialchars( $strKey . ': ' . $arrValue['model'], ENT_QUOTES ) . "</Name>\n"; |
if( isset( $arrValue['capacity'] ) ) { |
$strIdedevices .= '<Capacity>' . htmlspecialchars( $arrValue['capacity'], ENT_QUOTES ) . '</Capacity>'; |
} |
$strIdedevices .= "</Device>\n"; |
} |
} |
$arrBuf = $sysinfo->scsi(); |
if( count( $arrBuf ) ) { |
foreach( $arrBuf as $strKey => $arrValue ) { |
$strScsidevices .= "<Device>\n"; |
if( $strKey >= '0' && $strKey <= '9' ) { |
$strScsidevices .= " <Name>" . htmlspecialchars( $arrValue['model'], ENT_QUOTES ) . "</Name>\n"; |
} else { |
$strScsidevices .= " <Name>" . htmlspecialchars( $strKey . ': ' . $arrValue['model'], ENT_QUOTES ) . "</Name>\n"; |
} |
if( isset( $arrrValue['capacity'])) { |
$strScsidevices .= '<Capacity>' . htmlspecialchars( $arrValue['capacity'], ENT_QUOTES ) . '</Capacity>'; |
} |
$strScsidevices .= "</Device>\n"; |
} |
} |
$arrBuf = finddups( $sysinfo->usb() ); |
if( count( $arrBuf ) ) { |
for( $i = 0, $max = sizeof( $arrBuf ); $i < $max; $i++ ) { |
if( $arrBuf[$i] ) { |
$strUsbdevices .= " <Device><Name>" . htmlspecialchars( chop( $arrBuf[$i] ), ENT_QUOTES ) . "</Name></Device>\n"; |
} |
} |
} |