Subversion Repositories ALCASAR

Rev

Rev 527 | Rev 534 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 527 Rev 532
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