Rev 307 | Rev 309 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log
Rev 307 | Rev 308 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | #!/bin/sh |
1 | #!/bin/sh |
2 | # $Id: alcasar.sh |
2 | # $Id: alcasar.sh 308 2010-10-25 22:17:29Z richard $ |
3 | 3 | ||
4 | # alcasar.sh |
4 | # alcasar.sh |
5 | # by Franck BOUIJOUX, Pascal LEVANT and Richard REY |
5 | # by Franck BOUIJOUX, Pascal LEVANT and Richard REY |
6 | # This script is distributed under the Gnu General Public License (GPL) |
6 | # This script is distributed under the Gnu General Public License (GPL) |
7 | 7 | ||
Line 30... | Line 30... | ||
30 | # param_dansguardian : Configuration de l'analyseur de contenu DansGuardian |
30 | # param_dansguardian : Configuration de l'analyseur de contenu DansGuardian |
31 | # antivirus : Installation havp + clamav |
31 | # antivirus : Installation havp + clamav |
32 | # firewall : Mise en place des règles du parefeu et de l'interface WEB FirewallEyes |
32 | # firewall : Mise en place des règles du parefeu et de l'interface WEB FirewallEyes |
33 | # param_awstats : Configuration de l'interface des statistiques de consultation WEB |
33 | # param_awstats : Configuration de l'interface des statistiques de consultation WEB |
34 | # dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours |
34 | # dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours |
- | 35 | # BL : Configuration de la BlackList |
|
35 | # cron : Mise en place des exports de logs (+ chiffrement) |
36 | # cron : Mise en place des exports de logs (+ chiffrement) |
36 | 37 | ||
37 | 38 | ||
38 | VERSION=`cat VERSION` |
39 | VERSION=`cat VERSION` |
39 | MDV_NEEDED="2010.1" |
40 | MDV_NEEDED="2010.1" |
Line 93... | Line 94... | ||
93 | echo "Échec" |
94 | echo "Échec" |
94 | echo "Le lien réseau de la carte $i n'est pas actif." |
95 | echo "Le lien réseau de la carte $i n'est pas actif." |
95 | echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR." |
96 | echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR." |
96 | exit 0 |
97 | exit 0 |
97 | fi |
98 | fi |
- | 99 | echo -n "." |
|
98 | done |
100 | done |
99 | # On teste la présence d'un routeur par défaut (Box FAI) |
101 | # On teste la présence d'un routeur par défaut (Box FAI) |
100 | if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then |
102 | if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then |
101 | echo "Échec" |
103 | echo "Échec" |
102 | echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte." |
104 | echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte." |
103 | echo "Réglez ce problème avant de poursuivre." |
105 | echo "Réglez ce problème avant de poursuivre." |
104 | exit 0 |
106 | exit 0 |
105 | fi |
107 | fi |
- | 108 | echo -n "." |
|
106 | # On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur |
109 | # On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de VirtualBox) |
107 | 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 |
108 | 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." |
109 | /etc/init.d/network stop |
112 | /etc/init.d/network stop |
110 | 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 |
111 | $SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0 |
114 | $SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0 |
Line 115... | Line 118... | ||
115 | echo "Configuration corrigée" |
118 | echo "Configuration corrigée" |
116 | sleep 2 |
119 | sleep 2 |
117 | echo "Vous pouvez relancer ce script (sh alcasar.sh -install)." |
120 | echo "Vous pouvez relancer ce script (sh alcasar.sh -install)." |
118 | exit 0 |
121 | exit 0 |
119 | fi |
122 | fi |
- | 123 | echo -n "." |
|
- | 124 | # On test le lien vers le routeur par default |
|
- | 125 | IP_GW=`ip route list|grep ^default|cut -d" " -f3` |
|
- | 126 | arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2` |
|
- | 127 | if [[ $(expr $arp_reply) -eq 0 ]] |
|
- | 128 | then |
|
- | 129 | echo "Échec" |
|
- | 130 | echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas." |
|
- | 131 | echo "Réglez ce problème avant de poursuivre." |
|
- | 132 | exit 0 |
|
- | 133 | fi |
|
- | 134 | echo -n "." |
|
120 | # On |
135 | # On test la connectivité Internet |
121 | rm -rf /tmp/con_ok.html |
136 | rm -rf /tmp/con_ok.html |
122 | /usr/bin/curl www.google.fr - |
137 | /usr/bin/curl www.google.fr -s -o /tmp/con_ok.html |
123 | if [ ! -e /tmp/con_ok.html ] |
138 | if [ ! -e /tmp/con_ok.html ] |
124 | then |
139 | then |
125 | echo "La tentative de connexion vers Internet a échoué (google.fr)." |
140 | echo "La tentative de connexion vers Internet a échoué (google.fr)." |
126 | echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI." |
141 | echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI." |
127 | echo "Vérifiez la validité des adresses DNS." |
142 | echo "Vérifiez la validité des adresses DNS." |
128 | exit 0 |
143 | exit 0 |
129 | fi |
144 | fi |
130 | echo "Tests de connectivité Internet corrects" |
- | |
131 | rm -rf /tmp/con_ok.html |
145 | rm -rf /tmp/con_ok.html |
- | 146 | echo ". : ok" |
|
132 | } # end of testing |
147 | } # end of testing |
133 | 148 | ||
134 | ################################################################## |
149 | ################################################################## |
135 | ## Fonction INIT ## |
150 | ## Fonction INIT ## |
136 | ## - Création du fichier "/root/ALCASAR_parametres.txt" ## |
151 | ## - Création du fichier "/root/ALCASAR_parametres.txt" ## |
Line 140... | Line 155... | ||
140 | ################################################################## |
155 | ################################################################## |
141 | init () |
156 | init () |
142 | { |
157 | { |
143 | if [ ! "$mode" = "update" ] |
158 | if [ ! "$mode" = "update" ] |
144 | then |
159 | then |
145 | header_install |
- | |
146 | # On affecte le nom d'organisme |
160 | # On affecte le nom d'organisme |
147 | header_install |
- | |
148 | ORGANISME=! |
161 | ORGANISME=! |
149 | PTN='^[a-zA-Z0-9-]*$' |
162 | PTN='^[a-zA-Z0-9-]*$' |
150 | until [[ $(expr $ORGANISME : $PTN) -gt 0 ]] |
163 | until [[ $(expr $ORGANISME : $PTN) -gt 0 ]] |
151 | do |
164 | do |
152 | echo -n "Entrez le nom de votre organisme : " |
165 | echo -n "Entrez le nom de votre organisme : " |
Line 197... | Line 210... | ||
197 | urpmi --auto $PACKAGES |
210 | urpmi --auto $PACKAGES |
198 | # On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts |
211 | # On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts |
199 | echo -n "/^coova/" >> /etc/urpmi/skip.list |
212 | echo -n "/^coova/" >> /etc/urpmi/skip.list |
200 | echo -n "/^freeradius/" >> /etc/urpmi/skip.list |
213 | echo -n "/^freeradius/" >> /etc/urpmi/skip.list |
201 | # On supprime les paquetages, les services et les utilisateurs inutiles |
214 | # On supprime les paquetages, les services et les utilisateurs inutiles |
202 | for rm_rpm in avahi mandi shorewall libc-icap0 cyrus-sasl |
215 | for rm_rpm in dhcp-server avahi mandi shorewall libc-icap0 cyrus-sasl |
203 | do |
216 | do |
204 | /usr/sbin/urpme --auto $rm_rpm --auto-orphans |
217 | /usr/sbin/urpme --auto $rm_rpm --auto-orphans |
205 | done |
218 | done |
206 | for svc in alsa sound dm atd dc_server |
219 | for svc in alsa sound dm atd dc_server |
207 | do |
220 | do |
Line 473... | Line 486... | ||
473 | </body> |
486 | </body> |
474 | </html> |
487 | </html> |
475 | EOF |
488 | EOF |
476 | echo "- URL d'accès au centre de gestion : https://$PRIVATE_IP" >> $FIC_PARAM |
489 | echo "- URL d'accès au centre de gestion : https://$PRIVATE_IP" >> $FIC_PARAM |
477 | # On crée le VirtualHost pour l'accès au port 80 (redirection après filtrage) |
490 | # On crée le VirtualHost pour l'accès au port 80 (redirection après filtrage) |
- | 491 | # On tente d'intercepter toute les URLs (réécriture) |
|
478 | FIC_VIRTUAL=`find /etc/httpd/conf -type f -name *default_vhosts*` |
492 | FIC_VIRTUAL=`find /etc/httpd/conf -type f -name *default_vhosts*` |
479 | [ -e /etc/httpd/conf/vhosts.default ] || cp $FIC_VIRTUAL /etc/httpd/conf/vhosts.default |
493 | [ -e /etc/httpd/conf/vhosts.default ] || cp $FIC_VIRTUAL /etc/httpd/conf/vhosts.default |
480 | cat <<EOF > $FIC_VIRTUAL |
494 | cat <<EOF > $FIC_VIRTUAL |
481 | NameVirtualHost *:80 |
495 | NameVirtualHost *:80 |
482 | <VirtualHost *:80> |
496 | <VirtualHost *:80> |
483 | ServerName $HOSTNAME |
497 | ServerName $HOSTNAME |
484 | DocumentRoot $DIR_WEB/redirect |
498 | DocumentRoot $DIR_WEB/redirect |
- | 499 | RewriteEngine on |
|
- | 500 | RewriteRule ^(.*)$ /index.php [L] |
|
485 | </VirtualHost> |
501 | </VirtualHost> |
486 | EOF |
502 | EOF |
487 | # Définition du premier compte lié au profil 'admin' |
503 | # Définition du premier compte lié au profil 'admin' |
488 | if [ "$mode" = "install" ] |
504 | if [ "$mode" = "install" ] |
489 | then |
505 | then |
Line 901... | Line 917... | ||
901 | touch /etc/dansguardian/lists/bannedextensionlist |
917 | touch /etc/dansguardian/lists/bannedextensionlist |
902 | touch /etc/dansguardian/lists/bannedmimetypelist |
918 | touch /etc/dansguardian/lists/bannedmimetypelist |
903 | # on vide la liste des @IP du Lan ne subissant pas le filtrage WEB |
919 | # on vide la liste des @IP du Lan ne subissant pas le filtrage WEB |
904 | [ -e /etc/dansguardian/lists/exceptioniplist.default ] || mv /etc/dansguardian/lists/exceptioniplist /etc/dansguardian/lists/exceptioniplist.default |
920 | [ -e /etc/dansguardian/lists/exceptioniplist.default ] || mv /etc/dansguardian/lists/exceptioniplist /etc/dansguardian/lists/exceptioniplist.default |
905 | touch /etc/dansguardian/lists/exceptioniplist |
921 | touch /etc/dansguardian/lists/exceptioniplist |
906 | # on copie les fichiers de la BL de toulouse |
- | |
907 | [ -d /etc/dansguardian/lists/blacklists ] && mv /etc/dansguardian/lists/blacklists /etc/dansguardian/lists/blacklists.default |
- | |
908 | tar zxvf $DIR_CONF/blacklists.tar.gz --directory=/etc/dansguardian/lists/ 2>&1 >/dev/null |
- | |
909 | cp -f $DIR_CONF/VERSION-BL $DIR_WEB/ |
- | |
910 | chown apache:apache $DIR_WEB/VERSION-BL |
- | |
911 | # on crée la BL secondaire |
- | |
912 | mkdir /etc/dansguardian/lists/blacklists/ossi |
- | |
913 | touch /etc/dansguardian/lists/blacklists/ossi/domains |
- | |
914 | touch /etc/dansguardian/lists/blacklists/ossi/urls |
- | |
915 | # On crée une WhiteList vide |
- | |
916 | [ -e /etc/dansguardian/lists/exceptionsitelist.default ] || mv /etc/dansguardian/lists/exceptionsitelist /etc/dansguardian/lists/exceptionsitelist.default |
- | |
917 | [ -e /etc/dansguardian/lists/exceptionurllist.default ] || mv /etc/dansguardian/lists/exceptionurllist /etc/dansguardian/lists/exceptionurllist.default |
- | |
918 | touch /etc/dansguardian/lists/exceptionsitelist |
- | |
919 | touch /etc/dansguardian/lists/exceptionurllist |
- | |
920 | # on configure le filtrage de |
922 | # on configure le filtrage de domaine |
921 | [ -e /etc/dansguardian/lists/bannedsitelist.default ] || cp /etc/dansguardian/lists/bannedsitelist /etc/dansguardian/lists/bannedsitelist.default |
923 | [ -e /etc/dansguardian/lists/bannedsitelist.default ] || cp /etc/dansguardian/lists/bannedsitelist /etc/dansguardian/lists/bannedsitelist.default |
922 | $SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedsitelist # (on commente ce qui ne l'est pas) |
924 | $SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedsitelist # (on commente ce qui ne l'est pas) |
923 | # on bloque les sites ne possédant pas de nom de domaine (ex: http://12.13.14.15) |
925 | # on bloque les sites ne possédant pas de nom de domaine (ex: http://12.13.14.15) |
924 | $SED "s?^#\*ip?\*ip?g" /etc/dansguardian/lists/bannedsitelist |
926 | $SED "s?^#\*ip?\*ip?g" /etc/dansguardian/lists/bannedsitelist |
925 | # on bloque le ssl sur port 80 |
927 | # on bloque le ssl sur port 80 |
926 | $SED "s?^#\*\*s?\*\*s?g" /etc/dansguardian/lists/bannedsitelist |
928 | $SED "s?^#\*\*s?\*\*s?g" /etc/dansguardian/lists/bannedsitelist |
927 | # (pris en compte par dnsmasq) cat $DIR_CONF/bannedsitelist >> /etc/dansguardian/lists/bannedsitelist |
- | |
928 | # on configure le filtrage d'url |
929 | # on configure le filtrage d'url |
929 | [ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default |
930 | [ -e /etc/dansguardian/lists/bannedurllist.default ] || cp /etc/dansguardian/lists/bannedurllist /etc/dansguardian/lists/bannedurllist.default |
930 | $SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas) |
931 | $SED "s?^[^#]?#&?g" /etc/dansguardian/lists/bannedurllist # (on commente ce qui ne l'est pas) |
931 | cat $DIR_CONF/bannedurllist >> /etc/dansguardian/lists/bannedurllist |
- | |
932 | chown -R dansguardian:apache /etc/dansguardian/ |
932 | chown -R dansguardian:apache /etc/dansguardian/ |
933 | chmod -R g+rw /etc/dansguardian |
933 | chmod -R g+rw /etc/dansguardian |
934 | } # End of param_dansguardian () |
934 | } # End of param_dansguardian () |
935 | 935 | ||
936 | ################################################################## |
936 | ################################################################## |
Line 1065... | Line 1065... | ||
1065 | #dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5 |
1065 | #dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5 |
1066 | 1066 | ||
1067 | # Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail> |
1067 | # Exemple de configuration statique : <@MAC>,<name>,<@IP>,<MASK>,<ttl bail> |
1068 | #dhcp-host=11:22:33:44:55:66,ssic-test,192.168.10.20,255.255.255.0,45m |
1068 | #dhcp-host=11:22:33:44:55:66,ssic-test,192.168.10.20,255.255.255.0,45m |
1069 | EOF |
1069 | EOF |
- | 1070 | } # End dnsmasq |
|
- | 1071 | ||
- | 1072 | ########################################################## |
|
- | 1073 | ## Fonction BL (BlackList) ## |
|
- | 1074 | ########################################################## |
|
- | 1075 | BL () |
|
- | 1076 | { |
|
- | 1077 | # on copie par défaut la BL de toulouse embarqués dans l'archive d'ALCASAR |
|
- | 1078 | rm -rf /etc/dansguardian/lists/blacklists |
|
- | 1079 | tar zxf $DIR_CONF/blacklists.tar.gz --directory=/etc/dansguardian/lists/ 2>&1 >/dev/null |
|
- | 1080 | cp -f $DIR_CONF/VERSION-BL $DIR_WEB/ |
|
- | 1081 | chown apache:apache $DIR_WEB/VERSION-BL |
|
- | 1082 | # on crée le répertoire de la BL secondaire |
|
- | 1083 | mkdir /etc/dansguardian/lists/blacklists/ossi |
|
- | 1084 | touch /etc/dansguardian/lists/blacklists/ossi/domains |
|
- | 1085 | touch /etc/dansguardian/lists/blacklists/ossi/urls |
|
- | 1086 | # On crée le répertoire de la WhiteList |
|
- | 1087 | [ -e /etc/dansguardian/lists/exceptionsitelist.default ] || mv /etc/dansguardian/lists/exceptionsitelist /etc/dansguardian/lists/exceptionsitelist.default |
|
- | 1088 | [ -e /etc/dansguardian/lists/exceptionurllist.default ] || mv /etc/dansguardian/lists/exceptionurllist /etc/dansguardian/lists/exceptionurllist.default |
|
- | 1089 | touch /etc/dansguardian/lists/exceptionsitelist |
|
- | 1090 | touch /etc/dansguardian/lists/exceptionurllist |
|
1070 | # On crée la structure du DNS-blackhole : |
1091 | # On crée la structure du DNS-blackhole : |
1071 | # - import des domaines de la BL Toulouse dans /usr/local/etc/alcasar-dns-availabled (1 fichier par domaine) |
- | |
1072 | # - lien symbolique de ces fichiers dans /usr/local/etc/alcasar-dns-enabled pour activation/désactivation |
- | |
1073 | mkdir /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
1092 | mkdir /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
1074 | chown -R 770 /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
1093 | chown -R 770 /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
1075 | chown -R root:apache /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
1094 | chown -R root:apache /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
- | 1095 | # On fait pointer le black-hole sur une page interne |
|
1076 | $SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" |
1096 | $SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" $DIR_DEST_SBIN/alcasar-bl.sh |
1077 |
|
1097 | ln -s $DIR_WEB/redirect/index-access-deny.php $DIR_WEB/index.php |
1078 |
|
1098 | # On récupère la dernière version de la BL Toulouse |
1079 |
|
1099 | $DIR_DEST_SBIN/alcasar-bl.sh -download |
- | 1100 | } |
|
- | 1101 | ||
- | 1102 | ||
- | 1103 | ||
- | 1104 | ||
1080 | 1105 | ||
1081 | ########################################################## |
1106 | ########################################################## |
1082 | ## Fonction cron ## |
1107 | ## Fonction cron ## |
1083 | ## - Mise en place des différents fichiers de cron ## |
1108 | ## - Mise en place des différents fichiers de cron ## |
1084 | ########################################################## |
1109 | ########################################################## |
Line 1278... | Line 1303... | ||
1278 | ;; |
1303 | ;; |
1279 | -i | --install) |
1304 | -i | --install) |
1280 | header_install |
1305 | header_install |
1281 | testing |
1306 | testing |
1282 | # On teste la présence d'une version déjà installée |
1307 | # On teste la présence d'une version déjà installée |
1283 | header_install |
- | |
1284 | if [ -e $DIR_WEB/VERSION ] |
1308 | if [ -e $DIR_WEB/VERSION ] |
1285 | then |
1309 | then |
1286 | echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée"; |
1310 | echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée"; |
1287 | response=0 |
1311 | response=0 |
1288 | PTN='^[oOnN]$' |
1312 | PTN='^[oOnN]$' |
Line 1328... | Line 1352... | ||
1328 | hostname `cat $DIR_CONF/hostname` |
1352 | hostname `cat $DIR_CONF/hostname` |
1329 | mode="update" |
1353 | mode="update" |
1330 | else |
1354 | else |
1331 | mode="install" |
1355 | mode="install" |
1332 | fi |
1356 | fi |
1333 | for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus firewall param_awstats param_dnsmasq cron post_install |
1357 | for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus firewall param_awstats param_dnsmasq BL cron post_install |
1334 | 1358 | ||
1335 | do |
1359 | do |
1336 | $func |
1360 | $func |
1337 | echo "*** 'debug' : end of function $func ***"; read a |
1361 | echo "*** 'debug' : end of function $func ***"; read a |
1338 | done |
1362 | done |