Subversion Repositories ALCASAR

Rev

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

Rev 589 Rev 595
Line 1... Line 1...
1
#!/bin/sh
1
#!/bin/sh
2
#  $Id: alcasar.sh 589 2011-04-26 20:08:21Z richard $ 
2
#  $Id: alcasar.sh 595 2011-05-04 21:51:30Z 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 37... Line 37...
37
#	post_install	: Finalisation environnement ( sécurité, bannières, rotation 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
Lang=`echo $LANG|cut -c 1-2`
42
# ******* Files parameters - paramètres fichiers *********
43
# ******* Files parameters - paramètres fichiers *********
43
DIR_INSTALL=`pwd`				# répertoire d'installation
44
DIR_INSTALL=`pwd`				# répertoire d'installation
44
DIR_CONF="$DIR_INSTALL/conf"			# répertoire d'installation contenant les fichiers de configuration
45
DIR_CONF="$DIR_INSTALL/conf"			# répertoire d'installation contenant les fichiers de configuration
45
DIR_SCRIPTS="$DIR_INSTALL/scripts"		# répertoire d'installation contenant les scripts
46
DIR_SCRIPTS="$DIR_INSTALL/scripts"		# répertoire d'installation contenant les scripts
46
DIR_SAVE="/var/Save"				# répertoire de sauvegarde (ISO, backup, etc.)
47
DIR_SAVE="/var/Save"				# répertoire de sauvegarde (ISO, backup, etc.)
Line 57... Line 58...
57
# ******* Network parameters - paramètres réseau *******
58
# ******* Network parameters - paramètres réseau *******
58
HOSTNAME="alcasar"				# 
59
HOSTNAME="alcasar"				# 
59
DOMAIN="localdomain"				# domaine local
60
DOMAIN="localdomain"				# domaine local
60
EXTIF="eth0"					# ETH0 est l'interface connectée à Internet (Box FAI)
61
EXTIF="eth0"					# ETH0 est l'interface connectée à Internet (Box FAI)
61
INTIF="eth1"					# ETH1 est l'interface connectée au réseau local de consultation
62
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
63
DEFAULT_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
-
 
64
# ****** Paths - chemin des commandes *******
64
# ****** Paths - chemin des commandes *******
65
SED="/bin/sed -i"
65
SED="/bin/sed -i"
66
# ****************** End of global parameters *********************
66
# ****************** End of global parameters *********************
67
 
67
 
68
header_install ()
68
header_install ()
Line 78... Line 78...
78
##			Fonction TESTING			##
78
##			Fonction TESTING			##
79
## - Test de la connectivité Internet				##
79
## - Test de la connectivité Internet				##
80
##################################################################
80
##################################################################
81
testing ()
81
testing ()
82
{
82
{
-
 
83
	if [ $Lang == "fr" ]
83
	echo "Tests des paramètres réseau."
84
		then echo -n "Tests des paramètres réseau :"
84
	echo -n "Network parameters tests : "
85
		else echo -n "Network parameters tests : "
-
 
86
	fi
85
# We test the Ethernet links state
87
# We test the Ethernet links state
86
	for i in $EXTIF $INTIF
88
	for i in $EXTIF $INTIF
87
	do
89
	do
88
		/sbin/ip link set $i up
90
		/sbin/ip link set $i up
89
		sleep 3
91
		sleep 3
90
		if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
92
		if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
91
			then
93
			then
-
 
94
			if [ $Lang == "fr" ]
-
 
95
			then 
92
			echo "Échec"
96
				echo "Échec"
93
			echo "Le lien réseau de la carte $i n'est pas actif."
97
				echo "Le lien réseau de la carte $i n'est pas actif."
94
			echo "Réglez ce problème puis relancez ce script."
98
				echo "Réglez ce problème puis relancez ce script."
-
 
99
			else
95
			echo "Failed"
100
				echo "Failed"
96
			echo "The link state of $i interface id down."
101
				echo "The link state of $i interface id down."
97
			echo "Resolv this problem, then restart this script."
102
				echo "Resolv this problem, then restart this script."
-
 
103
			fi
98
			exit 0
104
			exit 0
99
		fi
105
		fi
100
	echo -n "."
106
	echo -n "."
101
	done
107
	done
102
# On teste la présence d'un routeur par défaut (Box FAI)
108
# 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
109
	if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then
-
 
110
		if [ $Lang == "fr" ]
-
 
111
		then 
104
		echo "Échec"
112
			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."
113
			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 puis relancez ce script."
114
			echo "Réglez ce problème puis relancez ce script."
-
 
115
		else
107
		echo "Failed"
116
			echo "Failed"
108
		echo "You haven't configured Internet access or Internet link is on the wrong Ethernet card"
117
			echo "You haven't configured Internet access or Internet link is on the wrong Ethernet card"
109
		echo "Resolv this problem, then restart this script."
118
			echo "Resolv this problem, then restart this script."
-
 
119
		fi
110
		exit 0
120
		exit 0
111
	fi
121
	fi
112
	echo -n "."
122
	echo -n "."
113
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de VirtualBox)
123
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de VirtualBox)
114
	if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
124
	if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
-
 
125
		if [ $Lang == "fr" ]
115
		echo "La configuration des cartes réseau va être corrigée."
126
			then echo "La configuration des cartes réseau va être corrigée."
116
		echo "The Ethernet card configuration will be corrected."
127
			else echo "The Ethernet card configuration will be corrected."
-
 
128
		fi
117
		/etc/init.d/network stop
129
		/etc/init.d/network stop
118
		mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
130
		mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
119
		$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
131
		$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
120
		/etc/init.d/network start
132
		/etc/init.d/network start
121
		echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
133
		echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
122
		sleep 2
134
		sleep 2
-
 
135
		if [ $Lang == "fr" ]
123
		echo "Configuration corrigée"
136
			then echo "Configuration corrigée"
124
		echo "Configuration updated"
137
			else echo "Configuration updated"
-
 
138
		fi
125
		sleep 2
139
		sleep 2
-
 
140
		if [ $Lang == "fr" ]
126
		echo "Vous pouvez relancer ce script."
141
			then echo "Vous pouvez relancer ce script."
127
		echo "You can restart this script."
142
			else echo "You can restart this script."
-
 
143
		fi
128
		exit 0
144
		exit 0
129
	fi
145
	fi
130
	echo -n "."
146
	echo -n "."
131
# On test le lien vers le routeur par default
147
# On test le lien vers le routeur par default
132
	IP_GW=`ip route list|grep ^default|cut -d" " -f3`
148
	IP_GW=`ip route list|grep ^default|cut -d" " -f3`
133
	arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2`
149
	arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2`
134
	if [ $(expr $arp_reply) -eq 0 ]
150
	if [ $(expr $arp_reply) -eq 0 ]
135
	       	then
151
	       	then
-
 
152
		if [ $Lang == "fr" ]
-
 
153
		then 
136
		echo "Échec"
154
			echo "Échec"
137
		echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
155
			echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
138
		echo "Réglez ce problème puis relancez ce script."
156
			echo "Réglez ce problème puis relancez ce script."
-
 
157
		else
139
		echo "Failed"
158
			echo "Failed"
140
		echo "The Internet gateway doesn't answered"
159
			echo "The Internet gateway doesn't answered"
141
		echo "Resolv this problem, then restart this script."
160
			echo "Resolv this problem, then restart this script."
-
 
161
		fi
142
		exit 0
162
		exit 0
143
	fi
163
	fi
144
	echo -n "."
164
	echo -n "."
145
# On teste la connectivité Internet
165
# On teste la connectivité Internet
146
	rm -rf /tmp/con_ok.html
166
	rm -rf /tmp/con_ok.html
147
	/usr/bin/curl www.google.fr -s -o /tmp/con_ok.html
167
	/usr/bin/curl www.google.fr -s -o /tmp/con_ok.html
148
	if [ ! -e /tmp/con_ok.html ]
168
	if [ ! -e /tmp/con_ok.html ]
149
	then
169
	then
-
 
170
		if [ $Lang == "fr" ]
-
 
171
		then 
150
		echo "La tentative de connexion vers Internet a échoué (google.fr)."
172
			echo "La tentative de connexion vers Internet a échoué (google.fr)."
151
		echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
173
			echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
152
		echo "Vérifiez la validité des adresses IP des DNS."
174
			echo "Vérifiez la validité des adresses IP des DNS."
-
 
175
		else
153
		echo "The Internet connection try failed (google.fr)."
176
			echo "The Internet connection try failed (google.fr)."
154
		echo "Please, verify that the $EXTIF card is connected with the Internet gateway."
177
			echo "Please, verify that the $EXTIF card is connected with the Internet gateway."
155
		echo "Verify the DNS IP addresses"
178
			echo "Verify the DNS IP addresses"
-
 
179
		fi
156
		exit 0
180
		exit 0
157
	fi
181
	fi
158
	rm -rf /tmp/con_ok.html
182
	rm -rf /tmp/con_ok.html
159
	echo ". : ok"
183
	echo ". : ok"
160
} # end of testing
184
} # end of testing
Line 171... Line 195...
171
# On affecte le nom d'organisme
195
# On affecte le nom d'organisme
172
		ORGANISME=!
196
		ORGANISME=!
173
		PTN='^[a-zA-Z0-9-]*$'
197
		PTN='^[a-zA-Z0-9-]*$'
174
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
198
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
175
                do
199
                do
-
 
200
			if [ $Lang == "fr" ]
176
			echo "Entrez le nom de votre organisme : "
201
			       	then echo "Entrez le nom de votre organisme : "
177
			echo -n "Enter the name of your organisation : "
202
				else echo -n "Enter the name of your organisation : "
-
 
203
			fi
178
			read ORGANISME
204
			read ORGANISME
179
			if [ "$ORGANISME" = "" ]
205
			if [ "$ORGANISME" = "" ]
180
				then
206
				then
181
				ORGANISME=!
207
				ORGANISME=!
182
			fi
208
			fi
Line 214... Line 240...
214
	$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
240
	$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
215
	$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
241
	$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
216
	$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
242
	$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
217
# On génère le début du fichier récapitulatif
243
# On génère le début du fichier récapitulatif
218
	cat <<EOF > $FIC_PARAM
244
	cat <<EOF > $FIC_PARAM
219
########################################################
245
################################################
220
##                                                    ##
246
##                                            ##
221
##   Fichier récapitulatif des paramètres d'ALCASAR   ##
247
##          ALCASAR Paramèters                ##
222
##                                                    ##
248
##                                            ##
223
########################################################
249
################################################
224
 
250
 
225
- Date d'installation : $DATE
251
- Install date : $DATE
226
- Version istallée : $VERSION
252
- Version : $VERSION
227
- Organisme : $ORGANISME
253
- Organism : $ORGANISME
228
EOF
254
EOF
229
	chmod o-rwx $FIC_PARAM
255
	chmod o-rwx $FIC_PARAM
230
} # End of init ()
256
} # End of init ()
231
 
257
 
232
##################################################################
258
##################################################################
233
##			Fonction network			##
259
##			Fonction network			##
234
## - Définition du plan d'adressage du réseau de consultation	##
260
## - Définition du plan d'adressage du réseau de consultation	##
235
##  (merci à Alexandre Trias pour le calcul de masque et RegEx) ##
-
 
236
## - Nommage DNS du système (portail + nom d'organisme)		##
261
## - Nommage DNS du système 					##
237
## - Configuration de l'interface eth1 (réseau de consultation)	##
262
## - Configuration de l'interface eth1 (réseau de consultation)	##
238
## - Modification du fichier /etc/hosts				##
263
## - Modification du fichier /etc/hosts				##
239
## - Configuration du serveur de temps (NTP)			##
264
## - Configuration du serveur de temps (NTP)			##
240
## - Renseignement des fichiers hosts.allow et hosts.deny	##
265
## - Renseignement des fichiers hosts.allow et hosts.deny	##
241
##################################################################
266
##################################################################
242
network ()
267
network ()
243
{
268
{
244
	header_install
269
	header_install
-
 
270
	if [ $Lang == "fr" ]
245
	echo "Par défaut, le plan d'adressage du réseau de consultation est : $CUSTOM_PRIVATE_NETWORK_MASK"
271
		then echo "Par défaut, le plan d'adressage IP du réseau de consultation est : $DEFAULT_PRIVATE_NETWORK_MASK"
-
 
272
		else echo "The default consultation network IP address is : $DEFAULT_PRIVATE_NETWORK_MASK"
-
 
273
	fi
246
	response=0
274
	response=0
247
	PTN='^[oOnN]$'
275
	PTN='^[oOyYnN]$'
248
	until [[ $(expr $response : $PTN) -gt 0 ]]
276
	until [[ $(expr $response : $PTN) -gt 0 ]]
249
		do
277
		do
-
 
278
			if [ $Lang == "fr" ]
250
			echo -n "Voulez-vous utiliser ce plan d'adressage (recommandé) (O/n)? : "
279
				then echo -n "Voulez-vous utiliser ce plan d'adressage (recommandé) (O/n)? : "
-
 
280
				else echo -n "Do you want to use it (recommanded) (Y/n)? : "
-
 
281
			fi
251
			read response
282
			read response
252
		done
283
		done
253
	if [ "$response" = "n" ] || [ "$response" = "N" ]
284
	if [ "$response" = "n" ] || [ "$response" = "N" ]
254
	then
285
	then
255
		CUSTOM_PRIVATE_NETWORK_MASK="0"
286
		PRIVATE_NETWORK_MASK="0"
256
		PTN='^\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\)/[012]\?[[:digit:]]$'
287
		PTN='^\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\)/[012]\?[[:digit:]]$'
257
		until [[ $(expr $CUSTOM_PRIVATE_NETWORK_MASK : $PTN) -gt 0 ]]
288
		until [[ $(expr $PRIVATE_NETWORK_MASK : $PTN) -gt 0 ]]
258
			do
289
			do
-
 
290
				if [ $Lang == "fr" ]
259
				echo -n "Entrez un plan d'adressage au format CIDR (a.b.c.d/xx) : "
291
					then echo -n "Entrez un plan d'adressage IP au format CIDR (a.b.c.d/xx) : "
-
 
292
					else echo -n "Enter a network IP address in CIDR format (a.b.c.d/xx) : "
-
 
293
				fi
260
				read CUSTOM_PRIVATE_NETWORK_MASK
294
				read PRIVATE_NETWORK_MASK
261
 
295
 
262
			done
296
			done
-
 
297
	else
-
 
298
       		PRIVATE_NETWORK_MASK=$DEFAULT_PRIVATE_NETWORK_MASK
263
	fi
299
	fi
264
# Récupération de la config réseau côté "LAN de consultation"
300
# Définition de la config réseau côté "LAN de consultation"
265
	hostname $HOSTNAME
301
	hostname $HOSTNAME
266
	echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM
302
	echo "- Hostname : $HOSTNAME" >> $FIC_PARAM
267
	PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ réseau de consultation (ex.: 192.168.182.0)
303
	PRIVATE_NETWORK=`/bin/ipcalc -n $DEFAULT_PRIVATE_NETWORK_MASK | cut -d"=" -f2`	# @ réseau de consultation (ex.: 192.168.182.0)
268
	private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2`		# prefixe du réseau (ex. 24)
304
	PRIVATE_PREFIX=`/bin/ipcalc -p $DEFAULT_PRIVATE_NETWORK_MASK |cut -d"=" -f2`	# prefixe du réseau (ex. 24)
269
	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)
305
	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)
270
	classe=$((private_prefix/8));								# classe de réseau (ex.: 2=classe B, 3=classe C)
306
	classe=$((PRIVATE_PREFIX/8));							# classe de réseau (ex.: 2=classe B, 3=classe C)
271
	PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.			# @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
-
 
272
	PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2`			# masque réseau de consultation (ex.: 255.255.255.0)
-
 
273
	PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ broadcast réseau de consultation (ex.: 192.168.182.255)
-
 
274
	TMP_MASK=`echo $PRIVATE_NETWORK_MASK|cut -d"/" -f2`; HALF_MASK=`expr $TMP_MASK + 1`	# masque du 1/2 réseau de consultation (ex.: 25)
-
 
275
	PRIVATE_STAT_IP=$PRIVATE_NETWORK/$HALF_MASK						# plage des adresses statiques (ex.: 192.168.182.0/25)
-
 
276
	PRIVATE_STAT_MASK=`/bin/ipcalc -m $PRIVATE_STAT_IP/$HALF_MASK | cut -d"=" -f2`		# masque des adresses statiques (ex.: 255.255.255.128)
-
 
277
	classe_sup=`expr $classe + 1`
307
	classe_sup=`expr $classe + 1`
278
	classe_sup_sup=`expr $classe + 2`
-
 
279
	private_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup`
308
	private_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup`
280
	private_broadcast_ending=`echo $PRIVATE_BROADCAST | cut -d"." -f$classe_sup`
-
 
281
	private_plage=`expr $private_broadcast_ending - $private_network_ending + 1`
-
 
282
	private_half_plage=`expr $private_plage / 2`
-
 
283
	private_dyn=`expr $private_half_plage + $private_network_ending`
-
 
284
	private_dyn_ip_network=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`"."$private_dyn"."`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup_sup-5`
-
 
285
	PRIVATE_DYN_IP=`echo $private_dyn_ip_network | cut -d"." -f1-4`/$HALF_MASK		# plage des adresses dynamiques (ex.: 192.168.182.128/25)
309
	PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.		# @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
286
	PRIVATE_DYN_MASK=`/bin/ipcalc -m $PRIVATE_DYN_IP/$HALF_MASK | cut -d"=" -f2`		# masque des adresses dynamiques (ex.: 255.255.255.128)
310
	PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# masque réseau de consultation (ex.: 255.255.255.0)
287
	private_dyn_ip_network=`echo $PRIVATE_DYN_IP | cut -d"/" -f1`				# plage des adresses dynamiques sans le masque (ex.: 192.168.182.0)
311
	PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`	# @ broadcast réseau de consultation (ex.: 192.168.182.255)
288
	private_dyn_ip_end=`echo $private_dyn_ip_network | cut -d"." -f4`			# dernier octet de la plage des adresses dynamiques (ex.: 128)
-
 
289
	PRIVATE_DYN_FIRST_IP=`echo $private_dyn_ip_network | cut -d"." -f1-3`"."`expr $private_dyn_ip_end + 1`	# 1ère adresse de la plage dynamique (ex.: 192.168.182.129)
312
	PRIVATE_IP=`echo $PRIVATE_NETWORK | cut -d"." -f1-3`"."`expr $private_network_ending + 1`	# @ip du portail (côté réseau de consultation)
290
	private_broadcast_end=`echo $PRIVATE_BROADCAST | cut -d"." -f4`
-
 
291
	PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_end - 1`	# dernière adresse de la plage dynamique (ex.: 192.168.182.254)
313
	PRIVATE_DYN_FIRST_IP=`echo $PRIVATE_IP | cut -d"." -f1-3`"."`expr $private_network_ending + 1`	# @ip du portail (côté réseau de consultation)
292
	PRIVATE_IP=`echo $PRIVATE_NETWORK | cut -d"." -f1-3`"."`expr $private_network_end + 1`	# @ip du portail (côté réseau de consultation)
314
	PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_network_ending - 1`	# @ip du portail (côté réseau de consultation)
293
# Récupération de la config réseau côté "Internet"
315
# Récupération de la config réseau côté "Internet"
294
	[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
316
	[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
295
	EXT_IP=`grep IPADDR /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip du portail (côté Internet)
317
	EXT_IP=`grep IPADDR /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip du portail (côté Internet)
296
	[ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default
318
	[ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default
297
	DNS1=`grep DNS1 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 1er DNS
319
	DNS1=`grep DNS1 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 1er DNS
298
	DNS2=`grep DNS2 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 2ème DNS
320
	DNS2=`grep DNS2 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 2ème DNS
299
	DNS1=${DNS1:=208.67.220.220}
321
	DNS1=${DNS1:=208.67.220.220}
300
	DNS2=${DNS2:=208.67.222.222}
322
	DNS2=${DNS2:=208.67.222.222}
301
	EXT_NETMASK=`grep NETMASK /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
323
	EXT_NETMASK=`grep NETMASK /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
302
	EXT_GATEWAY=`grep GATEWAY /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
324
	EXT_GATEWAY=`grep GATEWAY /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
303
	echo "- Adresse IP 'côté Internet' ($EXTIF) : $EXT_IP / $EXT_NETMASK" >> $FIC_PARAM
325
	echo "- IP address 'Internet side' ($EXTIF) : $EXT_IP / $EXT_NETMASK" >> $FIC_PARAM
-
 
326
	echo "- Gateway : $EXT_GATEWAY" >> $FIC_PARAM
304
	echo "- Serveurs DNS renseignés : $DNS1 et $DNS2" >> $FIC_PARAM
327
	echo "- DNS servers : $DNS1 et $DNS2" >> $FIC_PARAM
305
	echo "- Routeur de sortie : $EXT_GATEWAY" >> $FIC_PARAM
328
	echo "- IP address 'LAN side' ($INTIF) : $PRIVATE_IP/$PRIVATE_PREFIX" >> $FIC_PARAM
-
 
329
	echo "- Dynamic IP addresses (DHCP) : from $PRIVATE_DYN_FIRST_IP to $PRIVATE_DYN_LAST_IP" >> $FIC_PARAM
-
 
330
	echo "PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK_MASK" > $DIR_DEST_ETC/alcasar-network 
-
 
331
	echo "PRIVATE_IP=$PRIVATE_IP" >> $DIR_DEST_ETC/alcasar-network 
-
 
332
	echo "DHCP=on" >> $DIR_DEST_ETC/alcasar-network 
306
# Configuration réseau
333
# Configuration réseau
307
	cat <<EOF > /etc/sysconfig/network
334
	cat <<EOF > /etc/sysconfig/network
308
NETWORKING=yes
335
NETWORKING=yes
309
HOSTNAME="$HOSTNAME"
336
HOSTNAME="$HOSTNAME"
310
FORWARD_IPV4=true
337
FORWARD_IPV4=true
Line 313... Line 340...
313
	[ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default
340
	[ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default
314
	cat <<EOF > /etc/hosts
341
	cat <<EOF > /etc/hosts
315
127.0.0.1	localhost
342
127.0.0.1	localhost
316
$PRIVATE_IP	$HOSTNAME 
343
$PRIVATE_IP	$HOSTNAME 
317
EOF
344
EOF
318
	echo "- Adresse IP 'côté réseau de consultation' ($INTIF) : $PRIVATE_IP / $PRIVATE_NETWORK_MASK" >> $FIC_PARAM
-
 
319
	echo "    - plage d'adresses statiques : $PRIVATE_STAT_IP" >> $FIC_PARAM
-
 
320
	echo "    - plage d'adresses dynamiques (via DHCP) : $PRIVATE_DYN_IP" >> $FIC_PARAM
-
 
321
# Configuration de l'interface eth0 (Internet)
345
# Configuration de l'interface eth0 (Internet)
322
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
346
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
323
DEVICE=$EXTIF
347
DEVICE=$EXTIF
324
BOOTPROTO=static
348
BOOTPROTO=static
325
IPADDR=$EXT_IP
349
IPADDR=$EXT_IP
Line 435... Line 459...
435
	[ -e /var/www/error/include/bottom.html.default ] || mv /var/www/error/include/bottom.html /var/www/error/include/bottom.html.default
459
	[ -e /var/www/error/include/bottom.html.default ] || mv /var/www/error/include/bottom.html /var/www/error/include/bottom.html.default
436
	cat <<EOF > /var/www/error/include/bottom.html
460
	cat <<EOF > /var/www/error/include/bottom.html
437
</body>
461
</body>
438
</html>
462
</html>
439
EOF
463
EOF
440
	echo "- URL d'accès au centre de gestion : http://$HOSTNAME" >> $FIC_PARAM
464
	echo "- ALCASAR Control Center URL : http://$HOSTNAME" >> $FIC_PARAM
441
# Définition du premier compte lié au profil 'admin'
465
# Définition du premier compte lié au profil 'admin'
442
	header_install
466
	header_install
443
	if [ "$mode" = "install" ]
467
	if [ "$mode" = "install" ]
444
	then
468
	then
445
		header_install
469
		header_install
-
 
470
		if [ $Lang == "fr" ]
-
 
471
		then 
446
		echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :"
472
			echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :"
447
		echo " - le profil 'admin' capable de réaliser toutes les opérations"
473
			echo " - le profil 'admin' capable de réaliser toutes les opérations"
448
		echo " - le profil 'backup' lié uniquement aux fonctions d'archivage"
474
			echo " - le profil 'backup' lié uniquement aux fonctions d'archivage"
449
		echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers"
475
			echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers"
450
		echo ""
476
			echo ""
451
		echo "Définissez le premier compte du profil 'admin' :"
477
			echo "Définissez le premier compte du profil 'admin' :"
452
		echo
478
			echo
453
		echo -n "Nom : "
479
			echo -n "Nom : "
-
 
480
		else
-
 
481
			echo "To manage Alcasar thru the WEB control center, three accounts profiles were defined :"
-
 
482
			echo " - the 'admin profile who can do all operations"
-
 
483
			echo " - the 'backup' profile link to backup functions"
-
 
484
			echo " - the 'manager' profile link to users management"
-
 
485
			echo ""
-
 
486
			echo "Define the first account of the 'admin' profile :"
-
 
487
			echo
-
 
488
			echo -n "Account : "
-
 
489
		fi
454
		read admin_portail
490
		read admin_portail
455
		echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM
491
		echo "- Name of the first account of the admin profile : $admin_portail" >> $FIC_PARAM
456
# Création du fichier de clés de ce compte dans le profil "admin"
492
# Création du fichier de clés de ce compte dans le profil "admin"
457
		[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
493
		[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
458
		mkdir -p $DIR_DEST_ETC/digest
494
		mkdir -p $DIR_DEST_ETC/digest
459
		chmod 755 $DIR_DEST_ETC/digest
495
		chmod 755 $DIR_DEST_ETC/digest
460
		until [ -s $DIR_DEST_ETC/digest/key_admin ]
496
		until [ -s $DIR_DEST_ETC/digest/key_admin ]
461
			do
497
			do
462
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
498
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
463
			done
499
			done
464
		$DIR_DEST_SBIN/alcasar-profil.sh --list
500
		$DIR_DEST_SBIN/alcasar-profil.sh --list
465
	else   # version < 2.1
501
	else   # mise à jour des versions < 2.1
466
		if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
502
		if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
467
			then
503
			then
468
			echo "Cette mise à jour nécessite de redéfinir le premier compte d'administration du portail"
504
			echo "Cette mise à jour nécessite de redéfinir le premier compte d'administration du portail"
469
			echo
505
			echo
470
			echo -n "Nom : "
506
			echo -n "Nom : "
471
			read admin_portail
507
			read admin_portail
472
			echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM
508
			echo "- Name of the first user of admin profile : $admin_portail" >> $FIC_PARAM
473
			[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
509
			[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
474
			mkdir -p $DIR_DEST_ETC/digest
510
			mkdir -p $DIR_DEST_ETC/digest
475
			chmod 755 $DIR_DEST_ETC/digest
511
			chmod 755 $DIR_DEST_ETC/digest
476
			until [ -s $DIR_DEST_ETC/digest/key_admin ]
512
			until [ -s $DIR_DEST_ETC/digest/key_admin ]
477
			do
513
			do
Line 716... Line 752...
716
	Allow from 127.0.0.1
752
	Allow from 127.0.0.1
717
	Allow from $PRIVATE_NETWORK_MASK
753
	Allow from $PRIVATE_NETWORK_MASK
718
	ErrorDocument 404 https://$HOSTNAME
754
	ErrorDocument 404 https://$HOSTNAME
719
</Directory>
755
</Directory>
720
EOF
756
EOF
721
	echo "- URL pour le changement du mot de passe usager : https://$HOSTNAME/pass/" >> $FIC_PARAM
757
	echo "- User change password URL : https://$HOSTNAME/pass/" >> $FIC_PARAM
722
} # End of param_web_radius ()
758
} # End of param_web_radius ()
723
 
759
 
724
##########################################################################################
760
##########################################################################################
725
##			Fonction param_chilli						##
761
##			Fonction param_chilli						##
726
## - Paramètrage du fichier d'initialisation et de configuration de coova-chilli	##
762
## - Paramètrage du fichier d'initialisation et de configuration de coova-chilli	##
Line 748... Line 784...
748
# coova config for ALCASAR
784
# coova config for ALCASAR
749
cmdsocket	/var/run/chilli.sock
785
cmdsocket	/var/run/chilli.sock
750
unixipc		chilli.eth1.ipc
786
unixipc		chilli.eth1.ipc
751
pidfile		/var/run/chilli.eth1.pid
787
pidfile		/var/run/chilli.eth1.pid
752
net		$PRIVATE_NETWORK_MASK
788
net		$PRIVATE_NETWORK_MASK
753
dynip		$PRIVATE_DYN_IP
789
dhcpif		$INTIF
-
 
790
#nodynip
754
statip		$PRIVATE_STAT_IP
791
#statip		$PRIVATE_NETWORK_MASK
-
 
792
ethers		$DIR_DEST_ETC/alcasar-ethers
755
domain		localdomain
793
domain		localdomain
756
dns1		$PRIVATE_IP
794
dns1		$PRIVATE_IP
757
dns2		$PRIVATE_IP
795
dns2		$PRIVATE_IP
758
uamlisten	$PRIVATE_IP
796
uamlisten	$PRIVATE_IP
759
uamport		3990
797
uamport		3990
760
dhcpif		$INTIF
-
 
761
ethers		$DIR_DEST_ETC/alcasar-ethers
-
 
762
macallowlocal
798
macallowlocal
763
locationname	$HOSTNAME
799
locationname	$HOSTNAME
764
radiusserver1	127.0.0.1
800
radiusserver1	127.0.0.1
765
radiusserver2	127.0.0.1
801
radiusserver2	127.0.0.1
766
radiussecret	$secretradius
802
radiussecret	$secretradius
Line 779... Line 815...
779
	echo -e "uamallowed=\"\"" > $DIR_DEST_ETC/alcasar-uamallowed
815
	echo -e "uamallowed=\"\"" > $DIR_DEST_ETC/alcasar-uamallowed
780
	echo -e "uamdomain=\"\"" > $DIR_DEST_ETC/alcasar-uamdomain
816
	echo -e "uamdomain=\"\"" > $DIR_DEST_ETC/alcasar-uamdomain
781
	touch $DIR_DEST_ETC/alcasar-macallowed
817
	touch $DIR_DEST_ETC/alcasar-macallowed
782
	chown root:apache $DIR_DEST_ETC/alcasar-*
818
	chown root:apache $DIR_DEST_ETC/alcasar-*
783
	chmod 660 $DIR_DEST_ETC/alcasar-*
819
	chmod 660 $DIR_DEST_ETC/alcasar-*
784
	echo "- URL de deconnexion du portail : http://alcasar:3990/logoff" >> $FIC_PARAM
820
	echo "- Disconnect URL : http://alcasar:3990/logoff" >> $FIC_PARAM
785
# Configuration des fichier WEB d'interception (secret partagé avec coova-chilli et nom d'organisme)
821
# Configuration des fichier WEB d'interception (secret partagé avec coova-chilli et nom d'organisme)
786
	$SED "s?^\$uamsecret =.*?\$uamsecret = \"$secretuam\";?g" $DIR_WEB/intercept.php
822
	$SED "s?^\$uamsecret =.*?\$uamsecret = \"$secretuam\";?g" $DIR_WEB/intercept.php
787
	$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php
823
	$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php
788
	$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php $DIR_WEB/status.php
824
	$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php $DIR_WEB/status.php
789
}  # End of param_chilli ()
825
}  # End of param_chilli ()
Line 803... Line 839...
803
	$SED "/^icp_port 3130/d" /etc/squid/squid.conf
839
	$SED "/^icp_port 3130/d" /etc/squid/squid.conf
804
	$SED "/^http_access allow localnet/d" /etc/squid/squid.conf
840
	$SED "/^http_access allow localnet/d" /etc/squid/squid.conf
805
	$SED "/^htcp_access allow localnet/d" /etc/squid/squid.conf
841
	$SED "/^htcp_access allow localnet/d" /etc/squid/squid.conf
806
	$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
842
	$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
807
# mode 'proxy transparent local'
843
# mode 'proxy transparent local'
808
	$SED "s?^http_port.*?http_port 127.0.0.1:$SQUID_PORT transparent?g" /etc/squid/squid.conf
844
	$SED "s?^http_port.*?http_port 127.0.0.1:3128 transparent?g" /etc/squid/squid.conf
809
# emplacement et formatage standard des logs
845
# emplacement et formatage standard des logs
810
	echo '#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh' >> /etc/squid/squid.conf
846
	echo '#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh' >> /etc/squid/squid.conf
811
	echo '#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Ag' >> /etc/squid/squid.conf
847
	echo '#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Ag' >> /etc/squid/squid.conf
812
        echo "access_log /var/log/squid/access.log" >> /etc/squid/squid.conf
848
        echo "access_log /var/log/squid/access.log" >> /etc/squid/squid.conf
813
# compatibilité des logs avec awstats
849
# compatibilité des logs avec awstats
Line 1216... Line 1252...
1216
	$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1252
	$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1217
# sshd écoute côté LAN
1253
# sshd écoute côté LAN
1218
	$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1254
	$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1219
# sshd n'est pas lancé automatiquement au démarrage
1255
# sshd n'est pas lancé automatiquement au démarrage
1220
	/sbin/chkconfig --del sshd
1256
	/sbin/chkconfig --del sshd
-
 
1257
	echo "SSH=off" >> $DIR_DEST_ETC/alcasar-network 
1221
# Coloration des prompts
1258
# Coloration des prompts
1222
	[ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1259
	[ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1223
	cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1260
	cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1224
# Droits d'exécution pour utilisateur apache et sysadmin
1261
# Droits d'exécution pour utilisateur apache et sysadmin
1225
	[ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1262
	[ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
Line 1231... Line 1268...
1231
# processus lancés par défaut au démarrage
1268
# processus lancés par défaut au démarrage
1232
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd mysqld dansguardian havp freshclam
1269
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd mysqld dansguardian havp freshclam
1233
	do
1270
	do
1234
		/sbin/chkconfig --add $i
1271
		/sbin/chkconfig --add $i
1235
	done
1272
	done
1236
# pour éviter les alertes de dépendance avec le service 'netfs'.
1273
# pour éviter les alertes de dépendance entre service.
1237
	$SED "s?^# Required-Start.*?# Required-Start: \$local_fs \$network?g" /etc/init.d/mysqld
1274
	$SED "s?^# Required-Start.*?# Required-Start: \$local_fs \$network?g" /etc/init.d/mysqld
1238
	$SED "s?^# Required-Stop.*?# Required-Stop: \$local_fs \$network?g" /etc/init.d/mysqld
1275
	$SED "s?^# Required-Stop.*?# Required-Stop: \$local_fs \$network?g" /etc/init.d/mysqld
-
 
1276
	$SED "s?^# Should-Start.*?# Should-Start: radiusd ldap?g" /etc/init.d/httpd
-
 
1277
	$SED "s?^# Should-Stop.*?# Should-Stop: radiusd ldap?g" /etc/init.d/httpd
1239
# On affecte le niveau de sécurité du système : type "fileserver"
1278
# On affecte le niveau de sécurité du système : type "fileserver"
1240
	$SED "s?BASE_LEVEL=.*?BASE_LEVEL=fileserver?g" /etc/security/msec/security.conf
1279
	$SED "s?BASE_LEVEL=.*?BASE_LEVEL=fileserver?g" /etc/security/msec/security.conf
1241
# On supprime la vérification du mode promiscious des interfaces réseaux ( nombreuses alertes sur eth1 dûes à Tun0 )
1280
# On supprime la vérification du mode promiscious des interfaces réseaux ( nombreuses alertes sur eth1 dûes à Tun0 )
1242
	$SED "s?CHECK_PROMISC=.*?CHECK_PROMISC=no?g" /etc/security/msec/level.fileserver
1281
	$SED "s?CHECK_PROMISC=.*?CHECK_PROMISC=no?g" /etc/security/msec/level.fileserver
1243
 
1282
 
Line 1247... Line 1286...
1247
$SED "s?^ACCEPT_BROADCASTED_ICMP_ECHO=.*?ACCEPT_BROADCASTED_ICMP_ECHO=no?g" /etc/security/msec/level.fileserver
1286
$SED "s?^ACCEPT_BROADCASTED_ICMP_ECHO=.*?ACCEPT_BROADCASTED_ICMP_ECHO=no?g" /etc/security/msec/level.fileserver
1248
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1287
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1249
# ignorer les erreurs ICMP bogus
1288
# ignorer les erreurs ICMP bogus
1250
$SED "s?^ACCEPT_BOGUS_ERROR_RESPONSES=.*?ACCEPT_BOGUS_ERROR_RESPONSES=no?g" /etc/security/msec/level.fileserver
1289
$SED "s?^ACCEPT_BOGUS_ERROR_RESPONSES=.*?ACCEPT_BOGUS_ERROR_RESPONSES=no?g" /etc/security/msec/level.fileserver
1251
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
1290
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
1252
# désactiver l’envoi et la réponse aux ICMP redirects
1291
# désactiver l'envoi et la réponse aux ICMP redirects
1253
accept_redirect=`grep accept_redirect /etc/sysctl.conf|wc -l`
1292
accept_redirect=`grep accept_redirect /etc/sysctl.conf|wc -l`
1254
	if [ "$accept_redirect" == "0" ]
1293
	if [ "$accept_redirect" == "0" ]
1255
	then
1294
	then
1256
	      echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf
1295
	      echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf
1257
	fi
1296
	fi
Line 1270... Line 1309...
1270
	then
1309
	then
1271
	      echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
1310
	      echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
1272
	fi
1311
	fi
1273
$SED "s?tcp_syncookies.*?tcp_syncookies = 1?g" /etc/sysctl.conf
1312
$SED "s?tcp_syncookies.*?tcp_syncookies = 1?g" /etc/sysctl.conf
1274
sysctl -w net.ipv4.tcp_syncookies=1
1313
sysctl -w net.ipv4.tcp_syncookies=1
1275
# activer l’antispoofing niveau Noyau
1314
# activer l'antispoofing niveau Noyau
1276
$SED "s?^ENABLE_IP_SPOOFING_PROTECTION.*?ENABLE_IP_SPOOFING_PROTECTION=yes?g" /etc/security/msec/level.fileserver
1315
$SED "s?^ENABLE_IP_SPOOFING_PROTECTION.*?ENABLE_IP_SPOOFING_PROTECTION=yes?g" /etc/security/msec/level.fileserver
1277
sysctl -w net.ipv4.conf.all.rp_filter=1
1316
sysctl -w net.ipv4.conf.all.rp_filter=1
1278
# ignorer le source routing
1317
# ignorer le source routing
1279
accept_source_route=`grep accept_source_route /etc/sysctl.conf|wc -l`
1318
accept_source_route=`grep accept_source_route /etc/sysctl.conf|wc -l`
1280
	if [ "$accept_source_route" == "0" ]
1319
	if [ "$accept_source_route" == "0" ]
Line 1337... Line 1376...
1337
# dans le cas d'une mise à jour, on charge la conf d'une version précédente
1376
# dans le cas d'une mise à jour, on charge la conf d'une version précédente
1338
if [ "$mode" = "update" ]
1377
if [ "$mode" = "update" ]
1339
then
1378
then
1340
	$DIR_DEST_BIN/alcasar-conf.sh --load
1379
	$DIR_DEST_BIN/alcasar-conf.sh --load
1341
fi
1380
fi
-
 
1381
rm -f /tmp/alcasar-conf*
1342
chown -R root:apache $DIR_DEST_ETC/*
1382
chown -R root:apache $DIR_DEST_ETC/*
1343
chmod -R 660 $DIR_DEST_ETC/*
1383
chmod -R 660 $DIR_DEST_ETC/*
1344
chmod ug+x $DIR_DEST_ETC/digest $DIR_DEST_ETC/alcasar-dnsfilter*
1384
chmod ug+x $DIR_DEST_ETC/digest $DIR_DEST_ETC/alcasar-dnsfilter*
1345
	cd $DIR_INSTALL
1385
	cd $DIR_INSTALL
1346
	echo ""
1386
	echo ""
Line 1389... Line 1429...
1389
		testing
1429
		testing
1390
# On teste la présence d'une version déjà installée
1430
# On teste la présence d'une version déjà installée
1391
		if [ -e $DIR_WEB/VERSION ]
1431
		if [ -e $DIR_WEB/VERSION ]
1392
		then
1432
		then
1393
			actual_version=`cat $DIR_WEB/VERSION`
1433
			actual_version=`cat $DIR_WEB/VERSION`
-
 
1434
			if [ $Lang == "fr" ]
1394
			echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
1435
				then echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
1395
			echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
1436
				else echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
-
 
1437
			fi
1396
			response=0
1438
			response=0
1397
			PTN='^[oOnNyY]$'
1439
			PTN='^[oOnNyY]$'
1398
			until [[ $(expr $response : $PTN) -gt 0 ]]
1440
			until [[ $(expr $response : $PTN) -gt 0 ]]
1399
			do
1441
			do
-
 
1442
				if [ $Lang == "fr" ]
1400
				echo "Voulez-vous effectuer une mise à jour (O/n)? ";
1443
					then echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
1401
				echo -n "Do you want to update (Y/n)?";
1444
					else echo -n "Do you want to update (Y/n)?";
-
 
1445
				 fi
1402
				read response
1446
				read response
1403
			done
1447
			done
1404
			if [ "$response" = "o" ] || [ "$response" = "O" ] || [ "$response" = "y" ] || [ "$response" = "Y" ]
1448
			if [ "$response" = "o" ] || [ "$response" = "O" ] || [ "$response" = "y" ] || [ "$response" = "Y" ]
1405
			then
1449
			then
1406
				RUNNING_VERSION=`cat $DIR_WEB/VERSION|cut -d" " -f1`
1450
				RUNNING_VERSION=`cat $DIR_WEB/VERSION|cut -d" " -f1`
Line 1411... Line 1455...
1411
				chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
1455
				chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
1412
				$DIR_SCRIPTS/alcasar-conf.sh --create
1456
				$DIR_SCRIPTS/alcasar-conf.sh --create
1413
				mode="update"
1457
				mode="update"
1414
			fi
1458
			fi
1415
		fi
1459
		fi
1416
# System update - rpms install
1460
# RPMs install
1417
	$DIR_SCRIPTS/alcasar-urpmi.sh
1461
		$DIR_SCRIPTS/alcasar-urpmi.sh
1418
	if [ "$?" != "0" ]
1462
		if [ "$?" != "0" ]
1419
	then
1463
		then
1420
		exit 0
1464
			exit 0
1421
	fi
1465
		fi
1422
	if [ -e /tmp/alcasar-conf.tar.gz ]
1466
		if [ -e $DIR_WEB/VERSION ]
1423
		then
1467
		then
1424
			echo "#### Installation avec mise à jour ####"
-
 
1425
			echo "#### Installation with update     ####"
-
 
1426
# On désinstalle la version actuelle
1468
# On désinstalle la version actuelle
1427
			$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1469
			$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
-
 
1470
		fi
-
 
1471
		if [ -e /tmp/alcasar-conf.tar.gz ]
-
 
1472
		then
-
 
1473
			if [ $Lang == "fr" ]
-
 
1474
				then echo "#### Installation avec mise à jour ####"
-
 
1475
				else echo "#### Installation with update     ####"
-
 
1476
			fi
1428
# On récupère le nom d'organisme à partir de fichier de conf
1477
# On récupère le nom d'organisme à partir de fichier de conf
1429
			tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme 
1478
			tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme 
1430
			ORGANISME=`cat $DIR_CONF/organisme`
1479
			ORGANISME=`cat $DIR_CONF/organisme`
1431
			mode="update"
1480
			mode="update"
1432
		else
1481
		else
Line 1434... Line 1483...
1434
		fi
1483
		fi
1435
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus firewall param_ulogd param_awstats param_dnsmasq BL cron post_install
1484
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus firewall param_ulogd param_awstats param_dnsmasq BL cron post_install
1436
 
1485
 
1437
		do
1486
		do
1438
			$func
1487
			$func
1439
 # echo "*** 'debug' : end of function $func ***"; read a
1488
 echo "*** 'debug' : end of function $func ***"; read a
1440
		done
1489
		done
1441
		;;
1490
		;;
1442
	-u | --uninstall)
1491
	-u | --uninstall)
1443
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1492
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1444
		then
1493
		then