Subversion Repositories ALCASAR

Compare Revisions

Regard whitespace Rev 307 → Rev 308

/alcasar.sh
32,6 → 32,7
# 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
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours
# BL : Configuration de la BlackList
# cron : Mise en place des exports de logs (+ chiffrement)
 
 
95,6 → 96,7
echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR."
exit 0
fi
echo -n "."
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
103,7 → 105,8
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)
echo -n "."
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de 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
117,9 → 120,21
echo "Vous pouvez relancer ce script (sh alcasar.sh -install)."
exit 0
fi
# On teste la connectivité Internet
echo -n "."
# On test le lien vers le routeur par default
IP_GW=`ip route list|grep ^default|cut -d" " -f3`
arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2`
if [[ $(expr $arp_reply) -eq 0 ]]
then
echo "Échec"
echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
echo "Réglez ce problème avant de poursuivre."
exit 0
fi
echo -n "."
# On test la connectivité Internet
rm -rf /tmp/con_ok.html
/usr/bin/curl www.google.fr -# -o /tmp/con_ok.html
/usr/bin/curl www.google.fr -s -o /tmp/con_ok.html
if [ ! -e /tmp/con_ok.html ]
then
echo "La tentative de connexion vers Internet a échoué (google.fr)."
127,8 → 142,8
echo "Vérifiez la validité des adresses DNS."
exit 0
fi
echo "Tests de connectivité Internet corrects"
rm -rf /tmp/con_ok.html
echo ". : ok"
} # end of testing
 
##################################################################
142,9 → 157,7
{
if [ ! "$mode" = "update" ]
then
header_install
# On affecte le nom d'organisme
header_install
ORGANISME=!
PTN='^[a-zA-Z0-9-]*$'
until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
199,7 → 212,7
echo -n "/^coova/" >> /etc/urpmi/skip.list
echo -n "/^freeradius/" >> /etc/urpmi/skip.list
# On supprime les paquetages, les services et les utilisateurs inutiles
for rm_rpm in avahi mandi shorewall libc-icap0 cyrus-sasl
for rm_rpm in dhcp-server avahi mandi shorewall libc-icap0 cyrus-sasl
do
/usr/sbin/urpme --auto $rm_rpm --auto-orphans
done
475,6 → 488,7
EOF
echo "- URL d'accès au centre de gestion : https://$PRIVATE_IP" >> $FIC_PARAM
# On crée le VirtualHost pour l'accès au port 80 (redirection après filtrage)
# On tente d'intercepter toute les URLs (réécriture)
FIC_VIRTUAL=`find /etc/httpd/conf -type f -name *default_vhosts*`
[ -e /etc/httpd/conf/vhosts.default ] || cp $FIC_VIRTUAL /etc/httpd/conf/vhosts.default
cat <<EOF > $FIC_VIRTUAL
482,6 → 496,8
<VirtualHost *:80>
ServerName $HOSTNAME
DocumentRoot $DIR_WEB/redirect
RewriteEngine on
RewriteRule ^(.*)$ /index.php [L]
</VirtualHost>
EOF
# Définition du premier compte lié au profil 'admin'
903,21 → 919,7
# 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 WEB
# on configure le filtrage de domaine
[ -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)
924,11 → 926,9
$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
# (pris en compte par dnsmasq) cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist
# on configure le filtrage d'url
[ -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 ()
1067,17 → 1067,42
# Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail>
#dhcp-host=11:22:33:44:55:66,ssic-test,192.168.10.20,255.255.255.0,45m
EOF
} # End dnsmasq
 
##########################################################
## Fonction BL (BlackList) ##
##########################################################
BL ()
{
# on copie par défaut la BL de toulouse embarqués dans l'archive d'ALCASAR
rm -rf /etc/dansguardian/lists/blacklists
tar zxf $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 le répertoire de 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 le répertoire de la WhiteList
[ -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 crée la structure du DNS-blackhole :
# - import des domaines de la BL Toulouse dans /usr/local/etc/alcasar-dns-availabled (1 fichier par domaine)
# - lien symbolique de ces fichiers dans /usr/local/etc/alcasar-dns-enabled pour activation/désactivation
mkdir /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
chown -R 770 /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
chown -R root:apache /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
$SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" /usr/local/bin/alcasar-dnsfilter-import.sh
/usr/local/bin/alcasar-dnsfilter-import.sh
/usr/local/bin/alcasar-dnsfilter-activate.sh
} # End dnsmasq
# On fait pointer le black-hole sur une page interne
$SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" $DIR_DEST_SBIN/alcasar-bl.sh
ln -s $DIR_WEB/redirect/index-access-deny.php $DIR_WEB/index.php
# On récupère la dernière version de la BL Toulouse
$DIR_DEST_SBIN/alcasar-bl.sh -download
}
 
 
 
 
 
##########################################################
## Fonction cron ##
## - Mise en place des différents fichiers de cron ##
1280,7 → 1305,6
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";
1330,7 → 1354,7
else
mode="install"
fi
for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus firewall param_awstats param_dnsmasq cron post_install
for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus firewall param_awstats param_dnsmasq BL cron post_install
 
do
$func