Subversion Repositories ALCASAR

Rev

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

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