| Line 1... |
Line 1... |
| 1 |
#!/bin/sh
|
1 |
#!/bin/sh
|
| 2 |
# $Id: alcasar.sh 294 2010-10-05 22:01:03Z richard $
|
2 |
# $Id: alcasar.sh 297 2010-10-06 22:03:47Z richard $
|
| 3 |
|
3 |
|
| 4 |
# alcasar.sh
|
4 |
# alcasar.sh
|
| 5 |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
|
5 |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
|
| 6 |
# This script is distributed under the Gnu General Public License (GPL)
|
6 |
# This script is distributed under the Gnu General Public License (GPL)
|
| 7 |
|
7 |
|
| 8 |
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
|
8 |
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
|
| 9 |
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
|
9 |
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
|
| 10 |
|
10 |
|
| 11 |
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
|
11 |
# ALCASAR is based on a stripped Mandriva (LSB) with the following open source softwares :
|
| 12 |
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
|
12 |
# ALCASAR est architecturé autour d'une distribution Linux Mandriva minimaliste et les logiciels libres suivants :
|
| 13 |
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, dhcpd, openssl bind and firewalleyes
|
13 |
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, mondo, mindi, dialupadmin, awstat, ntpd, openssl, dnsmasq, havp, libclamav and firewalleyes
|
| 14 |
|
14 |
|
| 15 |
# Options :
|
15 |
# Options :
|
| 16 |
# -install
|
16 |
# -install
|
| 17 |
# -uninstall
|
17 |
# -uninstall
|
| 18 |
|
18 |
|
| Line 29... |
Line 29... |
| 29 |
# param_squid : Configuration du proxy squid en mode 'cache'
|
29 |
# param_squid : Configuration du proxy squid en mode 'cache'
|
| 30 |
# param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
|
30 |
# param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
|
| 31 |
# 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 |
# bind : Configuration du serveur de noms
|
34 |
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours
|
| 35 |
# cron : Mise en place des exports de logs (+ chiffrement)
|
35 |
# cron : Mise en place des exports de logs (+ chiffrement)
|
| 36 |
|
36 |
|
| 37 |
|
37 |
|
| 38 |
VERSION=`cat VERSION`
|
38 |
VERSION=`cat VERSION`
|
| 39 |
MDV_NEEDED="2010.1"
|
39 |
MDV_NEEDED="2010.1"
|
| Line 62... |
Line 62... |
| 62 |
SQUID_PORT="3128" # Port d'écoute du proxy Squid
|
62 |
SQUID_PORT="3128" # Port d'écoute du proxy Squid
|
| 63 |
UAMPORT="3990"
|
63 |
UAMPORT="3990"
|
| 64 |
# ****** Paths - chemin des commandes *******
|
64 |
# ****** Paths - chemin des commandes *******
|
| 65 |
SED="/bin/sed -i"
|
65 |
SED="/bin/sed -i"
|
| 66 |
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
|
66 |
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
|
| 67 |
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php squid dansguardian postfix MySQL logwatch ntp awstats mondo cdrecord buffer vim-enhanced bind-utils wget arpscan ulogd dhcp-server openssh-server php-xml coova-chilli pam_ccreds rng-utils lsb-release dnsmasq clamav sudo cronie-anacron"
|
67 |
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php squid dansguardian postfix MySQL logwatch ntp awstats mondo cdrecord buffer vim-enhanced bind-utils wget arpscan ulogd openssh-server php-xml coova-chilli pam_ccreds rng-utils lsb-release dnsmasq clamav sudo cronie-anacron"
|
| 68 |
# ****************** End of global parameters *********************
|
68 |
# ****************** End of global parameters *********************
|
| 69 |
|
69 |
|
| 70 |
header_install ()
|
70 |
header_install ()
|
| 71 |
{
|
71 |
{
|
| 72 |
clear
|
72 |
clear
|
| Line 411... |
Line 411... |
| 411 |
restrict 127.0.0.1
|
411 |
restrict 127.0.0.1
|
| 412 |
driftfile /etc/ntp/drift
|
412 |
driftfile /etc/ntp/drift
|
| 413 |
logfile /var/log/ntp.log
|
413 |
logfile /var/log/ntp.log
|
| 414 |
EOF
|
414 |
EOF
|
| 415 |
chown -R ntp:ntp /etc/ntp
|
415 |
chown -R ntp:ntp /etc/ntp
|
| 416 |
# Configuration du serveur dhcpd
|
- |
|
| 417 |
[ -e /etc/dhcpd.conf.default ] || cp /etc/dhcpd.conf /etc/dhcpd.conf.default 2> /dev/null
|
- |
|
| 418 |
cat <<EOF > /etc/dhcpd.conf
|
- |
|
| 419 |
ddns-update-style interim;
|
- |
|
| 420 |
subnet $PRIVATE_NETWORK netmask $PRIVATE_MASK {
|
- |
|
| 421 |
option routers $PRIVATE_IP;
|
- |
|
| 422 |
option subnet-mask $PRIVATE_MASK;
|
- |
|
| 423 |
option domain-name-servers $PRIVATE_IP;
|
- |
|
| 424 |
option domain-name "localdomain";
|
- |
|
| 425 |
range dynamic-bootp $PRIVATE_DYN_LAST_IP $PRIVATE_DYN_FIRST_IP;
|
- |
|
| 426 |
default-lease-time 21600;
|
- |
|
| 427 |
max-lease-time 43200;
|
- |
|
| 428 |
}
|
- |
|
| 429 |
log-facility local3;
|
- |
|
| 430 |
## Exemple reservation @IP fixe sur @MAC
|
- |
|
| 431 |
# host MACHINE1 {
|
- |
|
| 432 |
# hardware ethernet 00:06:9a:f3:07:01;
|
- |
|
| 433 |
# fixed-address 192.168.182.140;
|
- |
|
| 434 |
# }
|
- |
|
| 435 |
EOF
|
- |
|
| 436 |
# écoute côté LAN seulement
|
- |
|
| 437 |
[ -e /etc/sysconfig/dhcpd.default ] || cp /etc/sysconfig/dhcpd /etc/sysconfig/dhcpd.default 2> /dev/null
|
- |
|
| 438 |
$SED "s?^#INTERFACES=.*?INTERFACES=\"$INTIF\"?g" /etc/sysconfig/dhcpd
|
- |
|
| 439 |
/sbin/chkconfig --level 345 dhcpd off
|
- |
|
| 440 |
# Renseignement des fichiers hosts.allow et hosts.deny
|
416 |
# Renseignement des fichiers hosts.allow et hosts.deny
|
| 441 |
[ -e /etc/hosts.allow.default ] || cp /etc/hosts.allow /etc/hosts.allow.default
|
417 |
[ -e /etc/hosts.allow.default ] || cp /etc/hosts.allow /etc/hosts.allow.default
|
| 442 |
cat <<EOF > /etc/hosts.allow
|
418 |
cat <<EOF > /etc/hosts.allow
|
| 443 |
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
|
419 |
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
|
| 444 |
sshd: $PRIVATE_NETWORK_SHORT
|
420 |
sshd: $PRIVATE_NETWORK_SHORT
|
| Line 830... |
Line 806... |
| 830 |
$SED "s?^HS_WWWDIR.*?# HS_WWWDIR?g" /etc/chilli/config
|
806 |
$SED "s?^HS_WWWDIR.*?# HS_WWWDIR?g" /etc/chilli/config
|
| 831 |
$SED "s?^HS_WWWBIN.*?# HS_WWWBIN?g" /etc/chilli/config
|
807 |
$SED "s?^HS_WWWBIN.*?# HS_WWWBIN?g" /etc/chilli/config
|
| 832 |
$SED "s?^HS_PROVIDER_LINK.*?HS_PROVIDER_LINK=https://\$HS_UAMSERVER/?g" /etc/chilli/config
|
808 |
$SED "s?^HS_PROVIDER_LINK.*?HS_PROVIDER_LINK=https://\$HS_UAMSERVER/?g" /etc/chilli/config
|
| 833 |
echo "HS_COAPORT=3799" >> /etc/chilli/config
|
809 |
echo "HS_COAPORT=3799" >> /etc/chilli/config
|
| 834 |
echo "HS_ADMINTERVAL=0" >> /etc/chilli/config
|
810 |
echo "HS_ADMINTERVAL=0" >> /etc/chilli/config
|
| 835 |
# cat <<EOF >> /etc/chilli/config
|
- |
|
| 836 |
## Usage d'un DHCPD externe a coova (dhcpd local ou extérieur)
|
- |
|
| 837 |
#HS_USE_DHCPD_EXT="on"
|
- |
|
| 838 |
#HS_DHCP_GATEWAY_IP=127.0.0.1
|
- |
|
| 839 |
#HS_DHCP_GATEWAY_PORT=67
|
- |
|
| 840 |
#HS_DHCP_RELAY_AGENT_IP=127.0.0.1
|
- |
|
| 841 |
#HS_USE_DHCP_RADIUS="no"
|
- |
|
| 842 |
#EOF
|
- |
|
| 843 |
# création des fichiers de sites, d'urls et d'adresses MAC de confiance
|
811 |
# création des fichiers de sites, d'urls et d'adresses MAC de confiance
|
| 844 |
echo -e "HS_UAMALLOW=\"\"" > /etc/chilli/alcasar-uamallowed
|
812 |
echo -e "HS_UAMALLOW=\"\"" > /etc/chilli/alcasar-uamallowed
|
| 845 |
echo -e "HS_UAMDOMAINS=\"\"" > /etc/chilli/alcasar-uamdomain
|
813 |
echo -e "HS_UAMDOMAINS=\"\"" > /etc/chilli/alcasar-uamdomain
|
| 846 |
$SED "s?^# HS_MACAUTHMODE=.*?HS_MACAUTHMODE=local?g" /etc/chilli/config
|
814 |
$SED "s?^# HS_MACAUTHMODE=.*?HS_MACAUTHMODE=local?g" /etc/chilli/config
|
| 847 |
echo -e "HS_MACALLOW=\"\"" > /etc/chilli/alcasar-macallowed
|
815 |
echo -e "HS_MACALLOW=\"\"" > /etc/chilli/alcasar-macallowed
|
| Line 1206... |
Line 1174... |
| 1206 |
chmod 644 /etc/logrotate.d/*
|
1174 |
chmod 644 /etc/logrotate.d/*
|
| 1207 |
# processus lancés par défaut au démarrage
|
1175 |
# processus lancés par défaut au démarrage
|
| 1208 |
$SED "s?^# Default-Start.*?# Default-Start: 3 4 5?g" /etc/init.d/mysqld
|
1176 |
$SED "s?^# Default-Start.*?# Default-Start: 3 4 5?g" /etc/init.d/mysqld
|
| 1209 |
$SED "s?^# Default-Stop.*?# Default-Stop: 0 1 2?g" /etc/init.d/mysqld # pour éviter les alertes de dépendance de services (netfs)
|
1177 |
$SED "s?^# Default-Stop.*?# Default-Stop: 0 1 2?g" /etc/init.d/mysqld # pour éviter les alertes de dépendance de services (netfs)
|
| 1210 |
$SED "s?^# chkconfig:.*?# chkconfig: 23 61 40?g" /etc/init.d/dnsmasq # pour démarrer dnsmasq avec eth1 up avant chilli - utile ??
|
1178 |
$SED "s?^# chkconfig:.*?# chkconfig: 23 61 40?g" /etc/init.d/dnsmasq # pour démarrer dnsmasq avec eth1 up avant chilli - utile ??
|
| 1211 |
# for i in netfs ntpd iptables ulogd dhcpd squid named chilli httpd radiusd mysqld dansguardian havp freshclam
|
- |
|
| 1212 |
for i in netfs ntpd iptables ulogd dnsmasq squid chilli httpd radiusd mysqld dansguardian havp freshclam
|
1179 |
for i in netfs ntpd iptables ulogd dnsmasq squid chilli httpd radiusd mysqld dansguardian havp freshclam
|
| 1213 |
do
|
1180 |
do
|
| 1214 |
/sbin/chkconfig --add $i
|
1181 |
/sbin/chkconfig --add $i
|
| 1215 |
done
|
1182 |
done
|
| 1216 |
# On affecte le niveau de sécurité "fileserver" (c'est pas mal) ...
|
1183 |
# On affecte le niveau de sécurité "fileserver" (c'est pas mal) ...
|
| Line 1330... |
Line 1297... |
| 1330 |
fi
|
1297 |
fi
|
| 1331 |
done
|
1298 |
done
|
| 1332 |
IFS="$old"
|
1299 |
IFS="$old"
|
| 1333 |
if [ ! "$version" = "$MDV_NEEDED" ]
|
1300 |
if [ ! "$version" = "$MDV_NEEDED" ]
|
| 1334 |
then
|
1301 |
then
|
| 1335 |
echo "Vous devez installer une des versions suivantes de Linux Mandriva ($MDV_NEEDED). Pour cela, vous pouvez suivre la procédure suivante :"
|
1302 |
echo "La version actuelle de Linux Mandriva va être mise à jour en ($MDV_NEEDED). En cas de problème, suivez la procédure manuelle (cf. doc exploitation)"
|
| 1336 |
echo "- copiez sur clé USB le fichier de configuration de la version actuelle d'ALCASAR ('/tmp/alcasar-conf.tar.gz');"
|
- |
|
| 1337 |
echo "- installez le nouveau système 'Linux Mandriva';"
|
- |
|
| 1338 |
echo "- copiez le fichier de configuration d'ALCASAR dans le répertoire '/tmp';"
|
- |
|
| 1339 |
echo "- installez la nouvelle version d'ALCASAR."
|
- |
|
| 1340 |
echo " Souhaitez-vous migrer la version du système automatiquement via Internet ? [O/n]"
|
- |
|
| 1341 |
read response
|
- |
|
| 1342 |
if [ "$reponse" = "o" ] || [ "$reponse" = "O" ]
|
- |
|
| 1343 |
then
|
1303 |
sleep 5
|
| 1344 |
$DIR_SCRIPT/sbin/alcasar-dist-upgrade.sh
|
1304 |
DIR_SCRIPT/sbin/alcasar-dist-upgrade.sh
|
| 1345 |
else
|
- |
|
| 1346 |
exit 0
|
- |
|
| 1347 |
fi
|
- |
|
| 1348 |
fi
|
1305 |
fi
|
| 1349 |
if [ -e /tmp/alcasar-conf.tar.gz ]
|
1306 |
if [ -e /tmp/alcasar-conf.tar.gz ]
|
| 1350 |
then
|
1307 |
then
|
| 1351 |
echo "#### Installation avec mise à jour ####"
|
1308 |
echo "#### Installation avec mise à jour ####"
|
| 1352 |
# On récupère le nom d'organisme à partir de fichier de conf
|
1309 |
# On récupère le nom d'organisme à partir de fichier de conf
|