Subversion Repositories ALCASAR

Rev

Rev 607 | Rev 613 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 607 Rev 612
1
#!/bin/sh
1
#!/bin/sh
2
#  $Id: alcasar.sh 607 2011-05-21 17:45:34Z richard $ 
2
#  $Id: alcasar.sh 612 2011-05-22 21:19:27Z 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
 
8
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
8
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
9
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
9
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
10
 
10
 
11
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
11
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
12
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
12
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
13
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, awstat, ntpd, openssl, dnsmasq, havp, libclamav  and firewalleyes
13
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, awstat, ntpd, openssl, dnsmasq, havp, libclamav  and firewalleyes
14
 
14
 
15
# Options :
15
# Options :
16
#       -i or --install
16
#       -i or --install
17
#       -u or --uninstall
17
#       -u or --uninstall
18
 
18
 
19
# Functions :
19
# Functions :
20
#	testing		: Tests de connectivité et de téléchargement avant installation
20
#	testing		: Tests de connectivité et de téléchargement avant installation
21
#	init		: Installation des RPM et des scripts
21
#	init		: Installation des RPM et des scripts
22
#	network		: Paramètrage du réseau
22
#	network		: Paramètrage du réseau
23
#	gestion		: Installation de l'interface de gestion
23
#	gestion		: Installation de l'interface de gestion
24
#	AC		: Initialisation de l'autorité de certification. Création des certificats
24
#	AC		: Initialisation de l'autorité de certification. Création des certificats
25
#	init_db		: Création de la base 'radius' sur le serveur MySql
25
#	init_db		: Création de la base 'radius' sur le serveur MySql
26
#	param_radius	: Configuration du serveur d'authentification FreeRadius
26
#	param_radius	: Configuration du serveur d'authentification FreeRadius
27
#	param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin)
27
#	param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin)
28
#	param_chilli	: Configuration du daemon 'coova-chilli' et de la page d'authentification
28
#	param_chilli	: Configuration du daemon 'coova-chilli' et de la page d'authentification
29
#	param_squid	: Configuration du proxy squid en mode 'cache'
29
#	param_squid	: Configuration du proxy squid en mode 'cache'
30
#	param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
30
#	param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
31
#	antivirus	: Installation havp + libclamav
31
#	antivirus	: Installation havp + libclamav
32
#	param_awstats	: Configuration de l'interface des statistiques de consultation WEB
32
#	param_awstats	: Configuration de l'interface des statistiques de consultation WEB
33
#	dnsmasq		: Configuration du serveur de noms et du serveur dhcp de secours
33
#	dnsmasq		: Configuration du serveur de noms et du serveur dhcp de secours
34
#	BL		: Configuration de la BlackList
34
#	BL		: Configuration de la BlackList
35
#	cron		: Mise en place des exports de logs (+ chiffrement)
35
#	cron		: Mise en place des exports de logs (+ chiffrement)
36
#	post_install	: Finalisation environnement ( sécurité, bannières, rotation logs, ...)
36
#	post_install	: Finalisation environnement ( sécurité, bannières, rotation logs, ...)
37
 
37
 
38
VERSION=`cat VERSION`
38
VERSION=`cat VERSION`
39
DATE=`date '+%d %B %Y - %Hh%M'`
39
DATE=`date '+%d %B %Y - %Hh%M'`
40
DATE_SHORT=`date '+%d/%m/%Y'`
40
DATE_SHORT=`date '+%d/%m/%Y'`
41
Lang=`echo $LANG|cut -c 1-2`
41
Lang=`echo $LANG|cut -c 1-2`
42
# ******* Files parameters - paramètres fichiers *********
42
# ******* Files parameters - paramètres fichiers *********
43
DIR_INSTALL=`pwd`				# répertoire d'installation
43
DIR_INSTALL=`pwd`				# répertoire d'installation
44
DIR_CONF="$DIR_INSTALL/conf"			# répertoire d'installation contenant les fichiers de configuration
44
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
45
DIR_SCRIPTS="$DIR_INSTALL/scripts"		# répertoire d'installation contenant les scripts
46
DIR_SAVE="/var/Save"				# répertoire de sauvegarde (ISO, backup, etc.)
46
DIR_SAVE="/var/Save"				# répertoire de sauvegarde (ISO, backup, etc.)
47
DIR_WEB="/var/www/html"				# répertoire racine APACHE
47
DIR_WEB="/var/www/html"				# répertoire racine APACHE
48
DIR_ACC="$DIR_WEB/acc"				# répertoire du centre de gestion 'ALCASAR Control Center'
48
DIR_ACC="$DIR_WEB/acc"				# répertoire du centre de gestion 'ALCASAR Control Center'
49
DIR_DEST_BIN="/usr/local/bin"			# répertoire des scripts
49
DIR_DEST_BIN="/usr/local/bin"			# répertoire des scripts
50
DIR_DEST_SBIN="/usr/local/sbin"			# répertoire des scripts d'admin
50
DIR_DEST_SBIN="/usr/local/sbin"			# répertoire des scripts d'admin
51
DIR_DEST_ETC="/usr/local/etc"			# répertoire des fichiers de conf
51
DIR_DEST_ETC="/usr/local/etc"			# répertoire des fichiers de conf
-
 
52
FIC_CONF="$DIR_DEST_ETC/alcasar.conf"		# fichier de conf d'alcasar
52
FIC_PARAM="/root/ALCASAR-parameters.txt"	# fichier texte résumant les paramètres d'installation
53
FIC_PARAM="/root/ALCASAR-parameters.txt"	# fichier texte résumant les paramètres d'installation
53
FIC_PASSWD="/root/ALCASAR-passwords.txt"	# fichier texte contenant les mots de passe et secrets partagés 
54
FIC_PASSWD="/root/ALCASAR-passwords.txt"	# fichier texte contenant les mots de passe et secrets partagés 
54
# ******* DBMS parameters - paramètres SGBD ********
55
# ******* DBMS parameters - paramètres SGBD ********
55
DB_RADIUS="radius"				# nom de la base de données utilisée par le serveur FreeRadius
56
DB_RADIUS="radius"				# nom de la base de données utilisée par le serveur FreeRadius
56
DB_USER="radius"				# nom de l'utilisateur de la base de données
57
DB_USER="radius"				# nom de l'utilisateur de la base de données
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
DEFAULT_PRIVATE_IP_MASK="192.168.182.1/24"	# adresse d'ALCASAR (+masque) proposée par défaut sur le réseau de consultation
63
DEFAULT_PRIVATE_IP_MASK="192.168.182.1/24"	# adresse d'ALCASAR (+masque) proposée par défaut sur le réseau de consultation
63
# ****** Paths - chemin des commandes *******
64
# ****** Paths - chemin des commandes *******
64
SED="/bin/sed -i"
65
SED="/bin/sed -i"
65
# ****************** End of global parameters *********************
66
# ****************** End of global parameters *********************
66
 
67
 
67
header_install ()
68
header_install ()
68
{
69
{
69
	clear
70
	clear
70
	echo "-----------------------------------------------------------------------------"
71
	echo "-----------------------------------------------------------------------------"
71
	echo "                     ALCASAR V$VERSION Installation"
72
	echo "                     ALCASAR V$VERSION Installation"
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 TESTING			##
78
##			Fonction TESTING			##
78
## - Test de la connectivité Internet				##
79
## - Test de la connectivité Internet				##
79
##################################################################
80
##################################################################
80
testing ()
81
testing ()
81
{
82
{
82
	if [ $Lang == "fr" ]
83
	if [ $Lang == "fr" ]
83
		then echo -n "Tests des paramètres réseau :"
84
		then echo -n "Tests des paramètres réseau :"
84
		else echo -n "Network parameters tests : "
85
		else echo -n "Network parameters tests : "
85
	fi
86
	fi
86
# We test the Ethernet links state
87
# We test the Ethernet links state
87
	for i in $EXTIF $INTIF
88
	for i in $EXTIF $INTIF
88
	do
89
	do
89
		/sbin/ip link set $i up
90
		/sbin/ip link set $i up
90
		sleep 3
91
		sleep 3
91
		if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
92
		if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
92
			then
93
			then
93
			if [ $Lang == "fr" ]
94
			if [ $Lang == "fr" ]
94
			then 
95
			then 
95
				echo "Échec"
96
				echo "Échec"
96
				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."
97
				echo "Réglez ce problème puis relancez ce script."
98
				echo "Réglez ce problème puis relancez ce script."
98
			else
99
			else
99
				echo "Failed"
100
				echo "Failed"
100
				echo "The link state of $i interface id down."
101
				echo "The link state of $i interface id down."
101
				echo "Resolv this problem, then restart this script."
102
				echo "Resolv this problem, then restart this script."
102
			fi
103
			fi
103
			exit 0
104
			exit 0
104
		fi
105
		fi
105
	echo -n "."
106
	echo -n "."
106
	done
107
	done
107
# 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)
108
	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
109
		if [ $Lang == "fr" ]
110
		if [ $Lang == "fr" ]
110
		then 
111
		then 
111
			echo "Échec"
112
			echo "Échec"
112
			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."
113
			echo "Réglez ce problème puis relancez ce script."
114
			echo "Réglez ce problème puis relancez ce script."
114
		else
115
		else
115
			echo "Failed"
116
			echo "Failed"
116
			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"
117
			echo "Resolv this problem, then restart this script."
118
			echo "Resolv this problem, then restart this script."
118
		fi
119
		fi
119
		exit 0
120
		exit 0
120
	fi
121
	fi
121
	echo -n "."
122
	echo -n "."
122
# 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)
123
	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
124
		if [ $Lang == "fr" ]
125
		if [ $Lang == "fr" ]
125
			then echo "La configuration des cartes réseau va être corrigée."
126
			then echo "La configuration des cartes réseau va être corrigée."
126
			else echo "The Ethernet card configuration will be corrected."
127
			else echo "The Ethernet card configuration will be corrected."
127
		fi
128
		fi
128
		/etc/init.d/network stop
129
		/etc/init.d/network stop
129
		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
130
		$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
131
		$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
131
		/etc/init.d/network start
132
		/etc/init.d/network start
132
		echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
133
		echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
133
		sleep 2
134
		sleep 2
134
		if [ $Lang == "fr" ]
135
		if [ $Lang == "fr" ]
135
			then echo "Configuration corrigée"
136
			then echo "Configuration corrigée"
136
			else echo "Configuration updated"
137
			else echo "Configuration updated"
137
		fi
138
		fi
138
		sleep 2
139
		sleep 2
139
		if [ $Lang == "fr" ]
140
		if [ $Lang == "fr" ]
140
			then echo "Vous pouvez relancer ce script."
141
			then echo "Vous pouvez relancer ce script."
141
			else echo "You can restart this script."
142
			else echo "You can restart this script."
142
		fi
143
		fi
143
		exit 0
144
		exit 0
144
	fi
145
	fi
145
	echo -n "."
146
	echo -n "."
146
# On test le lien vers le routeur par default
147
# On test le lien vers le routeur par default
147
	IP_GW=`ip route list|grep ^default|cut -d" " -f3`
148
	IP_GW=`ip route list|grep ^default|cut -d" " -f3`
148
	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`
149
	if [ $(expr $arp_reply) -eq 0 ]
150
	if [ $(expr $arp_reply) -eq 0 ]
150
	       	then
151
	       	then
151
		if [ $Lang == "fr" ]
152
		if [ $Lang == "fr" ]
152
		then 
153
		then 
153
			echo "Échec"
154
			echo "Échec"
154
			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."
155
			echo "Réglez ce problème puis relancez ce script."
156
			echo "Réglez ce problème puis relancez ce script."
156
		else
157
		else
157
			echo "Failed"
158
			echo "Failed"
158
			echo "The Internet gateway doesn't answered"
159
			echo "The Internet gateway doesn't answered"
159
			echo "Resolv this problem, then restart this script."
160
			echo "Resolv this problem, then restart this script."
160
		fi
161
		fi
161
		exit 0
162
		exit 0
162
	fi
163
	fi
163
	echo -n "."
164
	echo -n "."
164
# On teste la connectivité Internet
165
# On teste la connectivité Internet
165
	rm -rf /tmp/con_ok.html
166
	rm -rf /tmp/con_ok.html
166
	/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
167
	if [ ! -e /tmp/con_ok.html ]
168
	if [ ! -e /tmp/con_ok.html ]
168
	then
169
	then
169
		if [ $Lang == "fr" ]
170
		if [ $Lang == "fr" ]
170
		then 
171
		then 
171
			echo "La tentative de connexion vers Internet a échoué (google.fr)."
172
			echo "La tentative de connexion vers Internet a échoué (google.fr)."
172
			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."
173
			echo "Vérifiez la validité des adresses IP des DNS."
174
			echo "Vérifiez la validité des adresses IP des DNS."
174
		else
175
		else
175
			echo "The Internet connection try failed (google.fr)."
176
			echo "The Internet connection try failed (google.fr)."
176
			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."
177
			echo "Verify the DNS IP addresses"
178
			echo "Verify the DNS IP addresses"
178
		fi
179
		fi
179
		exit 0
180
		exit 0
180
	fi
181
	fi
181
	rm -rf /tmp/con_ok.html
182
	rm -rf /tmp/con_ok.html
182
	echo ". : ok"
183
	echo ". : ok"
183
} # end of testing
184
} # end of testing
184
 
185
 
185
##################################################################
186
##################################################################
186
##			Fonction INIT				##
187
##			Fonction INIT				##
187
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
188
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
188
## - Installation et modification des scripts du portail	##
189
## - Installation et modification des scripts du portail	##
189
##################################################################
190
##################################################################
190
init ()
191
init ()
191
{
192
{
192
	if [ "$mode" != "update" ]
193
	if [ "$mode" != "update" ]
193
	then
194
	then
194
# On affecte le nom d'organisme
195
# On affecte le nom d'organisme
195
		header_install
196
		header_install
196
		ORGANISME=!
197
		ORGANISME=!
197
		PTN='^[a-zA-Z0-9-]*$'
198
		PTN='^[a-zA-Z0-9-]*$'
198
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
199
		until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
199
                do
200
                do
200
			if [ $Lang == "fr" ]
201
			if [ $Lang == "fr" ]
201
			       	then echo -n "Entrez le nom de votre organisme : "
202
			       	then echo -n "Entrez le nom de votre organisme : "
202
				else echo -n "Enter the name of your organism : "
203
				else echo -n "Enter the name of your organism : "
203
			fi
204
			fi
204
			read ORGANISME
205
			read ORGANISME
205
			if [ "$ORGANISME" = "" ]
206
			if [ "$ORGANISME" = "" ]
206
				then
207
				then
207
				ORGANISME=!
208
				ORGANISME=!
208
			fi
209
			fi
209
		done
210
		done
210
	fi
211
	fi
211
# On crée aléatoirement les mots de passe et les secrets partagés
212
# On crée aléatoirement les mots de passe et les secrets partagés
212
	rm -f $FIC_PASSWD
213
	rm -f $FIC_PASSWD
213
	grubpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de protection du menu Grub
214
	grubpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de protection du menu Grub
214
	echo -n "mot de passe de protection du menu de démarrage (GRUB) : " > $FIC_PASSWD
215
	echo -n "Password to protect the boot menu (GRUB) : " > $FIC_PASSWD
215
	echo "$grubpwd" >> $FIC_PASSWD
216
	echo "$grubpwd" >> $FIC_PASSWD
216
	md5_grubpwd=`/usr/bin/md5pass $grubpwd`
217
	md5_grubpwd=`/usr/bin/md5pass $grubpwd`
217
	$SED "/^password.*/d" /boot/grub/menu.lst
218
	$SED "/^password.*/d" /boot/grub/menu.lst
218
	$SED "1ipassword --md5 $md5_grubpwd" /boot/grub/menu.lst
219
	$SED "1ipassword --md5 $md5_grubpwd" /boot/grub/menu.lst
219
	mysqlpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de l'administrateur Mysqld
220
	mysqlpwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de l'administrateur Mysqld
220
	echo -n "compte et mot de passe de l'administrateur Mysqld : " >> $FIC_PASSWD
221
	echo -n "Name and password of MYSQL administrator : " >> $FIC_PASSWD
221
	echo "root / $mysqlpwd" >> $FIC_PASSWD
222
	echo "root / $mysqlpwd" >> $FIC_PASSWD
222
	radiuspwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de l'utilisateur Mysqld (utilisé par freeradius)
223
	radiuspwd=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# mot de passe de l'utilisateur Mysqld (utilisé par freeradius)
223
	echo -n "compte et mot de passe de l'utilisateur Mysqld : " >> $FIC_PASSWD
224
	echo -n "Name and password of MYSQL user : " >> $FIC_PASSWD
224
	echo "$DB_USER / $radiuspwd" >> $FIC_PASSWD
225
	echo "$DB_USER / $radiuspwd" >> $FIC_PASSWD
225
	secretuam=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# secret partagé entre intercept.php et coova-chilli
226
	secretuam=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# secret partagé entre intercept.php et coova-chilli
226
	echo -n "secret partagé entre le script 'intercept.php' et coova-chilli : " >> $FIC_PASSWD
227
	echo -n "Shared secret between the script 'intercept.php' and coova-chilli : " >> $FIC_PASSWD
227
	echo "$secretuam" >> $FIC_PASSWD
228
	echo "$secretuam" >> $FIC_PASSWD
228
	secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# secret partagé entre coova-chilli et FreeRadius
229
	secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`	# secret partagé entre coova-chilli et FreeRadius
229
	echo -n "secret partagé entre coova-chilli et FreeRadius : " >> $FIC_PASSWD
230
	echo -n "Shared secret between coova-chilli and FreeRadius : " >> $FIC_PASSWD
230
	echo "$secretradius" >> $FIC_PASSWD
231
	echo "$secretradius" >> $FIC_PASSWD
231
	chmod 640 $FIC_PASSWD
232
	chmod 640 $FIC_PASSWD
232
# On installe les scripts et fichiers de configuration d'ALCASAR 
233
# On installe les scripts et fichiers de configuration d'ALCASAR 
233
#  - dans /usr/local/bin :  alcasar-{CA.sh,conf.sh,import-clean.sh,iptables-bypass.sh,iptables.sh,log-clean.sh,log-export.sh,mondo.sh,watchdog.sh}
234
#  - dans /usr/local/bin :  alcasar-{CA.sh,conf.sh,import-clean.sh,iptables-bypass.sh,iptables.sh,log-clean.sh,log-export.sh,mondo.sh,watchdog.sh}
234
	cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root:root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
235
	cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root:root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
235
#  - dans /usr/local/sbin :  alcasar-{bl.sh,bypass.sh,dateLog.sh,havp.sh,logout.sh,mysql.sh,nf.sh,profil.sh,uninstall.sh,version-list.sh,load-balancing.sh}
236
#  - dans /usr/local/sbin :  alcasar-{bl.sh,bypass.sh,dateLog.sh,havp.sh,logout.sh,mysql.sh,nf.sh,profil.sh,uninstall.sh,version-list.sh,load-balancing.sh}
236
	cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root:root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
237
	cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root:root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
237
#  - des fichiers de conf dans /usr/local/etc : alcasar-{bl-categories-enabled,dns-name,ethers,iptables-local.sh,services}
238
#  - des fichiers de conf dans /usr/local/etc : alcasar-{bl-categories-enabled,dns-name,ethers,iptables-local.sh,services}
238
	cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root:apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar*
239
	cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root:apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar*
239
	$SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh
240
	$SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh
240
	$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
241
	$SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
241
	$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
242
	$SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?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
243
	$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
243
# On génère le début du fichier récapitulatif
244
# generate FIC_PARAM and FIC_CONF
244
	cat <<EOF > $FIC_PARAM
245
	cat <<EOF > $FIC_PARAM
245
################################################
246
##########################################
246
##                                            ##
247
##                                      ##
247
##          ALCASAR Parameters                ##
248
##          ALCASAR Parameters          ##
248
##                                            ##
249
##                                      ##
249
################################################
250
##########################################
250
 
251
 
251
- Install date : $DATE
252
- Install date : $DATE
252
- Version : $VERSION
253
- Version : $VERSION
253
- Organism : $ORGANISME
254
- Organism : $ORGANISME
254
EOF
255
EOF
-
 
256
	cat <<EOF > $FIC_CONF
-
 
257
##########################################
-
 
258
##                                      ##
-
 
259
##          ALCASAR Parameters          ##
-
 
260
##                                      ##
-
 
261
##########################################
-
 
262
 
-
 
263
INSTALL_DATE=$DATE
-
 
264
VERSION=$VERSION
-
 
265
ORGANISM=$ORGANISME
-
 
266
EOF
255
	chmod o-rwx $FIC_PARAM
267
	chmod o-rwx $FIC_PARAM $FIC_CONF
256
} # End of init ()
268
} # End of init ()
257
 
269
 
258
##################################################################
270
##################################################################
259
##			Fonction network			##
271
##			Fonction network			##
260
## - Définition du plan d'adressage du réseau de consultation	##
272
## - Définition du plan d'adressage du réseau de consultation	##
261
## - Nommage DNS du système 					##
273
## - Nommage DNS du système 					##
262
## - Configuration de l'interface eth1 (réseau de consultation)	##
274
## - Configuration de l'interface eth1 (réseau de consultation)	##
263
## - Modification du fichier /etc/hosts				##
275
## - Modification du fichier /etc/hosts				##
264
## - Configuration du serveur de temps (NTP)			##
276
## - Configuration du serveur de temps (NTP)			##
265
## - Renseignement des fichiers hosts.allow et hosts.deny	##
277
## - Renseignement des fichiers hosts.allow et hosts.deny	##
266
##################################################################
278
##################################################################
267
network ()
279
network ()
268
{
280
{
269
	header_install
281
	header_install
270
	if [ $Lang == "fr" ]
282
	if [ $Lang == "fr" ]
271
		then echo "Par défaut, l'adresse IP d'ALCASAR sur le réseau de consultation est : $DEFAULT_PRIVATE_IP_MASK"
283
		then echo "Par défaut, l'adresse IP d'ALCASAR sur le réseau de consultation est : $DEFAULT_PRIVATE_IP_MASK"
272
		else echo "The default ALCASAR IP address on consultation network is : $DEFAULT_PRIVATE_IP_MASK"
284
		else echo "The default ALCASAR IP address on consultation network is : $DEFAULT_PRIVATE_IP_MASK"
273
	fi
285
	fi
274
	response=0
286
	response=0
275
	PTN='^[oOyYnN]$'
287
	PTN='^[oOyYnN]$'
276
	until [[ $(expr $response : $PTN) -gt 0 ]]
288
	until [[ $(expr $response : $PTN) -gt 0 ]]
277
		do
289
		do
278
			if [ $Lang == "fr" ]
290
			if [ $Lang == "fr" ]
279
				then echo -n "Voulez-vous utiliser ce plan d'adressage (recommandé) (O/n)? : "
291
				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)? : "
292
				else echo -n "Do you want to use it (recommanded) (Y/n)? : "
281
			fi
293
			fi
282
			read response
294
			read response
283
		done
295
		done
284
	if [ "$response" = "n" ] || [ "$response" = "N" ]
296
	if [ "$response" = "n" ] || [ "$response" = "N" ]
285
	then
297
	then
286
		PRIVATE_IP_MASK="0"
298
		PRIVATE_IP_MASK="0"
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:]]$'
299
		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:]]$'
288
		until [[ $(expr $PRIVATE_IP_MASK : $PTN) -gt 0 ]]
300
		until [[ $(expr $PRIVATE_IP_MASK : $PTN) -gt 0 ]]
289
			do
301
			do
290
				if [ $Lang == "fr" ]
302
				if [ $Lang == "fr" ]
291
					then echo -n "Entrez l'adresse IP d'ALCASAR au format CIDR (a.b.c.d/xx) : "
303
					then echo -n "Entrez l'adresse IP d'ALCASAR au format CIDR (a.b.c.d/xx) : "
292
					else echo -n "Enter ALCASAR IP address in CIDR format (a.b.c.d/xx) : "
304
					else echo -n "Enter ALCASAR IP address in CIDR format (a.b.c.d/xx) : "
293
				fi
305
				fi
294
				read PRIVATE_IP_MASK
306
				read PRIVATE_IP_MASK
295
 
307
 
296
			done
308
			done
297
	else
309
	else
298
       		PRIVATE_IP_MASK=$DEFAULT_PRIVATE_IP_MASK
310
       		PRIVATE_IP_MASK=$DEFAULT_PRIVATE_IP_MASK
299
	fi
311
	fi
300
# Définition de la config réseau côté "LAN de consultation"
312
# Définition de la config réseau côté "LAN de consultation"
301
	hostname $HOSTNAME
313
	hostname $HOSTNAME
302
	echo "- Hostname : $HOSTNAME" >> $FIC_PARAM
314
	echo "- Hostname : $HOSTNAME" >> $FIC_PARAM
303
	PRIVATE_NETWORK=`/bin/ipcalc -n $PRIVATE_IP_MASK | cut -d"=" -f2`			# @ réseau de consultation (ex.: 192.168.182.0)
315
	PRIVATE_NETWORK=`/bin/ipcalc -n $PRIVATE_IP_MASK | cut -d"=" -f2`			# @ réseau de consultation (ex.: 192.168.182.0)
304
	PRIVATE_NETMASK=`/bin/ipcalc -m $PRIVATE_IP_MASK | cut -d"=" -f2`			# masque réseau de consultation (ex.: 255.255.255.0)
316
	PRIVATE_NETMASK=`/bin/ipcalc -m $PRIVATE_IP_MASK | cut -d"=" -f2`			# masque réseau de consultation (ex.: 255.255.255.0)
305
	PRIVATE_IP=`echo $PRIVATE_IP_MASK | cut -d"/" -f1`					# @ip du portail (côté réseau de consultation)
317
	PRIVATE_IP=`echo $PRIVATE_IP_MASK | cut -d"/" -f1`					# @ip du portail (côté réseau de consultation)
306
	private_prefix=`/bin/ipcalc -p $PRIVATE_IP_MASK |cut -d"=" -f2`				# prefixe du réseau (ex. 24)
318
	private_prefix=`/bin/ipcalc -p $PRIVATE_IP_MASK |cut -d"=" -f2`				# prefixe du réseau (ex. 24)
307
	PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix					# @ + masque du réseau de consult (192.168.182.0/24)
319
	PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix					# @ + masque du réseau de consult (192.168.182.0/24)
308
	classe=$((private_prefix/8)); classe_sup=`expr $classe + 1`; classe_sup_sup=`expr $classe + 2`		# classes de réseau (ex.: 2=classe B, 3=classe C)
320
	classe=$((private_prefix/8)); classe_sup=`expr $classe + 1`; classe_sup_sup=`expr $classe + 2`		# classes de réseau (ex.: 2=classe B, 3=classe C)
309
	PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.			# @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
321
	PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.			# @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
310
	PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ broadcast réseau de consultation (ex.: 192.168.182.255)
322
	PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`		# @ broadcast réseau de consultation (ex.: 192.168.182.255)
311
	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)
323
	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)
312
	PRIVATE_STAT_IP=$PRIVATE_NETWORK/$half_mask						# plage des adresses statiques (ex.: 192.168.182.0/25)
324
	PRIVATE_STAT_IP=$PRIVATE_NETWORK/$half_mask						# plage des adresses statiques (ex.: 192.168.182.0/25)
313
	private_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup`		# dernier octet de l'@ de réseau
325
	private_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup`		# dernier octet de l'@ de réseau
314
	private_broadcast_ending=`echo $PRIVATE_BROADCAST | cut -d"." -f$classe_sup`		# dernier octet de l'@ de broadcast
326
	private_broadcast_ending=`echo $PRIVATE_BROADCAST | cut -d"." -f$classe_sup`		# dernier octet de l'@ de broadcast
315
	private_plage=`expr $private_broadcast_ending - $private_network_ending + 1`
327
	private_plage=`expr $private_broadcast_ending - $private_network_ending + 1`
316
	private_half_plage=`expr $private_plage / 2`
328
	private_half_plage=`expr $private_plage / 2`
317
	private_dyn=`expr $private_half_plage + $private_network_ending`
329
	private_dyn=`expr $private_half_plage + $private_network_ending`
318
	private_dyn_ip_network=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`"."$private_dyn"."`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup_sup-5`
330
	private_dyn_ip_network=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`"."$private_dyn"."`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup_sup-5`
319
	PRIVATE_DYN_IP=`echo $private_dyn_ip_network | cut -d"." -f1-4`/$half_mask					# @ réseau (CIDR) de la plage des adresses dynamiques (ex.: 192.168.182.128/25)
331
	PRIVATE_DYN_IP=`echo $private_dyn_ip_network | cut -d"." -f1-4`/$half_mask					# @ réseau (CIDR) de la plage des adresses dynamiques (ex.: 192.168.182.128/25)
320
	private_dyn_ip_ending=`echo $private_dyn_ip_network | cut -d"." -f4`
332
	private_dyn_ip_ending=`echo $private_dyn_ip_network | cut -d"." -f4`
321
	PRIVATE_DYN_FIRST_IP=`echo $private_dyn_ip_network | cut -d"." -f1-3`"."`expr $private_dyn_ip_ending + 1`	# 1ère adresse de la plage dynamique (ex.: 192.168.182.129)
333
	PRIVATE_DYN_FIRST_IP=`echo $private_dyn_ip_network | cut -d"." -f1-3`"."`expr $private_dyn_ip_ending + 1`	# 1ère adresse de la plage dynamique (ex.: 192.168.182.129)
322
	PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_ending - 1`		# dernière adresse de la plage dynamique (ex.: 192.168.182.254)
334
	PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_ending - 1`		# dernière adresse de la plage dynamique (ex.: 192.168.182.254)
323
# Récupération de la config réseau côté "Internet"
335
# Récupération de la config réseau côté "Internet"
324
	[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
336
	[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
325
	PUBLIC_IP=`grep IPADDR /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip du portail (côté Internet)
337
	PUBLIC_IP=`grep IPADDR /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip du portail (côté Internet)
326
	DNS1=`grep DNS1 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 1er DNS
338
	DNS1=`grep DNS1 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 1er DNS
327
	DNS2=`grep DNS2 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 2ème DNS
339
	DNS2=`grep DNS2 /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` 	# @ip 2ème DNS
328
	DNS1=${DNS1:=208.67.220.220}
340
	DNS1=${DNS1:=208.67.220.220}
329
	DNS2=${DNS2:=208.67.222.222}
341
	DNS2=${DNS2:=208.67.222.222}
330
	PUBLIC_NETMASK=`grep NETMASK /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
342
	PUBLIC_NETMASK=`grep NETMASK /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
331
	PUBLIC_PREFIX=`/bin/ipcalc -p $PUBLIC_IP $PUBLIC_NETMASK |cut -d"=" -f2`		# prefixe du réseau (ex. 24)
343
	PUBLIC_PREFIX=`/bin/ipcalc -p $PUBLIC_IP $PUBLIC_NETMASK |cut -d"=" -f2`		# prefixe du réseau (ex. 24)
332
	PUBLIC_GATEWAY=`grep GATEWAY /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
344
	PUBLIC_GATEWAY=`grep GATEWAY /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
333
	echo -e "- WAN IP address ($EXTIF) :\t$PUBLIC_IP/$PUBLIC_PREFIX" >> $FIC_PARAM
345
	echo -e "- WAN IP address ($EXTIF) :\t$PUBLIC_IP/$PUBLIC_PREFIX" >> $FIC_PARAM
334
	echo -e "- Gateway IP address :\t\t$PUBLIC_GATEWAY" >> $FIC_PARAM
346
	echo -e "- Gateway IP address :\t\t$PUBLIC_GATEWAY" >> $FIC_PARAM
335
	echo -e "- DNS servers :\t\t\t$DNS1 and $DNS2" >> $FIC_PARAM
347
	echo -e "- DNS servers :\t\t\t$DNS1 and $DNS2" >> $FIC_PARAM
336
	echo -e "- LAN IP address ($INTIF) :\t$PRIVATE_IP_MASK" >> $FIC_PARAM
348
	echo -e "- LAN IP address ($INTIF) :\t$PRIVATE_IP_MASK" >> $FIC_PARAM
337
	echo -e "- Dynamic IP addresses (DHCP) :\tfrom $PRIVATE_DYN_FIRST_IP to $PRIVATE_DYN_LAST_IP" >> $FIC_PARAM
349
	echo -e "- Dynamic IP addresses (DHCP) :\tfrom $PRIVATE_DYN_FIRST_IP to $PRIVATE_DYN_LAST_IP" >> $FIC_PARAM
338
	echo "####    ALCASAR Network parameters    ####" > $DIR_DEST_ETC/alcasar-network 
-
 
339
	echo "# Lauch the script 'alcasar-network.sh' after your changes" >> $DIR_DEST_ETC/alcasar-network 
-
 
340
	echo "# Lancez le script 'alcasar-network.sh' après vos modifications" >> $DIR_DEST_ETC/alcasar-network 
-
 
341
	echo "PUBLIC_IP=$PUBLIC_IP/$PUBLIC_PREFIX" >> $DIR_DEST_ETC/alcasar-network 
350
	echo "PUBLIC_IP=$PUBLIC_IP/$PUBLIC_PREFIX" >> $FIC_CONF 
342
	echo "GW=$PUBLIC_GATEWAY" >> $DIR_DEST_ETC/alcasar-network 
351
	echo "GW=$PUBLIC_GATEWAY" >> $FIC_CONF 
343
	echo "DNS1=$DNS1" >> $DIR_DEST_ETC/alcasar-network 
352
	echo "DNS1=$DNS1" >> $FIC_CONF 
344
	echo "DNS2=$DNS2" >> $DIR_DEST_ETC/alcasar-network 
353
	echo "DNS2=$DNS2" >> $FIC_CONF 
345
	echo "PRIVATE_IP=$PRIVATE_IP_MASK" >> $DIR_DEST_ETC/alcasar-network 
354
	echo "PRIVATE_IP=$PRIVATE_IP_MASK" >> $FIC_CONF 
346
	echo "DHCP=on" >> $DIR_DEST_ETC/alcasar-network
355
	echo "DHCP=on" >> $FIC_CONF
347
	echo "DHCP_FIRST=$PRIVATE_DYN_FIRST_IP" >> $DIR_DEST_ETC/alcasar-network
356
	echo "DHCP_FIRST=$PRIVATE_DYN_FIRST_IP" >> $FIC_CONF
348
	echo "DHCP_LAST=$PRIVATE_DYN_LAST_IP" >> $DIR_DEST_ETC/alcasar-network
357
	echo "DHCP_LAST=$PRIVATE_DYN_LAST_IP" >> $FIC_CONF
349
	[ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default
358
	[ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default
350
# Configuration réseau
359
# Configuration réseau
351
	cat <<EOF > /etc/sysconfig/network
360
	cat <<EOF > /etc/sysconfig/network
352
NETWORKING=yes
361
NETWORKING=yes
353
HOSTNAME="$HOSTNAME"
362
HOSTNAME="$HOSTNAME"
354
FORWARD_IPV4=true
363
FORWARD_IPV4=true
355
EOF
364
EOF
356
# Modif /etc/hosts
365
# Modif /etc/hosts
357
	[ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default
366
	[ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default
358
	cat <<EOF > /etc/hosts
367
	cat <<EOF > /etc/hosts
359
127.0.0.1	localhost
368
127.0.0.1	localhost
360
$PRIVATE_IP	$HOSTNAME 
369
$PRIVATE_IP	$HOSTNAME 
361
EOF
370
EOF
362
# Configuration de l'interface eth0 (Internet)
371
# Configuration de l'interface eth0 (Internet)
363
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
372
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
364
DEVICE=$EXTIF
373
DEVICE=$EXTIF
365
BOOTPROTO=static
374
BOOTPROTO=static
366
IPADDR=$PUBLIC_IP
375
IPADDR=$PUBLIC_IP
367
NETMASK=$PUBLIC_NETMASK
376
NETMASK=$PUBLIC_NETMASK
368
GATEWAY=$PUBLIC_GATEWAY
377
GATEWAY=$PUBLIC_GATEWAY
369
DNS1=127.0.0.1
378
DNS1=127.0.0.1
370
ONBOOT=yes
379
ONBOOT=yes
371
METRIC=10
380
METRIC=10
372
NOZEROCONF=yes
381
NOZEROCONF=yes
373
MII_NOT_SUPPORTED=yes
382
MII_NOT_SUPPORTED=yes
374
IPV6INIT=no
383
IPV6INIT=no
375
IPV6TO4INIT=no
384
IPV6TO4INIT=no
376
ACCOUNTING=no
385
ACCOUNTING=no
377
USERCTL=no
386
USERCTL=no
378
EOF
387
EOF
379
# Configuration de l'interface eth1 (réseau de consultation)
388
# Configuration de l'interface eth1 (réseau de consultation)
380
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF
389
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF
381
DEVICE=$INTIF
390
DEVICE=$INTIF
382
BOOTPROTO=static
391
BOOTPROTO=static
383
IPADDR=$PRIVATE_IP
392
IPADDR=$PRIVATE_IP
384
NETMASK=$PRIVATE_NETMASK
393
NETMASK=$PRIVATE_NETMASK
385
ONBOOT=yes
394
ONBOOT=yes
386
METRIC=10
395
METRIC=10
387
NOZEROCONF=yes
396
NOZEROCONF=yes
388
MII_NOT_SUPPORTED=yes
397
MII_NOT_SUPPORTED=yes
389
IPV6INIT=no
398
IPV6INIT=no
390
IPV6TO4INIT=no
399
IPV6TO4INIT=no
391
ACCOUNTING=no
400
ACCOUNTING=no
392
USERCTL=no
401
USERCTL=no
393
EOF
402
EOF
394
# Mise à l'heure du serveur
403
# Mise à l'heure du serveur
395
	[ -e /etc/ntp/step-tickers.default ] || cp /etc/ntp/step-tickers /etc/ntp/step-tickers.default
404
	[ -e /etc/ntp/step-tickers.default ] || cp /etc/ntp/step-tickers /etc/ntp/step-tickers.default
396
	cat <<EOF > /etc/ntp/step-tickers
405
	cat <<EOF > /etc/ntp/step-tickers
397
0.fr.pool.ntp.org	# adapt to your country
406
0.fr.pool.ntp.org	# adapt to your country
398
1.fr.pool.ntp.org
407
1.fr.pool.ntp.org
399
2.fr.pool.ntp.org
408
2.fr.pool.ntp.org
400
EOF
409
EOF
401
# Configuration du serveur de temps (sur lui même)
410
# Configuration du serveur de temps (sur lui même)
402
	[ -e /etc/ntp.conf.default ] || cp /etc/ntp.conf /etc/ntp.conf.default
411
	[ -e /etc/ntp.conf.default ] || cp /etc/ntp.conf /etc/ntp.conf.default
403
	cat <<EOF > /etc/ntp.conf
412
	cat <<EOF > /etc/ntp.conf
404
server 0.fr.pool.ntp.org	# adapt to your country
413
server 0.fr.pool.ntp.org	# adapt to your country
405
server 1.fr.pool.ntp.org
414
server 1.fr.pool.ntp.org
406
server 2.fr.pool.ntp.org
415
server 2.fr.pool.ntp.org
407
server 127.127.1.0   		# local clock si NTP internet indisponible ...
416
server 127.127.1.0   		# local clock si NTP internet indisponible ...
408
fudge 127.127.1.0 stratum 10
417
fudge 127.127.1.0 stratum 10
409
restrict $PRIVATE_NETWORK mask $PRIVATE_NETMASK nomodify notrap
418
restrict $PRIVATE_NETWORK mask $PRIVATE_NETMASK nomodify notrap
410
restrict 127.0.0.1
419
restrict 127.0.0.1
411
driftfile /var/lib/ntp/drift
420
driftfile /var/lib/ntp/drift
412
logfile /var/log/ntp.log
421
logfile /var/log/ntp.log
413
EOF
422
EOF
414
 
423
 
415
	chown -R ntp:ntp /var/lib/ntp
424
	chown -R ntp:ntp /var/lib/ntp
416
# Renseignement des fichiers hosts.allow et hosts.deny
425
# Renseignement des fichiers hosts.allow et hosts.deny
417
	[ -e /etc/hosts.allow.default ]  || cp /etc/hosts.allow /etc/hosts.allow.default
426
	[ -e /etc/hosts.allow.default ]  || cp /etc/hosts.allow /etc/hosts.allow.default
418
	cat <<EOF > /etc/hosts.allow
427
	cat <<EOF > /etc/hosts.allow
419
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
428
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
420
sshd: ALL
429
sshd: ALL
421
ntpd: $PRIVATE_NETWORK_SHORT
430
ntpd: $PRIVATE_NETWORK_SHORT
422
EOF
431
EOF
423
	[ -e /etc/host.deny.default ]  || cp /etc/hosts.deny /etc/hosts.deny.default
432
	[ -e /etc/host.deny.default ]  || cp /etc/hosts.deny /etc/hosts.deny.default
424
	cat <<EOF > /etc/hosts.deny
433
	cat <<EOF > /etc/hosts.deny
425
ALL: ALL: spawn ( /bin/echo "service %d demandé par %c" | /bin/mail -s "Tentative d'accès au service %d par %c REFUSE !!!" security ) &
434
ALL: ALL: spawn ( /bin/echo "service %d demandé par %c" | /bin/mail -s "Tentative d'accès au service %d par %c REFUSE !!!" security ) &
426
EOF
435
EOF
427
# Firewall config
436
# Firewall config
428
$SED "s?^EXTIF=.*?EXTIF=\"$EXTIF\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
437
$SED "s?^EXTIF=.*?EXTIF=\"$EXTIF\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
429
$SED "s?^INTIF=.*?INTIF=\"$INTIF\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
438
$SED "s?^INTIF=.*?INTIF=\"$INTIF\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
430
chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau)
439
chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau)
431
# création du fichier d'exception au filtrage
440
# création du fichier d'exception au filtrage
432
touch $DIR_DEST_ETC/alcasar-filter-exceptions
441
touch $DIR_DEST_ETC/alcasar-filter-exceptions
433
# le script $DIR_DEST_BIN/alcasar-iptables.sh est lancé à la fin (pour ne pas perturber une mise à jour via ssh)
442
# le script $DIR_DEST_BIN/alcasar-iptables.sh est lancé à la fin (pour ne pas perturber une mise à jour via ssh)
434
} # End of network ()
443
} # End of network ()
435
 
444
 
436
##################################################################
445
##################################################################
437
##			Fonction gestion			##
446
##			Fonction gestion			##
438
## - installation du centre de gestion				##
447
## - installation du centre de gestion				##
439
## - configuration du serveur web (Apache)			##
448
## - configuration du serveur web (Apache)			##
440
## - définition du 1er comptes de gestion 			##
449
## - définition du 1er comptes de gestion 			##
441
## - sécurisation des accès					##
450
## - sécurisation des accès					##
442
##################################################################
451
##################################################################
443
gestion()
452
gestion()
444
{
453
{
445
# Suppression des CGI et des pages WEB installés par défaut
454
# Suppression des CGI et des pages WEB installés par défaut
446
	rm -rf /var/www/cgi-bin/*
455
	rm -rf /var/www/cgi-bin/*
447
	[ -d $DIR_WEB ] && rm -rf $DIR_WEB
456
	[ -d $DIR_WEB ] && rm -rf $DIR_WEB
448
	mkdir $DIR_WEB
457
	mkdir $DIR_WEB
449
# Copie et configuration des fichiers du centre de gestion
458
# Copie et configuration des fichiers du centre de gestion
450
	cp -rf $DIR_INSTALL/web/* $DIR_WEB/
459
	cp -rf $DIR_INSTALL/web/* $DIR_WEB/
451
	echo "$VERSION du $DATE" > $DIR_WEB/VERSION
460
	echo "$VERSION du $DATE" > $DIR_WEB/VERSION
452
	$SED "s?99/99/9999?$DATE_SHORT?g" $DIR_ACC/menu.php
461
	$SED "s?99/99/9999?$DATE_SHORT?g" $DIR_ACC/menu.php
453
	$SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_ACC/phpsysinfo/includes/xml/portail.php
462
	$SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_ACC/phpsysinfo/includes/xml/portail.php
454
	$SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_ACC/phpsysinfo/includes/xml/portail.php
463
	$SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_ACC/phpsysinfo/includes/xml/portail.php
455
	$SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_ACC/phpsysinfo/includes/xml/portail.php
464
	$SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_ACC/phpsysinfo/includes/xml/portail.php
456
	$SED "s?^\$private_ip =.*?\$private_ip = \"$PRIVATE_IP\";?g" $DIR_WEB/index.php
465
	$SED "s?^\$private_ip =.*?\$private_ip = \"$PRIVATE_IP\";?g" $DIR_WEB/index.php
457
	$SED "s?\$hostname =.*?\$hostname = \"$HOSTNAME\";?g" $DIR_WEB/index.php
466
	$SED "s?\$hostname =.*?\$hostname = \"$HOSTNAME\";?g" $DIR_WEB/index.php
458
	chmod 640 $DIR_ACC/phpsysinfo/includes/xml/portail.php
467
	chmod 640 $DIR_ACC/phpsysinfo/includes/xml/portail.php
459
	chown -R apache:apache $DIR_WEB/*
468
	chown -R apache:apache $DIR_WEB/*
460
	for i in ISO base logs/firewall logs/httpd logs/squid ;
469
	for i in ISO base logs/firewall logs/httpd logs/squid ;
461
	do
470
	do
462
		[ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i
471
		[ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i
463
	done
472
	done
464
	chown -R root:apache $DIR_SAVE
473
	chown -R root:apache $DIR_SAVE
465
# Configuration et sécurisation php
474
# Configuration et sécurisation php
466
	[ -e /etc/php.ini.default ] || cp /etc/php.ini /etc/php.ini.default
475
	[ -e /etc/php.ini.default ] || cp /etc/php.ini /etc/php.ini.default
467
	timezone=`cat /etc/sysconfig/clock|grep ZONE|cut -d"=" -f2`
476
	timezone=`cat /etc/sysconfig/clock|grep ZONE|cut -d"=" -f2`
468
	$SED "s?^;date.timezone =.*?date.timezone = $timezone?g" /etc/php.ini
477
	$SED "s?^;date.timezone =.*?date.timezone = $timezone?g" /etc/php.ini
469
	$SED "s?^upload_max_filesize.*?upload_max_filesize = 100M?g" /etc/php.ini
478
	$SED "s?^upload_max_filesize.*?upload_max_filesize = 100M?g" /etc/php.ini
470
	$SED "s?^post_max_size.*?post_max_size = 100M?g" /etc/php.ini
479
	$SED "s?^post_max_size.*?post_max_size = 100M?g" /etc/php.ini
471
	$SED "s?^html_errors.*?html_errors = Off?g" /etc/php.ini
480
	$SED "s?^html_errors.*?html_errors = Off?g" /etc/php.ini
472
	$SED "s?^expose_php.*?expose_php = Off?g" /etc/php.ini
481
	$SED "s?^expose_php.*?expose_php = Off?g" /etc/php.ini
473
# Configuration et sécurisation Apache
482
# Configuration et sécurisation Apache
474
	[ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
483
	[ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
475
	$SED "s?^#ServerName.*?ServerName $HOSTNAME?g" /etc/httpd/conf/httpd.conf
484
	$SED "s?^#ServerName.*?ServerName $HOSTNAME?g" /etc/httpd/conf/httpd.conf
476
	$SED "s?^Listen.*?Listen $PRIVATE_IP:80?g" /etc/httpd/conf/httpd.conf
485
	$SED "s?^Listen.*?Listen $PRIVATE_IP:80?g" /etc/httpd/conf/httpd.conf
477
	$SED "s?^ServerTokens.*?ServerTokens Prod?g" /etc/httpd/conf/httpd.conf
486
	$SED "s?^ServerTokens.*?ServerTokens Prod?g" /etc/httpd/conf/httpd.conf
478
	$SED "s?^ServerSignature.*?ServerSignature Off?g" /etc/httpd/conf/httpd.conf
487
	$SED "s?^ServerSignature.*?ServerSignature Off?g" /etc/httpd/conf/httpd.conf
479
	$SED "s?^#ErrorDocument 404 /missing.html.*?ErrorDocument 404 /index.html?g" /etc/httpd/conf/httpd.conf
488
	$SED "s?^#ErrorDocument 404 /missing.html.*?ErrorDocument 404 /index.html?g" /etc/httpd/conf/httpd.conf
480
	FIC_MOD_SSL=`find /etc/httpd/modules.d/ -type f -name *mod_ssl.conf`
489
	FIC_MOD_SSL=`find /etc/httpd/modules.d/ -type f -name *mod_ssl.conf`
481
	$SED "s?^Listen.*?Listen $PRIVATE_IP:443?g" $FIC_MOD_SSL # On écoute en SSL que sur INTIF
490
	$SED "s?^Listen.*?Listen $PRIVATE_IP:443?g" $FIC_MOD_SSL # On écoute en SSL que sur INTIF
482
	$SED "s?background-color.*?background-color: #EFEFEF; }?g" /var/www/error/include/top.html
491
	$SED "s?background-color.*?background-color: #EFEFEF; }?g" /var/www/error/include/top.html
483
	[ -e /var/www/error/include/bottom.html.default ] || mv /var/www/error/include/bottom.html /var/www/error/include/bottom.html.default
492
	[ -e /var/www/error/include/bottom.html.default ] || mv /var/www/error/include/bottom.html /var/www/error/include/bottom.html.default
484
	cat <<EOF > /var/www/error/include/bottom.html
493
	cat <<EOF > /var/www/error/include/bottom.html
485
</body>
494
</body>
486
</html>
495
</html>
487
EOF
496
EOF
488
	echo "- ALCASAR Control Center URL : http://$HOSTNAME" >> $FIC_PARAM
497
	echo "- ALCASAR Control Center URL : http://$HOSTNAME" >> $FIC_PARAM
489
# Définition du premier compte lié au profil 'admin'
498
# Définition du premier compte lié au profil 'admin'
490
	header_install
499
	header_install
491
	if [ "$mode" = "install" ]
500
	if [ "$mode" = "install" ]
492
	then
501
	then
493
		header_install
502
		header_install
494
		if [ $Lang == "fr" ]
503
		if [ $Lang == "fr" ]
495
		then 
504
		then 
496
			echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :"
505
			echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :"
497
			echo " - le profil 'admin' capable de réaliser toutes les opérations"
506
			echo " - le profil 'admin' capable de réaliser toutes les opérations"
498
			echo " - le profil 'backup' lié uniquement aux fonctions d'archivage"
507
			echo " - le profil 'backup' lié uniquement aux fonctions d'archivage"
499
			echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers"
508
			echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers"
500
			echo ""
509
			echo ""
501
			echo "Définissez le premier compte du profil 'admin' :"
510
			echo "Définissez le premier compte du profil 'admin' :"
502
			echo
511
			echo
503
			echo -n "Nom : "
512
			echo -n "Nom : "
504
		else
513
		else
505
			echo "To manage Alcasar thru the WEB control center, three accounts profiles were defined :"
514
			echo "To manage Alcasar thru the WEB control center, three accounts profiles were defined :"
506
			echo " - the 'admin profile who can do all operations"
515
			echo " - the 'admin profile who can do all operations"
507
			echo " - the 'backup' profile link to backup functions"
516
			echo " - the 'backup' profile link to backup functions"
508
			echo " - the 'manager' profile link to users management"
517
			echo " - the 'manager' profile link to users management"
509
			echo ""
518
			echo ""
510
			echo "Define the first account of the 'admin' profile :"
519
			echo "Define the first account of the 'admin' profile :"
511
			echo
520
			echo
512
			echo -n "Account : "
521
			echo -n "Account : "
513
		fi
522
		fi
514
		read admin_portail
523
		read admin_portail
515
		echo "- Name of the first account of the admin profile : $admin_portail" >> $FIC_PARAM
524
		echo "- Name of the first account of the admin profile : $admin_portail" >> $FIC_PARAM
516
# Création du fichier de clés de ce compte dans le profil "admin"
525
# Création du fichier de clés de ce compte dans le profil "admin"
517
		[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
526
		[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
518
		mkdir -p $DIR_DEST_ETC/digest
527
		mkdir -p $DIR_DEST_ETC/digest
519
		chmod 755 $DIR_DEST_ETC/digest
528
		chmod 755 $DIR_DEST_ETC/digest
520
		until [ -s $DIR_DEST_ETC/digest/key_admin ]
529
		until [ -s $DIR_DEST_ETC/digest/key_admin ]
521
			do
530
			do
522
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
531
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
523
			done
532
			done
524
		$DIR_DEST_SBIN/alcasar-profil.sh --list
533
		$DIR_DEST_SBIN/alcasar-profil.sh --list
525
	else   # mise à jour des versions < 2.1
534
	else   # mise à jour des versions < 2.1
526
		if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
535
		if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
527
			then
536
			then
528
			echo "Cette mise à jour nécessite de redéfinir le premier compte d'administration du portail"
537
			echo "Cette mise à jour nécessite de redéfinir le premier compte d'administration du portail"
529
			echo
538
			echo
530
			echo -n "Nom : "
539
			echo -n "Nom : "
531
			read admin_portail
540
			read admin_portail
532
			echo "- Name of the first user of admin profile : $admin_portail" >> $FIC_PARAM
541
			echo "- Name of the first user of admin profile : $admin_portail" >> $FIC_PARAM
533
			[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
542
			[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
534
			mkdir -p $DIR_DEST_ETC/digest
543
			mkdir -p $DIR_DEST_ETC/digest
535
			chmod 755 $DIR_DEST_ETC/digest
544
			chmod 755 $DIR_DEST_ETC/digest
536
			until [ -s $DIR_DEST_ETC/digest/key_admin ]
545
			until [ -s $DIR_DEST_ETC/digest/key_admin ]
537
			do
546
			do
538
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
547
				/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
539
			done
548
			done
540
			$DIR_DEST_SBIN/alcasar-profil.sh --list
549
			$DIR_DEST_SBIN/alcasar-profil.sh --list
541
		fi
550
		fi
542
	fi
551
	fi
543
# synchronisation horaire
552
# synchronisation horaire
544
	ntpd -q -g &
553
	ntpd -q -g &
545
# Sécurisation du centre
554
# Sécurisation du centre
546
	rm -f /etc/httpd/conf/webapps.d/*
555
	rm -f /etc/httpd/conf/webapps.d/*
547
	cat <<EOF > /etc/httpd/conf/webapps.d/alcasar.conf
556
	cat <<EOF > /etc/httpd/conf/webapps.d/alcasar.conf
548
<Directory $DIR_ACC>
557
<Directory $DIR_ACC>
549
	SSLRequireSSL
558
	SSLRequireSSL
550
	AllowOverride None
559
	AllowOverride None
551
	Order deny,allow
560
	Order deny,allow
552
	Deny from all
561
	Deny from all
553
	Allow from 127.0.0.1
562
	Allow from 127.0.0.1
554
	Allow from $PRIVATE_NETWORK_MASK
563
	Allow from $PRIVATE_NETWORK_MASK
555
	require valid-user
564
	require valid-user
556
	AuthType digest
565
	AuthType digest
557
	AuthName $HOSTNAME
566
	AuthName $HOSTNAME
558
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
567
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
559
	AuthUserFile $DIR_DEST_ETC/digest/key_all
568
	AuthUserFile $DIR_DEST_ETC/digest/key_all
560
	ErrorDocument 404 https://$HOSTNAME/
569
	ErrorDocument 404 https://$HOSTNAME/
561
</Directory>
570
</Directory>
562
<Directory $DIR_ACC/admin>
571
<Directory $DIR_ACC/admin>
563
	SSLRequireSSL
572
	SSLRequireSSL
564
	AllowOverride None
573
	AllowOverride None
565
	Order deny,allow
574
	Order deny,allow
566
	Deny from all
575
	Deny from all
567
	Allow from 127.0.0.1
576
	Allow from 127.0.0.1
568
	Allow from $PRIVATE_NETWORK_MASK
577
	Allow from $PRIVATE_NETWORK_MASK
569
	require valid-user
578
	require valid-user
570
	AuthType digest
579
	AuthType digest
571
	AuthName $HOSTNAME
580
	AuthName $HOSTNAME
572
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
581
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
573
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
582
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
574
	ErrorDocument 404 https://$HOSTNAME/
583
	ErrorDocument 404 https://$HOSTNAME/
575
</Directory>
584
</Directory>
576
<Directory $DIR_ACC/manager>
585
<Directory $DIR_ACC/manager>
577
	SSLRequireSSL
586
	SSLRequireSSL
578
	AllowOverride None
587
	AllowOverride None
579
	Order deny,allow
588
	Order deny,allow
580
	Deny from all
589
	Deny from all
581
	Allow from 127.0.0.1
590
	Allow from 127.0.0.1
582
	Allow from $PRIVATE_NETWORK_MASK
591
	Allow from $PRIVATE_NETWORK_MASK
583
	require valid-user
592
	require valid-user
584
	AuthType digest
593
	AuthType digest
585
	AuthName $HOSTNAME
594
	AuthName $HOSTNAME
586
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
595
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
587
	AuthUserFile $DIR_DEST_ETC/digest/key_manager
596
	AuthUserFile $DIR_DEST_ETC/digest/key_manager
588
	ErrorDocument 404 https://$HOSTNAME/
597
	ErrorDocument 404 https://$HOSTNAME/
589
</Directory>
598
</Directory>
590
<Directory $DIR_ACC/backup>
599
<Directory $DIR_ACC/backup>
591
	SSLRequireSSL
600
	SSLRequireSSL
592
	AllowOverride None
601
	AllowOverride None
593
	Order deny,allow
602
	Order deny,allow
594
	Deny from all
603
	Deny from all
595
	Allow from 127.0.0.1
604
	Allow from 127.0.0.1
596
	Allow from $PRIVATE_NETWORK_MASK
605
	Allow from $PRIVATE_NETWORK_MASK
597
	require valid-user
606
	require valid-user
598
	AuthType digest
607
	AuthType digest
599
	AuthName $HOSTNAME
608
	AuthName $HOSTNAME
600
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
609
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
601
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
610
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
602
	ErrorDocument 404 https://$HOSTNAME/
611
	ErrorDocument 404 https://$HOSTNAME/
603
</Directory>
612
</Directory>
604
Alias /save/ "$DIR_SAVE/"
613
Alias /save/ "$DIR_SAVE/"
605
<Directory $DIR_SAVE>
614
<Directory $DIR_SAVE>
606
	SSLRequireSSL
615
	SSLRequireSSL
607
	Options Indexes
616
	Options Indexes
608
	Order deny,allow
617
	Order deny,allow
609
	Deny from all
618
	Deny from all
610
	Allow from 127.0.0.1
619
	Allow from 127.0.0.1
611
	Allow from $PRIVATE_NETWORK_MASK
620
	Allow from $PRIVATE_NETWORK_MASK
612
	require valid-user
621
	require valid-user
613
	AuthType digest
622
	AuthType digest
614
	AuthName $HOSTNAME
623
	AuthName $HOSTNAME
615
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
624
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
616
	ErrorDocument 404 https://$HOSTNAME/
625
	ErrorDocument 404 https://$HOSTNAME/
617
	ReadmeName	/readmeSave.html
626
	ReadmeName	/readmeSave.html
618
</Directory>
627
</Directory>
619
EOF
628
EOF
620
} # End of gestion ()
629
} # End of gestion ()
621
 
630
 
622
##########################################################################################
631
##########################################################################################
623
##				Fonction AC()						##
632
##				Fonction AC()						##
624
## - Création d'une Autorité de Certification et du certificat serveur pour apache 	##
633
## - Création d'une Autorité de Certification et du certificat serveur pour apache 	##
625
##########################################################################################
634
##########################################################################################
626
AC ()
635
AC ()
627
{
636
{
628
	$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
637
	$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
629
	$DIR_DEST_BIN/alcasar-CA.sh
638
	$DIR_DEST_BIN/alcasar-CA.sh
630
	FIC_VIRTUAL_SSL=`find /etc/httpd/conf -type f -name *default_ssl*`
639
	FIC_VIRTUAL_SSL=`find /etc/httpd/conf -type f -name *default_ssl*`
631
	[ -e /etc/httpd/conf/vhosts-ssl.default ]  || cp $FIC_VIRTUAL_SSL /etc/httpd/conf/vhosts-ssl.default
640
	[ -e /etc/httpd/conf/vhosts-ssl.default ]  || cp $FIC_VIRTUAL_SSL /etc/httpd/conf/vhosts-ssl.default
632
	$SED "s?localhost.crt?alcasar.crt?g" $FIC_VIRTUAL_SSL
641
	$SED "s?localhost.crt?alcasar.crt?g" $FIC_VIRTUAL_SSL
633
	$SED "s?localhost.key?alcasar.key?g" $FIC_VIRTUAL_SSL
642
	$SED "s?localhost.key?alcasar.key?g" $FIC_VIRTUAL_SSL
634
	chown -R root:apache /etc/pki
643
	chown -R root:apache /etc/pki
635
	chmod -R 750 /etc/pki
644
	chmod -R 750 /etc/pki
636
} # End AC ()
645
} # End AC ()
637
 
646
 
638
##########################################################################################
647
##########################################################################################
639
##			Fonction init_db()						##
648
##			Fonction init_db()						##
640
## - Initialisation de la base Mysql							##
649
## - Initialisation de la base Mysql							##
641
## - Affectation du mot de passe de l'administrateur (root)				##
650
## - Affectation du mot de passe de l'administrateur (root)				##
642
## - Suppression des bases et des utilisateurs superflus				##
651
## - Suppression des bases et des utilisateurs superflus				##
643
## - Création de la base 'radius'							##
652
## - Création de la base 'radius'							##
644
## - Installation du schéma de cette base						##
653
## - Installation du schéma de cette base						##
645
## - Import des tables de comptabilité (mtotacct, totacct) et info_usagers (userinfo)	##
654
## - Import des tables de comptabilité (mtotacct, totacct) et info_usagers (userinfo)	##
646
##       ces table proviennent de 'dialupadmin' (paquetage freeradius-web)		##
655
##       ces table proviennent de 'dialupadmin' (paquetage freeradius-web)		##
647
##########################################################################################
656
##########################################################################################
648
init_db ()
657
init_db ()
649
{
658
{
650
	mkdir -p /var/lib/mysql/.tmp
659
	mkdir -p /var/lib/mysql/.tmp
651
	chown mysql:mysql /var/lib/mysql/.tmp
660
	chown mysql:mysql /var/lib/mysql/.tmp
652
	[ -e /etc/my.cnf.rpmnew ] && mv /etc/my.cnf.rpmnew /etc/my.cnf		# prend en compte les migrations de MySQL
661
	[ -e /etc/my.cnf.rpmnew ] && mv /etc/my.cnf.rpmnew /etc/my.cnf		# prend en compte les migrations de MySQL
653
	[ -e /etc/my.cnf.default ] || cp /etc/my.cnf /etc/my.cnf.default
662
	[ -e /etc/my.cnf.default ] || cp /etc/my.cnf /etc/my.cnf.default
654
	$SED "s?^#bind-address.*?bind-address=127.0.0.1?g" /etc/my.cnf
663
	$SED "s?^#bind-address.*?bind-address=127.0.0.1?g" /etc/my.cnf
655
	/etc/init.d/mysqld start
664
	/etc/init.d/mysqld start
656
	sleep 4
665
	sleep 4
657
	mysqladmin -u root password $mysqlpwd
666
	mysqladmin -u root password $mysqlpwd
658
	MYSQL="/usr/bin/mysql -uroot -p$mysqlpwd --exec"
667
	MYSQL="/usr/bin/mysql -uroot -p$mysqlpwd --exec"
659
# On supprime les tables d'exemple
668
# On supprime les tables d'exemple
660
	$MYSQL="DROP DATABASE IF EXISTS test;DROP DATABASE IF EXISTS tmp;CONNECT mysql;DELETE from user where user='';FLUSH PRIVILEGES;" 
669
	$MYSQL="DROP DATABASE IF EXISTS test;DROP DATABASE IF EXISTS tmp;CONNECT mysql;DELETE from user where user='';FLUSH PRIVILEGES;" 
661
	# On crée la base 'radius'
670
	# On crée la base 'radius'
662
	$MYSQL="CREATE DATABASE IF NOT EXISTS $DB_RADIUS;GRANT ALL ON $DB_RADIUS.* TO $DB_USER@localhost IDENTIFIED BY '$radiuspwd';FLUSH PRIVILEGES"
671
	$MYSQL="CREATE DATABASE IF NOT EXISTS $DB_RADIUS;GRANT ALL ON $DB_RADIUS.* TO $DB_USER@localhost IDENTIFIED BY '$radiuspwd';FLUSH PRIVILEGES"
663
# Ajout d'une base vierge	
672
# Ajout d'une base vierge	
664
	mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIR_CONF/radiusd-db-vierge.sql
673
	mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIR_CONF/radiusd-db-vierge.sql
665
} # End init_db ()
674
} # End init_db ()
666
 
675
 
667
##########################################################################
676
##########################################################################
668
##			Fonction param_radius				##
677
##			Fonction param_radius				##
669
## - Paramètrage des fichiers de configuration FreeRadius		##
678
## - Paramètrage des fichiers de configuration FreeRadius		##
670
## - Affectation du secret partagé entre coova-chilli et freeradius	##
679
## - Affectation du secret partagé entre coova-chilli et freeradius	##
671
## - Modification de fichier de conf pour l'accès à Mysql		##
680
## - Modification de fichier de conf pour l'accès à Mysql		##
672
##########################################################################
681
##########################################################################
673
param_radius ()
682
param_radius ()
674
{
683
{
675
	cp -f $DIR_CONF/radiusd-db-vierge.sql /etc/raddb/
684
	cp -f $DIR_CONF/radiusd-db-vierge.sql /etc/raddb/
676
	chown -R radius:radius /etc/raddb
685
	chown -R radius:radius /etc/raddb
677
	[ -e /etc/raddb/radiusd.conf.default ] || cp /etc/raddb/radiusd.conf /etc/raddb/radiusd.conf.default
686
	[ -e /etc/raddb/radiusd.conf.default ] || cp /etc/raddb/radiusd.conf /etc/raddb/radiusd.conf.default
678
# paramètrage radius.conf
687
# paramètrage radius.conf
679
	$SED "s?^[\t ]*#[\t ]*user =.*?user = radius?g" /etc/raddb/radiusd.conf
688
	$SED "s?^[\t ]*#[\t ]*user =.*?user = radius?g" /etc/raddb/radiusd.conf
680
	$SED "s?^[\t ]*#[\t ]*group =.*?group = radius?g" /etc/raddb/radiusd.conf
689
	$SED "s?^[\t ]*#[\t ]*group =.*?group = radius?g" /etc/raddb/radiusd.conf
681
	$SED "s?^[\t ]*status_server =.*?status_server = no?g" /etc/raddb/radiusd.conf
690
	$SED "s?^[\t ]*status_server =.*?status_server = no?g" /etc/raddb/radiusd.conf
682
# suppression de la fonction proxy
691
# suppression de la fonction proxy
683
	$SED "s?^[\t ]*proxy_requests.*?proxy_requests = no?g" /etc/raddb/radiusd.conf
692
	$SED "s?^[\t ]*proxy_requests.*?proxy_requests = no?g" /etc/raddb/radiusd.conf
684
	$SED "s?^[\t ]*\$INCLUDE proxy.conf.*?#\$INCLUDE proxy.conf?g" /etc/raddb/radiusd.conf
693
	$SED "s?^[\t ]*\$INCLUDE proxy.conf.*?#\$INCLUDE proxy.conf?g" /etc/raddb/radiusd.conf
685
# écoute sur loopback uniquement (à modifier plus tard pour l'EAP)
694
# écoute sur loopback uniquement (à modifier plus tard pour l'EAP)
686
	$SED "s?^[\t ]*ipaddr =.*?ipaddr = 127.0.0.1?g" /etc/raddb/radiusd.conf
695
	$SED "s?^[\t ]*ipaddr =.*?ipaddr = 127.0.0.1?g" /etc/raddb/radiusd.conf
687
# prise en compte du module SQL et des compteurs SQL
696
# prise en compte du module SQL et des compteurs SQL
688
	$SED "s?^[\t ]*#[\t ]*\$INCLUDE sql.conf.*?\$INCLUDE sql.conf?g" /etc/raddb/radiusd.conf
697
	$SED "s?^[\t ]*#[\t ]*\$INCLUDE sql.conf.*?\$INCLUDE sql.conf?g" /etc/raddb/radiusd.conf
689
	$SED "s?^[\t ]*#[\t ]*\$INCLUDE sql/mysql/counter.conf?\$INCLUDE sql/mysql/counter.conf?g" /etc/raddb/radiusd.conf
698
	$SED "s?^[\t ]*#[\t ]*\$INCLUDE sql/mysql/counter.conf?\$INCLUDE sql/mysql/counter.conf?g" /etc/raddb/radiusd.conf
690
	$SED "s?^[\t ]*\$INCLUDE policy.conf?#\$INCLUDE policy.conf?g" /etc/raddb/radiusd.conf
699
	$SED "s?^[\t ]*\$INCLUDE policy.conf?#\$INCLUDE policy.conf?g" /etc/raddb/radiusd.conf
691
# purge du répertoire des serveurs virtuels et copie du fichier de configuration d'Alcasar
700
# purge du répertoire des serveurs virtuels et copie du fichier de configuration d'Alcasar
692
	rm -f /etc/raddb/sites-enabled/*
701
	rm -f /etc/raddb/sites-enabled/*
693
       	cp $DIR_CONF/alcasar-radius /etc/raddb/sites-available/alcasar
702
       	cp $DIR_CONF/alcasar-radius /etc/raddb/sites-available/alcasar
694
	chown radius:apache /etc/raddb/sites-available/alcasar /etc/raddb/modules/ldap # droits rw pour apache (module ldap)
703
	chown radius:apache /etc/raddb/sites-available/alcasar /etc/raddb/modules/ldap # droits rw pour apache (module ldap)
695
	chmod 660 /etc/raddb/sites-available/alcasar /etc/raddb/modules/ldap
704
	chmod 660 /etc/raddb/sites-available/alcasar /etc/raddb/modules/ldap
696
	chgrp apache /etc/raddb /etc/raddb/sites-available /etc/raddb/modules
705
	chgrp apache /etc/raddb /etc/raddb/sites-available /etc/raddb/modules
697
	ln -s /etc/raddb/sites-available/alcasar /etc/raddb/sites-enabled/alcasar
706
	ln -s /etc/raddb/sites-available/alcasar /etc/raddb/sites-enabled/alcasar
698
# Inutile dans notre fonctionnement mais les liens sont recréés par un update de radius ... donc forcé en tant que fichier à 'vide'
707
# Inutile dans notre fonctionnement mais les liens sont recréés par un update de radius ... donc forcé en tant que fichier à 'vide'
699
	touch /etc/raddb/sites-enabled/{inner-tunnel,control-socket,default}
708
	touch /etc/raddb/sites-enabled/{inner-tunnel,control-socket,default}
700
# configuration du fichier client.conf (127.0.0.1 suffit mais on laisse le deuxième client pour la future gestion de l'EAP)
709
# configuration du fichier client.conf (127.0.0.1 suffit mais on laisse le deuxième client pour la future gestion de l'EAP)
701
	[ -e /etc/raddb/clients.conf.default ] || cp -f /etc/raddb/clients.conf /etc/raddb/clients.conf.default
710
	[ -e /etc/raddb/clients.conf.default ] || cp -f /etc/raddb/clients.conf /etc/raddb/clients.conf.default
702
	cat << EOF > /etc/raddb/clients.conf
711
	cat << EOF > /etc/raddb/clients.conf
703
client 127.0.0.1 {
712
client 127.0.0.1 {
704
	secret = $secretradius
713
	secret = $secretradius
705
	shortname = localhost
714
	shortname = localhost
706
}
715
}
707
EOF
716
EOF
708
# modif sql.conf
717
# modif sql.conf
709
	[ -e /etc/raddb/sql.conf.default ] || cp /etc/raddb/sql.conf /etc/raddb/sql.conf.default
718
	[ -e /etc/raddb/sql.conf.default ] || cp /etc/raddb/sql.conf /etc/raddb/sql.conf.default
710
	$SED "s?^[\t ]*login =.*?login = \"$DB_USER\"?g" /etc/raddb/sql.conf
719
	$SED "s?^[\t ]*login =.*?login = \"$DB_USER\"?g" /etc/raddb/sql.conf
711
	$SED "s?^[\t ]*password =.*?password = \"$radiuspwd\"?g" /etc/raddb/sql.conf
720
	$SED "s?^[\t ]*password =.*?password = \"$radiuspwd\"?g" /etc/raddb/sql.conf
712
	$SED "s?^[\t ]*radius_db =.*?radius_db = \"$DB_RADIUS\"?g" /etc/raddb/sql.conf
721
	$SED "s?^[\t ]*radius_db =.*?radius_db = \"$DB_RADIUS\"?g" /etc/raddb/sql.conf
713
	$SED "s?^[\t ]*sqltrace =.*?sqltrace = no?g" /etc/raddb/sql.conf
722
	$SED "s?^[\t ]*sqltrace =.*?sqltrace = no?g" /etc/raddb/sql.conf
714
# modif dialup.conf
723
# modif dialup.conf
715
	[ -e /etc/raddb/sql/mysql/dialup.conf.default ] || cp /etc/raddb/sql/mysql/dialup.conf /etc/raddb/sql/mysql/dialup.conf.default
724
	[ -e /etc/raddb/sql/mysql/dialup.conf.default ] || cp /etc/raddb/sql/mysql/dialup.conf /etc/raddb/sql/mysql/dialup.conf.default
716
	cp -f $DIR_CONF/dialup.conf /etc/raddb/sql/mysql/dialup.conf
725
	cp -f $DIR_CONF/dialup.conf /etc/raddb/sql/mysql/dialup.conf
717
} # End param_radius ()
726
} # End param_radius ()
718
 
727
 
719
##########################################################################
728
##########################################################################
720
##			Fonction param_web_radius			##
729
##			Fonction param_web_radius			##
721
## - Import, modification et paramètrage de l'interface "dialupadmin"	##
730
## - Import, modification et paramètrage de l'interface "dialupadmin"	##
722
## - Création du lien vers la page de changement de mot de passe        ##
731
## - Création du lien vers la page de changement de mot de passe        ##
723
##########################################################################
732
##########################################################################
724
param_web_radius ()
733
param_web_radius ()
725
{
734
{
726
# copie de l'interface d'origine dans la structure Alcasar
735
# copie de l'interface d'origine dans la structure Alcasar
727
	[ -d /usr/share/freeradius-web ] && cp -rf /usr/share/freeradius-web/* $DIR_ACC/manager/
736
	[ -d /usr/share/freeradius-web ] && cp -rf /usr/share/freeradius-web/* $DIR_ACC/manager/
728
	rm -f $DIR_ACC/manager/index.html $DIR_ACC/manager/readme 
737
	rm -f $DIR_ACC/manager/index.html $DIR_ACC/manager/readme 
729
	rm -f $DIR_ACC/manager/htdocs/about.html $DIR_ACC/manager/htdocs/index.html $DIR_ACC/manager/htdocs/content.html
738
	rm -f $DIR_ACC/manager/htdocs/about.html $DIR_ACC/manager/htdocs/index.html $DIR_ACC/manager/htdocs/content.html
730
# copie des fichiers modifiés
739
# copie des fichiers modifiés
731
	cp -rf $DIR_INSTALL/web/acc/manager/* $DIR_ACC/manager/
740
	cp -rf $DIR_INSTALL/web/acc/manager/* $DIR_ACC/manager/
732
	chown -R apache:apache $DIR_ACC/manager/
741
	chown -R apache:apache $DIR_ACC/manager/
733
# Modification des fichiers de configuration
742
# Modification des fichiers de configuration
734
	[ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default
743
	[ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default
735
	$SED "s?^general_domain:.*?general_domain: $DOMAIN?g" /etc/freeradius-web/admin.conf
744
	$SED "s?^general_domain:.*?general_domain: $DOMAIN?g" /etc/freeradius-web/admin.conf
736
	$SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf
745
	$SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf
737
	$SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf
746
	$SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf
738
	$SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf
747
	$SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf
739
	$SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf
748
	$SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf
740
	$SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf
749
	$SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf
741
	$SED "s?^general_finger_type.*?# general_finger_type: snmp?g" /etc/freeradius-web/admin.conf
750
	$SED "s?^general_finger_type.*?# general_finger_type: snmp?g" /etc/freeradius-web/admin.conf
742
	$SED "s?^general_stats_use_totacct.*?general_stats_use_totacct: yes?g" /etc/freeradius-web/admin.conf
751
	$SED "s?^general_stats_use_totacct.*?general_stats_use_totacct: yes?g" /etc/freeradius-web/admin.conf
743
	$SED "s?^general_charset.*?general_charset: utf8?g" /etc/freeradius-web/admin.conf
752
	$SED "s?^general_charset.*?general_charset: utf8?g" /etc/freeradius-web/admin.conf
744
	[ -e /etc/freeradius-web/config.php.default ] || cp /etc/freeradius-web/config.php /etc/freeradius-web/config.php.default
753
	[ -e /etc/freeradius-web/config.php.default ] || cp /etc/freeradius-web/config.php /etc/freeradius-web/config.php.default
745
	cp -f $DIR_CONF/freeradiusweb-config.php /etc/freeradius-web/config.php
754
	cp -f $DIR_CONF/freeradiusweb-config.php /etc/freeradius-web/config.php
746
	cat <<EOF > /etc/freeradius-web/naslist.conf
755
	cat <<EOF > /etc/freeradius-web/naslist.conf
747
nas1_name: alcasar.%{general_domain}
756
nas1_name: alcasar.%{general_domain}
748
nas1_model: Portail captif
757
nas1_model: Portail captif
749
nas1_ip: $PRIVATE_IP
758
nas1_ip: $PRIVATE_IP
750
nas1_port_num: 0
759
nas1_port_num: 0
751
nas1_community: public
760
nas1_community: public
752
EOF
761
EOF
753
# Modification des attributs visibles lors de la création d'un usager ou d'un groupe
762
# Modification des attributs visibles lors de la création d'un usager ou d'un groupe
754
	[ -e /etc/freeradius-web/user_edit.attrs.default ] || mv /etc/freeradius-web/user_edit.attrs /etc/freeradius-web/user_edit.attrs.default
763
	[ -e /etc/freeradius-web/user_edit.attrs.default ] || mv /etc/freeradius-web/user_edit.attrs /etc/freeradius-web/user_edit.attrs.default
755
	cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs
764
	cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs
756
# Ajout du mappage des attributs chillispot
765
# Ajout du mappage des attributs chillispot
757
	[ -e /etc/freeradius-web/sql.attrmap.default ] || mv /etc/freeradius-web/sql.attrmap /etc/freeradius-web/sql.attrmap.default
766
	[ -e /etc/freeradius-web/sql.attrmap.default ] || mv /etc/freeradius-web/sql.attrmap /etc/freeradius-web/sql.attrmap.default
758
	cp -f $DIR_CONF/sql.attrmap /etc/freeradius-web/sql.attrmap
767
	cp -f $DIR_CONF/sql.attrmap /etc/freeradius-web/sql.attrmap
759
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port)
768
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port)
760
	[ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default
769
	[ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default
761
	$SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs
770
	$SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs
762
	$SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs
771
	$SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs
763
	chown -R apache:apache /etc/freeradius-web
772
	chown -R apache:apache /etc/freeradius-web
764
# Ajout de l'alias vers la page de "changement de mot de passe usager"
773
# Ajout de l'alias vers la page de "changement de mot de passe usager"
765
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
774
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
766
<Directory $DIR_WEB/pass>
775
<Directory $DIR_WEB/pass>
767
	SSLRequireSSL
776
	SSLRequireSSL
768
	AllowOverride None
777
	AllowOverride None
769
	Order deny,allow
778
	Order deny,allow
770
	Deny from all
779
	Deny from all
771
	Allow from 127.0.0.1
780
	Allow from 127.0.0.1
772
	Allow from $PRIVATE_NETWORK_MASK
781
	Allow from $PRIVATE_NETWORK_MASK
773
	ErrorDocument 404 https://$HOSTNAME
782
	ErrorDocument 404 https://$HOSTNAME
774
</Directory>
783
</Directory>
775
EOF
784
EOF
776
	echo "- User change password URL : https://$HOSTNAME/pass/" >> $FIC_PARAM
785
	echo "- User change password URL : https://$HOSTNAME/pass/" >> $FIC_PARAM
777
} # End of param_web_radius ()
786
} # End of param_web_radius ()
778
 
787
 
779
##########################################################################################
788
##########################################################################################
780
##			Fonction param_chilli						##
789
##			Fonction param_chilli						##
781
## - Paramètrage du fichier d'initialisation et de configuration de coova-chilli	##
790
## - Paramètrage du fichier d'initialisation et de configuration de coova-chilli	##
782
## - Paramètrage de la page d'authentification (intercept.php)				##
791
## - Paramètrage de la page d'authentification (intercept.php)				##
783
##########################################################################################
792
##########################################################################################
784
param_chilli ()
793
param_chilli ()
785
{
794
{
786
# modification du fichier d'initialisation
795
# modification du fichier d'initialisation
787
	[ -e /etc/init.d/chilli.default ] || cp /etc/init.d/chilli /etc/init.d/chilli.default
796
	[ -e /etc/init.d/chilli.default ] || cp /etc/init.d/chilli /etc/init.d/chilli.default
788
	# configuration d'eth1 (utile pour dnsmasq))
797
	# configuration d'eth1 (utile pour dnsmasq))
789
	$SED "s?ifconfig.*?ifconfig \$HS_LANIF $PRIVATE_IP?g" /etc/init.d/chilli
798
	$SED "s?ifconfig.*?ifconfig \$HS_LANIF $PRIVATE_IP?g" /etc/init.d/chilli
790
	# ajout de la fonction 'status' (utile pour la gestion du process)
799
	# ajout de la fonction 'status' (utile pour la gestion du process)
791
	$SED "/^.*functions/i. /etc/init.d/functions" /etc/init.d/chilli
800
	$SED "/^.*functions/i. /etc/init.d/functions" /etc/init.d/chilli
792
	$SED "/^[\t ]*stop)/i\    status)\n        status chilli\n        RETVAL=$?\n        ;;\n" /etc/init.d/chilli
801
	$SED "/^[\t ]*stop)/i\    status)\n        status chilli\n        RETVAL=$?\n        ;;\n" /etc/init.d/chilli
793
	# insertion d'une tempo sur le 'restart' pour permettre à tun0 d'être libérée
802
	# insertion d'une tempo sur le 'restart' pour permettre à tun0 d'être libérée
794
	$SED "/^[\t ]*\$0 start/i\        sleep 2" /etc/init.d/chilli
803
	$SED "/^[\t ]*\$0 start/i\        sleep 2" /etc/init.d/chilli
795
	# suppression des fonctions 'writeconfig' et 'radiusconfig'
804
	# suppression des fonctions 'writeconfig' et 'radiusconfig'
796
	$SED "/writeconfig/d" /etc/init.d/chilli
805
	$SED "/writeconfig/d" /etc/init.d/chilli
797
	$SED "/radiusconfig/d" /etc/init.d/chilli
806
	$SED "/radiusconfig/d" /etc/init.d/chilli
798
	# suppression de warning disgracieux
807
	# suppression de warning disgracieux
799
	$SED "s?which start-stop-daemon?which start-stop-daemon 2>/dev/null?g" /etc/init.d/chilli
808
	$SED "s?which start-stop-daemon?which start-stop-daemon 2>/dev/null?g" /etc/init.d/chilli
800
# création du fichier de conf
809
# création du fichier de conf
801
	[ -e /etc/chilli.conf.default ] || cp /etc/chilli.conf /etc/chilli.conf.default
810
	[ -e /etc/chilli.conf.default ] || cp /etc/chilli.conf /etc/chilli.conf.default
802
	cat <<EOF > /etc/chilli.conf
811
	cat <<EOF > /etc/chilli.conf
803
# coova config for ALCASAR
812
# coova config for ALCASAR
804
cmdsocket	/var/run/chilli.sock
813
cmdsocket	/var/run/chilli.sock
805
unixipc		chilli.eth1.ipc
814
unixipc		chilli.eth1.ipc
806
pidfile		/var/run/chilli.eth1.pid
815
pidfile		/var/run/chilli.eth1.pid
807
net		$PRIVATE_NETWORK_MASK
816
net		$PRIVATE_NETWORK_MASK
808
dhcpif		$INTIF
817
dhcpif		$INTIF
809
#nodynip
818
#nodynip
810
dynip		$PRIVATE_DYN_IP
819
dynip		$PRIVATE_DYN_IP
811
statip		$PRIVATE_STAT_IP
820
statip		$PRIVATE_STAT_IP
812
ethers		$DIR_DEST_ETC/alcasar-ethers
821
ethers		$DIR_DEST_ETC/alcasar-ethers
813
domain		localdomain
822
domain		localdomain
814
dns1		$PRIVATE_IP
823
dns1		$PRIVATE_IP
815
dns2		$PRIVATE_IP
824
dns2		$PRIVATE_IP
816
uamlisten	$PRIVATE_IP
825
uamlisten	$PRIVATE_IP
817
uamport		3990
826
uamport		3990
818
macallowlocal
827
macallowlocal
819
locationname	$HOSTNAME
828
locationname	$HOSTNAME
820
radiusserver1	127.0.0.1
829
radiusserver1	127.0.0.1
821
radiusserver2	127.0.0.1
830
radiusserver2	127.0.0.1
822
radiussecret	$secretradius
831
radiussecret	$secretradius
823
radiusauthport	1812
832
radiusauthport	1812
824
radiusacctport	1813
833
radiusacctport	1813
825
uamserver	https://$HOSTNAME/intercept.php
834
uamserver	https://$HOSTNAME/intercept.php
826
radiusnasid	$HOSTNAME
835
radiusnasid	$HOSTNAME
827
uamsecret	$secretuam
836
uamsecret	$secretuam
828
coaport		3799
837
coaport		3799
829
include		$DIR_DEST_ETC/alcasar-uamallowed
838
include		$DIR_DEST_ETC/alcasar-uamallowed
830
include		$DIR_DEST_ETC/alcasar-uamdomain
839
include		$DIR_DEST_ETC/alcasar-uamdomain
831
include		$DIR_DEST_ETC/alcasar-macallowed
840
include		$DIR_DEST_ETC/alcasar-macallowed
832
EOF
841
EOF
833
# création du fichier d'allocation d'adresses IP statiques
842
# création du fichier d'allocation d'adresses IP statiques
834
	touch $DIR_DEST_ETC/alcasar-ethers
843
	touch $DIR_DEST_ETC/alcasar-ethers
835
# création des fichiers de sites, d'urls et d'adresses MAC de confiance
844
# création des fichiers de sites, d'urls et d'adresses MAC de confiance
836
	echo -e "uamallowed=\"\"" > $DIR_DEST_ETC/alcasar-uamallowed
845
	echo -e "uamallowed=\"\"" > $DIR_DEST_ETC/alcasar-uamallowed
837
	echo -e "uamdomain=\"\"" > $DIR_DEST_ETC/alcasar-uamdomain
846
	echo -e "uamdomain=\"\"" > $DIR_DEST_ETC/alcasar-uamdomain
838
	touch $DIR_DEST_ETC/alcasar-macallowed
847
	touch $DIR_DEST_ETC/alcasar-macallowed
839
	chown root:apache $DIR_DEST_ETC/alcasar-*
848
	chown root:apache $DIR_DEST_ETC/alcasar-*
840
	chmod 660 $DIR_DEST_ETC/alcasar-*
849
	chmod 660 $DIR_DEST_ETC/alcasar-*
841
	echo "- User disconnect URL : http://alcasar:3990/logoff" >> $FIC_PARAM
850
	echo "- User disconnect URL : http://alcasar:3990/logoff" >> $FIC_PARAM
842
# Configuration des fichier WEB d'interception (secret partagé avec coova-chilli et nom d'organisme)
851
# Configuration des fichier WEB d'interception (secret partagé avec coova-chilli et nom d'organisme)
843
	$SED "s?^\$uamsecret =.*?\$uamsecret = \"$secretuam\";?g" $DIR_WEB/intercept.php
852
	$SED "s?^\$uamsecret =.*?\$uamsecret = \"$secretuam\";?g" $DIR_WEB/intercept.php
844
	$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php
853
	$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php
845
	$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php $DIR_WEB/status.php
854
	$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php $DIR_WEB/status.php
846
}  # End of param_chilli ()
855
}  # End of param_chilli ()
847
 
856
 
848
##########################################################
857
##########################################################
849
##			Fonction param_squid		##
858
##			Fonction param_squid		##
850
## - Paramètrage du proxy 'squid' en mode 'cache'	##
859
## - Paramètrage du proxy 'squid' en mode 'cache'	##
851
## - Initialisation de la base de données  		##
860
## - Initialisation de la base de données  		##
852
##########################################################
861
##########################################################
853
param_squid ()
862
param_squid ()
854
{
863
{
855
# paramètrage de Squid (connecté en série derrière Dansguardian)
864
# paramètrage de Squid (connecté en série derrière Dansguardian)
856
	[ -e /etc/squid/squid.conf.default  ] || cp /etc/squid/squid.conf /etc/squid/squid.conf.default
865
	[ -e /etc/squid/squid.conf.default  ] || cp /etc/squid/squid.conf /etc/squid/squid.conf.default
857
# suppression des références 'localnet', 'icp', 'htcp' et 'always_direct'
866
# suppression des références 'localnet', 'icp', 'htcp' et 'always_direct'
858
	$SED "/^acl localnet/d" /etc/squid/squid.conf
867
	$SED "/^acl localnet/d" /etc/squid/squid.conf
859
	$SED "/^icp_access allow localnet/d" /etc/squid/squid.conf
868
	$SED "/^icp_access allow localnet/d" /etc/squid/squid.conf
860
	$SED "/^icp_port 3130/d" /etc/squid/squid.conf
869
	$SED "/^icp_port 3130/d" /etc/squid/squid.conf
861
	$SED "/^http_access allow localnet/d" /etc/squid/squid.conf
870
	$SED "/^http_access allow localnet/d" /etc/squid/squid.conf
862
	$SED "/^htcp_access allow localnet/d" /etc/squid/squid.conf
871
	$SED "/^htcp_access allow localnet/d" /etc/squid/squid.conf
863
	$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
872
	$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
864
# mode 'proxy transparent local'
873
# mode 'proxy transparent local'
865
	$SED "s?^http_port.*?http_port 127.0.0.1:3128 transparent?g" /etc/squid/squid.conf
874
	$SED "s?^http_port.*?http_port 127.0.0.1:3128 transparent?g" /etc/squid/squid.conf
866
# emplacement et formatage standard des logs
875
# emplacement et formatage standard des logs
867
	echo '#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh' >> /etc/squid/squid.conf
876
	echo '#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh' >> /etc/squid/squid.conf
868
	echo '#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Ag' >> /etc/squid/squid.conf
877
	echo '#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Ag' >> /etc/squid/squid.conf
869
        echo "access_log /var/log/squid/access.log" >> /etc/squid/squid.conf
878
        echo "access_log /var/log/squid/access.log" >> /etc/squid/squid.conf
870
# compatibilité des logs avec awstats
879
# compatibilité des logs avec awstats
871
	echo "emulate_httpd_log on" >> /etc/squid/squid.conf
880
	echo "emulate_httpd_log on" >> /etc/squid/squid.conf
872
# pour éviter les message d'erreur lors des changement d'état des interfaces réseaux
881
# pour éviter les message d'erreur lors des changement d'état des interfaces réseaux
873
	$SED "s?^SQUID_AUTO_RELOAD.*?SQUID_AUTO_RELOAD=no?g" /etc/sysconfig/squid
882
	$SED "s?^SQUID_AUTO_RELOAD.*?SQUID_AUTO_RELOAD=no?g" /etc/sysconfig/squid
874
# Initialisation du cache de Squid
883
# Initialisation du cache de Squid
875
	/usr/sbin/squid -z
884
	/usr/sbin/squid -z
876
}  # End of param_squid ()
885
}  # End of param_squid ()
877
	
886
	
878
##################################################################
887
##################################################################
879
##		Fonction param_dansguardian			##
888
##		Fonction param_dansguardian			##
880
## - Paramètrage du gestionnaire de contenu Dansguardian	##
889
## - Paramètrage du gestionnaire de contenu Dansguardian	##
881
##################################################################
890
##################################################################
882
param_dansguardian ()
891
param_dansguardian ()
883
{
892
{
884
	DIR_DG="/etc/dansguardian"
893
	DIR_DG="/etc/dansguardian"
885
	mkdir /var/dansguardian
894
	mkdir /var/dansguardian
886
	chown dansguardian /var/dansguardian
895
	chown dansguardian /var/dansguardian
887
	[ -e $DIR_DG/dansguardian.conf.default ] || cp $DIR_DG/dansguardian.conf $DIR_DG/dansguardian.conf.default
896
	[ -e $DIR_DG/dansguardian.conf.default ] || cp $DIR_DG/dansguardian.conf $DIR_DG/dansguardian.conf.default
888
# Le filtrage est désactivé par défaut 
897
# Le filtrage est désactivé par défaut 
889
	$SED "s/^reportinglevel =.*/reportinglevel = -1/g" $DIR_DG/dansguardian.conf
898
	$SED "s/^reportinglevel =.*/reportinglevel = -1/g" $DIR_DG/dansguardian.conf
890
# la page d'interception est en français
899
# la page d'interception est en français
891
	$SED "s?^language =.*?language = french?g" $DIR_DG/dansguardian.conf
900
	$SED "s?^language =.*?language = french?g" $DIR_DG/dansguardian.conf
892
# on limite l'écoute de Dansguardian côté LAN
901
# on limite l'écoute de Dansguardian côté LAN
893
	$SED "s?^filterip.*?filterip = $PRIVATE_IP?g" $DIR_DG/dansguardian.conf
902
	$SED "s?^filterip.*?filterip = $PRIVATE_IP?g" $DIR_DG/dansguardian.conf
894
# on chaîne Dansguardian au proxy antivirus HAVP
903
# on chaîne Dansguardian au proxy antivirus HAVP
895
	$SED "s?^proxyport.*?proxyport = 8090?g" $DIR_DG/dansguardian.conf
904
	$SED "s?^proxyport.*?proxyport = 8090?g" $DIR_DG/dansguardian.conf
896
# on remplace la page d'interception (template)
905
# on remplace la page d'interception (template)
897
	cp -f $DIR_CONF/template.html /usr/share/dansguardian/languages/ukenglish/
906
	cp -f $DIR_CONF/template.html /usr/share/dansguardian/languages/ukenglish/
898
	cp -f $DIR_CONF/template-fr.html /usr/share/dansguardian/languages/french/template.html
907
	cp -f $DIR_CONF/template-fr.html /usr/share/dansguardian/languages/french/template.html
899
# on ne loggue que les deny (pour le reste, on a squid)
908
# on ne loggue que les deny (pour le reste, on a squid)
900
	$SED "s?^loglevel =.*?loglevel = 1?g" $DIR_DG/dansguardian.conf
909
	$SED "s?^loglevel =.*?loglevel = 1?g" $DIR_DG/dansguardian.conf
901
# on désactive par défaut le controle de contenu des pages html
910
# on désactive par défaut le controle de contenu des pages html
902
	$SED "s?^weightedphrasemode =.*?weightedphrasemode = 0?g" $DIR_DG/dansguardian.conf
911
	$SED "s?^weightedphrasemode =.*?weightedphrasemode = 0?g" $DIR_DG/dansguardian.conf
903
	cp $DIR_DG/lists/bannedphraselist $DIR_DG/lists/bannedphraselist.default
912
	cp $DIR_DG/lists/bannedphraselist $DIR_DG/lists/bannedphraselist.default
904
	$SED "s?^[^#]?#&?g" $DIR_DG/lists/bannedphraselist # (on commente ce qui ne l'est pas)
913
	$SED "s?^[^#]?#&?g" $DIR_DG/lists/bannedphraselist # (on commente ce qui ne l'est pas)
905
# on désactive par défaut le contrôle d'URL par expressions régulières
914
# on désactive par défaut le contrôle d'URL par expressions régulières
906
	cp $DIR_DG/lists/bannedregexpurllist $DIR_DG/lists/bannedregexpurllist.default
915
	cp $DIR_DG/lists/bannedregexpurllist $DIR_DG/lists/bannedregexpurllist.default
907
	$SED "s?^[^#]?#&?g" $DIR_DG/lists/bannedregexpurllist # (on commente ce qui ne l'est pas)
916
	$SED "s?^[^#]?#&?g" $DIR_DG/lists/bannedregexpurllist # (on commente ce qui ne l'est pas)
908
# on désactive par défaut le contrôle de téléchargement de fichiers
917
# on désactive par défaut le contrôle de téléchargement de fichiers
909
	[ -e $DIR_DG/dansguardianf1.conf.default ] || cp $DIR_DG/dansguardianf1.conf $DIR_DG/dansguardianf1.conf.default
918
	[ -e $DIR_DG/dansguardianf1.conf.default ] || cp $DIR_DG/dansguardianf1.conf $DIR_DG/dansguardianf1.conf.default
910
	$SED "s?^blockdownloads =.*?blockdownloads = off?g" $DIR_DG/dansguardianf1.conf
919
	$SED "s?^blockdownloads =.*?blockdownloads = off?g" $DIR_DG/dansguardianf1.conf
911
	[ -e $DIR_DG/lists/bannedextensionlist.default ] || mv $DIR_DG/lists/bannedextensionlist $DIR_DG/lists/bannedextensionlist.default
920
	[ -e $DIR_DG/lists/bannedextensionlist.default ] || mv $DIR_DG/lists/bannedextensionlist $DIR_DG/lists/bannedextensionlist.default
912
	[ -e $DIR_DG/lists/bannedmimetypelist.default ] || mv $DIR_DG/lists/bannedmimetypelist $DIR_DG/lists/bannedmimetypelist.default
921
	[ -e $DIR_DG/lists/bannedmimetypelist.default ] || mv $DIR_DG/lists/bannedmimetypelist $DIR_DG/lists/bannedmimetypelist.default
913
	touch $DIR_DG/lists/bannedextensionlist
922
	touch $DIR_DG/lists/bannedextensionlist
914
	touch $DIR_DG/lists/bannedmimetypelist
923
	touch $DIR_DG/lists/bannedmimetypelist
915
# 'Safesearch' regex actualisation
924
# 'Safesearch' regex actualisation
916
	$SED "s?images?search?g" $DIR_DG/lists/urlregexplist
925
	$SED "s?images?search?g" $DIR_DG/lists/urlregexplist
917
# empty LAN IP list that won't be WEB filtered
926
# empty LAN IP list that won't be WEB filtered
918
	[ -e $DIR_DG/lists/exceptioniplist.default ] || mv $DIR_DG/lists/exceptioniplist $DIR_DG/lists/exceptioniplist.default
927
	[ -e $DIR_DG/lists/exceptioniplist.default ] || mv $DIR_DG/lists/exceptioniplist $DIR_DG/lists/exceptioniplist.default
919
	touch $DIR_DG/lists/exceptioniplist
928
	touch $DIR_DG/lists/exceptioniplist
920
# Keep a copy of URL & domain filter configuration files
929
# Keep a copy of URL & domain filter configuration files
921
	[ -e $DIR_DG/lists/bannedsitelist.default ] || mv $DIR_DG/lists/bannedsitelist $DIR_DG/lists/bannedsitelist.default
930
	[ -e $DIR_DG/lists/bannedsitelist.default ] || mv $DIR_DG/lists/bannedsitelist $DIR_DG/lists/bannedsitelist.default
922
	[ -e $DIR_DG/lists/bannedurllist.default ] || mv $DIR_DG/lists/bannedurllist $DIR_DG/lists/bannedurllist.default
931
	[ -e $DIR_DG/lists/bannedurllist.default ] || mv $DIR_DG/lists/bannedurllist $DIR_DG/lists/bannedurllist.default
923
} # End of param_dansguardian ()
932
} # End of param_dansguardian ()
924
 
933
 
925
##################################################################
934
##################################################################
926
##			Fonction antivirus			##
935
##			Fonction antivirus			##
927
## - configuration havp + libclamav				##
936
## - configuration havp + libclamav				##
928
##################################################################
937
##################################################################
929
antivirus ()		
938
antivirus ()		
930
{
939
{
931
# création de l'usager 'havp'
940
# création de l'usager 'havp'
932
	havp_exist=`grep havp /etc/passwd|wc -l`
941
	havp_exist=`grep havp /etc/passwd|wc -l`
933
	if [ "$havp_exist" == "1" ]
942
	if [ "$havp_exist" == "1" ]
934
	then
943
	then
935
	      userdel -r havp 2>/dev/null
944
	      userdel -r havp 2>/dev/null
936
	fi
945
	fi
937
	groupadd -f havp
946
	groupadd -f havp
938
	useradd -M -g havp havp
947
	useradd -M -g havp havp
939
	mkdir -p /var/tmp/havp /var/log/havp
948
	mkdir -p /var/tmp/havp /var/log/havp
940
	chown -R havp /var/tmp/havp /var/log/havp /var/run/havp
949
	chown -R havp /var/tmp/havp /var/log/havp /var/run/havp
941
	$SED "/$HAVP_BIN -c $HAVP_CONFIG/i chown -R havp:havp \/var\/tmp\/havp" /etc/init.d/havp
950
	$SED "/$HAVP_BIN -c $HAVP_CONFIG/i chown -R havp:havp \/var\/tmp\/havp" /etc/init.d/havp
942
# configuration d'HAVP
951
# configuration d'HAVP
943
	[ -e /etc/havp/havp.config.default ] || cp /etc/havp/havp.config /etc/havp/havp.config.default
952
	[ -e /etc/havp/havp.config.default ] || cp /etc/havp/havp.config /etc/havp/havp.config.default
944
	$SED "/^REMOVETHISLINE/d" /etc/havp/havp.config
953
	$SED "/^REMOVETHISLINE/d" /etc/havp/havp.config
945
	$SED "s?^# PARENTPROXY.*?PARENTPROXY 127.0.0.1?g" /etc/havp/havp.config
954
	$SED "s?^# PARENTPROXY.*?PARENTPROXY 127.0.0.1?g" /etc/havp/havp.config
946
	$SED "s?^# PARENTPORT.*?PARENTPORT 3128?g" /etc/havp/havp.config
955
	$SED "s?^# PARENTPORT.*?PARENTPORT 3128?g" /etc/havp/havp.config
947
	$SED "s?^# PORT.*?PORT 8090?g" /etc/havp/havp.config
956
	$SED "s?^# PORT.*?PORT 8090?g" /etc/havp/havp.config
948
	$SED "s?^# BIND_ADDRESS.*?BIND_ADDRESS 127.0.0.1?g" /etc/havp/havp.config
957
	$SED "s?^# BIND_ADDRESS.*?BIND_ADDRESS 127.0.0.1?g" /etc/havp/havp.config
949
	$SED "s?^ENABLECLAMLIB.*?ENABLECLAMLIB true?g" /etc/havp/havp.config
958
	$SED "s?^ENABLECLAMLIB.*?ENABLECLAMLIB true?g" /etc/havp/havp.config
950
	$SED "s?^# LOG_OKS.*?LOG_OKS false?g" /etc/havp/havp.config
959
	$SED "s?^# LOG_OKS.*?LOG_OKS false?g" /etc/havp/havp.config
951
# remplacement du fichier d'initialisation
960
# remplacement du fichier d'initialisation
952
	[ -e /etc/init.d/havp.default ] || cp /etc/init.d/havp /etc/init.d/havp.default
961
	[ -e /etc/init.d/havp.default ] || cp /etc/init.d/havp /etc/init.d/havp.default
953
	cp -f $DIR_CONF/havp-init /etc/init.d/havp
962
	cp -f $DIR_CONF/havp-init /etc/init.d/havp
954
# on remplace la page d'interception (template)
963
# on remplace la page d'interception (template)
955
	cp -f $DIR_CONF/virus-fr.html /etc/havp/templates/fr/virus.html
964
	cp -f $DIR_CONF/virus-fr.html /etc/havp/templates/fr/virus.html
956
	cp -f $DIR_CONF/virus-en.html /etc/havp/templates/en/virus.html
965
	cp -f $DIR_CONF/virus-en.html /etc/havp/templates/en/virus.html
957
# automatisation de la mise à jour de la base antivirale (toutes les 2 heures)
966
# automatisation de la mise à jour de la base antivirale (toutes les 2 heures)
958
	$SED "s?^Checks.*?Checks 12?g" /etc/freshclam.conf
967
	$SED "s?^Checks.*?Checks 12?g" /etc/freshclam.conf
959
	$SED "s?^NotifyClamd.*?# NotifyClamd /etc/clamd.conf?g" /etc/freshclam.conf
968
	$SED "s?^NotifyClamd.*?# NotifyClamd /etc/clamd.conf?g" /etc/freshclam.conf
960
# on supprime les fichiers '*.cld' (cas d'une mise à jour)
969
# on supprime les fichiers '*.cld' (cas d'une mise à jour)
961
	rm -f /var/lib/clamav/*.cld
970
	rm -f /var/lib/clamav/*.cld
962
}
971
}
963
 
972
 
964
##################################################################################
973
##################################################################################
965
##			param_ulogd function					##
974
##			param_ulogd function					##
966
## - Ulog config for multi-log files 						##
975
## - Ulog config for multi-log files 						##
967
##################################################################################
976
##################################################################################
968
param_ulogd ()
977
param_ulogd ()
969
{
978
{
970
# Three instances of ulogd (three different logfiles)
979
# Three instances of ulogd (three different logfiles)
971
	[ -d /var/log/firewall ] || mkdir -p /var/log/firewall
980
	[ -d /var/log/firewall ] || mkdir -p /var/log/firewall
972
	nl=1
981
	nl=1
973
	for log_type in tracability ssh ext-access
982
	for log_type in tracability ssh ext-access
974
	do
983
	do
975
		[ -e /var/log/firewall/$log_type.log ] || touch /var/log/firewall/$log_type.log
984
		[ -e /var/log/firewall/$log_type.log ] || touch /var/log/firewall/$log_type.log
976
		cp -f /etc/ulogd.conf /etc/ulogd-$log_type.conf
985
		cp -f /etc/ulogd.conf /etc/ulogd-$log_type.conf
977
		$SED "s?^nlgroup=.*?nlgroup=$nl?g" /etc/ulogd-$log_type.conf 
986
		$SED "s?^nlgroup=.*?nlgroup=$nl?g" /etc/ulogd-$log_type.conf 
978
		$SED '/OPRINT/,$d' /etc/ulogd-$log_type.conf
987
		$SED '/OPRINT/,$d' /etc/ulogd-$log_type.conf
979
		cat << EOF >> /etc/ulogd-$log_type.conf
988
		cat << EOF >> /etc/ulogd-$log_type.conf
980
[LOGEMU]
989
[LOGEMU]
981
file="/var/log/firewall/$log_type.log"
990
file="/var/log/firewall/$log_type.log"
982
sync=1
991
sync=1
983
EOF
992
EOF
984
		nl=`expr $nl + 1`
993
		nl=`expr $nl + 1`
985
	done
994
	done
986
	chown -R root:apache /var/log/firewall
995
	chown -R root:apache /var/log/firewall
987
	chmod 750 /var/log/firewall
996
	chmod 750 /var/log/firewall
988
	chmod 640 /var/log/firewall/*
997
	chmod 640 /var/log/firewall/*
989
	[ -e /etc/init.d/ulogd.default ] || cp /etc/init.d/ulogd /etc/init.d/ulogd.default
998
	[ -e /etc/init.d/ulogd.default ] || cp /etc/init.d/ulogd /etc/init.d/ulogd.default
990
	cp -f $DIR_CONF/ulogd-init /etc/init.d/ulogd
999
	cp -f $DIR_CONF/ulogd-init /etc/init.d/ulogd
991
}  # End of param_ulogd ()
1000
}  # End of param_ulogd ()
992
 
1001
 
993
##################################################################################
1002
##################################################################################
994
##				Fonction param_awstats				##
1003
##				Fonction param_awstats				##
995
## - configuration de l'interface des logs de consultation WEB (AWSTAT)		##
1004
## - configuration de l'interface des logs de consultation WEB (AWSTAT)		##
996
##################################################################################
1005
##################################################################################
997
param_awstats()
1006
param_awstats()
998
{
1007
{
999
	cp -rf /usr/share/awstats/www/ $DIR_ACC/awstats/
1008
	cp -rf /usr/share/awstats/www/ $DIR_ACC/awstats/
1000
	chown -R apache:apache $DIR_ACC/awstats
1009
	chown -R apache:apache $DIR_ACC/awstats
1001
	cp /etc/awstats/awstats.conf /etc/awstats/awstats.conf.default
1010
	cp /etc/awstats/awstats.conf /etc/awstats/awstats.conf.default
1002
	$SED "s?^LogFile=.*?LogFile=\"/var/log/squid/access.log\"?g" /etc/awstats/awstats.conf
1011
	$SED "s?^LogFile=.*?LogFile=\"/var/log/squid/access.log\"?g" /etc/awstats/awstats.conf
1003
	$SED "s?^LogFormat=.*?LogFormat=4?g" /etc/awstats/awstats.conf
1012
	$SED "s?^LogFormat=.*?LogFormat=4?g" /etc/awstats/awstats.conf
1004
	$SED "s?^SiteDomain=.*?SiteDomain=\"$HOSTNAME\"?g" /etc/awstats/awstats.conf
1013
	$SED "s?^SiteDomain=.*?SiteDomain=\"$HOSTNAME\"?g" /etc/awstats/awstats.conf
1005
	$SED "s?^HostAliases=.*?HostAliases=\"$PRIVATE_IP\"?g" /etc/awstats/awstats.conf
1014
	$SED "s?^HostAliases=.*?HostAliases=\"$PRIVATE_IP\"?g" /etc/awstats/awstats.conf
1006
	$SED "s?^DNSLookup=.*?DNSLookup=0?g" /etc/awstats/awstats.conf
1015
	$SED "s?^DNSLookup=.*?DNSLookup=0?g" /etc/awstats/awstats.conf
1007
	$SED "s?^DirData=.*?DirData=\"/var/lib/awstats\"?g" /etc/awstats/awstats.conf
1016
	$SED "s?^DirData=.*?DirData=\"/var/lib/awstats\"?g" /etc/awstats/awstats.conf
1008
	$SED "s?^DirIcons=.*?DirIcons=\"/acc/awstats/icon\"?g" /etc/awstats/awstats.conf
1017
	$SED "s?^DirIcons=.*?DirIcons=\"/acc/awstats/icon\"?g" /etc/awstats/awstats.conf
1009
	$SED "s?^StyleSheet=.*?StyleSheet=\"/css/style.css\"?g" /etc/awstats/awstats.conf
1018
	$SED "s?^StyleSheet=.*?StyleSheet=\"/css/style.css\"?g" /etc/awstats/awstats.conf
1010
	$SED "s?^BuildReportFormat=.*?BuildReportFormat=xhtml?g" /etc/awstats/awstats.conf
1019
	$SED "s?^BuildReportFormat=.*?BuildReportFormat=xhtml?g" /etc/awstats/awstats.conf
1011
	$SED "s?^UseFramesWhenCGI=.*?UseFramesWhenCGI=0?g" /etc/awstats/awstats.conf
1020
	$SED "s?^UseFramesWhenCGI=.*?UseFramesWhenCGI=0?g" /etc/awstats/awstats.conf
1012
	$SED "s?^UseFramesWhenCGI=.*?UseFramesWhenCGI=0?g" /etc/awstats/awstats.conf
1021
	$SED "s?^UseFramesWhenCGI=.*?UseFramesWhenCGI=0?g" /etc/awstats/awstats.conf
1013
	$SED "s?^ShowSummary=.*?ShowSummary=VPHB?g" /etc/awstats/awstats.conf
1022
	$SED "s?^ShowSummary=.*?ShowSummary=VPHB?g" /etc/awstats/awstats.conf
1014
	$SED "s?^ShowSummary=.*?ShowSummary=VPHB?g" /etc/awstats/awstats.conf
1023
	$SED "s?^ShowSummary=.*?ShowSummary=VPHB?g" /etc/awstats/awstats.conf
1015
	$SED "s?^ShowMonthStats=.*?ShowMonthStats=VPHB?g" /etc/awstats/awstats.conf
1024
	$SED "s?^ShowMonthStats=.*?ShowMonthStats=VPHB?g" /etc/awstats/awstats.conf
1016
	$SED "s?^ShowDaysOfMonthStats=.*?ShowDaysOfMonthStats=PHB?g" /etc/awstats/awstats.conf
1025
	$SED "s?^ShowDaysOfMonthStats=.*?ShowDaysOfMonthStats=PHB?g" /etc/awstats/awstats.conf
1017
	$SED "s?^ShowDaysOfWeekStats=.*?ShowDaysOfWeekStats=PHB?g" /etc/awstats/awstats.conf
1026
	$SED "s?^ShowDaysOfWeekStats=.*?ShowDaysOfWeekStats=PHB?g" /etc/awstats/awstats.conf
1018
	$SED "s?^ShowHoursStats=.*?ShowHoursStats=PHB?g" /etc/awstats/awstats.conf
1027
	$SED "s?^ShowHoursStats=.*?ShowHoursStats=PHB?g" /etc/awstats/awstats.conf
1019
	$SED "s?^ShowDomainsStats=.*?ShowDomainsStats=0?g" /etc/awstats/awstats.conf
1028
	$SED "s?^ShowDomainsStats=.*?ShowDomainsStats=0?g" /etc/awstats/awstats.conf
1020
	$SED "s?^ShowHostsStats=.*?ShowHostsStats=0?g" /etc/awstats/awstats.conf
1029
	$SED "s?^ShowHostsStats=.*?ShowHostsStats=0?g" /etc/awstats/awstats.conf
1021
	$SED "s?^ShowAuthenticatedUsers=.*?ShowAuthenticatedUsers=0?g" /etc/awstats/awstats.conf
1030
	$SED "s?^ShowAuthenticatedUsers=.*?ShowAuthenticatedUsers=0?g" /etc/awstats/awstats.conf
1022
	$SED "s?^ShowRobotsStats=.*?ShowRobotsStats=0?g" /etc/awstats/awstats.conf
1031
	$SED "s?^ShowRobotsStats=.*?ShowRobotsStats=0?g" /etc/awstats/awstats.conf
1023
	$SED "s?^ShowFileTypesStats=.*?ShowFileTypesStats=0?g" /etc/awstats/awstats.conf
1032
	$SED "s?^ShowFileTypesStats=.*?ShowFileTypesStats=0?g" /etc/awstats/awstats.conf
1024
	$SED "s?^ShowFileSizesStats=.*?ShowFileSizesStats=0?g" /etc/awstats/awstats.conf
1033
	$SED "s?^ShowFileSizesStats=.*?ShowFileSizesStats=0?g" /etc/awstats/awstats.conf
1025
	$SED "s?^ShowOSStats=.*?ShowOSStats=0?g" /etc/awstats/awstats.conf
1034
	$SED "s?^ShowOSStats=.*?ShowOSStats=0?g" /etc/awstats/awstats.conf
1026
	$SED "s?^ShowScreenSizeStats=.*?ShowScreenSizeStats=0?g" /etc/awstats/awstats.conf
1035
	$SED "s?^ShowScreenSizeStats=.*?ShowScreenSizeStats=0?g" /etc/awstats/awstats.conf
1027
 
1036
 
1028
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
1037
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
1029
<Directory $DIR_ACC/awstats>
1038
<Directory $DIR_ACC/awstats>
1030
	SSLRequireSSL
1039
	SSLRequireSSL
1031
	Options ExecCGI
1040
	Options ExecCGI
1032
	AddHandler cgi-script .pl
1041
	AddHandler cgi-script .pl
1033
	DirectoryIndex awstats.pl
1042
	DirectoryIndex awstats.pl
1034
	Order deny,allow
1043
	Order deny,allow
1035
	Deny from all
1044
	Deny from all
1036
	Allow from 127.0.0.1
1045
	Allow from 127.0.0.1
1037
	Allow from $PRIVATE_NETWORK_MASK
1046
	Allow from $PRIVATE_NETWORK_MASK
1038
	require valid-user
1047
	require valid-user
1039
	AuthType digest
1048
	AuthType digest
1040
	AuthName $HOSTNAME
1049
	AuthName $HOSTNAME
1041
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
1050
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
1042
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
1051
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
1043
	ErrorDocument 404 https://$HOSTNAME/
1052
	ErrorDocument 404 https://$HOSTNAME/
1044
</Directory>
1053
</Directory>
1045
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
1054
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
1046
EOF
1055
EOF
1047
} # End of param_awstats ()
1056
} # End of param_awstats ()
1048
 
1057
 
1049
##########################################################
1058
##########################################################
1050
##		Fonction param_dnsmasq			##
1059
##		Fonction param_dnsmasq			##
1051
##########################################################
1060
##########################################################
1052
param_dnsmasq ()
1061
param_dnsmasq ()
1053
{
1062
{
1054
	[ -d /var/log/dnsmasq ] || mkdir /var/log/dnsmasq
1063
	[ -d /var/log/dnsmasq ] || mkdir /var/log/dnsmasq
1055
	$SED "s?^DHCP_LEASE=.*?DHCP_LEASE=/var/log/dnsmasq/lease.log?g" /etc/sysconfig/dnsmasq # fichier contenant les baux
1064
	$SED "s?^DHCP_LEASE=.*?DHCP_LEASE=/var/log/dnsmasq/lease.log?g" /etc/sysconfig/dnsmasq # fichier contenant les baux
1056
	[ -e /etc/dnsmasq.conf.default ] || cp /etc/dnsmasq.conf /etc/dnsmasq.conf.default
1065
	[ -e /etc/dnsmasq.conf.default ] || cp /etc/dnsmasq.conf /etc/dnsmasq.conf.default
1057
# 1st dnsmasq listen on udp 53 ("dnsmasq - forward"). It's used as dhcp server only if bypass is on.
1066
# 1st dnsmasq listen on udp 53 ("dnsmasq - forward"). It's used as dhcp server only if bypass is on.
1058
	cat << EOF > /etc/dnsmasq.conf 
1067
	cat << EOF > /etc/dnsmasq.conf 
1059
# Configuration file for "dnsmasq in forward mode"
1068
# Configuration file for "dnsmasq in forward mode"
1060
conf-file=$DIR_DEST_ETC/alcasar-dns-name	# zone de definition de noms DNS locaux
1069
conf-file=$DIR_DEST_ETC/alcasar-dns-name	# zone de definition de noms DNS locaux
1061
listen-address=$PRIVATE_IP
1070
listen-address=$PRIVATE_IP
1062
listen-address=127.0.0.1
1071
listen-address=127.0.0.1
1063
no-dhcp-interface=$INTIF
1072
no-dhcp-interface=$INTIF
1064
bind-interfaces
1073
bind-interfaces
1065
cache-size=256
1074
cache-size=256
1066
domain=$DOMAIN
1075
domain=$DOMAIN
1067
domain-needed
1076
domain-needed
1068
expand-hosts
1077
expand-hosts
1069
bogus-priv
1078
bogus-priv
1070
filterwin2k
1079
filterwin2k
1071
server=$DNS1
1080
server=$DNS1
1072
server=$DNS2
1081
server=$DNS2
1073
# le servive DHCP est configuré mais n'est exploité que pour le "bypass"
1082
# le servive DHCP est configuré mais n'est exploité que pour le "bypass"
1074
dhcp-range=$PRIVATE_DYN_FIRST_IP,$PRIVATE_DYN_LAST_IP,$PRIVATE_NETMASK,12h
1083
dhcp-range=$PRIVATE_DYN_FIRST_IP,$PRIVATE_DYN_LAST_IP,$PRIVATE_NETMASK,12h
1075
#dhcp-option=3,1.2.3.4
1084
#dhcp-option=3,1.2.3.4
1076
#dhcp-option=option:router,1.2.3.4
1085
#dhcp-option=option:router,1.2.3.4
1077
#dhcp-option=42,0.0.0.0
1086
#dhcp-option=42,0.0.0.0
1078
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
1087
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
1079
 
1088
 
1080
# Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail>
1089
# Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail>
1081
#dhcp-host=11:22:33:44:55:66,ssic-test,192.168.182.20,255.255.255.0,45m
1090
#dhcp-host=11:22:33:44:55:66,ssic-test,192.168.182.20,255.255.255.0,45m
1082
EOF
1091
EOF
1083
# 2nd dnsmasq listen on udp 54 ("dnsmasq with blackhole")
1092
# 2nd dnsmasq listen on udp 54 ("dnsmasq with blackhole")
1084
	cat << EOF > /etc/dnsmasq-blackhole.conf 
1093
	cat << EOF > /etc/dnsmasq-blackhole.conf 
1085
	# Configuration file for "dnsmasq with blackhole"
1094
	# Configuration file for "dnsmasq with blackhole"
1086
# Inclusion de la blacklist <domains> de Toulouse dans la configuration
1095
# Inclusion de la blacklist <domains> de Toulouse dans la configuration
1087
conf-dir=$DIR_DEST_ETC/alcasar-dnsfilter-enabled
1096
conf-dir=$DIR_DEST_ETC/alcasar-dnsfilter-enabled
1088
conf-file=$DIR_DEST_ETC/alcasar-dns-name	# zone de definition de noms DNS locaux
1097
conf-file=$DIR_DEST_ETC/alcasar-dns-name	# zone de definition de noms DNS locaux
1089
listen-address=$PRIVATE_IP
1098
listen-address=$PRIVATE_IP
1090
port=54
1099
port=54
1091
no-dhcp-interface=$INTIF
1100
no-dhcp-interface=$INTIF
1092
bind-interfaces
1101
bind-interfaces
1093
cache-size=256
1102
cache-size=256
1094
domain=$DOMAIN
1103
domain=$DOMAIN
1095
domain-needed
1104
domain-needed
1096
expand-hosts
1105
expand-hosts
1097
bogus-priv
1106
bogus-priv
1098
filterwin2k
1107
filterwin2k
1099
server=$DNS1
1108
server=$DNS1
1100
server=$DNS2
1109
server=$DNS2
1101
EOF
1110
EOF
1102
# On crée le fichier de résolution locale
1111
# On crée le fichier de résolution locale
1103
cat << EOF > $DIR_DEST_ETC/alcasar-dns-name
1112
cat << EOF > $DIR_DEST_ETC/alcasar-dns-name
1104
# Here you can define your local domain name
1113
# Here you can define your local domain name
1105
# use the /etc/hosts file to define your hosts name
1114
# use the /etc/hosts file to define your hosts name
1106
local=/$DOMAIN/
1115
local=/$DOMAIN/
1107
EOF
1116
EOF
1108
# On modifie le fichier d'initialisattion (lancement et arret de la deuxième instance)
1117
# On modifie le fichier d'initialisattion (lancement et arret de la deuxième instance)
1109
[ -e /etc/init.d/dnsmasq.default ] || cp /etc/init.d/dnsmasq /etc/init.d/dnsmasq.default
1118
[ -e /etc/init.d/dnsmasq.default ] || cp /etc/init.d/dnsmasq /etc/init.d/dnsmasq.default
1110
$SED "/daemon/a \$dnsmasq -C /etc/dnsmasq-blackhole.conf \$OPTIONS" /etc/init.d/dnsmasq
1119
$SED "/daemon/a \$dnsmasq -C /etc/dnsmasq-blackhole.conf \$OPTIONS" /etc/init.d/dnsmasq
1111
$SED "/killproc \$DAEMON_NAME/a killproc \$DAEMON_NAME" /etc/init.d/dnsmasq
1120
$SED "/killproc \$DAEMON_NAME/a killproc \$DAEMON_NAME" /etc/init.d/dnsmasq
1112
} # End dnsmasq
1121
} # End dnsmasq
1113
 
1122
 
1114
##########################################################
1123
##########################################################
1115
##		Fonction BL (BlackList)			##
1124
##		Fonction BL (BlackList)			##
1116
##########################################################
1125
##########################################################
1117
BL ()
1126
BL ()
1118
{
1127
{
1119
# on copie par défaut la BL de toulouse embarqués dans l'archive d'ALCASAR
1128
# on copie par défaut la BL de toulouse embarqués dans l'archive d'ALCASAR
1120
	rm -rf /etc/dansguardian/lists/blacklists
1129
	rm -rf /etc/dansguardian/lists/blacklists
1121
	tar zxf $DIR_CONF/blacklists.tar.gz --directory=/etc/dansguardian/lists/ > /dev/null 2>&1
1130
	tar zxf $DIR_CONF/blacklists.tar.gz --directory=/etc/dansguardian/lists/ > /dev/null 2>&1
1122
	cp -f $DIR_CONF/VERSION-BL $DIR_ACC/
1131
	cp -f $DIR_CONF/VERSION-BL $DIR_ACC/
1123
	chown apache:apache $DIR_ACC/VERSION-BL
1132
	chown apache:apache $DIR_ACC/VERSION-BL
1124
# on crée le répertoire de la BL secondaire
1133
# on crée le répertoire de la BL secondaire
1125
	mkdir /etc/dansguardian/lists/blacklists/ossi
1134
	mkdir /etc/dansguardian/lists/blacklists/ossi
1126
	touch /etc/dansguardian/lists/blacklists/ossi/domains
1135
	touch /etc/dansguardian/lists/blacklists/ossi/domains
1127
	touch /etc/dansguardian/lists/blacklists/ossi/urls
1136
	touch /etc/dansguardian/lists/blacklists/ossi/urls
1128
# On crée les fichiers vides de sites ou d'URL réhabilités
1137
# On crée les fichiers vides de sites ou d'URL réhabilités
1129
	[ -e /etc/dansguardian/lists/exceptionsitelist.default ] || mv /etc/dansguardian/lists/exceptionsitelist  /etc/dansguardian/lists/exceptionsitelist.default
1138
	[ -e /etc/dansguardian/lists/exceptionsitelist.default ] || mv /etc/dansguardian/lists/exceptionsitelist  /etc/dansguardian/lists/exceptionsitelist.default
1130
	[ -e /etc/dansguardian/lists/exceptionurllist.default ] || mv /etc/dansguardian/lists/exceptionurllist  /etc/dansguardian/lists/exceptionurllist.default
1139
	[ -e /etc/dansguardian/lists/exceptionurllist.default ] || mv /etc/dansguardian/lists/exceptionurllist  /etc/dansguardian/lists/exceptionurllist.default
1131
	touch /etc/dansguardian/lists/exceptionsitelist
1140
	touch /etc/dansguardian/lists/exceptionsitelist
1132
	touch /etc/dansguardian/lists/exceptionurllist
1141
	touch /etc/dansguardian/lists/exceptionurllist
1133
# On crée la configuration de base du filtrage de domaine et d'URL pour Dansguardian
1142
# On crée la configuration de base du filtrage de domaine et d'URL pour Dansguardian
1134
	cat <<EOF > /etc/dansguardian/lists/bannedurllist
1143
	cat <<EOF > /etc/dansguardian/lists/bannedurllist
1135
# Dansguardian filter config for ALCASAR
1144
# Dansguardian filter config for ALCASAR
1136
EOF
1145
EOF
1137
	cat <<EOF > /etc/dansguardian/lists/bannedsitelist
1146
	cat <<EOF > /etc/dansguardian/lists/bannedsitelist
1138
# Dansguardian domain filter config for ALCASAR
1147
# Dansguardian domain filter config for ALCASAR
1139
# block all sites except those in the exceptionsitelist --> liste blanche (désactivée)
1148
# block all sites except those in the exceptionsitelist --> liste blanche (désactivée)
1140
#**
1149
#**
1141
# block all SSL and CONNECT tunnels
1150
# block all SSL and CONNECT tunnels
1142
**s
1151
**s
1143
# block all SSL and CONNECT tunnels specified only as an IP
1152
# block all SSL and CONNECT tunnels specified only as an IP
1144
*ips
1153
*ips
1145
# block all sites specified only by an IP
1154
# block all sites specified only by an IP
1146
*ip
1155
*ip
1147
EOF
1156
EOF
1148
	chown -R dansguardian:apache /etc/dansguardian/
1157
	chown -R dansguardian:apache /etc/dansguardian/
1149
	chmod -R g+rw /etc/dansguardian
1158
	chmod -R g+rw /etc/dansguardian
1150
# On crée la structure du DNS-blackhole :
1159
# On crée la structure du DNS-blackhole :
1151
  	mkdir $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
1160
  	mkdir $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
1152
	chown -R 770 $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
1161
	chown -R 770 $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
1153
	chown -R root:apache $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
1162
	chown -R root:apache $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
1154
# On fait pointer le black-hole sur une page interne
1163
# On fait pointer le black-hole sur une page interne
1155
	$SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" $DIR_DEST_SBIN/alcasar-bl.sh
1164
	$SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" $DIR_DEST_SBIN/alcasar-bl.sh
1156
# On récupère la dernière version de la BL Toulouse
1165
# On récupère la dernière version de la BL Toulouse
1157
	$DIR_DEST_SBIN/alcasar-bl.sh --download
1166
	$DIR_DEST_SBIN/alcasar-bl.sh --download
1158
}
1167
}
1159
 
1168
 
1160
##########################################################
1169
##########################################################
1161
##		Fonction cron				##
1170
##		Fonction cron				##
1162
## - Mise en place des différents fichiers de cron	##
1171
## - Mise en place des différents fichiers de cron	##
1163
##########################################################
1172
##########################################################
1164
cron ()
1173
cron ()
1165
{
1174
{
1166
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00
1175
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00
1167
	[ -e /etc/crontab.default ] || cp /etc/crontab /etc/crontab.default
1176
	[ -e /etc/crontab.default ] || cp /etc/crontab /etc/crontab.default
1168
	cat <<EOF > /etc/crontab
1177
	cat <<EOF > /etc/crontab
1169
SHELL=/bin/bash
1178
SHELL=/bin/bash
1170
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1179
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1171
MAILTO=root
1180
MAILTO=root
1172
HOME=/
1181
HOME=/
1173
 
1182
 
1174
# run-parts
1183
# run-parts
1175
01 * * * * root nice -n 19 run-parts --report /etc/cron.hourly
1184
01 * * * * root nice -n 19 run-parts --report /etc/cron.hourly
1176
02 0 * * * root nice -n 19 run-parts --report /etc/cron.daily
1185
02 0 * * * root nice -n 19 run-parts --report /etc/cron.daily
1177
22 0 * * 0 root nice -n 19 run-parts --report /etc/cron.weekly
1186
22 0 * * 0 root nice -n 19 run-parts --report /etc/cron.weekly
1178
42 0 1 * * root nice -n 19 run-parts --report /etc/cron.monthly
1187
42 0 1 * * root nice -n 19 run-parts --report /etc/cron.monthly
1179
EOF
1188
EOF
1180
	[ -e /etc/anacrontab.default ] || cp /etc/anacrontab /etc/anacrontab.default
1189
	[ -e /etc/anacrontab.default ] || cp /etc/anacrontab /etc/anacrontab.default
1181
	cat <<EOF >> /etc/anacrontab
1190
	cat <<EOF >> /etc/anacrontab
1182
7       10      cron.logExport          nice /etc/cron.d/export_log
1191
7       10      cron.logExport          nice /etc/cron.d/export_log
1183
7       15      cron.logClean           nice /etc/cron.d/clean_log
1192
7       15      cron.logClean           nice /etc/cron.d/clean_log
1184
7	20	cron.importClean	nice /etc/cron.d/clean_import
1193
7	20	cron.importClean	nice /etc/cron.d/clean_import
1185
EOF
1194
EOF
1186
# suppression des fichiers de logs de plus d'un an (tous les lundi à 4h30)
1195
# suppression des fichiers de logs de plus d'un an (tous les lundi à 4h30)
1187
	cat <<EOF > /etc/cron.d/clean_log
1196
	cat <<EOF > /etc/cron.d/clean_log
1188
30 4 * * 1 root $DIR_DEST_BIN/alcasar-log-clean.sh
1197
30 4 * * 1 root $DIR_DEST_BIN/alcasar-log-clean.sh
1189
EOF
1198
EOF
1190
# export de la base des usagers (tous les lundi à 4h45)
1199
# export de la base des usagers (tous les lundi à 4h45)
1191
	cat <<EOF > /etc/cron.d/mysql
1200
	cat <<EOF > /etc/cron.d/mysql
1192
45 4 * * 1 root $DIR_DEST_SBIN/alcasar-mysql.sh -dump
1201
45 4 * * 1 root $DIR_DEST_SBIN/alcasar-mysql.sh -dump
1193
EOF
1202
EOF
1194
# export des log squid, firewall et apache (tous les lundi à 5h00)
1203
# export des log squid, firewall et apache (tous les lundi à 5h00)
1195
	cat <<EOF > /etc/cron.d/export_log
1204
	cat <<EOF > /etc/cron.d/export_log
1196
#!/bin/sh
1205
#!/bin/sh
1197
00 5 * * 1 root $DIR_DEST_BIN/alcasar-log-export.sh
1206
00 5 * * 1 root $DIR_DEST_BIN/alcasar-log-export.sh
1198
EOF
1207
EOF
1199
# mise à jour des stats de consultation WEB toutes les 30'  ## existe en double pour le daily sans l'@IP
1208
# mise à jour des stats de consultation WEB toutes les 30'  ## existe en double pour le daily sans l'@IP
1200
# sans mèl ( > /dev/null 2>&1)
1209
# sans mèl ( > /dev/null 2>&1)
1201
	cat << EOF > /etc/cron.d/awstats
1210
	cat << EOF > /etc/cron.d/awstats
1202
*/30 * * * * root $DIR_ACC/awstats/awstats.pl -config=localhost -update >/dev/null 2>&1
1211
*/30 * * * * root $DIR_ACC/awstats/awstats.pl -config=localhost -update >/dev/null 2>&1
1203
EOF
1212
EOF
1204
# suppression des fichiers de mots de passe lors d'imports massifs par fichier de plus de 24h
1213
# suppression des fichiers de mots de passe lors d'imports massifs par fichier de plus de 24h
1205
	cat << EOF > /etc/cron.d/clean_import
1214
	cat << EOF > /etc/cron.d/clean_import
1206
30 * * * *  root $DIR_DEST_BIN/alcasar-import-clean.sh
1215
30 * * * *  root $DIR_DEST_BIN/alcasar-import-clean.sh
1207
EOF
1216
EOF
1208
# mise à jour des stats de connexion (accounting). Scripts provenant de "dialupadmin" (rpm freeradius-web) (cf. wiki.freeradius.org/Dialup_admin).
1217
# mise à jour des stats de connexion (accounting). Scripts provenant de "dialupadmin" (rpm freeradius-web) (cf. wiki.freeradius.org/Dialup_admin).
1209
# on écrase le crontab d'origine installé par le RPM "freeradius-web" (bug remonté à qa.mandriva.com : 46739).
1218
# on écrase le crontab d'origine installé par le RPM "freeradius-web" (bug remonté à qa.mandriva.com : 46739).
1210
# 'tot_stats' (tout les jours à 01h01) : aggrégat des connexions journalières par usager (renseigne la table 'totacct') 
1219
# 'tot_stats' (tout les jours à 01h01) : aggrégat des connexions journalières par usager (renseigne la table 'totacct') 
1211
# 'monthly_tot_stat' (tous les jours à 01h05) : aggrégat des connexions mensuelles par usager (renseigne la table 'mtotacct')
1220
# 'monthly_tot_stat' (tous les jours à 01h05) : aggrégat des connexions mensuelles par usager (renseigne la table 'mtotacct')
1212
# 'truncate_raddact' (tous les 1er du mois à 01h10) : supprime les entrées journalisées plus vieilles que '$back_days' jours (défini ci-après)
1221
# 'truncate_raddact' (tous les 1er du mois à 01h10) : supprime les entrées journalisées plus vieilles que '$back_days' jours (défini ci-après)
1213
# 'clean_radacct' (tous les 1er du mois à 01h15) : ferme les session ouvertes de plus de '$back_days' jours (défini ci-après)
1222
# 'clean_radacct' (tous les 1er du mois à 01h15) : ferme les session ouvertes de plus de '$back_days' jours (défini ci-après)
1214
	$SED "s?^\$back_days.*?\$back_days = 365;?g" /usr/bin/truncate_radacct
1223
	$SED "s?^\$back_days.*?\$back_days = 365;?g" /usr/bin/truncate_radacct
1215
	$SED "s?^\$back_days.*?\$back_days = 30;?g" /usr/bin/clean_radacct
1224
	$SED "s?^\$back_days.*?\$back_days = 30;?g" /usr/bin/clean_radacct
1216
	rm -f /etc/cron.daily/freeradius-web
1225
	rm -f /etc/cron.daily/freeradius-web
1217
	rm -f /etc/cron.monthly/freeradius-web
1226
	rm -f /etc/cron.monthly/freeradius-web
1218
	cat << EOF > /etc/cron.d/freeradius-web
1227
	cat << EOF > /etc/cron.d/freeradius-web
1219
1 1 * * * root /usr/bin/tot_stats > /dev/null 2>&1
1228
1 1 * * * root /usr/bin/tot_stats > /dev/null 2>&1
1220
5 1 * * * root /usr/bin/monthly_tot_stats > /dev/null 2>&1
1229
5 1 * * * root /usr/bin/monthly_tot_stats > /dev/null 2>&1
1221
10 1 1 * * root /usr/bin/truncate_radacct > /dev/null 2>&1
1230
10 1 1 * * root /usr/bin/truncate_radacct > /dev/null 2>&1
1222
15 1 1 * * root /usr/bin/clean_radacct > /dev/null 2>&1
1231
15 1 1 * * root /usr/bin/clean_radacct > /dev/null 2>&1
1223
EOF
1232
EOF
1224
# activation du "chien de garde" (watchdog) toutes les 3'
1233
# activation du "chien de garde" (watchdog) toutes les 3'
1225
	cat << EOF > /etc/cron.d/watchdog
1234
	cat << EOF > /etc/cron.d/watchdog
1226
*/3 * * * * root $DIR_DEST_BIN/alcasar-watchdog.sh > /dev/null 2>&1
1235
*/3 * * * * root $DIR_DEST_BIN/alcasar-watchdog.sh > /dev/null 2>&1
1227
EOF
1236
EOF
1228
# suppression des crons usagers
1237
# suppression des crons usagers
1229
	rm -f /var/spool/cron/*
1238
	rm -f /var/spool/cron/*
1230
} # End cron
1239
} # End cron
1231
 
1240
 
1232
##################################################################
1241
##################################################################
1233
##			Fonction post_install			##
1242
##			Fonction post_install			##
1234
## - Modification des bannières (locales et ssh) et des prompts ##
1243
## - Modification des bannières (locales et ssh) et des prompts ##
1235
## - Installation de la structure de chiffrement pour root	##
1244
## - Installation de la structure de chiffrement pour root	##
1236
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1245
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1237
## - Mise en place du la rotation des logs			##
1246
## - Mise en place du la rotation des logs			##
1238
## - Configuration dans le cas d'une mise à jour		##
1247
## - Configuration dans le cas d'une mise à jour		##
1239
##################################################################
1248
##################################################################
1240
post_install()
1249
post_install()
1241
{
1250
{
1242
# adaptation du script "chien de garde" (watchdog)
1251
# adaptation du script "chien de garde" (watchdog)
1243
	$SED "s?^EXTIF=.*?EXTIF=\"$EXTIF\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1252
	$SED "s?^EXTIF=.*?EXTIF=\"$EXTIF\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1244
	$SED "s?^INTIF=.*?INTIF=\"$INTIF\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1253
	$SED "s?^INTIF=.*?INTIF=\"$INTIF\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1245
	$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1254
	$SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1246
# création de la bannière locale
1255
# création de la bannière locale
1247
	[ -e /etc/mandriva-release.default ]  || cp /etc/mandriva-release /etc/mandriva-release.default
1256
	[ -e /etc/mandriva-release.default ]  || cp /etc/mandriva-release /etc/mandriva-release.default
1248
	cp -f $DIR_CONF/banner /etc/mandriva-release
1257
	cp -f $DIR_CONF/banner /etc/mandriva-release
1249
	echo " V$VERSION" >> /etc/mandriva-release
1258
	echo " V$VERSION" >> /etc/mandriva-release
1250
# création de la bannière SSH
1259
# création de la bannière SSH
1251
	cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh
1260
	cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh
1252
	chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root:root /etc/ssh/alcasar-banner-ssh
1261
	chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root:root /etc/ssh/alcasar-banner-ssh
1253
	[ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
1262
	[ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
1254
	$SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1263
	$SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1255
	$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1264
	$SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1256
# sshd écoute côté LAN et WAN
1265
# sshd écoute côté LAN et WAN
1257
	$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1266
	$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1258
	$SED "/^ListenAddress $PRIVATE_IP/a\ListenAddress $PUBLIC_IP" /etc/ssh/sshd_config 
1267
	$SED "/^ListenAddress $PRIVATE_IP/a\ListenAddress $PUBLIC_IP" /etc/ssh/sshd_config 
1259
# sshd n'est pas lancé automatiquement au démarrage
1268
# Put the default value in conf file (sshd, QOS, protocols filter and dns filter are off)(web antivirus is on)
1260
	/sbin/chkconfig --del sshd
1269
	/sbin/chkconfig --del sshd
1261
	echo "SSH=off" >> $DIR_DEST_ETC/alcasar-network 
1270
	echo "SSH=off" >> $FIC_CONF
-
 
1271
	echo "QOS=off" >> $FIC_CONF
-
 
1272
	echo "PROTOCOLS_FILTERING=off" >> $FIC_CONF
-
 
1273
	echo "DNS_FILTERING=off" >> $FIC_CONF
-
 
1274
	echo "WEB_ANTIVIRUS=on" >> $FIC_CONF
1262
# Coloration des prompts
1275
# Coloration des prompts
1263
	[ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1276
	[ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1264
	cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1277
	cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1265
# Droits d'exécution pour utilisateur apache et sysadmin
1278
# Droits d'exécution pour utilisateur apache et sysadmin
1266
	[ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1279
	[ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1267
	cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root:root /etc/sudoers
1280
	cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root:root /etc/sudoers
1268
	$SED "s?^Host_Alias.*?Host_Alias	LAN_ORG=$PRIVATE_NETWORK_MASK,localhost		#réseau de l'organisme?g" /etc/sudoers
1281
	$SED "s?^Host_Alias.*?Host_Alias	LAN_ORG=$PRIVATE_NETWORK_MASK,localhost		#réseau de l'organisme?g" /etc/sudoers
1269
# prise en compte de la rotation des logs sur 1 an (concerne mysql, httpd, dansguardian, squid, radiusd, ulogd)
1282
# prise en compte de la rotation des logs sur 1 an (concerne mysql, httpd, dansguardian, squid, radiusd, ulogd)
1270
	cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
1283
	cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
1271
	chmod 644 /etc/logrotate.d/*
1284
	chmod 644 /etc/logrotate.d/*
1272
# processus lancés par défaut au démarrage
1285
# processus lancés par défaut au démarrage
1273
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd mysqld dansguardian havp freshclam
1286
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd mysqld dansguardian havp freshclam
1274
	do
1287
	do
1275
		/sbin/chkconfig --add $i
1288
		/sbin/chkconfig --add $i
1276
	done
1289
	done
1277
# pour éviter les alertes de dépendance entre service.
1290
# pour éviter les alertes de dépendance entre service.
1278
	$SED "s?^# Required-Start.*?# Required-Start: \$local_fs \$network?g" /etc/init.d/mysqld
1291
	$SED "s?^# Required-Start.*?# Required-Start: \$local_fs \$network?g" /etc/init.d/mysqld
1279
	$SED "s?^# Required-Stop.*?# Required-Stop: \$local_fs \$network?g" /etc/init.d/mysqld
1292
	$SED "s?^# Required-Stop.*?# Required-Stop: \$local_fs \$network?g" /etc/init.d/mysqld
1280
	$SED "s?^# Should-Start.*?# Should-Start: radiusd ldap?g" /etc/init.d/httpd
1293
	$SED "s?^# Should-Start.*?# Should-Start: radiusd ldap?g" /etc/init.d/httpd
1281
	$SED "s?^# Should-Stop.*?# Should-Stop: radiusd ldap?g" /etc/init.d/httpd
1294
	$SED "s?^# Should-Stop.*?# Should-Stop: radiusd ldap?g" /etc/init.d/httpd
1282
# On affecte le niveau de sécurité du système : type "fileserver"
1295
# On affecte le niveau de sécurité du système : type "fileserver"
1283
	$SED "s?BASE_LEVEL=.*?BASE_LEVEL=fileserver?g" /etc/security/msec/security.conf
1296
	$SED "s?BASE_LEVEL=.*?BASE_LEVEL=fileserver?g" /etc/security/msec/security.conf
1284
# On supprime la vérification du mode promiscious des interfaces réseaux ( nombreuses alertes sur eth1 dûes à Tun0 )
1297
# On supprime la vérification du mode promiscious des interfaces réseaux ( nombreuses alertes sur eth1 dûes à Tun0 )
1285
	$SED "s?CHECK_PROMISC=.*?CHECK_PROMISC=no?g" /etc/security/msec/level.fileserver
1298
	$SED "s?CHECK_PROMISC=.*?CHECK_PROMISC=no?g" /etc/security/msec/level.fileserver
1286
 
1299
 
1287
# On applique les préconisations ANSSI (sysctl + msec quand c'est possible)
1300
# On applique les préconisations ANSSI (sysctl + msec quand c'est possible)
1288
# Apply French Security Agency rules (sysctl + msec when possible)
1301
# Apply French Security Agency rules (sysctl + msec when possible)
1289
# ignorer les broadcast ICMP. (attaque smurf) 
1302
# ignorer les broadcast ICMP. (attaque smurf) 
1290
$SED "s?^ACCEPT_BROADCASTED_ICMP_ECHO=.*?ACCEPT_BROADCASTED_ICMP_ECHO=no?g" /etc/security/msec/level.fileserver
1303
$SED "s?^ACCEPT_BROADCASTED_ICMP_ECHO=.*?ACCEPT_BROADCASTED_ICMP_ECHO=no?g" /etc/security/msec/level.fileserver
1291
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1304
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1292
# ignorer les erreurs ICMP bogus
1305
# ignorer les erreurs ICMP bogus
1293
$SED "s?^ACCEPT_BOGUS_ERROR_RESPONSES=.*?ACCEPT_BOGUS_ERROR_RESPONSES=no?g" /etc/security/msec/level.fileserver
1306
$SED "s?^ACCEPT_BOGUS_ERROR_RESPONSES=.*?ACCEPT_BOGUS_ERROR_RESPONSES=no?g" /etc/security/msec/level.fileserver
1294
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
1307
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
1295
# désactiver l'envoi et la réponse aux ICMP redirects
1308
# désactiver l'envoi et la réponse aux ICMP redirects
1296
accept_redirect=`grep accept_redirect /etc/sysctl.conf|wc -l`
1309
accept_redirect=`grep accept_redirect /etc/sysctl.conf|wc -l`
1297
	if [ "$accept_redirect" == "0" ]
1310
	if [ "$accept_redirect" == "0" ]
1298
	then
1311
	then
1299
	      echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf
1312
	      echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf
1300
	fi
1313
	fi
1301
send_redirect=`grep send_redirect /etc/sysctl.conf|wc -l`
1314
send_redirect=`grep send_redirect /etc/sysctl.conf|wc -l`
1302
	if [ "$send_redirect" == "0" ]
1315
	if [ "$send_redirect" == "0" ]
1303
	then
1316
	then
1304
	      echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
1317
	      echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
1305
	fi
1318
	fi
1306
$SED "s?accept_redirects.*?accept_redirects = 0?g" /etc/sysctl.conf
1319
$SED "s?accept_redirects.*?accept_redirects = 0?g" /etc/sysctl.conf
1307
$SED "s?send_redirects.*?send_redirects = 0?g" /etc/sysctl.conf
1320
$SED "s?send_redirects.*?send_redirects = 0?g" /etc/sysctl.conf
1308
sysctl -w net.ipv4.conf.all.accept_redirects=0
1321
sysctl -w net.ipv4.conf.all.accept_redirects=0
1309
sysctl -w net.ipv4.conf.all.send_redirects=0
1322
sysctl -w net.ipv4.conf.all.send_redirects=0
1310
# activer les SYN Cookies (attaque syn flood)
1323
# activer les SYN Cookies (attaque syn flood)
1311
tcp_syncookies=`grep tcp_syncookies /etc/sysctl.conf|wc -l`
1324
tcp_syncookies=`grep tcp_syncookies /etc/sysctl.conf|wc -l`
1312
	if [ "$tcp_syncookies" == "0" ]
1325
	if [ "$tcp_syncookies" == "0" ]
1313
	then
1326
	then
1314
	      echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
1327
	      echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
1315
	fi
1328
	fi
1316
$SED "s?tcp_syncookies.*?tcp_syncookies = 1?g" /etc/sysctl.conf
1329
$SED "s?tcp_syncookies.*?tcp_syncookies = 1?g" /etc/sysctl.conf
1317
sysctl -w net.ipv4.tcp_syncookies=1
1330
sysctl -w net.ipv4.tcp_syncookies=1
1318
# activer l'antispoofing niveau Noyau
1331
# activer l'antispoofing niveau Noyau
1319
$SED "s?^ENABLE_IP_SPOOFING_PROTECTION.*?ENABLE_IP_SPOOFING_PROTECTION=yes?g" /etc/security/msec/level.fileserver
1332
$SED "s?^ENABLE_IP_SPOOFING_PROTECTION.*?ENABLE_IP_SPOOFING_PROTECTION=yes?g" /etc/security/msec/level.fileserver
1320
sysctl -w net.ipv4.conf.all.rp_filter=1
1333
sysctl -w net.ipv4.conf.all.rp_filter=1
1321
# ignorer le source routing
1334
# ignorer le source routing
1322
accept_source_route=`grep accept_source_route /etc/sysctl.conf|wc -l`
1335
accept_source_route=`grep accept_source_route /etc/sysctl.conf|wc -l`
1323
	if [ "$accept_source_route" == "0" ]
1336
	if [ "$accept_source_route" == "0" ]
1324
	then
1337
	then
1325
	      echo "net.ipv4.conf.all.accept_source_route = 0" >> /etc/sysctl.conf
1338
	      echo "net.ipv4.conf.all.accept_source_route = 0" >> /etc/sysctl.conf
1326
	fi
1339
	fi
1327
$SED "s?accept_source_route.*?accept_source_route = 0?g" /etc/sysctl.conf
1340
$SED "s?accept_source_route.*?accept_source_route = 0?g" /etc/sysctl.conf
1328
sysctl -w net.ipv4.conf.all.accept_source_route=0
1341
sysctl -w net.ipv4.conf.all.accept_source_route=0
1329
# On supprime les log_martians (ALCASAR est souvent entre deux réseaux dont les plans d'adressage sont de type 'privée') 
1342
# On supprime les log_martians (ALCASAR est souvent entre deux réseaux dont les plans d'adressage sont de type 'privée') 
1330
sysctl -w net.ipv4.conf.all.log_martians=0
1343
sysctl -w net.ipv4.conf.all.log_martians=0
1331
$SED "s?^ENABLE_LOG_STRANGE_PACKETS=.*?ENABLE_LOG_STRANGE_PACKETS=no?g" /etc/security/msec/level.fileserver
1344
$SED "s?^ENABLE_LOG_STRANGE_PACKETS=.*?ENABLE_LOG_STRANGE_PACKETS=no?g" /etc/security/msec/level.fileserver
1332
 
1345
 
1333
# On supprime la gestion du <CTRL>+<ALT>+<SUPPR> et des Magic SysReq Keys
1346
# On supprime la gestion du <CTRL>+<ALT>+<SUPPR> et des Magic SysReq Keys
1334
	$SED "s?^ALLOW_REBOOT=.*?ALLOW_REBOOT=no?g" /etc/security/msec/level.fileserver
1347
	$SED "s?^ALLOW_REBOOT=.*?ALLOW_REBOOT=no?g" /etc/security/msec/level.fileserver
1335
# On mets en place la sécurité sur les fichiers
1348
# On mets en place la sécurité sur les fichiers
1336
# des modif par rapport à radius update
1349
# des modif par rapport à radius update
1337
	cat <<EOF > /etc/security/msec/perm.local
1350
	cat <<EOF > /etc/security/msec/perm.local
1338
/var/log/firewall/			root.apache	750
1351
/var/log/firewall/			root.apache	750
1339
/var/log/firewall/*			root.apache	640
1352
/var/log/firewall/*			root.apache	640
1340
/etc/security/msec/perm.local		root.root	640
1353
/etc/security/msec/perm.local		root.root	640
1341
/etc/security/msec/level.local		root.root	640
1354
/etc/security/msec/level.local		root.root	640
1342
/etc/freeradius-web			root.apache	750
1355
/etc/freeradius-web			root.apache	750
1343
/etc/freeradius-web/admin.conf		root.apache	640
1356
/etc/freeradius-web/admin.conf		root.apache	640
1344
/etc/freeradius-web/config.php		root.apache	640
1357
/etc/freeradius-web/config.php		root.apache	640
1345
/etc/raddb/dictionnary			root.radius	640
1358
/etc/raddb/dictionnary			root.radius	640
1346
/etc/raddb/ldap.attrmap			root.radius	640
1359
/etc/raddb/ldap.attrmap			root.radius	640
1347
/etc/raddb/hints			root.radius	640
1360
/etc/raddb/hints			root.radius	640
1348
/etc/raddb/huntgroups			root.radius	640
1361
/etc/raddb/huntgroups			root.radius	640
1349
/etc/raddb/attrs.access_reject		root.radius	640
1362
/etc/raddb/attrs.access_reject		root.radius	640
1350
/etc/raddb/attrs.accounting_response	root.radius	640
1363
/etc/raddb/attrs.accounting_response	root.radius	640
1351
/etc/raddb/acct_users			root.radius	640
1364
/etc/raddb/acct_users			root.radius	640
1352
/etc/raddb/preproxy_users		root.radius	640
1365
/etc/raddb/preproxy_users		root.radius	640
1353
/etc/raddb/modules/ldap			radius.apache	660
1366
/etc/raddb/modules/ldap			radius.apache	660
1354
/etc/raddb/sites-available/alcasar	radius.apache	660
1367
/etc/raddb/sites-available/alcasar	radius.apache	660
1355
/etc/pki/*				root.apache	750
1368
/etc/pki/*				root.apache	750
1356
EOF
1369
EOF
1357
	/usr/sbin/msec
1370
	/usr/sbin/msec
1358
# modification /etc/inittab
1371
# modification /etc/inittab
1359
	[ -e /etc/inittab.default ] || cp /etc/inittab /etc/inittab.default
1372
	[ -e /etc/inittab.default ] || cp /etc/inittab /etc/inittab.default
1360
# On ne garde que 3 terminaux
1373
# On ne garde que 3 terminaux
1361
	$SED "s?^4.*?#&?g" /etc/inittab
1374
	$SED "s?^4.*?#&?g" /etc/inittab
1362
	$SED "s?^5.*?#&?g" /etc/inittab
1375
	$SED "s?^5.*?#&?g" /etc/inittab
1363
	$SED "s?^6.*?#&?g" /etc/inittab
1376
	$SED "s?^6.*?#&?g" /etc/inittab
1364
# On limite le temps d'attente de grub (3s) et on change la résolution d'écran
1377
# On limite le temps d'attente de grub (3s) et on change la résolution d'écran
1365
$SED "s?^timeout.*?timeout 3?g" /boot/grub/menu.lst
1378
$SED "s?^timeout.*?timeout 3?g" /boot/grub/menu.lst
1366
$SED "s?^kernel.*?& vga=791?g" /boot/grub/menu.lst
1379
$SED "s?^kernel.*?& vga=791?g" /boot/grub/menu.lst
1367
# On supprime les services et les utilisateurs inutiles
1380
# On supprime les services et les utilisateurs inutiles
1368
for svc in alsa sound dm atd netfs bootlogd stop-bootlogd
1381
for svc in alsa sound dm atd netfs bootlogd stop-bootlogd
1369
do
1382
do
1370
	/sbin/chkconfig --del $svc
1383
	/sbin/chkconfig --del $svc
1371
done
1384
done
1372
for rm_users in avahi-autoipd avahi icapd
1385
for rm_users in avahi-autoipd avahi icapd
1373
do
1386
do
1374
	user=`cat /etc/passwd|grep $rm_users|cut -d":" -f1`
1387
	user=`cat /etc/passwd|grep $rm_users|cut -d":" -f1`
1375
	if [ "$user" == "$rm_users" ]
1388
	if [ "$user" == "$rm_users" ]
1376
	then
1389
	then
1377
		/usr/sbin/userdel -f $rm_users
1390
		/usr/sbin/userdel -f $rm_users
1378
	fi
1391
	fi
1379
done
1392
done
1380
# Load the previous conf file
1393
# Load the previous conf file
1381
if [ "$mode" = "update" ]
1394
if [ "$mode" = "update" ]
1382
then
1395
then
1383
	$DIR_DEST_BIN/alcasar-conf.sh --load
1396
	$DIR_DEST_BIN/alcasar-conf.sh --load
1384
fi
1397
fi
1385
rm -f /tmp/alcasar-conf*
1398
rm -f /tmp/alcasar-conf*
1386
chown -R root:apache $DIR_DEST_ETC/*
1399
chown -R root:apache $DIR_DEST_ETC/*
1387
chmod -R 660 $DIR_DEST_ETC/*
1400
chmod -R 660 $DIR_DEST_ETC/*
1388
chmod ug+x $DIR_DEST_ETC/digest $DIR_DEST_ETC/alcasar-dnsfilter*
1401
chmod ug+x $DIR_DEST_ETC/digest $DIR_DEST_ETC/alcasar-dnsfilter*
1389
	cd $DIR_INSTALL
1402
	cd $DIR_INSTALL
1390
	echo ""
1403
	echo ""
1391
	echo "#############################################################################"
1404
	echo "#############################################################################"
1392
	echo "#                        Fin d'installation d'ALCASAR                       #"
1405
	echo "#                        Fin d'installation d'ALCASAR                       #"
1393
	echo "#                                                                           #"
1406
	echo "#                                                                           #"
1394
	echo "#         Application Libre pour le Contrôle Authentifié et Sécurisé        #"
1407
	echo "#         Application Libre pour le Contrôle Authentifié et Sécurisé        #"
1395
	echo "#                     des Accès au Réseau ( ALCASAR )                       #"
1408
	echo "#                     des Accès au Réseau ( ALCASAR )                       #"
1396
	echo "#                                                                           #"
1409
	echo "#                                                                           #"
1397
	echo "#############################################################################"
1410
	echo "#############################################################################"
1398
	echo
1411
	echo
1399
	echo "- ALCASAR sera fonctionnel après redémarrage du système"
1412
	echo "- ALCASAR sera fonctionnel après redémarrage du système"
1400
	echo
1413
	echo
1401
	echo "- Lisez attentivement la documentation d'exploitation"
1414
	echo "- Lisez attentivement la documentation d'exploitation"
1402
	echo
1415
	echo
1403
	echo "- L'interface de gestion est consultable à partir de n'importe quel poste"
1416
	echo "- L'interface de gestion est consultable à partir de n'importe quel poste"
1404
	echo "	situé sur le réseau de consultation à l'URL http://alcasar"
1417
	echo "	situé sur le réseau de consultation à l'URL http://alcasar"
1405
	echo
1418
	echo
1406
	echo "                   Appuyez sur 'Entrée' pour continuer"
1419
	echo "                   Appuyez sur 'Entrée' pour continuer"
1407
	read a
1420
	read a
1408
# On applique les règles de filtrage (et on les sauvegarde)
1421
# On applique les règles de filtrage (et on les sauvegarde)
1409
 	sh $DIR_DEST_BIN/alcasar-iptables.sh
1422
 	sh $DIR_DEST_BIN/alcasar-iptables.sh
1410
	sleep 2
1423
	sleep 2
1411
	clear
1424
	clear
1412
	reboot
1425
	reboot
1413
} # End post_install ()
1426
} # End post_install ()
1414
 
1427
 
1415
#################################
1428
#################################
1416
#  Boucle principale du script  #
1429
#  Boucle principale du script  #
1417
#################################
1430
#################################
1418
usage="Usage: alcasar.sh {-i or --install} | {-u or --uninstall}"
1431
usage="Usage: alcasar.sh {-i or --install} | {-u or --uninstall}"
1419
nb_args=$#
1432
nb_args=$#
1420
args=$1
1433
args=$1
1421
if [ $nb_args -eq 0 ]
1434
if [ $nb_args -eq 0 ]
1422
then
1435
then
1423
	nb_args=1
1436
	nb_args=1
1424
	args="-h"
1437
	args="-h"
1425
fi
1438
fi
1426
case $args in
1439
case $args in
1427
	-\? | -h* | --h*)
1440
	-\? | -h* | --h*)
1428
		echo "$usage"
1441
		echo "$usage"
1429
		exit 0
1442
		exit 0
1430
		;;
1443
		;;
1431
	-i | --install)
1444
	-i | --install)
1432
		header_install
1445
		header_install
1433
		testing
1446
		testing
1434
# Test if ALCASAR is already installed
1447
# Test if ALCASAR is already installed
1435
		if [ -e $DIR_WEB/VERSION ]
1448
		if [ -e $DIR_WEB/VERSION ]
1436
		then
1449
		then
1437
			actual_version=`cat $DIR_WEB/VERSION`
1450
			actual_version=`cat $DIR_WEB/VERSION`
1438
			if [ $Lang == "fr" ]
1451
			if [ $Lang == "fr" ]
1439
				then echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
1452
				then echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
1440
				else echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
1453
				else echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
1441
			fi
1454
			fi
1442
			response=0
1455
			response=0
1443
			PTN='^[oOnNyY]$'
1456
			PTN='^[oOnNyY]$'
1444
			until [[ $(expr $response : $PTN) -gt 0 ]]
1457
			until [[ $(expr $response : $PTN) -gt 0 ]]
1445
			do
1458
			do
1446
				if [ $Lang == "fr" ]
1459
				if [ $Lang == "fr" ]
1447
					then echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
1460
					then echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
1448
					else echo -n "Do you want to update (Y/n)?";
1461
					else echo -n "Do you want to update (Y/n)?";
1449
				 fi
1462
				 fi
1450
				read response
1463
				read response
1451
			done
1464
			done
1452
			if [ "$response" = "n" ] || [ "$response" = "N" ] 
1465
			if [ "$response" = "n" ] || [ "$response" = "N" ] 
1453
			then
1466
			then
1454
				rm -f /tmp/alcasar-conf*
1467
				rm -f /tmp/alcasar-conf*
1455
			else
1468
			else
1456
				RUNNING_VERSION=`cat $DIR_WEB/VERSION|cut -d" " -f1`
1469
				RUNNING_VERSION=`cat $DIR_WEB/VERSION|cut -d" " -f1`
1457
				MAJ_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f1`
1470
				MAJ_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f1`
1458
				MIN_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f2|cut -c1`
1471
				MIN_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f2|cut -c1`
1459
				UPD_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f3`
1472
				UPD_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f3`
1460
# Create the conf file of the running version
1473
# Create the conf file of the running version
1461
				chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
1474
				chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
1462
				$DIR_SCRIPTS/alcasar-conf.sh --create
1475
				$DIR_SCRIPTS/alcasar-conf.sh --create
1463
				mode="update"
1476
				mode="update"
1464
			fi
1477
			fi
1465
		fi
1478
		fi
1466
# RPMs install
1479
# RPMs install
1467
		$DIR_SCRIPTS/alcasar-urpmi.sh
1480
		$DIR_SCRIPTS/alcasar-urpmi.sh
1468
		if [ "$?" != "0" ]
1481
		if [ "$?" != "0" ]
1469
		then
1482
		then
1470
			exit 0
1483
			exit 0
1471
		fi
1484
		fi
1472
		if [ -e $DIR_WEB/VERSION ]
1485
		if [ -e $DIR_WEB/VERSION ]
1473
		then
1486
		then
1474
# Uninstall the running version
1487
# Uninstall the running version
1475
			$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1488
			$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1476
		fi
1489
		fi
1477
		if [ -e /tmp/alcasar-conf.tar.gz ] && [ "$mode" != "update" ]
1490
		if [ -e /tmp/alcasar-conf.tar.gz ] && [ "$mode" != "update" ]
1478
		then
1491
		then
1479
			if [ $Lang == "fr" ]
1492
			if [ $Lang == "fr" ]
1480
				then echo -n "Le fichier de configuration d'une ancienne version a été trouvé";
1493
				then echo -n "Le fichier de configuration d'une ancienne version a été trouvé";
1481
				else echo -n "The configuration file of an old version has been found";
1494
				else echo -n "The configuration file of an old version has been found";
1482
			fi
1495
			fi
1483
			response=0
1496
			response=0
1484
			PTN='^[oOnNyY]$'
1497
			PTN='^[oOnNyY]$'
1485
			until [[ $(expr $response : $PTN) -gt 0 ]]
1498
			until [[ $(expr $response : $PTN) -gt 0 ]]
1486
			do
1499
			do
1487
				if [ $Lang == "fr" ]
1500
				if [ $Lang == "fr" ]
1488
					then echo -n "Voulez-vous l'utiliser (O/n)? ";
1501
					then echo -n "Voulez-vous l'utiliser (O/n)? ";
1489
					else echo -n "Do you want to use it (Y/n)?";
1502
					else echo -n "Do you want to use it (Y/n)?";
1490
				 fi
1503
				 fi
1491
				read response
1504
				read response
1492
				if [ "$response" = "n" ] || [ "$response" = "N" ] 
1505
				if [ "$response" = "n" ] || [ "$response" = "N" ] 
1493
				then rm -f /tmp/alcasar-conf*
1506
				then rm -f /tmp/alcasar-conf*
1494
				fi
1507
				fi
1495
			done
1508
			done
1496
		fi
1509
		fi
1497
		if [ -e /tmp/alcasar-conf.tar.gz ] 
1510
		if [ -e /tmp/alcasar-conf.tar.gz ] 
1498
		then
1511
		then
1499
			if [ $Lang == "fr" ]
1512
			if [ $Lang == "fr" ]
1500
				then echo "#### Installation avec mise à jour ####";
1513
				then echo "#### Installation avec mise à jour ####";
1501
				else echo "#### Installation with update     ####";
1514
				else echo "#### Installation with update     ####";
1502
			fi
1515
			fi
1503
# Read the organism name from the conf file
1516
# Read the organism name from the conf file
1504
			tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme 
1517
			tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme 
1505
			ORGANISME=`cat $DIR_CONF/organisme`
1518
			ORGANISME=`cat $DIR_CONF/organisme`
1506
			mode="update"
1519
			mode="update"
1507
		else
1520
		else
1508
			mode="install"
1521
			mode="install"
1509
		fi
1522
		fi
1510
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus param_ulogd param_awstats param_dnsmasq BL cron post_install
1523
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus param_ulogd param_awstats param_dnsmasq BL cron post_install
1511
		do
1524
		do
1512
			$func
1525
			$func
1513
 echo "*** 'debug' : end of function $func ***"; read a
1526
 echo "*** 'debug' : end of function $func ***"; read a
1514
		done
1527
		done
1515
		;;
1528
		;;
1516
	-u | --uninstall)
1529
	-u | --uninstall)
1517
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1530
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1518
		then
1531
		then
1519
			if [ $Lang == "fr" ]
1532
			if [ $Lang == "fr" ]
1520
				then echo "ALCASAR n'est pas installé!";
1533
				then echo "ALCASAR n'est pas installé!";
1521
				else echo "ALCASAR isn't installed!";
1534
				else echo "ALCASAR isn't installed!";
1522
			fi
1535
			fi
1523
			exit 0
1536
			exit 0
1524
		fi
1537
		fi
1525
		response=0
1538
		response=0
1526
		PTN='^[oOnN]$'
1539
		PTN='^[oOnN]$'
1527
		until [[ $(expr $response : $PTN) -gt 0 ]]
1540
		until [[ $(expr $response : $PTN) -gt 0 ]]
1528
		do
1541
		do
1529
			if [ $Lang == "fr" ]
1542
			if [ $Lang == "fr" ]
1530
				then echo -n "Voulez-vous créer le fichier de configuration de la version actuelle (0/n)? ";
1543
				then echo -n "Voulez-vous créer le fichier de configuration de la version actuelle (0/n)? ";
1531
				else echo -n "Do you want to crate the running version configuration file (Y/n)? ";
1544
				else echo -n "Do you want to crate the running version configuration file (Y/n)? ";
1532
			fi
1545
			fi
1533
			read response
1546
			read response
1534
		done
1547
		done
1535
		if [ "$reponse" = "o" ] || [ "$reponse" = "O" ] || [ "$response" = "Y" ] || [ "$response" = "y" ]
1548
		if [ "$reponse" = "o" ] || [ "$reponse" = "O" ] || [ "$response" = "Y" ] || [ "$response" = "y" ]
1536
		then
1549
		then
1537
			$DIR_SCRIPT/alcasar-conf.sh --create
1550
			$DIR_SCRIPT/alcasar-conf.sh --create
1538
		else	
1551
		else	
1539
			rm -f /tmp/alcasar-conf*
1552
			rm -f /tmp/alcasar-conf*
1540
		fi
1553
		fi
1541
# Uninstall the running version
1554
# Uninstall the running version
1542
		$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1555
		$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
1543
		;;
1556
		;;
1544
	*)
1557
	*)
1545
		echo "Argument inconnu :$1";
1558
		echo "Argument inconnu :$1";
1546
		echo "Unknown argument :$1";
1559
		echo "Unknown argument :$1";
1547
		echo "$usage"
1560
		echo "$usage"
1548
		exit 1
1561
		exit 1
1549
		;;
1562
		;;
1550
esac
1563
esac
1551
# end of script
1564
# end of script
1552
 
1565
 
1553
 
1566