Subversion Repositories ALCASAR

Rev

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

Rev 14 Rev 29
Line 14... Line 14...
14
# Options :
14
# Options :
15
#       -install
15
#       -install
16
#       -uninstall
16
#       -uninstall
17
 
17
 
18
# Funtions :
18
# Funtions :
-
 
19
#	testing		: Tests de connectivité et de téléchargement avant installation
19
#	init		: Installation des RPM et des scripts
20
#	init		: Installation des RPM et des scripts
20
#	network		: Paramètrage du réseau
21
#	network		: Paramètrage du réseau
21
#	gestion		: Installation de l'interface de gestion
22
#	gestion		: Installation de l'interface de gestion
22
#	AC		: Initialisation de l'autorité de certification. Création des certificats
23
#	AC		: Initialisation de l'autorité de certification. Création des certificats
23
#	init_db		: Création de la base 'radius' sur le serveur MySql
24
#	init_db		: Création de la base 'radius' sur le serveur MySql
Line 72... Line 73...
72
	echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
73
	echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
73
	echo "-----------------------------------------------------------------------------"
74
	echo "-----------------------------------------------------------------------------"
74
} # End of header_install ()
75
} # End of header_install ()
75
 
76
 
76
##################################################################
77
##################################################################
77
##			Fonction INIT				##
78
##			Fonction TESTING			##
78
## - Test de la connectivité Internet				##
79
## - Test de la connectivité Internet				##
-
 
80
## - Test la mise à jour système				##
-
 
81
## - Test l'installation des RPM additionnels			##
-
 
82
##################################################################
-
 
83
testing ()
-
 
84
{
-
 
85
	echo -n "Tests des paramètres réseau : "
-
 
86
# On teste l'état du lien des interfaces réseau
-
 
87
	for i in $EXTIF $INTIF
-
 
88
	do
-
 
89
		/sbin/ifconfig $i up
-
 
90
		sleep 2
-
 
91
		if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
-
 
92
			then
-
 
93
			echo "Échec"
-
 
94
			echo "Le lien réseau de la carte $i n'est pas actif."
-
 
95
			echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR."
-
 
96
			exit 0
-
 
97
		fi
-
 
98
	done
-
 
99
# On teste la présence d'un routeur par défaut (Box FAI)
-
 
100
	if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then
-
 
101
		echo "Échec"
-
 
102
		echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte."
-
 
103
		echo "Réglez ce problème avant de poursuivre."
-
 
104
		exit 0
-
 
105
	fi
-
 
106
# 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)
-
 
107
	if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
-
 
108
		echo "Échec. La configuration des cartes réseau va être corrigée."
-
 
109
		/etc/init.d/network stop
-
 
110
		mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
-
 
111
		$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
-
 
112
		/etc/init.d/network start
-
 
113
		echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
-
 
114
		sleep 2
-
 
115
		echo "Configuration corrigée"
-
 
116
		sleep 2
-
 
117
		echo "Vous pouvez relancer ce script (sh alcasar.sh -install)."
-
 
118
		exit 0
-
 
119
	fi
-
 
120
# On teste la connectivité Internet
-
 
121
	rm -rf /tmp/con_ok.html
-
 
122
	/usr/bin/curl www.google.fr -# -o /tmp/con_ok.html
-
 
123
	if [ ! -e /tmp/con_ok.html ]
-
 
124
	then
-
 
125
		echo "La tentative de connexion vers Internet a échoué (google.fr)."
-
 
126
		echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
-
 
127
		echo "Vérifiez la validité des adresses DNS."
-
 
128
		exit 0
-
 
129
	fi
-
 
130
	echo "Tests de connectivité Internet corrects"
-
 
131
	rm -rf /tmp/con_ok.html
-
 
132
# On configure les dépots et on les teste 
-
 
133
	echo "Configuration des dépots de paquetages Internet (repository)"
-
 
134
	chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
-
 
135
	$DIR_SCRIPTS/alcasar-urpmi.sh >/dev/null
-
 
136
	if [ "$?" != "0" ]
-
 
137
	then
-
 
138
		echo
-
 
139
		echo "Une erreur s'est produite lors de la synchronisation avec les dépots Internet"
-
 
140
		echo "Relancez l'installationi ultérieurement."
-
 
141
	       echo "Si vous rencontrez de nouveau ce problème, changez de dépot en modifiant le fichier 'scripts/alcasar-urpmi.sh'"
-
 
142
		exit 0
-
 
143
	fi
-
 
144
# On test la mise à jour du système
-
 
145
	echo "Récupération des paquetages de mise à jour. Veullez patienter ..."
-
 
146
	urpmi --auto --auto-update --quiet --test
-
 
147
	if [ "$?" != "0" ]
-
 
148
	then
-
 
149
		echo
-
 
150
		echo "Une erreur  a été détectée lors de la récupération des paquetages de mise à jour"
-
 
151
		echo "Relancez l'installationi ultérieurement."
-
 
152
	       echo "Si vous rencontrez de nouveau ce problème, changez de dépot en modifiant le fichier 'scripts/alcasar-urpmi.sh'"
-
 
153
		exit 0
-
 
154
	fi
-
 
155
# On test l'installation des paquetages complémentaires
-
 
156
	echo "Récupération des paquetages complémentaires. Veullez patienter ..."
-
 
157
	urpmi --auto $PACKAGES --quiet --test
-
 
158
	if [ "$?" != "0" ]
-
 
159
	then
-
 
160
		echo
-
 
161
		echo "Une erreur  a été détectée lors de la récupération des paquetages complémentaires"
-
 
162
		echo "Relancez l'installationi ultérieurement."
-
 
163
	       echo "Si vous rencontrez de nouveau ce problème, changez de dépot en modifiant le fichier 'scripts/alcasar-urpmi.sh'"
-
 
164
		exit 0
-
 
165
	fi
-
 
166
} # end of testing
-
 
167
 
-
 
168
##################################################################
-
 
169
##			Fonction INIT				##
79
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
170
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
80
## - Installation et modification des scripts du portail	##
171
## - Installation et modification des scripts du portail	##
-
 
172
## - Mise à jour système					##
81
## - Installation des paquetages complémentaires		##
173
## - Installation des paquetages complémentaires		##
82
##################################################################
174
##################################################################
83
init ()
175
init ()
84
{
176
{
85
	if [ ! "$mode" = "update" ]
177
	if [ ! "$mode" = "update" ]
86
	then
178
	then
87
		header_install
179
		header_install
88
		echo -n "Tests des paramètres réseau : "
-
 
89
# On teste l'état du lien des interfaces réseau
-
 
90
		for i in $EXTIF $INTIF
-
 
91
		do
-
 
92
			/sbin/ifconfig $i up
-
 
93
			sleep 2
-
 
94
			if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
-
 
95
				then
-
 
96
				echo "Échec"
-
 
97
				echo "Le lien réseau de la carte $i n'est pas actif."
-
 
98
				echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR."
-
 
99
				exit 0
-
 
100
			fi
-
 
101
		done
-
 
102
# On teste la présence d'un routeur par défaut (Box FAI)
-
 
103
		if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then
-
 
104
			echo "Échec"
-
 
105
			echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte."
-
 
106
			echo "Réglez ce problème avant de poursuivre."
-
 
107
			exit 0
-
 
108
		fi
-
 
109
# 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)
-
 
110
		if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
-
 
111
			echo "Échec. La configuration des cartes réseau va être corrigée."
-
 
112
			/etc/init.d/network stop
-
 
113
			mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
-
 
114
			$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
-
 
115
			/etc/init.d/network start
-
 
116
			echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
-
 
117
			sleep 2
-
 
118
			echo "Configuration corrigée"
-
 
119
			sleep 2
-
 
120
			echo "Vous pouvez relancer ce script (sh alcasar.sh -install)."
-
 
121
			exit 0
-
 
122
		fi
-
 
123
# On teste la connectivité Internet
-
 
124
		rm -rf /tmp/con_ok.html
-
 
125
	       	`/usr/bin/curl www.google.fr -# -o /tmp/con_ok.html`
-
 
126
		if [ ! -e /tmp/con_ok.html ]
-
 
127
		then
-
 
128
			echo "La tentative de connexion vers Internet a échoué (google.fr)."
-
 
129
			echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
-
 
130
			echo "Vérifiez la validité des adresses DNS."
-
 
131
			exit 0
-
 
132
		fi
-
 
133
		echo "Tests de connectivité Internet corrects"
-
 
134
		rm -rf /tmp/con_ok.html
-
 
135
# On affecte le nom d'organisme
180
# On affecte le nom d'organisme
136
		header_install
181
		header_install
137
		ORGANISME=!
182
		ORGANISME=!
138
		PTN='^[a-zA-Z1-9-]*$'
183
		PTN='^[a-zA-Z1-9-]*$'
139
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
184
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
Line 144... Line 189...
144
                                then
189
                                then
145
                                ORGANISME=!
190
                                ORGANISME=!
146
                        fi
191
                        fi
147
                done
192
                done
148
	fi
193
	fi
149
# On installe les paquetage complémentaires
194
# On mets à jour le système
-
 
195
	urpmi --auto --auto-update 
150
	echo "Installation des paquetages complémentaires"
196
# On installe les paquetages complémentaires
151
	chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
-
 
152
	$DIR_SCRIPTS/alcasar-urpmi.sh
-
 
153
	urpmi --auto $PACKAGES
197
	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 les dépots de RPM"
-
 
159
		exit 0
-
 
160
	fi
-
 
161
# On supprime les paquetages et les services inutiles
198
# On supprime les paquetages et les services inutiles
162
	for rm_rpm in avahi mandi shorewall-common shorewall 
199
	for rm_rpm in avahi mandi shorewall-common shorewall 
163
	do
200
	do
164
		/usr/sbin/urpme --auto $rm_rpm
201
		/usr/sbin/urpme --auto $rm_rpm
165
	done
202
	done
166
	for svc in alsa sound dm atd memcached dc_server
203
	for svc in alsa sound dm atd memcached dc_server
167
	do
204
	do
168
		/sbin/chkconfig --del $svc
205
		/sbin/chkconfig --del $svc
169
	done
206
	done
170
# on installe les mises à jour spécifiques
207
# On installe les mises à jour spécifiques
171
	urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm
208
	urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm
172
# On met à jour le système
-
 
173
	urpmi --auto --auto-update
-
 
174
# On supprime les paquetages orphelins
209
# On supprime les paquetages orphelins
175
	/usr/sbin/urpme --auto-orphans --auto
210
	/usr/sbin/urpme --auto-orphans --auto
-
 
211
# On vide le répertoire temporaire
-
 
212
	urpmi --clean
176
# On crée aléatoirement les mots de passe et les secrets partagés
213
# On crée aléatoirement les mots de passe et les secrets partagés
177
	rm -f $FIC_PASSWD
214
	rm -f $FIC_PASSWD
178
	mysqlpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de l'administrateur Mysqld
215
	mysqlpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de l'administrateur Mysqld
179
	echo -n "compte et mot de passe de l'administrateur Mysqld : " > $FIC_PASSWD
216
	echo -n "compte et mot de passe de l'administrateur Mysqld : " > $FIC_PASSWD
180
	echo "root / $mysqlpwd" >> $FIC_PASSWD
217
	echo "root / $mysqlpwd" >> $FIC_PASSWD
Line 345... Line 382...
345
restrict 127.0.0.1
382
restrict 127.0.0.1
346
driftfile /etc/ntp/drift
383
driftfile /etc/ntp/drift
347
logfile /var/log/ntp.log
384
logfile /var/log/ntp.log
348
EOF
385
EOF
349
	chown -R ntp:ntp /etc/ntp
386
	chown -R ntp:ntp /etc/ntp
350
ntpd -q -g
387
ntpd -q -g &
351
# Configuration du serveur dhcpd de secours (mode bypass)
388
# Configuration du serveur dhcpd de secours (mode bypass)
352
	[ -e /etc/dhcpd.conf.default ] || cp /etc/dhcpd.conf /etc/dhcpd.conf.default 2> /dev/null
389
	[ -e /etc/dhcpd.conf.default ] || cp /etc/dhcpd.conf /etc/dhcpd.conf.default 2> /dev/null
353
	cat <<EOF > /etc/dhcpd.conf
390
	cat <<EOF > /etc/dhcpd.conf
354
ddns-update-style interim;
391
ddns-update-style interim;
355
subnet $PRIVATE_NETWORK netmask $PRIVATE_MASK {
392
subnet $PRIVATE_NETWORK netmask $PRIVATE_MASK {
Line 1146... Line 1183...
1146
case $args in
1183
case $args in
1147
	-\? | -h* | --h*)
1184
	-\? | -h* | --h*)
1148
		echo "$usage"
1185
		echo "$usage"
1149
		exit 0
1186
		exit 0
1150
		;;
1187
		;;
1151
	-install)				# Installation de toutes les briques d'ALCASAR
1188
	-install)
1152
		header_install
1189
		header_install
1153
# On teste la version du système
-
 
1154
		fic=`cat /etc/product.id`
-
 
1155
		old="$IFS"
-
 
1156
		IFS=","
-
 
1157
		set $fic
-
 
1158
		for i in $*
-
 
1159
		do
-
 
1160
			if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
-
 
1161
			then 
-
 
1162
				version=`echo $i|cut -d"=" -f2`
-
 
1163
			fi
-
 
1164
		done
-
 
1165
		IFS="$old"
-
 
1166
		if [ ! "$version" = "$MDV_NEEDED" ]
-
 
1167
		then
1190
		testing
1168
			echo "Vous devez installer une des versions suivantes de Linux Mandriva ($MDV_NEEDED)"
-
 
1169
			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"
-
 
1170
			exit 0
-
 
1171
		fi
-
 
1172
# On teste la présence d'une version déjà installée
1191
# On teste la présence d'une version déjà installée
-
 
1192
		header_install
1173
		if [ -e $DIR_WEB/VERSION ]
1193
		if [ -e $DIR_WEB/VERSION ]
1174
		then
1194
		then
1175
			echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée";
1195
			echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée";
1176
			response=0
1196
			response=0
1177
			PTN='^[oOnN]$'
1197
			PTN='^[oOnN]$'
Line 1187... Line 1207...
1187
				$DIR_SCRIPTS/alcasar-conf.sh -create
1207
				$DIR_SCRIPTS/alcasar-conf.sh -create
1188
			fi
1208
			fi
1189
# On désinstalle la version actuelle
1209
# On désinstalle la version actuelle
1190
		$DIR_DEST_SBIN/alcasar-uninstall.sh
1210
		$DIR_DEST_SBIN/alcasar-uninstall.sh
1191
		fi
1211
		fi
-
 
1212
# On teste la version du système
-
 
1213
		fic=`cat /etc/product.id`
-
 
1214
		old="$IFS"
-
 
1215
		IFS=","
-
 
1216
		set $fic
-
 
1217
		for i in $*
-
 
1218
		do
-
 
1219
			if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
-
 
1220
			then 
-
 
1221
				version=`echo $i|cut -d"=" -f2`
-
 
1222
			fi
-
 
1223
		done
-
 
1224
		IFS="$old"
-
 
1225
		if [ ! "$version" = "$MDV_NEEDED" ]
-
 
1226
		then
-
 
1227
			echo "Vous devez installer une des versions suivantes de Linux Mandriva ($MDV_NEEDED)"
-
 
1228
			echo "'/tmp'alcasar-conf.tar.gz' est le fichier de configuration de la version actuelle d'ALCASAR. Récupérez ce fichier et recopiez-le dans le répertoire '/tmp' après installation du nouveau système"
-
 
1229
			exit 0
-
 
1230
		fi
1192
		if [ -e /tmp/alcasar-conf.tar.gz ]
1231
		if [ -e /tmp/alcasar-conf.tar.gz ]
1193
		then
1232
		then
1194
		echo "#### Installation avec mise à jour ####"
1233
		echo "#### Installation avec mise à jour ####"
1195
# On récupère le nom d'organisme à partir de fichier de conf
1234
# On récupère le nom d'organisme à partir de fichier de conf
1196
			tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname 
1235
			tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname