/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-export.sh # pour exporter/sauvegarder les fichiers journaux |
Cmnd_Alias EXPORT=/usr/local/bin/alcasar-log.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 |
/CHANGELOG |
---|
17,6 → 17,7 |
- @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 |
/scripts/alcasar-log-clean.sh |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-LF |
\ No newline at end of property |
Deleted: svn:executable |
Deleted: svn:keywords |
-Id Author Date |
\ No newline at end of property |
/scripts/alcasar-log-export.sh |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-LF |
\ No newline at end of property |
Deleted: svn:executable |
Deleted: svn:keywords |
-Id Author Date |
\ No newline at end of property |
/scripts/alcasar-log.sh |
---|
0,0 → 1,79 |
#!/bin/bash |
# $Id: alcasar-log-export.sh 672 2011-07-08 15:34:22Z richard $ |
# alcasar-log-export.sh |
# by Franck BOUIJOUX and REXY |
# 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 de chiffrement des logs a été implémentée dans ce script. Lisez la documentation d'exploitation pour l'activer. |
# - nettoyage des archives supérieures à 1 an (365 jours) |
# This script allows |
# - export log files from folders /var/log/{squid-firewall-httpd} in order to archive them. |
# - a cypher fonction allows to protect these files. Read the exploit documentation to enable it. |
# - delete backup files older than one year (365 days) |
TO_SAVE="/var/Save/logs" # répertoire accessible par webs |
REP_SAVE="/var/log" # répertoire local des log |
REP_SERVICE="squid httpd firewall" # répertoires contenant des logs utiles à exporter |
REP_BASE="/var/Save/base" # répertoire de sauvegarde de la base de données usagers |
NOW="$(date +%G%m%d-%Hh%M)" # date et heure du moment |
DELAY=365 # Nbre de jour avant suppression des fichiers journaux |
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) |
usage="Usage: alcasar-log.sh {--clean or -clean} | {--export or -export} | {--live_export or -live_export}" |
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 |
;; |
--clean|-clean) |
for i in $TO_SAVE $REP_SAVE ; do |
for j in $REP_SERVICE ; do |
cd $i/$j |
find . \( -mtime +$DELAY \) -a \( -name '*.gz' -o -name '*.sql' -o -name '' -o -name 'gpg' \) -exec rm -f {} \; |
done |
done |
cd $REP_BASE |
find . \( -mtime +$DELAY \) -a \( -name '*.gz' -o -name '*.sql' -o -name '' -o -name 'gpg' \) -exec rm -f {} \; |
;; |
--export|-export) |
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 |
;; |
--live_export|-live_export) |
cp $REP_SAVE/firewall/tracability.log $TO_SAVE/firewall/ |
gzip $TO_SAVE/firewall/tracability.log |
mv $TO_SAVE/firewall/tracability.log.gz $TO_SAVE/firewall/tracability.log-$NOW.gz |
chown apache:apache $TO_SAVE/firewall/tracability.log-$NOW.gz |
;; |
*) |
echo "Unknown argument :$1"; |
echo "$usage" |
exit 1 |
;; |
esac |
exit 0 |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
Added: svn:executable |
+* |
\ No newline at end of property |
/scripts/alcasar-conf.sh |
---|
2,7 → 2,7 |
# $Id$ |
# alcasar-conf.sh |
# by Richard REY |
# by REXY |
# 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 +%F-%Hh%M)" # date et heure des fichiers |
new="$(date +%G%m%d-%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 | --load | --apply" |
usage="Usage: alcasar-conf.sh {--create ou -create} | {--load or -load} | {--apply or -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 +%F-%Hh%M)" # date et heure des fichiers |
new="$(date +%G%m%d-%Hh%M)" # date et heure des fichiers |
fichier="$DB_RADIUS-$new.$ext" # nom du fichier de sauvegarde |
stop_acct () |
/web/acc/backup/sauvegarde.php |
---|
13,7 → 13,8 |
$Language = strtolower(substr(chop($Langue[0]),0,2));} |
if ($Language == 'fr'){ |
$l_backups = "Sauvegarde"; |
$l_create_user_db_backup = "Sauvegarder la base des usagers"; |
$l_create_user_db_backup = "Sauvegarder la base active des usagers"; |
$l_tracability_backup = "Sauvegarder le fichier actif de traces"; |
$l_create_system_backup = "Créer une archive système"; |
$l_execute = "Exécuter"; |
$l_backup_files = "Fichiers disponibles pour archivage"; |
24,7 → 25,8 |
} |
else { |
$l_backups = "Backups"; |
$l_create_user_db_backup = "Save the users database"; |
$l_create_user_db_backup = "Save the active users database"; |
$l_tracability_backup = "Save the active tracability file"; |
$l_create_system_backup = "Create a system backup"; |
$l_execute = "Execute"; |
$l_backup_files = "Archive backup files"; |
54,6 → 56,7 |
<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> |
77,8 → 80,8 |
case 'user_DB_backup' : |
exec ("sudo /usr/local/sbin/alcasar-mysql.sh --dump"); |
break; |
case 'archivage_logs' : |
exec ("sudo /usr/local/bin/alcasar-log-export.sh"); |
case 'tracability_backup' : |
exec ("sudo /usr/local/bin/alcasar-log.sh --live_export"); |
break; |
case 'system_backup' : |
exec ("sudo /usr/local/bin/alcasar-conf.sh --create"); |
92,7 → 95,7 |
$nb=count($dir); |
while ($j != $nb) |
{ |
echo "<TD>"; |
echo "<TD valign='top'>"; |
$rep = opendir("/var/Save/".$dir[$j]); |
$i=0; unset ($liste_f); |
while ( $file = readdir($rep) ) |
/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-clean.sh,log-export.sh,watchdog.sh} |
# - dans /usr/local/bin : alcasar-{CA.sh,conf.sh,import-clean.sh,iptables-bypass.sh,iptables.sh,log.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,20 → 346,6 |
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 |
941,8 → 927,8 |
dhcpif $INTIF |
ethers $DIR_DEST_ETC/alcasar-ethers |
#nodynip |
statip $PRIVATE_STAT_IP |
dynip $PRIVATE_DYN_IP |
#statip |
dynip $PRIVATE_NETWORK_MASK |
domain localdomain |
dns1 $PRIVATE_IP |
dns2 $PRIVATE_IP |
1230,7 → 1216,7 |
server=$DNS1 |
server=$DNS2 |
# le servive DHCP est configuré mais n'est exploité que pour le "bypass" |
dhcp-range=$PRIVATE_DYN_FIRST_IP,$PRIVATE_DYN_LAST_IP,$PRIVATE_NETMASK,12h |
dhcp-range=$PRIVATE_FIRST_IP,$PRIVATE_LAST_IP,$PRIVATE_NETMASK,12h |
dhcp-option=option:router,$PRIVATE_IP |
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5 |
1342,7 → 1328,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-clean.sh |
30 4 * * 1 root $DIR_DEST_BIN/alcasar-log.sh --clean |
EOF |
cat <<EOF > /etc/cron.d/alcasar-mysql |
# export de la base des usagers (tous les lundi à 4h45) |
1350,7 → 1336,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-export.sh |
00 5 * * 1 root $DIR_DEST_BIN/alcasar-log.sh --export |
EOF |
cat << EOF > /etc/cron.d/awstats |
# mise à jour des stats de consultation WEB toutes les 30' |
1450,7 → 1436,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-export.sh |
/usr/local/bin/alcasar-log.sh --export |
# 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 |