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
|