Subversion Repositories ALCASAR

Rev

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

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

Generated by GNU Enscript 1.6.6.
1238

Generated by GNU Enscript 1.6.6.
1215
 
1239
 
1216
 
1240
 
1217
 
1241