Subversion Repositories ALCASAR

Rev

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

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