Subversion Repositories ALCASAR

Rev

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

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