Subversion Repositories ALCASAR

Rev

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

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