Subversion Repositories ALCASAR

Compare Revisions

No changes between revisions

Ignore whitespace Rev 865 → Rev 864

/alcasar.sh
259,7 → 259,7
echo "$secretradius" >> $PASSWD_FILE
chmod 640 $PASSWD_FILE
# On installe les scripts et fichiers de configuration d'ALCASAR
# - dans /usr/local/bin : alcasar-{CA.sh,conf.sh,import-clean.sh,iptables-bypass.sh,iptables.sh,log.sh,watchdog.sh}
# - dans /usr/local/bin : alcasar-{CA.sh,conf.sh,import-clean.sh,iptables-bypass.sh,iptables.sh,log-clean.sh,log-export.sh,watchdog.sh}
cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root:root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
# - dans /usr/local/sbin : alcasar-{bl.sh,bypass.sh,dateLog.sh,havp.sh,logout.sh,mysql.sh,nf.sh,profil.sh,uninstall.sh,version-list.sh,load-balancing.sh}
cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root:root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
346,6 → 346,20
PRIVATE_FIRST_IP=`echo $PRIVATE_NETWORK | cut -d"." -f1-3`"."`expr $private_network_ending + 1` # First network address (ex.: 192.168.182.1)
PRIVATE_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_ending - 1` # last network address (ex.: 192.168.182.254)
 
# Predefine DHCP parameters (LAN side)
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_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup` # dernier octet de l'@ de réseau
private_broadcast_ending=`echo $PRIVATE_BROADCAST | cut -d"." -f$classe_sup` # dernier octet de l'@ de broadcast
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 # @ réseau (CIDR) de la plage des adresses dynamiques (ex.: 192.168.182.128/25)
private_dyn_ip_ending=`echo $private_dyn_ip_network | cut -d"." -f4`
PRIVATE_DYN_FIRST_IP=`echo $private_dyn_ip_network | cut -d"." -f1-3`"."`expr $private_dyn_ip_ending + 1` # 1ère adresse de la plage dynamique (ex.: 192.168.182.129)
PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_ending - 1` # dernière adresse de la plage dynamique (ex.: 192.168.182.254)
 
# Define Internet parameters
[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
DNS1=`grep DNS1 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` # @ip 1er DNS
927,8 → 941,8
dhcpif $INTIF
ethers $DIR_DEST_ETC/alcasar-ethers
#nodynip
#statip
dynip $PRIVATE_NETWORK_MASK
statip $PRIVATE_STAT_IP
dynip $PRIVATE_DYN_IP
domain localdomain
dns1 $PRIVATE_IP
dns2 $PRIVATE_IP
1216,7 → 1230,7
server=$DNS1
server=$DNS2
# le servive DHCP est configuré mais n'est exploité que pour le "bypass"
dhcp-range=$PRIVATE_FIRST_IP,$PRIVATE_LAST_IP,$PRIVATE_NETMASK,12h
dhcp-range=$PRIVATE_DYN_FIRST_IP,$PRIVATE_DYN_LAST_IP,$PRIVATE_NETMASK,12h
dhcp-option=option:router,$PRIVATE_IP
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
 
1328,7 → 1342,7
EOF
cat <<EOF > /etc/cron.d/alcasar-clean_log
# suppression des fichiers de logs de plus d'un an (tous les lundi à 4h30)
30 4 * * 1 root $DIR_DEST_BIN/alcasar-log.sh --clean
30 4 * * 1 root $DIR_DEST_BIN/alcasar-log-clean.sh
EOF
cat <<EOF > /etc/cron.d/alcasar-mysql
# export de la base des usagers (tous les lundi à 4h45)
1336,7 → 1350,7
EOF
cat <<EOF > /etc/cron.d/alcasar-export_log
# export des log squid, firewall et apache (tous les lundi à 5h00)
00 5 * * 1 root $DIR_DEST_BIN/alcasar-log.sh --export
00 5 * * 1 root $DIR_DEST_BIN/alcasar-log-export.sh
EOF
cat << EOF > /etc/cron.d/awstats
# mise à jour des stats de consultation WEB toutes les 30'
1436,7 → 1450,7
find /var/log/$dir -type f -name *.log-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] -exec gzip {} \;
done
# export des logs en 'retard' dans /var/Save/logs
/usr/local/bin/alcasar-log.sh --export
/usr/local/bin/alcasar-log-export.sh
# processus lancés par défaut au démarrage
for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam
do
/scripts/alcasar-log.sh
File deleted
Property changes:
Deleted: svn:eol-style
-native
\ No newline at end of property
Deleted: svn:executable
-*
\ No newline at end of property
/scripts/alcasar-conf.sh
2,7 → 2,7
# $Id$
 
# alcasar-conf.sh
# by REXY
# by Richard REY
# This script is distributed under the Gnu General Public License (GPL)
 
# Ce script permet la mise à jour ALCASAR
12,7 → 12,7
# - create and load the configuration files backup (/tmp/alcasar-conf.tar.gz)
# - apply ALCASAR central configuration file (/usr/local/etc/alcasar.conf)
 
new="$(date +%G%m%d-%Hh%M)" # date et heure des fichiers
new="$(date +%F-%Hh%M)" # date et heure des fichiers
fichier="alcasar-conf-$new.tar.gz" # nom du fichier de sauvegarde
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
42,7 → 42,7
PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`. # @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
}
 
usage="Usage: alcasar-conf.sh {--create ou -create} | {--load or -load} | {--apply or -apply}"
usage="Usage: alcasar-conf.sh --create | --load | --apply"
nb_args=$#
args=$1
if [ $nb_args -eq 0 ]
/scripts/sbin/alcasar-mysql.sh
13,7 → 13,7
DB_RADIUS="db_radius"
DB_USER="db_user"
radiuspwd="radius_pwd"
new="$(date +%G%m%d-%Hh%M)" # date et heure des fichiers
new="$(date +%F-%Hh%M)" # date et heure des fichiers
fichier="$DB_RADIUS-$new.$ext" # nom du fichier de sauvegarde
 
stop_acct ()
/scripts/alcasar-log-export.sh
0,0 → 1,33
#!/bin/bash
# $Id$
 
# alcasar-log-export.sh
# by Franck BOUIJOUX and Richard REY
# 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.
 
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 utiles à 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 '*log-*.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 '*log-*.gz' \) -exec cp {} $TO_SAVE/$i/. \;
fi
done
chown -R apache.apache $TO_SAVE
exit 0
 
Property changes:
Added: svn:eol-style
+LF
\ No newline at end of property
Added: svn:executable
Added: svn:keywords
+Id Author Date
\ No newline at end of property
/scripts/alcasar-log-clean.sh
0,0 → 1,20
#!/bin/bash
# $Id$
 
# alcasar-log-clean.sh
# by Franck BOUIJOUX
# This script is distributed under the Gnu General Public License (GPL)
 
# nettoyage des archives supérieures à 1 an (365 jours)
# delete backup files older than one year (365 days)
 
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 \) -a \( -name '*.gz' -o -name '*.sql' -o -name '' -o -name 'gpg' \) -exec rm -f {} \;
done
 
exit 0
Property changes:
Added: svn:eol-style
+LF
\ No newline at end of property
Added: svn:executable
Added: svn:keywords
+Id Author Date
\ No newline at end of property
/web/acc/backup/sauvegarde.php
13,8 → 13,7
$Language = strtolower(substr(chop($Langue[0]),0,2));}
if ($Language == 'fr'){
$l_backups = "Sauvegarde";
$l_create_user_db_backup = "Sauvegarder la base active des usagers";
$l_tracability_backup = "Sauvegarder le fichier actif de traces";
$l_create_user_db_backup = "Sauvegarder la base des usagers";
$l_create_system_backup = "Créer une archive système";
$l_execute = "Ex&eacute;cuter";
$l_backup_files = "Fichiers disponibles pour archivage";
25,8 → 24,7
}
else {
$l_backups = "Backups";
$l_create_user_db_backup = "Save the active users database";
$l_tracability_backup = "Save the active tracability file";
$l_create_user_db_backup = "Save the users database";
$l_create_system_backup = "Create a system backup";
$l_execute = "Execute";
$l_backup_files = "Archive backup files";
56,7 → 54,6
<tr><td valign="middle" align="left">
<FORM action="sauvegarde.php" method=POST><b>
<select name='choix'></b>
<option value="tracability_backup"><?echo "$l_tracability_backup";?>
<option value="user_DB_backup"><?echo "$l_create_user_db_backup";?>
<option value="system_backup"><?echo "$l_create_system_backup";?>
</select>
80,8 → 77,8
case 'user_DB_backup' :
exec ("sudo /usr/local/sbin/alcasar-mysql.sh --dump");
break;
case 'tracability_backup' :
exec ("sudo /usr/local/bin/alcasar-log.sh --live_export");
case 'archivage_logs' :
exec ("sudo /usr/local/bin/alcasar-log-export.sh");
break;
case 'system_backup' :
exec ("sudo /usr/local/bin/alcasar-conf.sh --create");
95,7 → 92,7
$nb=count($dir);
while ($j != $nb)
{
echo "<TD valign='top'>";
echo "<TD>";
$rep = opendir("/var/Save/".$dir[$j]);
$i=0; unset ($liste_f);
while ( $file = readdir($rep) )
/CHANGELOG
17,7 → 17,6
- @network and @Host can be blocked by the firewall (conf file : etc/alcasar-ip-blocked). Alacasar Control Center is updated.
- the filtering of LAN betwenne ALCASAR and the Internet GW is no more need.
- DHCP service is more flexible : it can be {off | half | full}
- ACC : admin can now export the curent tracability file
---------------------- 2.5 --------------------
Bugs
- watchdog of Daemons for service's test
/conf/sudoers
18,7 → 18,7
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 SYSTEM_BACKUP=/usr/local/bin/alcasar-conf.sh # pour générer l'archive de configuration du serveur
Cmnd_Alias EXPORT=/usr/local/bin/alcasar-log.sh # pour exporter/sauvegarder les fichiers journaux
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,/usr/local/sbin/alcasar-havp.sh,/usr/local/bin/alcasar-file-clean.sh # pour gérer le filtrage WEB (blacklists, whitelist et antivirus)
Cmnd_Alias NF=/usr/local/sbin/alcasar-nf.sh,/usr/local/bin/alcasar-iptables.sh # pour gérer le filtrage réseau
Cmnd_Alias LOGOUT=/usr/local/sbin/alcasar-logout.sh # pour déconnecter les usagers