Subversion Repositories ALCASAR

Rev

Rev 425 | Rev 440 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 425 Rev 434
Line 1... Line 1...
1
#!/bin/sh
1
#!/bin/sh
2
#  $Id: alcasar.sh 425 2011-01-08 01:15:53Z stephane $ 
2
#  $Id: alcasar.sh 434 2011-01-09 20:43:02Z 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 169... Line 169...
169
				then
169
				then
170
				ORGANISME=!
170
				ORGANISME=!
171
			fi
171
			fi
172
		done
172
		done
173
	fi
173
	fi
174
# On supprime les paquetages orphelins et inutiles
174
# On configure récupère l'architecture de la distrib installée
175
	for rm_rpm in avahi mandi dhcp-common radeontool
175
	fic=`cat /etc/product.id`
-
 
176
	old="$IFS"
-
 
177
	IFS=","
-
 
178
	set $fic
-
 
179
	for i in $*
176
	do
180
	do
177
		/usr/sbin/urpme --auto $rm_rpm --auto-orphans
181
		if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
-
 
182
		then 
-
 
183
			ARCH=`echo $i|cut -d"=" -f2`
-
 
184
		fi
-
 
185
#	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
-
 
186
#	then 
-
 
187
#		VERSION=`echo $i|cut -d"=" -f2`
-
 
188
#	fi
178
	done
189
	done
-
 
190
	IFS="$old"
179
# On configure les dépots et on les teste 
191
# On configure les dépots Internet
-
 
192
# For International install
180
	echo "Configuration des dépôts de paquetages Internet (repository)"
193
	# MIRRORLIST="http://api.mandriva.com/mirrors/basic.$VERSION.$ARCH.list"
181
	chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
194
# For french ALCASARistes
-
 
195
	MIRRORLIST="http://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/$MDV_NEEDED/$ARCH"
-
 
196
	urpmi.removemedia -a
-
 
197
	urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST main /media/main/release
-
 
198
	urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST main_updates /media/main/updates
-
 
199
	urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST contrib /media/contrib/release
-
 
200
	urpmi.addmedia --probe-synthesis --mirrorlist $MIRRORLIST contrib_updates /media/contrib/updates
182
	$DIR_SCRIPTS/alcasar-urpmi.sh >/dev/null
201
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
183
	if [ "$?" != "0" ]
202
	if [ "$nb_repository" != "4" ]
184
	then
203
	then
185
		echo
204
		echo
186
		echo "Une erreur s'est produite lors de la synchronisation avec les dépôts Internet"
205
		echo "Une erreur s'est produite lors de la synchronisation avec les dépôts Internet"
187
		echo "Relancez l'installation ultérieurement."
206
		echo "Relancez l'installation ultérieurement."
188
		echo "Si vous rencontrez de nouveau ce problème, changez de dépôt en modifiant le fichier 'scripts/alcasar-urpmi.sh'"
207
		echo "Si vous rencontrez de nouveau ce problème, changez de dépôt en modifiant le fichier 'scripts/alcasar-urpmi.sh'"
Line 213... Line 232...
213
# On mets à jour le système
232
# On mets à jour le système
214
	urpmi --auto --auto-update
233
	urpmi --auto --auto-update
215
# On installe les paquetages complémentaires
234
# On installe les paquetages complémentaires
216
	urpmi --auto $PACKAGES 
235
	urpmi --auto $PACKAGES 
217
# On supprime les paquetages, les services et les utilisateurs inutiles
236
# On supprime les paquetages, les services et les utilisateurs inutiles
218
	for rm_rpm in shorewall dhcp-server c-icap-server cyrus-sasl distcache-server
237
	for rm_rpm in shorewall dhcp-server dhcp-common c-icap-server cyrus-sasl distcache-server avahi mandi radeontool bind
219
	do
238
	do
220
		/usr/sbin/urpme --auto $rm_rpm --auto-orphans
239
		/usr/sbin/urpme --auto $rm_rpm --auto-orphans
221
	done
240
	done
222
	for svc in alsa sound dm atd netfs bootlogd stop-bootlogd
241
	for svc in alsa sound dm atd netfs bootlogd stop-bootlogd
223
	do
242
	do
Line 230... Line 249...
230
		then
249
		then
231
			/usr/sbin/userdel -f $rm_users
250
			/usr/sbin/userdel -f $rm_users
232
		fi
251
		fi
233
	done
252
	done
234
# On installe les RPMs spécifiques à la version
253
# On installe les RPMs spécifiques à la version
235
	fic=`cat /etc/product.id`
-
 
236
	old="$IFS"
-
 
237
	IFS=","
-
 
238
	set $fic
-
 
239
	for i in $*
-
 
240
	do
-
 
241
		if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
-
 
242
		then 
-
 
243
			ARCH=`echo $i|cut -d"=" -f2`
-
 
244
		fi
-
 
245
	done
-
 
246
	IFS="$old"
-
 
247
	urpmi --no-verify --auto $DIR_CONF/rpms/$ARCH/*.rpm
254
	urpmi --no-verify --auto $DIR_CONF/rpms/$ARCH/*.rpm
248
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
255
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
249
	for rpmskip in coova freeradius 
256
	for rpmskip in coova freeradius 
250
	do
257
	do
251
		echo -n "/^$rpmskip/" >> /etc/urpmi/skip.list
258
		echo -n "/^$rpmskip/" >> /etc/urpmi/skip.list
Line 430... Line 437...
430
restrict 127.0.0.1
437
restrict 127.0.0.1
431
driftfile /var/lib/ntp/drift
438
driftfile /var/lib/ntp/drift
432
logfile /var/log/ntp.log
439
logfile /var/log/ntp.log
433
EOF
440
EOF
434
	chown -R ntp:ntp /var/lib/ntp
441
	chown -R ntp:ntp /var/lib/ntp
435
# synchronisation horaire
-
 
436
	ntpd -q -g &
-
 
437
# Renseignement des fichiers hosts.allow et hosts.deny
442
# Renseignement des fichiers hosts.allow et hosts.deny
438
	[ -e /etc/hosts.allow.default ]  || cp /etc/hosts.allow /etc/hosts.allow.default
443
	[ -e /etc/hosts.allow.default ]  || cp /etc/hosts.allow /etc/hosts.allow.default
439
	cat <<EOF > /etc/hosts.allow
444
	cat <<EOF > /etc/hosts.allow
440
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
445
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
441
sshd: $PRIVATE_NETWORK_SHORT
446
sshd: $PRIVATE_NETWORK_SHORT
Line 511... Line 516...
511
		echo
516
		echo
512
		echo -n "Nom : "
517
		echo -n "Nom : "
513
		read admin_portail
518
		read admin_portail
514
		echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM
519
		echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM
515
# Création du fichier de clés de ce compte dans le profil "admin"
520
# Création du fichier de clés de ce compte dans le profil "admin"
516
		[ -d $DIR_ACC/digest ] && rm -rf $DIR_ACC/acc/digest
521
		[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
517
		mkdir -p $DIR_ACC/digest
522
		mkdir -p $DIR_DEST_ETC/digest
518
		chmod 755 $DIR_ACC/digest
523
		chmod 755 $DIR_DEST_ETC/digest
519
		until [ -s $DIR_ACC/digest/key_admin ]
524
		until [ -s $DIR_DEST_ETC/digest/key_admin ]
520
			do
525
			do
521
				/usr/sbin/htdigest -c $DIR_ACC/digest/key_admin $HOSTNAME $admin_portail
526
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
522
			done
527
			done
523
# Création des fichiers de clés des deux autres profils (backup + manager) contenant ce compte
528
# Création des fichiers de clés des deux autres profils (backup + manager) contenant ce compte
524
		$DIR_DEST_SBIN/alcasar-profil.sh --list
529
		$DIR_DEST_SBIN/alcasar-profil.sh --list
525
	fi
530
	fi
-
 
531
# synchronisation horaire
-
 
532
	ntpd -q -g &
526
# Sécurisation du centre
533
# Sécurisation du centre
527
	rm -f /etc/httpd/conf/webapps.d/*
534
	rm -f /etc/httpd/conf/webapps.d/*
528
	cat <<EOF > /etc/httpd/conf/webapps.d/alcasar.conf
535
	cat <<EOF > /etc/httpd/conf/webapps.d/alcasar.conf
529
<Directory $DIR_ACC/digest>
-
 
530
	AllowOverride none
-
 
531
	Order deny,allow
-
 
532
	Deny from all
-
 
533
</Directory>
-
 
534
<Directory $DIR_ACC>
536
<Directory $DIR_ACC>
535
	SSLRequireSSL
537
	SSLRequireSSL
536
	AllowOverride None
538
	AllowOverride None
537
	Order deny,allow
539
	Order deny,allow
538
	Deny from all
540
	Deny from all
Line 541... Line 543...
541
#	Allow from $SRC_ADMIN
543
#	Allow from $SRC_ADMIN
542
	require valid-user
544
	require valid-user
543
	AuthType digest
545
	AuthType digest
544
	AuthName $HOSTNAME
546
	AuthName $HOSTNAME
545
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
547
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
546
	AuthUserFile $DIR_ACC/digest/key_all
548
	AuthUserFile $DIR_DEST_ETC/digest/key_all
547
	ErrorDocument 404 https://$PRIVATE_IP/
549
	ErrorDocument 404 https://$PRIVATE_IP/
548
</Directory>
550
</Directory>
549
<Directory $DIR_ACC/admin>
551
<Directory $DIR_ACC/admin>
550
	SSLRequireSSL
552
	SSLRequireSSL
551
	AllowOverride None
553
	AllowOverride None
Line 556... Line 558...
556
#	Allow from $SRC_ADMIN
558
#	Allow from $SRC_ADMIN
557
	require valid-user
559
	require valid-user
558
	AuthType digest
560
	AuthType digest
559
	AuthName $HOSTNAME
561
	AuthName $HOSTNAME
560
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
562
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
561
	AuthUserFile $DIR_ACC/digest/key_admin
563
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
562
	ErrorDocument 404 https://$PRIVATE_IP/
564
	ErrorDocument 404 https://$PRIVATE_IP/
563
</Directory>
565
</Directory>
564
<Directory $DIR_ACC/manager>
566
<Directory $DIR_ACC/manager>
565
	SSLRequireSSL
567
	SSLRequireSSL
566
	AllowOverride None
568
	AllowOverride None
Line 571... Line 573...
571
#	Allow from $SRC_ADMIN
573
#	Allow from $SRC_ADMIN
572
	require valid-user
574
	require valid-user
573
	AuthType digest
575
	AuthType digest
574
	AuthName $HOSTNAME
576
	AuthName $HOSTNAME
575
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
577
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
576
	AuthUserFile $DIR_ACC/digest/key_manager
578
	AuthUserFile $DIR_DEST_ETC/digest/key_manager
577
	ErrorDocument 404 https://$PRIVATE_IP/
579
	ErrorDocument 404 https://$PRIVATE_IP/
578
</Directory>
580
</Directory>
579
<Directory $DIR_ACC/backup>
581
<Directory $DIR_ACC/backup>
580
	SSLRequireSSL
582
	SSLRequireSSL
581
	AllowOverride None
583
	AllowOverride None
Line 586... Line 588...
586
#	Allow from $SRC_ADMIN
588
#	Allow from $SRC_ADMIN
587
	require valid-user
589
	require valid-user
588
	AuthType digest
590
	AuthType digest
589
	AuthName $HOSTNAME
591
	AuthName $HOSTNAME
590
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
592
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
591
	AuthUserFile $DIR_ACC/digest/key_backup
593
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
592
	ErrorDocument 404 https://$PRIVATE_IP/
594
	ErrorDocument 404 https://$PRIVATE_IP/
593
</Directory>
595
</Directory>
594
Alias /save/ "$DIR_SAVE/"
596
Alias /save/ "$DIR_SAVE/"
595
<Directory $DIR_SAVE>
597
<Directory $DIR_SAVE>
596
	SSLRequireSSL
598
	SSLRequireSSL
Line 601... Line 603...
601
	Allow from $PRIVATE_NETWORK_MASK
603
	Allow from $PRIVATE_NETWORK_MASK
602
#	Allow from $SRC_ADMIN
604
#	Allow from $SRC_ADMIN
603
	require valid-user
605
	require valid-user
604
	AuthType digest
606
	AuthType digest
605
	AuthName $HOSTNAME
607
	AuthName $HOSTNAME
606
	AuthUserFile $DIR_ACC/digest/key_backup
608
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
607
	ErrorDocument 404 https://$PRIVATE_IP/
609
	ErrorDocument 404 https://$PRIVATE_IP/
608
	ReadmeName	/readmeSave.html
610
	ReadmeName	/readmeSave.html
609
</Directory>
611
</Directory>
610
EOF
612
EOF
611
} # End of gestion ()
613
} # End of gestion ()
Line 1011... Line 1013...
1011
	Allow from $PRIVATE_NETWORK_MASK
1013
	Allow from $PRIVATE_NETWORK_MASK
1012
	require valid-user
1014
	require valid-user
1013
	AuthType digest
1015
	AuthType digest
1014
	AuthName $HOSTNAME
1016
	AuthName $HOSTNAME
1015
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
1017
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
1016
	AuthUserFile $DIR_ACC/digest/key_admin
1018
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
1017
	ErrorDocument 404 https://$PRIVATE_IP/
1019
	ErrorDocument 404 https://$PRIVATE_IP/
1018
</Directory>
1020
</Directory>
1019
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
1021
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
1020
EOF
1022
EOF
1021
} # End of param_awstats ()
1023
} # End of param_awstats ()
Line 1058... Line 1060...
1058
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
1060
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
1059
 
1061
 
1060
# Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail>
1062
# Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail>
1061
#dhcp-host=11:22:33:44:55:66,ssic-test,192.168.182.20,255.255.255.0,45m
1063
#dhcp-host=11:22:33:44:55:66,ssic-test,192.168.182.20,255.255.255.0,45m
1062
EOF
1064
EOF
-
 
1065
touch /usr/local/etc/alcasar-dns-name
1063
} # End dnsmasq
1066
} # End dnsmasq
1064
 
1067
 
1065
##########################################################
1068
##########################################################
1066
##		Fonction BL (BlackList)			##
1069
##		Fonction BL (BlackList)			##
1067
##########################################################
1070
##########################################################
Line 1266... Line 1269...
1266
# dans le cas d'une mise à jour, on charge la conf d'une version précédente
1269
# dans le cas d'une mise à jour, on charge la conf d'une version précédente
1267
if [ "$mode" = "update" ]
1270
if [ "$mode" = "update" ]
1268
then
1271
then
1269
	$DIR_DEST_BIN/alcasar-conf.sh --load
1272
	$DIR_DEST_BIN/alcasar-conf.sh --load
1270
fi
1273
fi
-
 
1274
chown -R root:apache $DIR_DEST_ETC/*
-
 
1275
chmod -R o-rwx $DIR_DEST_ETC/*
-
 
1276
chmod ug+x $DIR_DEST_ETC/digest $DIR_DEST_ETC/alcasar-dnsfilter*
1271
	cd $DIR_INSTALL
1277
	cd $DIR_INSTALL
1272
	echo ""
1278
	echo ""
1273
	echo "#############################################################################"
1279
	echo "#############################################################################"
1274
	echo "#                        Fin d'installation d'ALCASAR                       #"
1280
	echo "#                        Fin d'installation d'ALCASAR                       #"
1275
	echo "#                                                                           #"
1281
	echo "#                                                                           #"
Line 1329... Line 1335...
1329
				$DIR_SCRIPTS/alcasar-conf.sh --create
1335
				$DIR_SCRIPTS/alcasar-conf.sh --create
1330
			fi
1336
			fi
1331
# On désinstalle la version actuelle
1337
# On désinstalle la version actuelle
1332
		$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1338
		$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1333
		fi
1339
		fi
1334
# On teste la version du système
-
 
1335
		fic=`cat /etc/product.id`
-
 
1336
		old="$IFS"
-
 
1337
		IFS=","
-
 
1338
		set $fic
-
 
1339
		for i in $*
-
 
1340
		do
-
 
1341
			if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
-
 
1342
			then 
-
 
1343
				mdv_version=`echo $i|cut -d"=" -f2`
-
 
1344
			fi
-
 
1345
		done
-
 
1346
		IFS="$old"
-
 
1347
		if [ ! "$mdv_version" = "$MDV_NEEDED" ]
-
 
1348
		then
-
 
1349
			echo "La version actuelle de Linux Mandriva va être mise à jour en $MDV_NEEDED. En cas de problème, suivez la procédure manuelle (cf. doc exploitation)" 
-
 
1350
			sleep 5
-
 
1351
			$DIR_SCRIPTS/sbin/alcasar-dist-upgrade.sh
-
 
1352
		fi
-
 
1353
		if [ -e /tmp/alcasar-conf.tar.gz ]
1340
		if [ -e /tmp/alcasar-conf.tar.gz ]
1354
		then
1341
		then
1355
		echo "#### Installation avec mise à jour ####"
1342
		echo "#### Installation avec mise à jour ####"
1356
# On récupère le nom d'organisme à partir de fichier de conf
1343
# On récupère le nom d'organisme à partir de fichier de conf
1357
			tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname 
1344
			tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname