| Line 1... |
Line 1... |
| 1 |
#!/bin/sh
|
1 |
#!/bin/sh
|
| 2 |
# $Id: alcasar.sh 527 2011-03-31 21:59:11Z richard $
|
2 |
# $Id: alcasar.sh 532 2011-04-05 22:17:43Z richard $
|
| 3 |
|
3 |
|
| 4 |
# alcasar.sh
|
4 |
# alcasar.sh
|
| 5 |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
|
5 |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
|
| 6 |
# This script is distributed under the Gnu General Public License (GPL)
|
6 |
# This script is distributed under the Gnu General Public License (GPL)
|
| 7 |
|
7 |
|
| Line 32... |
Line 32... |
| 32 |
# firewall : Mise en place des règles du parefeu et de l'interface WEB FirewallEyes
|
32 |
# firewall : Mise en place des règles du parefeu et de l'interface WEB FirewallEyes
|
| 33 |
# param_awstats : Configuration de l'interface des statistiques de consultation WEB
|
33 |
# param_awstats : Configuration de l'interface des statistiques de consultation WEB
|
| 34 |
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours
|
34 |
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours
|
| 35 |
# BL : Configuration de la BlackList
|
35 |
# BL : Configuration de la BlackList
|
| 36 |
# cron : Mise en place des exports de logs (+ chiffrement)
|
36 |
# cron : Mise en place des exports de logs (+ chiffrement)
|
| 37 |
# post_install : Finalisation environnement ( CA, bannières, rotatoin logs, ...)
|
37 |
# post_install : Finalisation environnement ( sécurité, bannières, rotation logs, ...)
|
| 38 |
|
38 |
|
| 39 |
VERSION=`cat VERSION`
|
39 |
VERSION=`cat VERSION`
|
| 40 |
DATE=`date '+%d %B %Y - %Hh%M'`
|
40 |
DATE=`date '+%d %B %Y - %Hh%M'`
|
| 41 |
DATE_SHORT=`date '+%d/%m/%Y'`
|
41 |
DATE_SHORT=`date '+%d/%m/%Y'`
|
| 42 |
# ******* Files parameters - paramètres fichiers *********
|
42 |
# ******* Files parameters - paramètres fichiers *********
|
| Line 61... |
Line 61... |
| 61 |
INTIF="eth1" # ETH1 est l'interface connectée au réseau local de consultation
|
61 |
INTIF="eth1" # ETH1 est l'interface connectée au réseau local de consultation
|
| 62 |
CUSTOM_PRIVATE_NETWORK_MASK="192.168.182.0/24" # adresse du réseau de consultation proposée par défaut
|
62 |
CUSTOM_PRIVATE_NETWORK_MASK="192.168.182.0/24" # adresse du réseau de consultation proposée par défaut
|
| 63 |
SQUID_PORT="3128" # Port d'écoute du proxy Squid
|
63 |
SQUID_PORT="3128" # Port d'écoute du proxy Squid
|
| 64 |
# ****** Paths - chemin des commandes *******
|
64 |
# ****** Paths - chemin des commandes *******
|
| 65 |
SED="/bin/sed -i"
|
65 |
SED="/bin/sed -i"
|
| 66 |
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
|
- |
|
| 67 |
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 openssh-server php-xml pam_ccreds rng-utils lsb-release dnsmasq sudo cronie-anacron pciutils clamav pm-fallback-policy"
|
- |
|
| 68 |
# ****************** End of global parameters *********************
|
66 |
# ****************** End of global parameters *********************
|
| 69 |
|
67 |
|
| 70 |
header_install ()
|
68 |
header_install ()
|
| 71 |
{
|
69 |
{
|
| 72 |
clear
|
70 |
clear
|
| Line 163... |
Line 161... |
| 163 |
|
161 |
|
| 164 |
##################################################################
|
162 |
##################################################################
|
| 165 |
## Fonction INIT ##
|
163 |
## Fonction INIT ##
|
| 166 |
## - Création du fichier "/root/ALCASAR_parametres.txt" ##
|
164 |
## - Création du fichier "/root/ALCASAR_parametres.txt" ##
|
| 167 |
## - Installation et modification des scripts du portail ##
|
165 |
## - Installation et modification des scripts du portail ##
|
| 168 |
## - Mise à jour système ##
|
- |
|
| 169 |
## - Installation des paquetages complémentaires ##
|
- |
|
| 170 |
##################################################################
|
166 |
##################################################################
|
| 171 |
init ()
|
167 |
init ()
|
| 172 |
{
|
168 |
{
|
| 173 |
if [ "$mode" != "update" ]
|
169 |
if [ "$mode" != "update" ]
|
| 174 |
then
|
170 |
then
|
| Line 184... |
Line 180... |
| 184 |
then
|
180 |
then
|
| 185 |
ORGANISME=!
|
181 |
ORGANISME=!
|
| 186 |
fi
|
182 |
fi
|
| 187 |
done
|
183 |
done
|
| 188 |
fi
|
184 |
fi
|
| 189 |
# System update
|
- |
|
| 190 |
$DIR_SCRIPTS/alcasar-urpmi.sh
|
- |
|
| 191 |
if [ "$?" != "0" ]
|
- |
|
| 192 |
then
|
- |
|
| 193 |
exit 0
|
- |
|
| 194 |
fi
|
- |
|
| 195 |
# Download of ALCASAR specifics RPM in cache (and test)
|
- |
|
| 196 |
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
|
- |
|
| 197 |
echo "Download of complementary packages. Please wait ..."
|
- |
|
| 198 |
urpmi --wget --auto $PACKAGES --quiet --test --retry 2
|
- |
|
| 199 |
if [ "$?" != "0" ]
|
- |
|
| 200 |
then
|
- |
|
| 201 |
echo
|
- |
|
| 202 |
echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
|
- |
|
| 203 |
echo "Relancez l'installation ultérieurement."
|
- |
|
| 204 |
echo "Si vous rencontrez à nouveau ce problème, modifier la variable MIRRORLIST du fichier 'scripts/alcasar-urpmi.sh'"
|
- |
|
| 205 |
echo "An error occurs when downloading complementary packages"
|
- |
|
| 206 |
echo "Try an other install later."
|
- |
|
| 207 |
echo "If this problem occurs again, change the MIRRORLIST variable in the file 'scripts/alcasar-urpmi.sh'"
|
- |
|
| 208 |
exit 0
|
- |
|
| 209 |
fi
|
- |
|
| 210 |
# update with cached RPM
|
- |
|
| 211 |
urpmi --auto $PACKAGES
|
- |
|
| 212 |
# On supprime les paquetages, les services et les utilisateurs inutiles
|
- |
|
| 213 |
for rm_rpm in shorewall dhcp-server c-icap-server cyrus-sasl distcache-server avahi mandi radeontool
|
- |
|
| 214 |
do
|
- |
|
| 215 |
/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
|
- |
|
| 216 |
echo -n "."
|
- |
|
| 217 |
done
|
- |
|
| 218 |
for svc in alsa sound dm atd netfs bootlogd stop-bootlogd
|
- |
|
| 219 |
do
|
- |
|
| 220 |
/sbin/chkconfig --del $svc
|
- |
|
| 221 |
done
|
- |
|
| 222 |
for rm_users in avahi-autoipd avahi icapd
|
- |
|
| 223 |
do
|
- |
|
| 224 |
user=`cat /etc/passwd|grep $rm_users|cut -d":" -f1`
|
- |
|
| 225 |
if [ "$user" == "$rm_users" ]
|
- |
|
| 226 |
then
|
- |
|
| 227 |
/usr/sbin/userdel -f $rm_users
|
- |
|
| 228 |
fi
|
- |
|
| 229 |
done
|
- |
|
| 230 |
# extract the current architecture (i586 ou X64)
|
- |
|
| 231 |
fic=`cat /etc/product.id`
|
- |
|
| 232 |
ARCH="i586"
|
- |
|
| 233 |
old="$IFS"
|
- |
|
| 234 |
IFS=","
|
- |
|
| 235 |
set $fic
|
- |
|
| 236 |
for i in $*
|
- |
|
| 237 |
do
|
- |
|
| 238 |
if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
|
- |
|
| 239 |
then
|
- |
|
| 240 |
ARCH=`echo $i|cut -d"=" -f2`
|
- |
|
| 241 |
fi
|
- |
|
| 242 |
done
|
- |
|
| 243 |
IFS="$old"
|
- |
|
| 244 |
# On installe les RPMs spécifiques à la version
|
- |
|
| 245 |
urpmi --no-verify --auto $DIR_CONF/rpms/$ARCH/*.rpm
|
- |
|
| 246 |
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
|
- |
|
| 247 |
for rpmskip in coova freeradius
|
- |
|
| 248 |
do
|
- |
|
| 249 |
echo -n "/^$rpmskip/" >> /etc/urpmi/skip.list
|
- |
|
| 250 |
done
|
- |
|
| 251 |
# On vide le répertoire temporaire
|
- |
|
| 252 |
urpmi --clean
|
- |
|
| 253 |
# On crée aléatoirement les mots de passe et les secrets partagés
|
185 |
# On crée aléatoirement les mots de passe et les secrets partagés
|
| 254 |
rm -f $FIC_PASSWD
|
186 |
rm -f $FIC_PASSWD
|
| 255 |
grubpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8` # mot de passe de protection du menu Grub
|
187 |
grubpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8` # mot de passe de protection du menu Grub
|
| 256 |
echo -n "mot de passe de protection du menu de démarrage (GRUB) : " > $FIC_PASSWD
|
188 |
echo -n "mot de passe de protection du menu de démarrage (GRUB) : " > $FIC_PASSWD
|
| 257 |
echo "$grubpwd" >> $FIC_PASSWD
|
189 |
echo "$grubpwd" >> $FIC_PASSWD
|
| Line 1325... |
Line 1257... |
| 1325 |
$SED "s?^5.*?#&?g" /etc/inittab
|
1257 |
$SED "s?^5.*?#&?g" /etc/inittab
|
| 1326 |
$SED "s?^6.*?#&?g" /etc/inittab
|
1258 |
$SED "s?^6.*?#&?g" /etc/inittab
|
| 1327 |
# On limite le temps d'attente de grub (3s) et on change la résolution d'écran
|
1259 |
# On limite le temps d'attente de grub (3s) et on change la résolution d'écran
|
| 1328 |
$SED "s?^timeout.*?timeout 3?g" /boot/grub/menu.lst
|
1260 |
$SED "s?^timeout.*?timeout 3?g" /boot/grub/menu.lst
|
| 1329 |
$SED "s?^kernel.*?& vga=791?g" /boot/grub/menu.lst
|
1261 |
$SED "s?^kernel.*?& vga=791?g" /boot/grub/menu.lst
|
| - |
|
1262 |
# On supprime les services et les utilisateurs inutiles
|
| - |
|
1263 |
for svc in alsa sound dm atd netfs bootlogd stop-bootlogd
|
| - |
|
1264 |
do
|
| - |
|
1265 |
/sbin/chkconfig --del $svc
|
| - |
|
1266 |
done
|
| - |
|
1267 |
for rm_users in avahi-autoipd avahi icapd
|
| - |
|
1268 |
do
|
| - |
|
1269 |
user=`cat /etc/passwd|grep $rm_users|cut -d":" -f1`
|
| - |
|
1270 |
if [ "$user" == "$rm_users" ]
|
| - |
|
1271 |
then
|
| - |
|
1272 |
/usr/sbin/userdel -f $rm_users
|
| - |
|
1273 |
fi
|
| - |
|
1274 |
done
|
| 1330 |
# dans le cas d'une mise à jour, on charge la conf d'une version précédente
|
1275 |
# dans le cas d'une mise à jour, on charge la conf d'une version précédente
|
| 1331 |
if [ "$mode" = "update" ]
|
1276 |
if [ "$mode" = "update" ]
|
| 1332 |
then
|
1277 |
then
|
| 1333 |
$DIR_DEST_BIN/alcasar-conf.sh --load
|
1278 |
$DIR_DEST_BIN/alcasar-conf.sh --load
|
| 1334 |
fi
|
1279 |
fi
|
| Line 1402... |
Line 1347... |
| 1402 |
MIN_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f2|cut -c1`
|
1347 |
MIN_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f2|cut -c1`
|
| 1403 |
UPD_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f3`
|
1348 |
UPD_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f3`
|
| 1404 |
# On crée le fichier de conf de la version actuelle
|
1349 |
# On crée le fichier de conf de la version actuelle
|
| 1405 |
chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
|
1350 |
chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
|
| 1406 |
$DIR_SCRIPTS/alcasar-conf.sh --create
|
1351 |
$DIR_SCRIPTS/alcasar-conf.sh --create
|
| - |
|
1352 |
mode="update"
|
| 1407 |
fi
|
1353 |
fi
|
| 1408 |
# On désinstalle la version actuelle
|
- |
|
| 1409 |
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
|
- |
|
| 1410 |
fi
|
1354 |
fi
|
| - |
|
1355 |
# System update - rpms install
|
| - |
|
1356 |
$DIR_SCRIPTS/alcasar-urpmi.sh
|
| - |
|
1357 |
if [ "$?" != "0" ]
|
| - |
|
1358 |
then
|
| - |
|
1359 |
exit 0
|
| - |
|
1360 |
fi
|
| 1411 |
if [ -e /tmp/alcasar-conf.tar.gz ]
|
1361 |
if [ -e /tmp/alcasar-conf.tar.gz ]
|
| 1412 |
then
|
1362 |
then
|
| 1413 |
echo "#### Installation avec mise à jour ####"
|
1363 |
echo "#### Installation avec mise à jour ####"
|
| 1414 |
echo "#### Installation with update ####"
|
1364 |
echo "#### Installation with update ####"
|
| - |
|
1365 |
# On désinstalle la version actuelle
|
| - |
|
1366 |
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
|
| 1415 |
# On récupère le nom d'organisme à partir de fichier de conf
|
1367 |
# On récupère le nom d'organisme à partir de fichier de conf
|
| 1416 |
tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme
|
1368 |
tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme
|
| 1417 |
ORGANISME=`cat $DIR_CONF/organisme`
|
1369 |
ORGANISME=`cat $DIR_CONF/organisme`
|
| 1418 |
mode="update"
|
1370 |
mode="update"
|
| 1419 |
else
|
1371 |
else
|