/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é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 |