Subversion Repositories ALCASAR

Rev

Rev 1 | Rev 8 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 1 Rev 5
Line 7... Line 7...
7
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
7
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
8
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
8
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
9
 
9
 
10
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
10
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
11
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
11
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
12
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, dhcpd, openssl and firewalleyes
12
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, dhcpd, openssl bind and firewalleyes
13
 
13
 
14
# Options :
14
# Options :
15
#       -install    complete install - installation complète
15
#       -install
16
#       -uninstall  uninstall the portal - désinstallation du portail
-
 
17
#       -update     update - mise à jour
16
#       -uninstall
18
 
17
 
19
# Funtions :
18
# Funtions :
20
#       init            : Installation des RPM et des scripts
19
#       init            : Installation des RPM et des scripts
21
#       network         : Paramètrage du réseau
20
#       network         : Paramètrage du réseau
22
#       gestion         : Installation de l'interface de gestion
21
#       gestion         : Installation de l'interface de gestion
Line 32... Line 31...
32
#       bind            : Configuration du serveur de noms
31
#       bind            : Configuration du serveur de noms
33
#       cron            : Mise en place des exports de logs (+ chiffrement)
32
#       cron            : Mise en place des exports de logs (+ chiffrement)
34
 
33
 
35
 
34
 
36
VERSION="1.9a"
35
VERSION="1.9a"
-
 
36
MDV_NEEDED="2010.0"
37
DATE=`date '+%d %B %Y - %Hh%M'`
37
DATE=`date '+%d %B %Y - %Hh%M'`
38
DATE_SHORT=`date '+%d/%m/%Y'`
38
DATE_SHORT=`date '+%d/%m/%Y'`
39
# ******* Files parameters - paramètres fichiers *********
39
# ******* Files parameters - paramètres fichiers *********
40
DIR_INSTALL=`pwd`                               # répertoire d'installation
40
DIR_INSTALL=`pwd`                               # répertoire d'installation
41
DIR_GESTION="$DIR_INSTALL/gestion"              # répertoire d'installation contenant l'interface de gestion
41
DIR_GESTION="$DIR_INSTALL/gestion"              # répertoire d'installation contenant l'interface de gestion
Line 70... Line 70...
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
 
-
 
76
header_update ()
-
 
77
{
-
 
78
        clear
-
 
79
        echo "-----------------------------------------------------------------------------"
-
 
80
        echo "                     Procédure de mise à jour d'ALCASAR"
-
 
81
        echo "-----------------------------------------------------------------------------"
-
 
82
} # End of header_update ()
-
 
83
 
75
 
84
##################################################################
76
##################################################################
85
##                      Fonction INIT                           ##
77
##                      Fonction INIT                           ##
86
## - Test de la connectivité Internet                          ##
78
## - Test de la connectivité Internet                          ##
87
## - Création du fichier "/root/ALCASAR_parametres.txt"                ##
79
## - Création du fichier "/root/ALCASAR_parametres.txt"                ##
88
## - Installation et modification des scripts du portail        ##
80
## - Installation et modification des scripts du portail        ##
89
## - Installation des paquetages complémentaires               ##
81
## - Installation des paquetages complémentaires               ##
90
##################################################################
82
##################################################################
91
init ()
83
init ()
92
{
84
{
93
        if [ "$mode" = "install" ]
85
        if [ ! "$mode" = "update" ]
94
        then
86
        then
95
                header_install
87
                header_install
96
                if [ -e $DIR_WEB/VERSION ]
-
 
97
                then
-
 
98
                        echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée"; echo "Utilisez l'option '-update' si vous voulez la mettre à jour.";
-
 
99
                        exit 0
-
 
100
                fi
-
 
101
        echo -n "Tests des paramètres réseau : "
88
                echo -n "Tests des paramètres réseau : "
102
# On teste l'état du lien des interfaces réseau
89
# On teste l'état du lien des interfaces réseau
103
                for i in $EXTIF $INTIF
90
                for i in $EXTIF $INTIF
104
                do
91
                do
105
                        /sbin/ifconfig $i up
92
                        /sbin/ifconfig $i up
Line 143... Line 130...
143
                        echo "Vérifiez la validité des adresses DNS."
130
                        echo "Vérifiez la validité des adresses DNS."
144
                        exit 0
131
                        exit 0
145
                fi
132
                fi
146
                echo "Tests de connectivité Internet corrects"
133
                echo "Tests de connectivité Internet corrects"
147
                rm -rf /tmp/con_ok.html
134
                rm -rf /tmp/con_ok.html
-
 
135
# On affecte le nom d'organisme
-
 
136
                header_install
-
 
137
                ORGANISME=!
-
 
138
                PTN='^[a-zA-Z1-9-]*$'
-
 
139
                until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
-
 
140
                do
-
 
141
                        echo -n "Entrez le nom de votre organisme : "
-
 
142
                        read ORGANISME
-
 
143
                        if [ "$ORGANISME" = "" ]
-
 
144
                                then
-
 
145
                                ORGANISME=!
-
 
146
                        fi
-
 
147
                done
-
 
148
        fi
148
# On installe les paquetage complémentaires
149
# On installe les paquetage complémentaires
149
                echo "Installation des paquetages complémentaires"
150
        echo "Installation des paquetages complémentaires"
150
                chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
151
        chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
151
                $DIR_SCRIPTS/alcasar-urpmi.sh
152
        $DIR_SCRIPTS/alcasar-urpmi.sh
152
                urpmi --auto $PACKAGES
153
        urpmi --auto $PACKAGES
Line 155... Line 156...
155
                then
156
        then
156
                        echo "L'installation des paquetages complémentaires a échouée"
157
                echo "L'installation des paquetages complémentaires a échouée"
157
                        echo "Vérifiez la connectivité vers le dépot (ftp://ftp.free.fr)"
158
                echo "Vérifiez la connectivité vers le dépot (ftp://ftp.free.fr)"
158
                        exit 0
159
                exit 0
159
                fi
160
        fi
160
# On supprime les paquetages et le services inutiles
161
# On supprime les paquetages et les services inutiles
161
                for rm_rpm in avahi mandi shorewall-common shorewall
162
        for rm_rpm in avahi mandi shorewall-common shorewall
162
                        do
163
        do
163
                        /usr/sbin/urpme --auto $rm_rpm
164
                /usr/sbin/urpme --auto $rm_rpm
164
                        done
165
        done
165
                for svc in alsa sound dm atd memcached dc_server
166
        for svc in alsa sound dm atd memcached dc_server
166
                do
167
        do
167
                        /sbin/chkconfig --del $svc
168
                /sbin/chkconfig --del $svc
168
                done
169
        done
169
# On affecte le nom système
-
 
170
                header_install
-
 
171
                ORGANISME=!
-
 
172
                PTN='^[a-zA-Z1-9-]*$'
-
 
173
                until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
-
 
174
                do
-
 
175
                        echo -n "Entrez le nom de votre organisme : "
-
 
176
                        read ORGANISME
-
 
177
                        if [ "$ORGANISME" = "" ]
-
 
178
                                then
-
 
179
                                ORGANISME=!
-
 
180
                        fi
-
 
181
                done
-
 
182
else # mode update
-
 
183
        echo "Mise à jour du système"
-
 
184
        chmod u+x $DIR_SCRIPTS/alcasar-urpmi.sh
-
 
185
        $DIR_SCRIPTS/alcasar-urpmi.sh
-
 
186
# on installe les mises à jour spécifiques
170
# on installe les mises à jour spécifiques
187
        urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm
171
        urpmi --no-verify --auto $DIR_CONF/rpms-update/*.rpm
188
fi
-
 
189
# On met à jour le système
172
# On met à jour le système
190
        urpmi --auto --auto-update
173
        urpmi --auto --auto-update
191
# On supprime les paquetages orphelins
174
# On supprime les paquetages orphelins
192
        /usr/sbin/urpme --auto-orphans --auto
175
        /usr/sbin/urpme --auto-orphans --auto
193
# On crée aléatoirement les mots de passe et les secrets partagés
176
# On crée aléatoirement les mots de passe et les secrets partagés
Line 204... Line 187...
204
        secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`   # secret partagé entre coova-chilli et FreeRadius
187
        secretradius=`cat /dev/urandom | tr -dc [:alnum:] | head -c8`   # secret partagé entre coova-chilli et FreeRadius
205
        echo -n "secret partagé entre coova-chilli et FreeRadius : " >> $FIC_PASSWD
188
        echo -n "secret partagé entre coova-chilli et FreeRadius : " >> $FIC_PASSWD
206
        echo "$secretradius" >> $FIC_PASSWD
189
        echo "$secretradius" >> $FIC_PASSWD
207
        chmod 640 $FIC_PASSWD
190
        chmod 640 $FIC_PASSWD
208
# On installe et on modifie les scripts d'Alcasar
191
# On installe et on modifie les scripts d'Alcasar
209
        cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root.root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
192
        cp -f $DIR_SCRIPTS/alcasar* $DIR_DEST_BIN/. ; chown root:root $DIR_DEST_BIN/alcasar* ; chmod 740 $DIR_DEST_BIN/alcasar*
210
        cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root.root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
193
        cp -f $DIR_SCRIPTS/sbin/alcasar* $DIR_DEST_SBIN/. ; chown root:root $DIR_DEST_SBIN/alcasar* ; chmod 740 $DIR_DEST_SBIN/alcasar*
211
        cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root.apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar*
194
        cp -f $DIR_SCRIPTS/etc/alcasar* $DIR_DEST_ETC/. ; chown root:apache $DIR_DEST_ETC/alcasar* ; chmod 660 $DIR_DEST_ETC/alcasar*
212
        $SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh
195
        $SED "s?^radiussecret.*?radiussecret=\"$secretradius\"?g" $DIR_DEST_SBIN/alcasar-logout.sh
213
        $SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
196
        $SED "s?^DB_RADIUS=.*?DB_RADIUS=\"$DB_RADIUS\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
214
        $SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
197
        $SED "s?^DB_USER=.*?DB_USER=\"$DB_USER\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
215
        $SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh
198
        $SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
216
# On génère le début du fichier récapitulatif
199
# On génère le début du fichier récapitulatif
217
        cat <<EOF > $FIC_PARAM
200
        cat <<EOF > $FIC_PARAM
218
########################################################
201
########################################################
219
##                                                    ##
202
##                                                    ##
220
##   Fichier récapitulatif des paramètres d'ALCASAR   ##
203
##   Fichier récapitulatif des paramètres d'ALCASAR   ##
Line 262... Line 245...
262
        fi
245
        fi
263
        HOSTNAME=alcasar-$ORGANISME
246
        HOSTNAME=alcasar-$ORGANISME
264
        hostname $HOSTNAME
247
        hostname $HOSTNAME
265
        echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM
248
        echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM
266
        PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2`           # @ réseau de consultation (ex.: 192.168.182.0)
249
        PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2`           # @ réseau de consultation (ex.: 192.168.182.0)
267
        private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2`             # prefixe du réseau (ex. /24)
250
        private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2`             # prefixe du réseau (ex. 24)
268
        PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix                                   # @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24)
251
        PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix                                   # @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24)
269
        classe=$((private_prefix/8));                                                           # classe de réseau (ex.: 2=classe B, 3=classe C)
252
        classe=$((private_prefix/8));                                                           # classe de réseau (ex.: 2=classe B, 3=classe C)
270
        PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.                  # @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
253
        PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`.                  # @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
271
        PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2`                     # masque réseau de consultation (ex.: 255.255.255.0)
254
        PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2`                     # masque réseau de consultation (ex.: 255.255.255.0)
272
        PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`                # @ broadcast réseau de consultation (ex.: 192.168.182.255)
255
        PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2`                # @ broadcast réseau de consultation (ex.: 192.168.182.255)
Line 391... Line 374...
391
        $SED "s?99/99/9999?$DATE_SHORT?g" $DIR_WEB/menu.php
374
        $SED "s?99/99/9999?$DATE_SHORT?g" $DIR_WEB/menu.php
392
        $SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
375
        $SED "s?\$DB_RADIUS = .*?\$DB_RADIUS = \"$DB_RADIUS\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
393
        $SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
376
        $SED "s?\$DB_USER = .*?\$DB_USER = \"$DB_USER\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
394
        $SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
377
        $SED "s?\$radiuspwd = .*?\$radiuspwd = \"$radiuspwd\"\;?g" $DIR_WEB/phpsysinfo/includes/xml/portail.php
395
        chmod 640 $DIR_WEB/phpsysinfo/includes/xml/portail.php
378
        chmod 640 $DIR_WEB/phpsysinfo/includes/xml/portail.php
396
        chown -R apache.apache $DIR_WEB/*
379
        chown -R apache:apache $DIR_WEB/*
397
        for i in ISO base logs/firewall logs/httpd logs/squid ;
380
        for i in ISO base logs/firewall logs/httpd logs/squid ;
398
        do
381
        do
399
                [ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i
382
                [ -d $DIR_SAVE/$i ] || mkdir -p $DIR_SAVE/$i
400
        done
383
        done
401
        chown -R root.apache $DIR_SAVE
384
        chown -R root:apache $DIR_SAVE
402
# Configuration php
385
# Configuration php
403
        $SED "s?^upload_max_filesize.*?upload_max_filesize = 20M?g" /etc/php.ini
386
        $SED "s?^upload_max_filesize.*?upload_max_filesize = 20M?g" /etc/php.ini
404
        $SED "s?^post_max_size.*?post_max_size = 20M?g" /etc/php.ini
387
        $SED "s?^post_max_size.*?post_max_size = 20M?g" /etc/php.ini
405
# Configuration Apache
388
# Configuration Apache
406
        [ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
389
        [ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
Line 534... Line 517...
534
        $SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
517
        $SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
535
        $DIR_DEST_BIN/alcasar-CA.sh $mode
518
        $DIR_DEST_BIN/alcasar-CA.sh $mode
536
        MOD_SSL=`find /etc/httpd/conf -type f -name *default_ssl*`
519
        MOD_SSL=`find /etc/httpd/conf -type f -name *default_ssl*`
537
        $SED "s?localhost.crt?alcasar.crt?g" $MOD_SSL
520
        $SED "s?localhost.crt?alcasar.crt?g" $MOD_SSL
538
        $SED "s?localhost.key?alcasar.key?g" $MOD_SSL
521
        $SED "s?localhost.key?alcasar.key?g" $MOD_SSL
539
        chown -R root.apache /etc/pki
522
        chown -R root:apache /etc/pki
540
        chmod -R 750 /etc/pki
523
        chmod -R 750 /etc/pki
541
} # End AC ()
524
} # End AC ()
542
 
525
 
543
##########################################################################################
526
##########################################################################################
544
##                      Fonction init_db()                                              ##
527
##                      Fonction init_db()                                              ##
Line 653... Line 636...
653
        fi
636
        fi
654
# copie des fichiers modifiés et suppression des fichiers inutiles
637
# copie des fichiers modifiés et suppression des fichiers inutiles
655
        cp -rf $DIR_GESTION/manager/* $DIR_WEB/manager/
638
        cp -rf $DIR_GESTION/manager/* $DIR_WEB/manager/
656
        rm -f $DIR_WEB/manager/index.html $DIR_WEB/manager/readme
639
        rm -f $DIR_WEB/manager/index.html $DIR_WEB/manager/readme
657
        rm -f $DIR_WEB/manager/htdocs/about.html $DIR_WEB/manager/htdocs/index.html $DIR_WEB/manager/htdocs/content.html
640
        rm -f $DIR_WEB/manager/htdocs/about.html $DIR_WEB/manager/htdocs/index.html $DIR_WEB/manager/htdocs/content.html
658
        chown -R apache.apache $DIR_WEB/manager/
641
        chown -R apache:apache $DIR_WEB/manager/
659
# Modification du fichier de configuration
642
# Modification du fichier de configuration
660
        [ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default
643
        [ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default
661
        $SED "s?^general_domain:.*?general_domain: $ORGANISME.org?g" /etc/freeradius-web/admin.conf
644
        $SED "s?^general_domain:.*?general_domain: $ORGANISME.$DOMAIN?g" /etc/freeradius-web/admin.conf
662
        $SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf
645
        $SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf
663
        $SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf
646
        $SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf
664
        $SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf
647
        $SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf
665
        $SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf
648
        $SED "s?^sql_usergroup_table: .*?sql_usergroup_table: radusergroup?g" /etc/freeradius-web/admin.conf
666
        $SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf
649
        $SED "s?^sql_password_attribute:.*?sql_password_attribute: Crypt-Password?g" /etc/freeradius-web/admin.conf
Line 678... Line 661...
678
        cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs
661
        cp -f $DIR_CONF/user_edit.attrs /etc/freeradius-web/user_edit.attrs
679
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port)
662
# Modification des attributs visibles sur les pages des statistiques (suppression NAS_IP et NAS_port)
680
        [ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default
663
        [ -e /etc/freeradius-web/sql.attrs.default ] || cp /etc/freeradius-web/sql.attrs /etc/freeradius-web/user_edit.attrs.default
681
        $SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs
664
        $SED "s?^NASIPAddress.*?NASIPAddress\tNas IP Address\tno?g" /etc/freeradius-web/sql.attrs
682
        $SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs
665
        $SED "s?^NASPortId.*?NASPortId\tNas Port\tno?g" /etc/freeradius-web/sql.attrs
683
        chown -R apache.apache /etc/freeradius-web
666
        chown -R apache:apache /etc/freeradius-web
684
# Ajout de l'alias vers la page de "changement de mot de passe usager"
667
# Ajout de l'alias vers la page de "changement de mot de passe usager"
685
        cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
668
        cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
686
Alias /pass/ "$DIR_WEB/manager/pass/"
669
Alias /pass/ "$DIR_WEB/manager/pass/"
687
<Directory $DIR_WEB/manager/pass>
670
<Directory $DIR_WEB/manager/pass>
688
        SSLRequireSSL
671
        SSLRequireSSL
Line 726... Line 709...
726
        $SED "s?^# HS_DYNIP=.*?HS_DYNIP=$PRIVATE_DYN_IP?g" /etc/chilli/config
709
        $SED "s?^# HS_DYNIP=.*?HS_DYNIP=$PRIVATE_DYN_IP?g" /etc/chilli/config
727
        $SED "s?^# HS_DYNIP_MASK=.*?HS_DYNIP_MASK=$PRIVATE_DYN_MASK?g" /etc/chilli/config
710
        $SED "s?^# HS_DYNIP_MASK=.*?HS_DYNIP_MASK=$PRIVATE_DYN_MASK?g" /etc/chilli/config
728
        $SED "s?^# HS_STATIP=.*?HS_STATIP=$PRIVATE_STAT_IP?g" /etc/chilli/config
711
        $SED "s?^# HS_STATIP=.*?HS_STATIP=$PRIVATE_STAT_IP?g" /etc/chilli/config
729
        $SED "s?^# HS_STATIP_MASK.*?HS_STATIP_MASK=$PRIVATE_STAT_MASK?g" /etc/chilli/config
712
        $SED "s?^# HS_STATIP_MASK.*?HS_STATIP_MASK=$PRIVATE_STAT_MASK?g" /etc/chilli/config
730
        $SED "s?^# HS_DNS_DOMAIN=.*?HS_DNS_DOMAIN=$DOMAIN?g" /etc/chilli/config
713
        $SED "s?^# HS_DNS_DOMAIN=.*?HS_DNS_DOMAIN=$DOMAIN?g" /etc/chilli/config
731
        $SED "s?^# HS_DNS1=.*?HS_DNS1=$PRIVATE_IP?g" /etc/chilli/config
714
        $SED "s?^HS_DNS1=.*?HS_DNS1=$PRIVATE_IP?g" /etc/chilli/config
732
#       $SED "s?^# HS_DNS2=.*?HS_DNS2=208.67.222.222?g" /etc/chilli/config
715
        $SED "s?^HS_DNS2=.*?HS_DNS2=$PRIVATE_IP?g" /etc/chilli/config
733
        $SED "s?^HS_UAMSECRET=.*?HS_UAMSECRET=$secretuam?g" /etc/chilli/config
716
        $SED "s?^HS_UAMSECRET=.*?HS_UAMSECRET=$secretuam?g" /etc/chilli/config
734
        $SED "s?^HS_RADIUS=.*?HS_RADIUS=127.0.0.1?g" /etc/chilli/config
717
        $SED "s?^HS_RADIUS=.*?HS_RADIUS=127.0.0.1?g" /etc/chilli/config
735
        $SED "s?^HS_RADIUS2=.*?HS_RADIUS2=127.0.0.1?g" /etc/chilli/config
718
        $SED "s?^HS_RADIUS2=.*?HS_RADIUS2=127.0.0.1?g" /etc/chilli/config
736
        $SED "s?^HS_RADSECRET=.*?HS_RADSECRET=$secretradius?g" /etc/chilli/config
719
        $SED "s?^HS_RADSECRET=.*?HS_RADSECRET=$secretradius?g" /etc/chilli/config
737
        $SED "s?^HS_UAMALLOW=.*?# HS_UAMALLOW?g" /etc/chilli/config
720
        $SED "s?^HS_UAMALLOW=.*?# HS_UAMALLOW?g" /etc/chilli/config
Line 855... Line 838...
855
# on configure la BL de toulouse
838
# on configure la BL de toulouse
856
        cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist
839
        cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist
857
[ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default
840
[ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default
858
        $SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas)
841
        $SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas)
859
        cat $DIR_CONF/bannedurllist >> /etc/dansguardian/lists/bannedurllist
842
        cat $DIR_CONF/bannedurllist >> /etc/dansguardian/lists/bannedurllist
860
        chown -R dansguardian.apache /etc/dansguardian/
843
        chown -R dansguardian:apache /etc/dansguardian/
861
        chmod -R g+rw /etc/dansguardian
844
        chmod -R g+rw /etc/dansguardian
862
} # End of param_dansguardian ()
845
} # End of param_dansguardian ()
863
 
846
 
864
##################################################################################
847
##################################################################################
865
##                              Fonction firewall                               ##
848
##                              Fonction firewall                               ##
Line 874... Line 857...
874
        $SED "s?^PRIVATE_NETWORK_MASK=.*?PRIVATE_NETWORK_MASK=\"$PRIVATE_NETWORK_MASK\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
857
        $SED "s?^PRIVATE_NETWORK_MASK=.*?PRIVATE_NETWORK_MASK=\"$PRIVATE_NETWORK_MASK\"?g" $DIR_DEST_BIN/alcasar-iptables.sh  $DIR_DEST_BIN/alcasar-iptables-bypass.sh
875
        $SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh
858
        $SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-iptables.sh $DIR_DEST_BIN/alcasar-iptables-bypass.sh
876
        chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau)
859
        chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau)
877
        [ -d /var/log/firewall ] || mkdir -p /var/log/firewall
860
        [ -d /var/log/firewall ] || mkdir -p /var/log/firewall
878
        [ -e /var/log/firewall/firewall.log ] || touch /var/log/firewall/firewall.log
861
        [ -e /var/log/firewall/firewall.log ] || touch /var/log/firewall/firewall.log
879
        chown -R root.apache /var/log/firewall
862
        chown -R root:apache /var/log/firewall
880
        chmod 750 /var/log/firewall
863
        chmod 750 /var/log/firewall
881
        chmod 640 /var/log/firewall/firewall.log
864
        chmod 640 /var/log/firewall/firewall.log
882
        $SED "s?^file=\"/var/log/ulogd.syslogemu\"?file=\"/var/log/firewall/firewall.log\"?g" /etc/ulogd.conf
865
        $SED "s?^file=\"/var/log/ulogd.syslogemu\"?file=\"/var/log/firewall/firewall.log\"?g" /etc/ulogd.conf
883
        sh $DIR_DEST_BIN/alcasar-iptables.sh
866
        sh $DIR_DEST_BIN/alcasar-iptables.sh
884
}  # End of firewall ()
867
}  # End of firewall ()
Line 924... Line 907...
924
##              Fonction bind                           ##
907
##              Fonction bind                           ##
925
## - Mise en place des différents fichiers de bind     ##
908
## - Mise en place des différents fichiers de bind     ##
926
##########################################################
909
##########################################################
927
param_bind ()
910
param_bind ()
928
{
911
{
929
# modification du fichier autorisant l'accès au service 
-
 
930
        [ -e /etc/trusted_networks_acl.conf ] || ln -s /var/lib/named/etc/trusted_networks_acl.conf /etc/
912
        ln -sf /var/lib/named/etc/trusted_networks_acl.conf /etc/
931
        [ -e /etc/named.conf ] || ln -s /var/lib/named/etc/named.conf /etc/
913
        ln -sf /var/lib/named/etc/named.conf /etc/
932
        [ -d /var/named/ ] || ln -s /var/lib/named/var/named /var/
914
        ln -sf /var/lib/named/var/named /var/
933
        [ -d /var/log/named ] || ln -s /var/lib/named/var/log/ /var/log/named
915
        ln -sf /var/lib/named/var/log/ /var/log/named
934
        [ -e /var/lib/named/etc/trusted_networks_acl.conf.default  ] || cp /var/lib/named/etc/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf.default
916
        [ -e /var/lib/named/etc/trusted_networks_acl.conf.default  ] || cp /var/lib/named/etc/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf.default
935
        [ -e /var/lib/named/etc/named.conf.default  ] || cp /var/lib/named/etc/named.conf /var/lib/named/etc/named.conf.default
917
        [ -e /var/lib/named/etc/named.conf.default  ] || cp /var/lib/named/etc/named.conf /var/lib/named/etc/named.conf.default
936
        [ -e /var/lib/named/var/named/master/localdomain.zone.default  ] || cp /var/lib/named/var/named/master/localdomain.zone /var/lib/named/var/named/master/localdomain.zone.default
918
        [ -e /var/lib/named/var/named/master/localdomain.zone.default  ] || cp /var/lib/named/var/named/master/localdomain.zone /var/lib/named/var/named/master/localdomain.zone.default
-
 
919
        $SED "s?127.0.0.1;.*?127.0.0.1; $CUSTOM_PRIVATE_NETWORK_MASK;?g" /var/lib/named/etc/trusted_networks_acl.conf
-
 
920
        $SED "s?listen-on.*?listen-on port 53 \{ 127.0.0.1; $PRIVATE_IP; \};?g" /var/lib/named/etc/named.conf
-
 
921
        $SED "s?^\/\/ include \"\/etc\/bogon_acl.conf\";.*?include \"\/etc\/bogon_acl.conf\";?g" /var/lib/named/etc/named.conf
-
 
922
# On crée l'entrée pour le reverse
-
 
923
        for i in $(seq $classe)
937
       
924
        do
938
        if [ -d /tmp/named ]
925
                o[$i]=`echo $PRIVATE_NETWORK|cut -d"." -f$i`
939
        then
926
        done
940
                mv -f /tmp/named/trusted_networks_acl.conf /var/lib/named/etc/trusted_networks_acl.conf
927
        for i in $(seq $classe -1 1)
-
 
928
        do
941
                mv -f /tmp/named/named.conf /var/lib/named/etc/
929
                echo -n "${o[$i]}." >> /tmp/rev.txt
-
 
930
        done
942
                mv -f /tmp/named/localdomain.zone /var/lib/named/var/named/master/localdomain.zone
931
        echo "in-addr.arpa" >> /tmp/rev.txt
943
                chmod 644 /var/lib/named/etc/{trusted_networks_acl.conf,named.conf} /var/lib/named/var/named/master/localdomain.zone
932
        reverse_addr=`cat /tmp/rev.txt`
944
                [ -e /etc/trusted_networks_acl.conf ] || ln -s /var/lib/named/etc/trusted_networks_acl.conf /etc/
933
        rm -f /tmp/rev.txt
945
                [ -e /etc/named.conf ] || ln -s /var/lib/named/etc/named.conf /etc/
934
cat << EOF >> /var/lib/named/etc/named.conf
946
                rmdir /tmp/named
935
zone "$reverse_addr" IN {
947
        else    
936
        type master;
948
                $SED "s?127.0.0.1;.*?127.0.0.1; $CUSTOM_PRIVATE_NETWORK_MASK;?g" /etc/trusted_networks_acl.conf
937
        file "reverse/localdomain.rev";
949
# modification du fichier de zone local - peut-être supprimé si redirect systematique de domain vers 127.0.0.1 avec alcasar-iptables.sh
-
 
950
                $SED "s?listen-on*?listen-on port 53 \{ 127.0.0.1; $PRIVATE_IP; \};?g" /etc/named.conf
938
        allow-update { none; };
951
                $SED "s?^\/\/ include \"\/etc\/bogon_acl.conf\";.*?include \"\/etc\/bogon_acl.conf\"?g" /etc/named.conf
-
 
-
 
939
};
-
 
940
EOF
952
                cp -f $DIR_CONF/localdomain.zone /var/lib/named/var/named/master/localdomain.zone
941
        cp -f $DIR_CONF/localdomain.zone /var/lib/named/var/named/master/localdomain.zone
-
 
942
        echo "$HOSTNAME IN A $PRIVATE_IP" >> /var/lib/named/var/named/master/localdomain.zone
953
                $SED "s?alcasar-localhost.*?$HOSTNAME   IN A $PRIVATE_IP?g" /var/named/master/localdomain.zone
943
        echo "alcasar   IN CNAME $HOSTNAME" >> /var/lib/named/var/named/master/localdomain.zone
954
        fi
-
 
-
 
944
        cp -f $DIR_CONF/localdomain.rev /var/lib/named/var/named/reverse/localdomain.rev
955
# modification de config de coova-chilli --> fait dans param_chilli
945
        echo "1         IN PTR alcasar." >> /var/lib/named/var/named/reverse/localdomain.rev
956
# fichier de blacklistage de named dans  ... a venir
946
# fichier de blacklistage de named dans  ... a venir
957
}
947
}
958
 
948
 
959
##########################################################
949
##########################################################
960
##              Fonction cron                           ##
950
##              Fonction cron                           ##
Line 1032... Line 1022...
1032
##                      Fonction post_install                   ##
1022
##                      Fonction post_install                   ##
1033
## - Modification des bannières (locales et ssh) et des prompts ##
1023
## - Modification des bannières (locales et ssh) et des prompts ##
1034
## - Installation de la structure de chiffrement pour root      ##
1024
## - Installation de la structure de chiffrement pour root      ##
1035
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1025
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1036
## - Mise en place du la rotation des logs                      ##
1026
## - Mise en place du la rotation des logs                      ##
-
 
1027
## - Configuration dans le cas d'une mise à jour               ##
1037
##################################################################
1028
##################################################################
1038
post_install()
1029
post_install()
1039
{
1030
{
1040
# adaptation du script "chien de garde" (watchdog)
1031
# adaptation du script "chien de garde" (watchdog)
1041
        $SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
1032
        $SED "s?^PRIVATE_IP=.*?PRIVATE_IP=\"$PRIVATE_IP\"?g" $DIR_DEST_BIN/alcasar-watchdog.sh
Line 1045... Line 1036...
1045
 Bienvenue sur $HOSTNAME
1036
 Bienvenue sur $HOSTNAME
1046
 
1037
 
1047
EOF
1038
EOF
1048
# création de la bannière SSH
1039
# création de la bannière SSH
1049
        cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh
1040
        cp /etc/mandriva-release /etc/ssh/alcasar-banner-ssh
1050
        chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root.root /etc/ssh/alcasar-banner-ssh
1041
        chmod 644 /etc/ssh/alcasar-banner-ssh ; chown root:root /etc/ssh/alcasar-banner-ssh
1051
        [ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
1042
        [ -e /etc/ssh/sshd_config.default ] || cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
1052
        $SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1043
        $SED "s?^Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1053
        $SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1044
        $SED "s?^#Banner.*?Banner /etc/ssh/alcasar-banner-ssh?g" /etc/ssh/sshd_config
1054
# sshd écoute côté LAN
1045
# sshd écoute côté LAN
1055
        $SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1046
        $SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
1056
# sshd n'est pas lancé automatiquement au démarrage
1047
# sshd n'est pas lancé automatiquement au démarrage
1057
        /sbin/chkconfig --del sshd
1048
        /sbin/chkconfig --del sshd
1058
# Coloration des prompts
1049
# Coloration des prompts
1059
        [ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1050
        [ -e /etc/bashrc.default ]  || cp /etc/bashrc /etc/bashrc.default
1060
        cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root.root /etc/bashrc
1051
        cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1061
# Droits d'exécution pour utilisateur apache et sysadmin
1052
# Droits d'exécution pour utilisateur apache et sysadmin
1062
        [ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1053
        [ -e /etc/sudoers.default ]  || cp /etc/sudoers /etc/sudoers.default
1063
        cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root.root /etc/sudoers
1054
        cp -f $DIR_CONF/sudoers /etc/. ; chmod 440 /etc/sudoers ; chown root:root /etc/sudoers
1064
        $SED "s?^Host_Alias.*?Host_Alias        LAN_ORG=$PRIVATE_NETWORK_MASK,localhost         #réseau de l'organisme?g" /etc/sudoers
1055
        $SED "s?^Host_Alias.*?Host_Alias        LAN_ORG=$PRIVATE_NETWORK_MASK,localhost         #réseau de l'organisme?g" /etc/sudoers
1065
# prise en compte de la rotation des logs sur 1 an (concerne mysql, htttpd, dansguardian, squid, radiusd, ulogd)
1056
# prise en compte de la rotation des logs sur 1 an (concerne mysql, htttpd, dansguardian, squid, radiusd, ulogd)
1066
        cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
1057
        cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
1067
        chmod 644 /etc/logrotate.d/*
1058
        chmod 644 /etc/logrotate.d/*
1068
# processus lancés par défaut au démarrage
1059
# processus lancés par défaut au démarrage
1069
        for i in ntpd iptables ulogd squid chilli httpd radiusd mysqld dansguardian
1060
        for i in netfs ntpd iptables ulogd squid chilli httpd radiusd mysqld dansguardian named
1070
        do
1061
        do
1071
                /sbin/chkconfig --add $i
1062
                /sbin/chkconfig --add $i
1072
        done
1063
        done
1073
# On mets en place la sécurité sur les fichiers
1064
# On mets en place la sécurité sur les fichiers
1074
# des modif par rapport à radius update
1065
# des modif par rapport à radius update
Line 1091... Line 1082...
1091
/etc/raddb/modules/ldap                 radius.apache   660
1082
/etc/raddb/modules/ldap                 radius.apache   660
1092
/etc/raddb/sites-available/alcasar      radius.apache   660
1083
/etc/raddb/sites-available/alcasar      radius.apache   660
1093
/etc/pki/*                              root.apache     750
1084
/etc/pki/*                              root.apache     750
1094
EOF
1085
EOF
1095
        /usr/sbin/msec
1086
        /usr/sbin/msec
-
 
1087
if [ "$mode" = "update" ]
-
 
1088
# on charge la conf d'un version précédente
-
 
1089
then
-
 
1090
        $DIR_DEST_BIN/alcasar-conf.sh -load
-
 
1091
fi
1096
        cd $DIR_INSTALL
1092
        cd $DIR_INSTALL
1097
        clear
1093
        echo ""
1098
        echo "#############################################################################"
1094
        echo "#############################################################################"
1099
        echo "#                        Fin d'installation d'ALCASAR                       #"
1095
        echo "#                        Fin d'installation d'ALCASAR                       #"
1100
        echo "#                                                                           #"
1096
        echo "#                                                                           #"
1101
        echo "#         Application Libre pour le Contrôle Authentifié et Sécurisé        #"
1097
        echo "#         Application Libre pour le Contrôle Authentifié et Sécurisé        #"
1102
        echo "#                     des Accès au Réseau ( ALCASAR )                       #"
1098
        echo "#                     des Accès au Réseau ( ALCASAR )                       #"
Line 1117... Line 1113...
1117
} # End post_install ()
1113
} # End post_install ()
1118
 
1114
 
1119
#################################
1115
#################################
1120
#  Boucle principale du script  #
1116
#  Boucle principale du script  #
1121
#################################
1117
#################################
1122
usage="Usage: alcasar.sh -install | -uninstall | -update"
1118
usage="Usage: alcasar.sh -install | -uninstall"
1123
nb_args=$#
1119
nb_args=$#
1124
args=$1
1120
args=$1
1125
if [ $nb_args -eq 0 ]
1121
if [ $nb_args -eq 0 ]
1126
then
1122
then
1127
        nb_args=1
1123
        nb_args=1
Line 1131... Line 1127...
1131
        -\? | -h* | --h*)
1127
        -\? | -h* | --h*)
1132
                echo "$usage"
1128
                echo "$usage"
1133
                exit 0
1129
                exit 0
1134
                ;;
1130
                ;;
1135
        -install)                               # Installation de toutes les briques d'ALCASAR
1131
        -install)                               # Installation de toutes les briques d'ALCASAR
1136
                mode="install"
1132
                header_install
1137
                for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian firewall param_awstats param_bind cron post_install
1133
# On teste la version du système
-
 
1134
                fic=`cat /etc/product.id`
-
 
1135
                old="$IFS"
-
 
1136
                IFS=","
-
 
1137
                set $fic
-
 
1138
                for i in $*
1138
                do
1139
                do
1139
                        $func
-
 
1140
# echo "*** 'debug' : end of function $func ***"; read a
1140
                        if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
1141
                        done
-
 
1142
                ;;
-
 
1143
        -uninstall)
-
 
1144
                if [ ! -e $DIR_WEB/VERSION ]
-
 
1145
                then
1141
                        then
1146
                        echo "Aucune version d'ALCASAR n'a été trouvée.";
1142
                                version=`echo $i|cut -d"=" -f2`
1147
                        exit 0
-
 
1148
                fi
1143
                        fi
1149
                echo -n "Etes-vous sûr de vouloir désinstaller ALCASAR (O/n)? "
-
 
1150
                read reponse
1144
                done
-
 
1145
                IFS="$old"
1151
                if [ "$reponse" = "n" ] || [ "$reponse" = "N" ]
1146
                if [ ! "$version" = "$MDV_NEEDED" ]
1152
                then
1147
                then
1153
                        clear
-
 
-
 
1148
                        echo "Vous devez installer une des versions suivantes de Linux Mandriva ($MDV_NEEDED)"
-
 
1149
                        echo "Lancez la commande 'alcasar-conf.sh -create' pour créer le fichier de conf de la version actuelle (/tmp/alcasar-conf.tar.gz). Récupérez ce fichier et recopiez-le dans le répertoire '/tmp' après installation du nouveau système"
1154
                        exit 0
1150
                        exit 0
1155
                fi
1151
                fi
1156
                $DIR_DEST_SBIN/alcasar-uninstall.sh     # désinstallation des constituants du portail
1152
# On teste la présence d'une version déjà installée
1157
                ;;
-
 
1158
        -update)
-
 
1159
                if [ ! -e $DIR_WEB/VERSION ]
1153
                if [ -e $DIR_WEB/VERSION ]
1160
                then
1154
                then
1161
                        echo "Aucune version d'ALCASAR n'a été trouvée."; echo "Utilisez l'option '-install' si vous voulez l'installer.";
1155
                        echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée";
-
 
1156
                        response=0
-
 
1157
                        PTN='^[oOnN]$'
-
 
1158
                        until [[ $(expr $response : $PTN) -gt 0 ]]
-
 
1159
                        do
-
 
1160
                                echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
-
 
1161
                                read response
-
 
1162
                        done
-
 
1163
                        if [ "$response" = "o" ] || [ "$response" = "O" ]
1162
                        exit 0
1164
                        then
-
 
1165
# On crée le fichier de conf de la version actuelle
-
 
1166
                                chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
-
 
1167
                                $DIR_SCRIPTS/alcasar-conf.sh -create
1163
                fi
1168
                        fi
1164
                old_version=`cat $DIR_WEB/VERSION |cut -b 1-3`
1169
# On désinstalle la version actuelle
-
 
1170
                $DIR_DEST_SBIN/alcasar-uninstall.sh
-
 
1171
                fi
1165
                if [ "$old_version" != "1.8" ] && [ "$old_version" != "1.9" ]
1172
                if [ -e /tmp/alcasar-conf.tar.gz ]
1166
                then
1173
                then
-
 
1174
echo "#### Installation avec mise à jour ####"
1167
                        echo "Cette mise à jour ne s'applique que sur les versions 1.8 et supérieures";
1175
# On récupère le nom d'organisme à partir de fichier de conf
-
 
1176
                        tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname
-
 
1177
                        ORGANISME=`cat $DIR_CONF/hostname|cut -b 9-`
1168
                        echo -n "la version installée est : "; echo `cat $DIR_WEB/VERSION`;
1178
                        hostname `cat $DIR_CONF/hostname`
-
 
1179
                        mode="update"
1169
                        exit 0
1180
                else
-
 
1181
                        mode="install"
1170
                fi
1182
                fi
-
 
1183
for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian firewall param_awstats param_bind cron post_install
-
 
1184
                do
-
 
1185
                        $func
1171
                echo -n "Etes-vous sûr de vouloir mettre à jour ALCASAR (O/n)? "
1186
# echo "*** 'debug' : end of function $func ***"; read a
1172
                read reponse
1187
                        done
-
 
1188
                ;;
-
 
1189
        -uninstall)
1173
                if [ "$reponse" = "n" ] || [ "$reponse" = "N" ]
1190
                if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1174
                then
1191
                then
1175
                        clear
1192
                        echo "Aucune version d'ALCASAR n'a été trouvée.";
1176
                        exit 0
1193
                        exit 0
1177
                fi
1194
                fi
1178
                header_update
-
 
1179
                mode="update"
1195
                response=0
1180
# On récupère le nom d'organisme
-
 
1181
                ORGANISME=`hostname|cut -b 9-`
-
 
1182
# Mets-on a jour le certificat serveur (o/n) ?
-
 
1183
                cert_date=`/usr/bin/openssl x509 -noout -in /etc/pki/tls/certs/alcasar.crt -dates|grep After|cut -d"=" -f2`
-
 
1184
                echo "le certificat actuel d'Alcasar expire le : $cert_date".
-
 
1185
                echo "Vous pouvez le remplacer par un nouveau qui sera valide 5 ans".
-
 
1186
                echo "Dans ce cas, il faudra supprimer l'ancien des navigateurs".
-
 
1187
                echo "Voulez-vous garder le certificat actuel (recommandé) (o/n)? "
-
 
1188
                read old_cert
1196
                PTN='^[oOnN]$'
1189
                if [ "$old_cert" = "o" ] || [ "$old_cert" = "O" ]
1197
                until [[ $(expr $response : $PTN) -gt 0 ]]
1190
                then
-
 
1191
                        cp -f /etc/pki/tls/certs/alcasar.crt /tmp/
-
 
1192
                        cp -f /etc/pki/tls/private/alcasar.key /tmp/
-
 
1193
                fi
1198
                do
1194
# Sauvegarde du certificat de la CA
-
 
1195
                cp -f /etc/pki/CA/alcasar-ca.crt /tmp/
-
 
1196
                cp -f /etc/pki/CA/private/alcasar-ca.key /tmp/
-
 
1197
# export de la base pour sauvegarde et réinjection
-
 
1198
                $DIR_DEST_SBIN/alcasar-mysql.sh -dump
-
 
1199
# Sauvegarde des comptes de gestion
-
 
1200
                cp -rf $DIR_WEB/digest /tmp/
-
 
1201
# Sauvegarde du nom d'organisme
-
 
1202
                HOST=`hostname`
-
 
1203
# Sauvegarde du logo
-
 
1204
                cp -f $DIR_WEB/images/organisme.png /tmp/
-
 
1205
# Sauvegarde des uamallowed (urls et domaines)
-
 
1206
                cp -f /etc/chilli/alcasar-uamallowed /tmp/alcasar-uamallowed
-
 
1207
                cp -f /etc/chilli/alcasar-uamdomain /tmp/alcasar-uamdomain
-
 
1208
# Sauvegarde des listes de filtrage (BL principale et secondaire, @IP non filtrés, etc.)
1199
                        echo -n "Voulez-vous créer le fichier de conf de la version actuelle (0/n)? "
1209
                echo "sauvegarde de l'ancienne blacklist ..."
-
 
1210
                cp -rf /etc/dansguardian/lists/ /tmp/
-
 
1211
# sauvegarde des fichiers de filtrage réseau
-
 
1212
                mkdir /tmp/etc/
1200
                        read response
1213
                cp -rf $DIR_DEST_ETC/* /tmp/etc/
-
 
1214
# sauvegarde des fichiers DNS Bind : probablement pas utile
-
 
1215
                cp /etc/named.conf /tmp/named/
-
 
1216
                cp /var/lib/named/etc/trusted_networks_acl.conf /tmp/named/
-
 
1217
                cp /var/lib/named/var/named/master/localdomain.zone /tmp/named/
-
 
1218
# désinstallation des constituants du portail
-
 
1219
                chmod 750 $DIR_SCRIPTS/sbin/alcasar-uninstall.sh
-
 
1220
                $DIR_SCRIPTS/sbin/alcasar-uninstall.sh
-
 
1221
# réinstallation
-
 
1222
                hostname $HOST
-
 
1223
                init
1201
                done
1224
                network
-
 
1225
                gestion
-
 
1226
# Installation de l'interface de gestion
-
 
1227
# Récupération du logo
-
 
1228
                mv -f /tmp/organisme.png $DIR_WEB/images/
-
 
1229
                chown apache:apache $DIR_WEB/images/organisme.png $DIR_WEB/intercept.php
-
 
1230
# Récupération du certificat de la CA
-
 
1231
                mv -f /tmp/alcasar-ca.crt /etc/pki/CA/
-
 
1232
                mv -f /tmp/alcasar-ca.key /etc/pki/CA/private/
-
 
1233
                if [ "$old_cert" = "o" ] || [ "$old_cert" = "O" ]
1202
                if [ "$reponse" = "o" ] || [ "$reponse" = "O" ]
1234
                then                    # on récupère l'ancien et on pointe dessus
-
 
1235
                        mv -f /tmp/alcasar.crt /etc/pki/tls/certs/
-
 
1236
                        mv -f /tmp/alcasar.key /etc/pki/tls/private/
-
 
1237
                        [ -d $DIR_WEB/certs ] || mkdir -p $DIR_WEB/certs
-
 
1238
                        chown apache:apache $DIR_WEB/certs
-
 
1239
                        rm -f $DIR_WEB/certs/*
-
 
1240
                        ln -s /etc/pki/tls/certs/alcasar.crt $DIR_WEB/certs/certificat_alcasar.pem
-
 
1241
                        ln -s /etc/pki/CA/alcasar-ca.crt $DIR_WEB/certs/certificat_alcasar_ca.pem
-
 
1242
                        chown -R root.apache /etc/pki
-
 
1243
                        chmod -R 750 /etc/pki
-
 
1244
                else                    # création d'un nouveau certificat serveur
-
 
1245
                        AC
-
 
1246
                fi
-
 
1247
                init_db                 # Création de la base 'radius' sur le serveur MySql
-
 
1248
# Import de la dernière base usagers
-
 
1249
                mysql -u$DB_USER -p$radiuspwd < $DIR_SAVE/base/`ls $DIR_SAVE/base|tail -1`
-
 
1250
                param_radius
-
 
1251
                param_web_radius
-
 
1252
                param_chilli
-
 
1253
# Récupération des uamallowed
-
 
1254
                mv -f /tmp/alcasar-uam* /etc/chilli/.
-
 
1255
                chown root:apache /etc/chilli/alcasar-uam*
-
 
1256
                chmod 660 /etc/chilli/alcasar-uam*
-
 
1257
                param_squid
-
 
1258
                param_dansguardian
-
 
1259
# Récupération des listes de filtrage (BL principale et secondaire, @IP non filtrés, etc.)
-
 
1260
                rm -rf /etc/dansguardian/lists
-
 
1261
                mv /tmp/lists/ /etc/dansguardian/
-
 
1262
                firewall
-
 
1263
                param_awstats
-
 
1264
                cron
-
 
1265
# Récupération des comptes de gestion (admin + manager + backup)
-
 
1266
                mv -f /tmp/digest $DIR_WEB/
-
 
1267
                $DIR_DEST_SBIN/alcasar-profil.sh -list
-
 
1268
# Récupération des règles de filtrage réseau
-
 
1269
                if [ -d /tmp/etc ]
-
 
1270
                then
1203
                then
1271
                        mv -f /tmp/etc/* $DIR_DEST_ETC/
-
 
1272
                        chown root:apache $DIR_DEST_ETC/*
1204
                        $DIR_SCRIPT/alcasar-conf.sh -create
1273
                        chmod 660 $DIR_DEST_ETC/*
-
 
1274
                        rmdir /tmp/etc
-
 
1275
                fi
1205
                fi
-
 
1206
# On désinstalle la version actuelle
1276
                post_install
1207
                $DIR_DEST_SBIN/alcasar-uninstall.sh
1277
                ;;
1208
                ;;
1278
        *)
1209
        *)
1279
                echo "Argument inconnu :$1";
1210
                echo "Argument inconnu :$1";
1280
                echo "$usage"
1211
                echo "$usage"
1281
                exit 1
1212
                exit 1