Subversion Repositories ALCASAR

Rev

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

Rev 1 Rev 5
Line 7... Line 7...
7
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
7
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
8
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
8
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
9
 
9
 
10
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
10
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
11
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
11
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
12
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, dhcpd, openssl and firewalleyes
12
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, dhcpd, openssl bind and firewalleyes
13
 
13
 
14
# Options :
14
# Options :
15
#       -install    complete install - installation complète
15
#       -install
16
#       -uninstall  uninstall the portal - désinstallation du portail
-
 
17
#       -update     update - mise à jour
16
#       -uninstall
18
 
17
 
19
# Funtions :
18
# Funtions :
20
#	init		: Installation des RPM et des scripts
19
#	init		: Installation des RPM et des scripts
21
#	network		: Paramètrage du réseau
20
#	network		: Paramètrage du réseau
22
#	gestion		: Installation de l'interface de gestion
21
#	gestion		: Installation de l'interface de gestion
Line 32... Line 31...
32
#	bind		: Configuration du serveur de noms
31
#	bind		: Configuration du serveur de noms
33
#	cron		: Mise en place des exports de logs (+ chiffrement)
32
#	cron		: Mise en place des exports de logs (+ chiffrement)
34
 
33
 
35
 
34
 
36
VERSION="1.9a"
35
VERSION="1.9a"
-
 
36
MDV_NEEDED="2010.0"
37
DATE=`date '+%d %B %Y - %Hh%M'`
37
DATE=`date '+%d %B %Y - %Hh%M'`
38
DATE_SHORT=`date '+%d/%m/%Y'`
38
DATE_SHORT=`date '+%d/%m/%Y'`
39
# ******* Files parameters - paramètres fichiers *********
39
# ******* Files parameters - paramètres fichiers *********
40
DIR_INSTALL=`pwd`				# répertoire d'installation
40
DIR_INSTALL=`pwd`				# répertoire d'installation
41
DIR_GESTION="$DIR_INSTALL/gestion"		# répertoire d'installation contenant l'interface de gestion
41
DIR_GESTION="$DIR_INSTALL/gestion"		# répertoire d'installation contenant l'interface de gestion
Line 71... Line 71...
71
	echo "                     Installation d'ALCASAR V$VERSION"
71
	echo "                     Installation d'ALCASAR V$VERSION"
72
	echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
72
	echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
73
	echo "-----------------------------------------------------------------------------"
73
	echo "-----------------------------------------------------------------------------"
74
} # End of header_install ()
74
} # End of header_install ()
75
 
75
 
76
header_update ()
-
 
77
{
-
 
78
	clear
-
 
79
	echo "-----------------------------------------------------------------------------"
-
 
80
	echo "                     Procédure de mise à jour d'ALCASAR"
-
 
81
	echo "-----------------------------------------------------------------------------"
-
 
82
} # End of header_update ()
-
 
83
 
-
 
84
##################################################################
76
##################################################################
85
##			Fonction INIT				##
77
##			Fonction INIT				##
86
## - Test de la connectivité Internet				##
78
## - Test de la connectivité Internet				##
87
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
79
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
88
## - Installation et modification des scripts du portail	##
80
## - Installation et modification des scripts du portail	##
89
## - Installation des paquetages complémentaires		##
81
## - Installation des paquetages complémentaires		##
90
##################################################################
82
##################################################################
91
init ()
83
init ()
92
{
84
{
93
	if [ "$mode" = "install" ]
85
	if [ ! "$mode" = "update" ]
94
	then
86
	then
95
		header_install
87
		header_install
96
		if [ -e $DIR_WEB/VERSION ]
-
 
97
		then
-
 
98
			echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée"; echo "Utilisez l'option '-update' si vous voulez la mettre à jour.";
-
 
99
			exit 0
-
 
100
		fi
-
 
101
	echo -n "Tests des paramètres réseau : "
88
		echo -n "Tests des paramètres réseau : "
102
# On teste l'état du lien des interfaces réseau
89
# On teste l'état du lien des interfaces réseau
103
		for i in $EXTIF $INTIF
90
		for i in $EXTIF $INTIF
104
		do
91
		do
105
			/sbin/ifconfig $i up
92
			/sbin/ifconfig $i up
106
			sleep 2
93
			sleep 2
Line 143... Line 130...
143
			echo "Vérifiez la validité des adresses DNS."
130
			echo "Vérifiez la validité des adresses DNS."
144
			exit 0
131
			exit 0
145
		fi
132
		fi
146
		echo "Tests de connectivité Internet corrects"
133
		echo "Tests de connectivité Internet corrects"
147
		rm -rf /tmp/con_ok.html
134
		rm -rf /tmp/con_ok.html
148
# On installe les paquetage complémentaires
-
 
149
		echo "Installation des paquetages complémentaires"
-
 
150
		chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
-
 
151
		$DIR_SCRIPTS/alcasar-urpmi.sh
-
 
152
		urpmi --auto $PACKAGES
-
 
153
# On teste l'installation d'au moins un paquetage complémentaire (fichier "/usr/sbin/htdigest" du rpm "apache-base") 
-
 
154
		if [ ! -e /usr/sbin/htdigest ]
-
 
155
		then
-
 
156
			echo "L'installation des paquetages complémentaires a échouée"
-
 
157
			echo "Vérifiez la connectivité vers le dépot (ftp://ftp.free.fr)"
-
 
158
			exit 0
-
 
159
		fi
-
 
160
# On supprime les paquetages et le services inutiles
-
 
161
		for rm_rpm in avahi mandi shorewall-common shorewall 
-
 
162
			do
-
 
163
			/usr/sbin/urpme --auto $rm_rpm
-
 
164
			done
-
 
165
		for svc in alsa sound dm atd memcached dc_server
-
 
166
		do
-
 
167
			/sbin/chkconfig --del $svc
-
 
168
		done
-
 
169
# On affecte le nom système
135
# On affecte le nom d'organisme
170
		header_install
136
		header_install
171
		ORGANISME=!
137
		ORGANISME=!
172
		PTN='^[a-zA-Z1-9-]*$'
138
		PTN='^[a-zA-Z1-9-]*$'
173
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
139
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
174
                do
140
                do
Line 177... Line 143...
177
                        if [ "$ORGANISME" = "" ]
143
                        if [ "$ORGANISME" = "" ]
178
                                then
144
                                then
179
                                ORGANISME=!
145
                                ORGANISME=!
180
                        fi
146
                        fi
181
                done
147
                done
-
 
148
	fi
182
else # mode update
149
# On installe les paquetage complémentaires
183
	echo "Mise à jour du système"
150
	echo "Installation des paquetages complémentaires"
184
	chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
151
	chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
185
	$DIR_SCRIPTS/alcasar-urpmi.sh
152
	$DIR_SCRIPTS/alcasar-urpmi.sh
-
 
153
	urpmi --auto $PACKAGES
-
 
154
# On teste l'installation d'au moins un paquetage complémentaire (fichier "/usr/sbin/htdigest" du rpm "apache-base") 
-
 
155
	if [ ! -e /usr/sbin/htdigest ]
-
 
156
	then
-
 
157
		echo "L'installation des paquetages complémentaires a échouée"
-
 
158
		echo "Vérifiez la connectivité vers le dépot (ftp://ftp.free.fr)"
-
 
159
		exit 0
-
 
160
	fi
-
 
161
# On supprime les paquetages et les services inutiles
-
 
162
	for rm_rpm in avahi mandi shorewall-common shorewall 
-
 
163
	do
-
 
164
		/usr/sbin/urpme --auto $rm_rpm
-
 
165
	done
-
 
166
	for svc in alsa sound dm atd memcached dc_server
-
 
167
	do
-
 
168
		/sbin/chkconfig --del $svc
-
 
169
	done
186
# on installe les mises à jour spécifiques
170
# on installe les mises à jour spécifiques
187
	urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm
171
	urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm
188
fi
-
 
189
# On met à jour le système
172
# On met à jour le système
190
	urpmi --auto --auto-update
173
	urpmi --auto --auto-update
191
# On supprime les paquetages orphelins
174
# On supprime les paquetages orphelins
192
	/usr/sbin/urpme --auto-orphans --auto
175
	/usr/sbin/urpme --auto-orphans --auto
193
# On crée aléatoirement les mots de passe et les secrets partagés
176
# On crée aléatoirement les mots de passe et les secrets partagés
Line 204... Line 187...
204
	secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# secret partagé entre coova-chilli et FreeRadius
187
	secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# secret partagé entre coova-chilli et FreeRadius
205
	echo -n "secret partagé entre coova-chilli et FreeRadius : " >> $FIC_PASSWD
188
	echo -n "secret partagé entre coova-chilli et FreeRadius : " >> $FIC_PASSWD
206
	echo "$secretradius" >> $FIC_PASSWD
189
	echo "$secretradius" >> $FIC_PASSWD
207
	chmod 640 $FIC_PASSWD
190
	chmod 640 $FIC_PASSWD
208
# On installe et on modifie les scripts d'Alcasar
191
# On installe et on modifie les scripts d'Alcasar
209
	cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root.root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
192
	cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root:root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
210
	cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root.root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
193
	cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root:root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
211
	cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root.apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar*
194
	cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root:apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar*
212
	$SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh
195
	$SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh
213
	$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
196
	$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
214
	$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
197
	$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
215
	$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
198
	$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
216
# On génère le début du fichier récapitulatif
199
# On génère le début du fichier récapitulatif
217
	cat <<EOF > $FIC_PARAM
200
	cat <<EOF > $FIC_PARAM
218
########################################################
201
########################################################
219
##                                                    ##
202
##                                                    ##
220
##   Fichier récapitulatif des paramètres d'ALCASAR   ##
203
##   Fichier récapitulatif des paramètres d'ALCASAR   ##
Line 262... Line 245...
262
	fi
245
	fi
263
	HOSTNAME=alcasar-$ORGANISME
246
	HOSTNAME=alcasar-$ORGANISME
264
	hostname $HOSTNAME
247
	hostname $HOSTNAME
265
	echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM
248
	echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM
266
	PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ réseau de consultation (ex.: 192.168.182.0)
249
	PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ réseau de consultation (ex.: 192.168.182.0)
267
	private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2`		# prefixe du réseau (ex. /24)
250
	private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2`		# prefixe du réseau (ex. 24)
268
	PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix					# @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24)
251
	PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix					# @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24)
269
	classe=$((private_prefix/8));								# classe de réseau (ex.: 2=classe B, 3=classe C)
252
	classe=$((private_prefix/8));								# classe de réseau (ex.: 2=classe B, 3=classe C)
270
	PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.			# @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
253
	PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.			# @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
271
	PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2`			# masque réseau de consultation (ex.: 255.255.255.0)
254
	PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2`			# masque réseau de consultation (ex.: 255.255.255.0)
272
	PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ broadcast réseau de consultation (ex.: 192.168.182.255)
255
	PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ broadcast réseau de consultation (ex.: 192.168.182.255)
Line 391... Line 374...
391
	$SED "s?99/99/9999?$DATE_SHORT?g" $DIR_WEB/menu.php
374
	$SED "s?99/99/9999?$DATE_SHORT?g" $DIR_WEB/menu.php
392
	$SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
375
	$SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
393
	$SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
376
	$SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
394
	$SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
377
	$SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
395
	chmod 640 $DIR_WEB/phpsysinfo/includes/xml/portail.php
378
	chmod 640 $DIR_WEB/phpsysinfo/includes/xml/portail.php
396
	chown -R apache.apache $DIR_WEB/*
379
	chown -R apache:apache $DIR_WEB/*
397
	for i in ISO base logs/firewall logs/httpd logs/squid ;
380
	for i in ISO base logs/firewall logs/httpd logs/squid ;
398
	do
381
	do
399
		[ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i
382
		[ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i
400
	done
383
	done
401
	chown -R root.apache $DIR_SAVE
384
	chown -R root:apache $DIR_SAVE
402
# Configuration php
385
# Configuration php
403
	$SED "s?^upload_max_filesize.*?upload_max_filesize = 20M?g" /etc/php.ini
386
	$SED "s?^upload_max_filesize.*?upload_max_filesize = 20M?g" /etc/php.ini
404
	$SED "s?^post_max_size.*?post_max_size = 20M?g" /etc/php.ini
387
	$SED "s?^post_max_size.*?post_max_size = 20M?g" /etc/php.ini
405
# Configuration Apache
388
# Configuration Apache
406
	[ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
389
	[ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
Line 534... Line 517...
534
	$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
517
	$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
535
	$DIR_DEST_BIN/alcasar-CA.sh $mode
518
	$DIR_DEST_BIN/alcasar-CA.sh $mode
536
	MOD_SSL=`find /etc/httpd/conf -type f -name *default_ssl*`
519
	MOD_SSL=`find /etc/httpd/conf -type f -name *default_ssl*`
537
	$SED "s?localhost.crt?alcasar.crt?g" $MOD_SSL
520
	$SED "s?localhost.crt?alcasar.crt?g" $MOD_SSL
538
	$SED "s?localhost.key?alcasar.key?g" $MOD_SSL
521
	$SED "s?localhost.key?alcasar.key?g" $MOD_SSL
539
	chown -R root.apache /etc/pki
522
	chown -R root:apache /etc/pki
540
	chmod -R 750 /etc/pki
523
	chmod -R 750 /etc/pki
541
} # End AC ()
524
} # End AC ()
542
 
525
 
543
##########################################################################################
526
##########################################################################################
544
##			Fonction init_db()						##
527
##			Fonction init_db()						##
Line 653... Line 636...
653
	fi
636
	fi
654
# copie des fichiers modifiés et suppression des fichiers inutiles
637
# copie des fichiers modifiés et suppression des fichiers inutiles
655
	cp -rf $DIR_GESTION/manager/* $DIR_WEB/manager/
638
	cp -rf $DIR_GESTION/manager/* $DIR_WEB/manager/
656
	rm -f $DIR_WEB/manager/index.html $DIR_WEB/manager/readme 
639
	rm -f $DIR_WEB/manager/index.html $DIR_WEB/manager/readme 
657
	rm -f $DIR_WEB/manager/htdocs/about.html $DIR_WEB/manager/htdocs/index.html $DIR_WEB/manager/htdocs/content.html
640
	rm -f $DIR_WEB/manager/htdocs/about.html $DIR_WEB/manager/htdocs/index.html $DIR_WEB/manager/htdocs/content.html
658
	chown -R apache.apache $DIR_WEB/manager/
641
	chown -R apache:apache $DIR_WEB/manager/
659
# Modification du fichier de configuration
642
# Modification du fichier de configuration
660
	[ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default
643
	[ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default
661
	$SED "s?^general_domain:.*?general_domain: $ORGANISME.org?g" /etc/freeradius-web/admin.conf
644
	$SED "s?^general_domain:.*?general_domain: $ORGANISME.$DOMAIN?g" /etc/freeradius-web/admin.conf
662
	$SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf
645
	$SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf
663
	$SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf
646
	$SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf
664
	$SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf
647
	$SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf
665
	$SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf
648
	$SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf
666
	$SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf
649
	$SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf
Line 678... Line 661...
678
	cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs
661
	cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs
679
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port)
662
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port)
680
	[ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default
663
	[ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default
681
	$SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs
664
	$SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs
682
	$SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs
665
	$SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs
683
	chown -R apache.apache /etc/freeradius-web
666
	chown -R apache:apache /etc/freeradius-web
684
# Ajout de l'alias vers la page de "changement de mot de passe usager"
667
# Ajout de l'alias vers la page de "changement de mot de passe usager"
685
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
668
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
686
Alias /pass/ "$DIR_WEB/manager/pass/"
669
Alias /pass/ "$DIR_WEB/manager/pass/"
687
<Directory $DIR_WEB/manager/pass>
670
<Directory $DIR_WEB/manager/pass>
688
	SSLRequireSSL
671
	SSLRequireSSL
Line 726... Line 709...
726
	$SED "s?^# HS_DYNIP=.*?HS_DYNIP=$PRIVATE_DYN_IP?g" /etc/chilli/config
709
	$SED "s?^# HS_DYNIP=.*?HS_DYNIP=$PRIVATE_DYN_IP?g" /etc/chilli/config
727
	$SED "s?^# HS_DYNIP_MASK=.*?HS_DYNIP_MASK=$PRIVATE_DYN_MASK?g" /etc/chilli/config
710
	$SED "s?^# HS_DYNIP_MASK=.*?HS_DYNIP_MASK=$PRIVATE_DYN_MASK?g" /etc/chilli/config
728
	$SED "s?^# HS_STATIP=.*?HS_STATIP=$PRIVATE_STAT_IP?g" /etc/chilli/config
711
	$SED "s?^# HS_STATIP=.*?HS_STATIP=$PRIVATE_STAT_IP?g" /etc/chilli/config
729
	$SED "s?^# HS_STATIP_MASK.*?HS_STATIP_MASK=$PRIVATE_STAT_MASK?g" /etc/chilli/config
712
	$SED "s?^# HS_STATIP_MASK.*?HS_STATIP_MASK=$PRIVATE_STAT_MASK?g" /etc/chilli/config
730
	$SED "s?^# HS_DNS_DOMAIN=.*?HS_DNS_DOMAIN=$DOMAIN?g" /etc/chilli/config
713
	$SED "s?^# HS_DNS_DOMAIN=.*?HS_DNS_DOMAIN=$DOMAIN?g" /etc/chilli/config
731
	$SED "s?^# HS_DNS1=.*?HS_DNS1=$PRIVATE_IP?g" /etc/chilli/config
714
	$SED "s?^HS_DNS1=.*?HS_DNS1=$PRIVATE_IP?g" /etc/chilli/config
732
#	$SED "s?^# HS_DNS2=.*?HS_DNS2=208.67.222.222?g" /etc/chilli/config
715
	$SED "s?^HS_DNS2=.*?HS_DNS2=$PRIVATE_IP?g" /etc/chilli/config
733
	$SED "s?^HS_UAMSECRET=.*?HS_UAMSECRET=$secretuam?g" /etc/chilli/config
716
	$SED "s?^HS_UAMSECRET=.*?HS_UAMSECRET=$secretuam?g" /etc/chilli/config
734
	$SED "s?^HS_RADIUS=.*?HS_RADIUS=127.0.0.1?g" /etc/chilli/config
717
	$SED "s?^HS_RADIUS=.*?HS_RADIUS=127.0.0.1?g" /etc/chilli/config
735
	$SED "s?^HS_RADIUS2=.*?HS_RADIUS2=127.0.0.1?g" /etc/chilli/config
718
	$SED "s?^HS_RADIUS2=.*?HS_RADIUS2=127.0.0.1?g" /etc/chilli/config
736
	$SED "s?^HS_RADSECRET=.*?HS_RADSECRET=$secretradius?g" /etc/chilli/config
719
	$SED "s?^HS_RADSECRET=.*?HS_RADSECRET=$secretradius?g" /etc/chilli/config
737
	$SED "s?^HS_UAMALLOW=.*?# HS_UAMALLOW?g" /etc/chilli/config
720
	$SED "s?^HS_UAMALLOW=.*?# HS_UAMALLOW?g" /etc/chilli/config
Line 855... Line 838...
855
# on configure la BL de toulouse
838
# on configure la BL de toulouse
856
	cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist
839
	cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist
857
[ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default
840
[ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default
858
	$SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas)
841
	$SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas)
859
	cat $DIR_CONF/bannedurllist >> /etc/dansguardian/lists/bannedurllist
842
	cat $DIR_CONF/bannedurllist >> /etc/dansguardian/lists/bannedurllist
860
	chown -R dansguardian.apache /etc/dansguardian/
843
	chown -R dansguardian:apache /etc/dansguardian/
861
	chmod -R g+rw /etc/dansguardian
844
	chmod -R g+rw /etc/dansguardian
862
} # End of param_dansguardian ()
845
} # End of param_dansguardian ()
863
 
846
 
864
##################################################################################
847
##################################################################################
865
##				Fonction firewall				##
848
##				Fonction firewall				##
Line 874... Line 857...
874
	$SED "s?^PRIVATE_NETWORK_MASK=.*?PRIVATE_NETWORK_MASK=\"$PRIVATE_NETWORK_MASK\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
857
	$SED "s?^PRIVATE_NETWORK_MASK=.*?PRIVATE_NETWORK_MASK=\"$PRIVATE_NETWORK_MASK\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
875
	$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh
858
	$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh
876
	chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau)
859
	chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau)
877
	[ -d /var/log/firewall ] || mkdir -p /var/log/firewall
860
	[ -d /var/log/firewall ] || mkdir -p /var/log/firewall
878
	[ -e /var/log/firewall/firewall.log ] || touch /var/log/firewall/firewall.log
861
	[ -e /var/log/firewall/firewall.log ] || touch /var/log/firewall/firewall.log
879
	chown -R root.apache /var/log/firewall
862
	chown -R root:apache /var/log/firewall
880
	chmod 750 /var/log/firewall
863
	chmod 750 /var/log/firewall
881
	chmod 640 /var/log/firewall/firewall.log
864
	chmod 640 /var/log/firewall/firewall.log
882
 	$SED "s?^file=\"/var/log/ulogd.syslogemu\"?file=\"/var/log/firewall/firewall.log\"?g" /etc/ulogd.conf
865
 	$SED "s?^file=\"/var/log/ulogd.syslogemu\"?file=\"/var/log/firewall/firewall.log\"?g" /etc/ulogd.conf
883
	sh $DIR_DEST_BIN/alcasar-iptables.sh
866
	sh $DIR_DEST_BIN/alcasar-iptables.sh
884
}  # End of firewall ()
867
}  # End of firewall ()
Line 924... Line 907...
924
##		Fonction bind				##
907
##		Fonction bind				##
925
## - Mise en place des différents fichiers de bind	##
908
## - Mise en place des différents fichiers de bind	##
926
##########################################################
909
##########################################################
927
param_bind ()
910
param_bind ()
928
{
911
{
929
# modification du fichier autorisant l'accès au service 
-
 
930
	[ -e /etc/trusted_networks_acl.conf ] || ln -s /var/lib/named/etc/trusted_networks_acl.conf /etc/
912
	ln -sf /var/lib/named/etc/trusted_networks_acl.conf /etc/
931
	[ -e /etc/named.conf ] || ln -s /var/lib/named/etc/named.conf /etc/
913
	ln -sf /var/lib/named/etc/named.conf /etc/
932
	[ -d /var/named/ ] || ln -s /var/lib/named/var/named /var/
914
	ln -sf /var/lib/named/var/named /var/
933
	[ -d /var/log/named ] || ln -s /var/lib/named/var/log/ /var/log/named
915
	ln -sf /var/lib/named/var/log/ /var/log/named
934
	[ -e /var/lib/named/etc/trusted_networks_acl.conf.default  ] || cp /var/lib/named/etc/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf.default
916
	[ -e /var/lib/named/etc/trusted_networks_acl.conf.default  ] || cp /var/lib/named/etc/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf.default
935
	[ -e /var/lib/named/etc/named.conf.default  ] || cp /var/lib/named/etc/named.conf /var/lib/named/etc/named.conf.default
917
	[ -e /var/lib/named/etc/named.conf.default  ] || cp /var/lib/named/etc/named.conf /var/lib/named/etc/named.conf.default
936
	[ -e /var/lib/named/var/named/master/localdomain.zone.default  ] || cp /var/lib/named/var/named/master/localdomain.zone /var/lib/named/var/named/master/localdomain.zone.default
918
	[ -e /var/lib/named/var/named/master/localdomain.zone.default  ] || cp /var/lib/named/var/named/master/localdomain.zone /var/lib/named/var/named/master/localdomain.zone.default
-
 
919
	$SED "s?127.0.0.1;.*?127.0.0.1; $CUSTOM_PRIVATE_NETWORK_MASK;?g" /var/lib/named/etc/trusted_networks_acl.conf
-
 
920
	$SED "s?listen-on.*?listen-on port 53 \{ 127.0.0.1; $PRIVATE_IP; \};?g" /var/lib/named/etc/named.conf
-
 
921
	$SED "s?^\/\/ include \"\/etc\/bogon_acl.conf\";.*?include \"\/etc\/bogon_acl.conf\";?g" /var/lib/named/etc/named.conf
-
 
922
# On crée l'entrée pour le reverse
-
 
923
	for i in $(seq $classe)
937
	
924
	do
938
	if [ -d /tmp/named ] 
925
		o[$i]=`echo $PRIVATE_NETWORK|cut -d"." -f$i`
939
	then 
926
	done
940
		mv -f /tmp/named/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf
927
	for i in $(seq $classe -1 1)
-
 
928
	do
941
		mv -f /tmp/named/named.conf /var/lib/named/etc/
929
		echo -n "${o[$i]}." >> /tmp/rev.txt
-
 
930
	done
942
		mv -f /tmp/named/localdomain.zone /var/lib/named/var/named/master/localdomain.zone
931
	echo "in-addr.arpa" >> /tmp/rev.txt
943
		chmod 644 /var/lib/named/etc/{trusted_networks_acl.conf,named.conf} /var/lib/named/var/named/master/localdomain.zone
932
	reverse_addr=`cat /tmp/rev.txt`
944
		[ -e /etc/trusted_networks_acl.conf ] || ln -s /var/lib/named/etc/trusted_networks_acl.conf /etc/
933
	rm -f /tmp/rev.txt
945
		[ -e /etc/named.conf ] || ln -s /var/lib/named/etc/named.conf /etc/
934
cat << EOF >> /var/lib/named/etc/named.conf
946
		rmdir /tmp/named
935
zone "$reverse_addr" IN {
947
	else 	
936
	type master;
948
		$SED "s?127.0.0.1;.*?127.0.0.1; $CUSTOM_PRIVATE_NETWORK_MASK;?g" /etc/trusted_networks_acl.conf
937
	file "reverse/localdomain.rev";
949
# modification du fichier de zone local - peut-être supprimé si redirect systematique de domain vers 127.0.0.1 avec alcasar-iptables.sh
938
	allow-update { none; };
-
 
939
};
-
 
940
EOF
950
		$SED "s?listen-on*?listen-on port 53 \{ 127.0.0.1; $PRIVATE_IP; \};?g" /etc/named.conf
941
	cp -f $DIR_CONF/localdomain.zone /var/lib/named/var/named/master/localdomain.zone
951
		$SED "s?^\/\/ include \"\/etc\/bogon_acl.conf\";.*?include \"\/etc\/bogon_acl.conf\"?g" /etc/named.conf
942
	echo "$HOSTNAME	IN A $PRIVATE_IP" >> /var/lib/named/var/named/master/localdomain.zone
952
		cp -f $DIR_CONF/localdomain.zone /var/lib/named/var/named/master/localdomain.zone
943
	echo "alcasar	IN CNAME $HOSTNAME" >> /var/lib/named/var/named/master/localdomain.zone
953
		$SED "s?alcasar-localhost.*?$HOSTNAME	IN A $PRIVATE_IP?g" /var/named/master/localdomain.zone
944
	cp -f $DIR_CONF/localdomain.rev /var/lib/named/var/named/reverse/localdomain.rev
954
	fi
-
 
955
# modification de config de coova-chilli --> fait dans param_chilli
945
	echo "1 	IN PTR alcasar." >> /var/lib/named/var/named/reverse/localdomain.rev
956
# fichier de blacklistage de named dans  ... a venir
946
# fichier de blacklistage de named dans  ... a venir
957
}
947
}
958
 
948
 
959
##########################################################
949
##########################################################
960
##		Fonction cron				##
950
##		Fonction cron				##
Line 1032... Line 1022...
1032
##			Fonction post_install			##
1022
##			Fonction post_install			##
1033
## - Modification des bannières (locales et ssh) et des prompts ##
1023
## - Modification des bannières (locales et ssh) et des prompts ##
1034
## - Installation de la structure de chiffrement pour root	##
1024
## - Installation de la structure de chiffrement pour root	##
1035
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1025
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1036
## - Mise en place du la rotation des logs			##
1026
## - Mise en place du la rotation des logs			##
-
 
1027
## - Configuration dans le cas d'une mise à jour		##
1037
##################################################################
1028
##################################################################
1038
post_install()
1029
post_install()
1039
{
1030
{
1040
# adaptation du script "chien de garde" (watchdog)
1031
# adaptation du script "chien de garde" (watchdog)
1041
	$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1032
	$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
Line 1045... Line 1036...
1045
 Bienvenue sur $HOSTNAME
1036
 Bienvenue sur $HOSTNAME
1046
 
1037
 
1047
EOF
1038
EOF
1048
# création de la bannière SSH
1039
# création de la bannière SSH
1049
	cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh
1040
	cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh
1050
	chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root.root /etc/ssh/alcasar-banner-ssh
1041
	chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root:root /etc/ssh/alcasar-banner-ssh
1051
	[ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
1042
	[ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
1052
	$SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1043
	$SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1053
	$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1044
	$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1054
# sshd écoute côté LAN
1045
# sshd écoute côté LAN
1055
	$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1046
	$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1056
# sshd n'est pas lancé automatiquement au démarrage
1047
# sshd n'est pas lancé automatiquement au démarrage
1057
	/sbin/chkconfig --del sshd
1048
	/sbin/chkconfig --del sshd
1058
# Coloration des prompts
1049
# Coloration des prompts
1059
	[ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1050
	[ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1060
	cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root.root /etc/bashrc
1051
	cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1061
# Droits d'exécution pour utilisateur apache et sysadmin
1052
# Droits d'exécution pour utilisateur apache et sysadmin
1062
	[ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1053
	[ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1063
	cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root.root /etc/sudoers
1054
	cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root:root /etc/sudoers
1064
	$SED "s?^Host_Alias.*?Host_Alias	LAN_ORG=$PRIVATE_NETWORK_MASK,localhost		#réseau de l'organisme?g" /etc/sudoers
1055
	$SED "s?^Host_Alias.*?Host_Alias	LAN_ORG=$PRIVATE_NETWORK_MASK,localhost		#réseau de l'organisme?g" /etc/sudoers
1065
# prise en compte de la rotation des logs sur 1 an (concerne mysql, htttpd, dansguardian, squid, radiusd, ulogd)
1056
# prise en compte de la rotation des logs sur 1 an (concerne mysql, htttpd, dansguardian, squid, radiusd, ulogd)
1066
	cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
1057
	cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
1067
	chmod 644 /etc/logrotate.d/*
1058
	chmod 644 /etc/logrotate.d/*
1068
# processus lancés par défaut au démarrage
1059
# processus lancés par défaut au démarrage
1069
	for i in ntpd iptables ulogd squid chilli httpd radiusd mysqld dansguardian
1060
	for i in netfs ntpd iptables ulogd squid chilli httpd radiusd mysqld dansguardian named
1070
	do
1061
	do
1071
		/sbin/chkconfig --add $i
1062
		/sbin/chkconfig --add $i
1072
	done
1063
	done
1073
# On mets en place la sécurité sur les fichiers
1064
# On mets en place la sécurité sur les fichiers
1074
# des modif par rapport à radius update
1065
# des modif par rapport à radius update
Line 1091... Line 1082...
1091
/etc/raddb/modules/ldap			radius.apache	660
1082
/etc/raddb/modules/ldap			radius.apache	660
1092
/etc/raddb/sites-available/alcasar	radius.apache	660
1083
/etc/raddb/sites-available/alcasar	radius.apache	660
1093
/etc/pki/*				root.apache	750
1084
/etc/pki/*				root.apache	750
1094
EOF
1085
EOF
1095
	/usr/sbin/msec
1086
	/usr/sbin/msec
-
 
1087
if [ "$mode" = "update" ]
-
 
1088
# on charge la conf d'un version précédente
-
 
1089
then
-
 
1090
	$DIR_DEST_BIN/alcasar-conf.sh -load
-
 
1091
fi
1096
	cd $DIR_INSTALL
1092
	cd $DIR_INSTALL
1097
	clear
1093
	echo ""
1098
	echo "#############################################################################"
1094
	echo "#############################################################################"
1099
	echo "#                        Fin d'installation d'ALCASAR                       #"
1095
	echo "#                        Fin d'installation d'ALCASAR                       #"
1100
	echo "#                                                                           #"
1096
	echo "#                                                                           #"
1101
	echo "#         Application Libre pour le Contrôle Authentifié et Sécurisé        #"
1097
	echo "#         Application Libre pour le Contrôle Authentifié et Sécurisé        #"
1102
	echo "#                     des Accès au Réseau ( ALCASAR )                       #"
1098
	echo "#                     des Accès au Réseau ( ALCASAR )                       #"
Line 1117... Line 1113...
1117
} # End post_install ()
1113
} # End post_install ()
1118
 
1114
 
1119
#################################
1115
#################################
1120
#  Boucle principale du script  #
1116
#  Boucle principale du script  #
1121
#################################
1117
#################################
1122
usage="Usage: alcasar.sh -install | -uninstall | -update"
1118
usage="Usage: alcasar.sh -install | -uninstall"
1123
nb_args=$#
1119
nb_args=$#
1124
args=$1
1120
args=$1
1125
if [ $nb_args -eq 0 ]
1121
if [ $nb_args -eq 0 ]
1126
then
1122
then
1127
	nb_args=1
1123
	nb_args=1
Line 1131... Line 1127...
1131
	-\? | -h* | --h*)
1127
	-\? | -h* | --h*)
1132
		echo "$usage"
1128
		echo "$usage"
1133
		exit 0
1129
		exit 0
1134
		;;
1130
		;;
1135
	-install)				# Installation de toutes les briques d'ALCASAR
1131
	-install)				# Installation de toutes les briques d'ALCASAR
1136
		mode="install"
1132
		header_install
1137
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian firewall param_awstats param_bind cron post_install
1133
# On teste la version du système
-
 
1134
		fic=`cat /etc/product.id`
-
 
1135
		old="$IFS"
-
 
1136
		IFS=","
-
 
1137
		set $fic
-
 
1138
		for i in $*
1138
		do
1139
		do
1139
			$func
-
 
1140
# echo "*** 'debug' : end of function $func ***"; read a
1140
			if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
1141
			done
-
 
1142
		;;
-
 
1143
	-uninstall)
-
 
1144
		if [ ! -e $DIR_WEB/VERSION ]
-
 
1145
		then
1141
			then 
1146
			echo "Aucune version d'ALCASAR n'a été trouvée.";
1142
				version=`echo $i|cut -d"=" -f2`
1147
			exit 0
1143
			fi
1148
		fi
1144
		done
1149
		echo -n "Etes-vous sûr de vouloir désinstaller ALCASAR (O/n)? "
-
 
1150
		read reponse
1145
		IFS="$old"
1151
		if [ "$reponse" = "n" ] || [ "$reponse" = "N" ]
1146
		if [ ! "$version" = "$MDV_NEEDED" ]
1152
		then
1147
		then
1153
			clear
-
 
-
 
1148
			echo "Vous devez installer une des versions suivantes de Linux Mandriva ($MDV_NEEDED)"
-
 
1149
			echo "Lancez la commande 'alcasar-conf.sh -create' pour créer le fichier de conf de la version actuelle (/tmp/alcasar-conf.tar.gz). Récupérez ce fichier et recopiez-le dans le répertoire '/tmp' après installation du nouveau système"
1154
			exit 0
1150
			exit 0
1155
		fi
1151
		fi
1156
		$DIR_DEST_SBIN/alcasar-uninstall.sh	# désinstallation des constituants du portail
1152
# On teste la présence d'une version déjà installée
1157
		;;
-
 
1158
	-update)
-
 
1159
		if [ ! -e $DIR_WEB/VERSION ]
1153
		if [ -e $DIR_WEB/VERSION ]
1160
		then
1154
		then
1161
			echo "Aucune version d'ALCASAR n'a été trouvée."; echo "Utilisez l'option '-install' si vous voulez l'installer.";
1155
			echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée";
-
 
1156
			response=0
-
 
1157
			PTN='^[oOnN]$'
-
 
1158
			until [[ $(expr $response : $PTN) -gt 0 ]]
-
 
1159
			do
-
 
1160
				echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
-
 
1161
				read response
-
 
1162
			done
-
 
1163
			if [ "$response" = "o" ] || [ "$response" = "O" ]
-
 
1164
			then
-
 
1165
# On crée le fichier de conf de la version actuelle
-
 
1166
				chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
-
 
1167
				$DIR_SCRIPTS/alcasar-conf.sh -create
1162
			exit 0
1168
			fi
-
 
1169
# On désinstalle la version actuelle
-
 
1170
		$DIR_DEST_SBIN/alcasar-uninstall.sh
1163
		fi
1171
		fi
1164
		old_version=`cat $DIR_WEB/VERSION |cut -b 1-3`
-
 
1165
		if [ "$old_version" != "1.8" ] && [ "$old_version" != "1.9" ]
1172
		if [ -e /tmp/alcasar-conf.tar.gz ]
1166
		then
1173
		then
-
 
1174
echo "#### Installation avec mise à jour ####"
1167
			echo "Cette mise à jour ne s'applique que sur les versions 1.8 et supérieures";
1175
# On récupère le nom d'organisme à partir de fichier de conf
-
 
1176
			tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname 
-
 
1177
			ORGANISME=`cat $DIR_CONF/hostname|cut -b 9-`
1168
			echo -n "la version installée est : "; echo `cat $DIR_WEB/VERSION`;
1178
			hostname `cat $DIR_CONF/hostname`
-
 
1179
			mode="update"
1169
			exit 0
1180
		else
-
 
1181
			mode="install"
1170
		fi
1182
		fi
-
 
1183
for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian firewall param_awstats param_bind cron post_install
-
 
1184
		do
-
 
1185
			$func
1171
		echo -n "Etes-vous sûr de vouloir mettre à jour ALCASAR (O/n)? "
1186
# echo "*** 'debug' : end of function $func ***"; read a
1172
		read reponse
1187
			done
-
 
1188
		;;
-
 
1189
	-uninstall)
1173
		if [ "$reponse" = "n" ] || [ "$reponse" = "N" ]
1190
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1174
		then
1191
		then
1175
			clear
1192
			echo "Aucune version d'ALCASAR n'a été trouvée.";
1176
			exit 0
1193
			exit 0
1177
		fi
1194
		fi
1178
		header_update
-
 
1179
		mode="update"
1195
		response=0
1180
# On récupère le nom d'organisme
-
 
1181
		ORGANISME=`hostname|cut -b 9-`
-
 
1182
# Mets-on a jour le certificat serveur (o/n) ?
-
 
1183
		cert_date=`/usr/bin/openssl x509 -noout -in /etc/pki/tls/certs/alcasar.crt -dates|grep After|cut -d"=" -f2`
-
 
1184
		echo "le certificat actuel d'Alcasar expire le : $cert_date".
-
 
1185
		echo "Vous pouvez le remplacer par un nouveau qui sera valide 5 ans".
-
 
1186
		echo "Dans ce cas, il faudra supprimer l'ancien des navigateurs".
-
 
1187
		echo "Voulez-vous garder le certificat actuel (recommandé) (o/n)? "
-
 
1188
		read old_cert
1196
		PTN='^[oOnN]$'
1189
		if [ "$old_cert" = "o" ] || [ "$old_cert" = "O" ]
1197
		until [[ $(expr $response : $PTN) -gt 0 ]]
1190
		then
-
 
1191
			cp -f /etc/pki/tls/certs/alcasar.crt /tmp/
-
 
1192
			cp -f /etc/pki/tls/private/alcasar.key /tmp/
-
 
1193
		fi
1198
		do
1194
# Sauvegarde du certificat de la CA
-
 
1195
		cp -f /etc/pki/CA/alcasar-ca.crt /tmp/
-
 
1196
		cp -f /etc/pki/CA/private/alcasar-ca.key /tmp/
-
 
1197
# export de la base pour sauvegarde et réinjection
-
 
1198
		$DIR_DEST_SBIN/alcasar-mysql.sh -dump
-
 
1199
# Sauvegarde des comptes de gestion
-
 
1200
		cp -rf $DIR_WEB/digest /tmp/
-
 
1201
# Sauvegarde du nom d'organisme
-
 
1202
		HOST=`hostname`
-
 
1203
# Sauvegarde du logo
-
 
1204
		cp -f $DIR_WEB/images/organisme.png /tmp/
-
 
1205
# Sauvegarde des uamallowed (urls et domaines)
-
 
1206
		cp -f /etc/chilli/alcasar-uamallowed /tmp/alcasar-uamallowed
-
 
1207
		cp -f /etc/chilli/alcasar-uamdomain /tmp/alcasar-uamdomain
-
 
1208
# Sauvegarde des listes de filtrage (BL principale et secondaire, @IP non filtrés, etc.)
1199
			echo -n "Voulez-vous créer le fichier de conf de la version actuelle (0/n)? "
1209
		echo "sauvegarde de l'ancienne blacklist ..."
-
 
1210
		cp -rf /etc/dansguardian/lists/ /tmp/
-
 
1211
# sauvegarde des fichiers de filtrage réseau
-
 
1212
		mkdir /tmp/etc/
1200
			read response
1213
		cp -rf $DIR_DEST_ETC/* /tmp/etc/
-
 
1214
# sauvegarde des fichiers DNS Bind : probablement pas utile
-
 
1215
		cp /etc/named.conf /tmp/named/
-
 
1216
		cp /var/lib/named/etc/trusted_networks_acl.conf /tmp/named/
-
 
1217
		cp /var/lib/named/var/named/master/localdomain.zone /tmp/named/
-
 
1218
# désinstallation des constituants du portail
-
 
1219
		chmod 750 $DIR_SCRIPTS/sbin/alcasar-uninstall.sh
-
 
1220
		$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
-
 
1221
# réinstallation
-
 
1222
		hostname $HOST
-
 
1223
		init
1201
		done
1224
		network
-
 
1225
		gestion
-
 
1226
# Installation de l'interface de gestion
-
 
1227
# Récupération du logo
-
 
1228
		mv -f /tmp/organisme.png $DIR_WEB/images/
-
 
1229
		chown apache:apache $DIR_WEB/images/organisme.png $DIR_WEB/intercept.php
-
 
1230
# Récupération du certificat de la CA
-
 
1231
		mv -f /tmp/alcasar-ca.crt /etc/pki/CA/
-
 
1232
		mv -f /tmp/alcasar-ca.key /etc/pki/CA/private/
-
 
1233
		if [ "$old_cert" = "o" ] || [ "$old_cert" = "O" ]
1202
		if [ "$reponse" = "o" ] || [ "$reponse" = "O" ]
1234
		then			# on récupère l'ancien et on pointe dessus
-
 
1235
			mv -f /tmp/alcasar.crt /etc/pki/tls/certs/
-
 
1236
			mv -f /tmp/alcasar.key /etc/pki/tls/private/
-
 
1237
			[ -d $DIR_WEB/certs ] || mkdir -p $DIR_WEB/certs
-
 
1238
			chown apache:apache $DIR_WEB/certs
-
 
1239
			rm -f $DIR_WEB/certs/*
-
 
1240
			ln -s /etc/pki/tls/certs/alcasar.crt $DIR_WEB/certs/certificat_alcasar.pem
-
 
1241
			ln -s /etc/pki/CA/alcasar-ca.crt $DIR_WEB/certs/certificat_alcasar_ca.pem
-
 
1242
			chown -R root.apache /etc/pki
-
 
1243
			chmod -R 750 /etc/pki
-
 
1244
		else			# création d'un nouveau certificat serveur
-
 
1245
			AC
-
 
1246
		fi
-
 
1247
		init_db			# Création de la base 'radius' sur le serveur MySql
-
 
1248
# Import de la dernière base usagers
-
 
1249
		mysql -u$DB_USER -p$radiuspwd < $DIR_SAVE/base/`ls $DIR_SAVE/base|tail -1`
-
 
1250
		param_radius
-
 
1251
		param_web_radius
-
 
1252
		param_chilli
-
 
1253
# Récupération des uamallowed
-
 
1254
		mv -f /tmp/alcasar-uam* /etc/chilli/.
-
 
1255
		chown root:apache /etc/chilli/alcasar-uam*
-
 
1256
		chmod 660 /etc/chilli/alcasar-uam*
-
 
1257
		param_squid
-
 
1258
		param_dansguardian
-
 
1259
# Récupération des listes de filtrage (BL principale et secondaire, @IP non filtrés, etc.)
-
 
1260
		rm -rf /etc/dansguardian/lists
-
 
1261
		mv /tmp/lists/ /etc/dansguardian/
-
 
1262
		firewall
-
 
1263
		param_awstats
-
 
1264
		cron
-
 
1265
# Récupération des comptes de gestion (admin + manager + backup)
-
 
1266
		mv -f /tmp/digest $DIR_WEB/
-
 
1267
		$DIR_DEST_SBIN/alcasar-profil.sh -list
-
 
1268
# Récupération des règles de filtrage réseau
-
 
1269
		if [ -d /tmp/etc ]
-
 
1270
		then
1203
		then
1271
			mv -f /tmp/etc/* $DIR_DEST_ETC/
-
 
1272
			chown root:apache $DIR_DEST_ETC/*
1204
			$DIR_SCRIPT/alcasar-conf.sh -create
1273
			chmod 660 $DIR_DEST_ETC/*
-
 
1274
			rmdir /tmp/etc
-
 
1275
		fi
1205
		fi
-
 
1206
# On désinstalle la version actuelle
1276
		post_install
1207
		$DIR_DEST_SBIN/alcasar-uninstall.sh
1277
		;;
1208
		;;
1278
	*)
1209
	*)
1279
		echo "Argument inconnu :$1";
1210
		echo "Argument inconnu :$1";
1280
		echo "$usage"
1211
		echo "$usage"
1281
		exit 1
1212
		exit 1