Subversion Repositories ALCASAR

Rev

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

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

Generated by GNU Enscript 1.6.6.
1334

Generated by GNU Enscript 1.6.6.
1322
 
1335
 
1323
 
1336
 
1324
 
1337