Subversion Repositories ALCASAR

Rev

Rev 294 | Rev 302 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 294 Rev 297
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