Subversion Repositories ALCASAR

Rev

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

Rev 1150 Rev 1154
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
#  $Id: alcasar.sh 1150 2013-07-09 21:15:03Z richard $ 
2
#  $Id: alcasar.sh 1154 2013-07-15 14:27:10Z crox53 $ 
3
 
3
 
4
# alcasar.sh
4
# alcasar.sh
5
 
5
 
6
# ALCASAR Install script -  CopyLeft ALCASAR Team [Rexy + 3abtux + Steweb + Crox + ...] 
6
# ALCASAR - Portail captif d'accès à l'Internet -  Copyright (C) [2005] [ALcasar team - Rexy - 3abtux - ...] 
7
# Ce programme est un logiciel libre ; This software is free and open source
7
# Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier au titre des clauses de la Licence Publique Générale GNU, 
8
# elle que publiée par la Free Software Foundation ; soit la version 3 de la Licence. 
8
# elle que publiée par la Free Software Foundation ; soit la version 3 de la Licence. 
9
# Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; 
9
# Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; 
10
# sans même une garantie implicite de COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. 
10
# sans même une garantie implicite de COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. 
11
# Voir la Licence Publique Générale GNU pour plus de détails. 
11
# Voir la Licence Publique Générale GNU pour plus de détails. 
-
 
12
# Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; 
-
 
13
# si ce n'est pas le cas, consultez :   <http://www.gnu.org/licenses/>.
12
 
14
 
13
#  team@alcasar.net
15
#  team@alcasar.net
14
 
16
 
15
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
17
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
16
# This script is distributed under the Gnu General Public License (GPL)
18
# This script is distributed under the Gnu General Public License (GPL)
Line 18... Line 20...
18
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
20
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
19
# ALCASAR est architecturé autour d'une distribution Linux Mageia minimaliste et les logiciels libres suivants :
21
# ALCASAR est architecturé autour d'une distribution Linux Mageia minimaliste et les logiciels libres suivants :
20
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
22
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
21
# ALCASAR is based on a stripped Mageia (LSB) with the following open source softwares :
23
# ALCASAR is based on a stripped Mageia (LSB) with the following open source softwares :
22
#
24
#
23
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, awstat, ntpd, openssl, dnsmasq, havp, libclamav  and firewalleyes
25
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, ntpd, openssl, dnsmasq, havp, libclamav  and firewalleyes
24
 
26
 
25
# Options :
27
# Options :
26
#       -i or --install
28
#       -i or --install
27
#       -u or --uninstall
29
#       -u or --uninstall
28
 
30
 
Line 37... Line 39...
37
#	param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin)
39
#	param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin)
38
#	param_chilli	: Configuration du daemon 'coova-chilli' et de la page d'authentification
40
#	param_chilli	: Configuration du daemon 'coova-chilli' et de la page d'authentification
39
#	param_squid	: Configuration du proxy squid en mode 'cache'
41
#	param_squid	: Configuration du proxy squid en mode 'cache'
40
#	param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
42
#	param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
41
#	antivirus	: Installation havp + libclamav
43
#	antivirus	: Installation havp + libclamav
42
#	param_awstats	: Configuration de l'interface des statistiques de consultation WEB
44
#	param_nfsen	: Configuration du grapheur nfsen pour apache  
43
#	dnsmasq		: Configuration du serveur de noms et du serveur dhcp de secours
45
#	dnsmasq		: Configuration du serveur de noms et du serveur dhcp de secours
44
#	BL		: Configuration de la BlackList
46
#	BL		: Configuration de la BlackList
45
#	cron		: Mise en place des exports de logs (+ chiffrement)
47
#	cron		: Mise en place des exports de logs (+ chiffrement)
46
#	post_install	: Finalisation environnement ( sécurité, bannières, rotation logs, ...)
48
#	post_install	: Finalisation environnement ( sécurité, bannières, rotation logs, ...)
47
 
49
 
Line 68... Line 70...
68
# ******* Network parameters - paramètres réseau *******
70
# ******* Network parameters - paramètres réseau *******
69
HOSTNAME="alcasar"				# 
71
HOSTNAME="alcasar"				# 
70
DOMAIN="localdomain"				# domaine local
72
DOMAIN="localdomain"				# domaine local
71
EXTIF="eth0"					# ETH0 est l'interface connectée à Internet (Box FAI)
73
EXTIF="eth0"					# ETH0 est l'interface connectée à Internet (Box FAI)
72
MTU="1500"
74
MTU="1500"
73
ETHTOOL_OPTS='"autoneg off speed 100 duplex full"'
75
ETHTOOL_OPTS="speed 100 duplex full"
74
INTIF="eth1"					# ETH1 est l'interface connectée au réseau local de consultation
76
INTIF="eth1"					# ETH1 est l'interface connectée au réseau local de consultation
75
DEFAULT_PRIVATE_IP_MASK="192.168.182.1/24"	# adresse d'ALCASAR (+masque) proposée par défaut sur le réseau de consultation
77
DEFAULT_PRIVATE_IP_MASK="192.168.182.1/24"	# adresse d'ALCASAR (+masque) proposée par défaut sur le réseau de consultation
76
# ****** Paths - chemin des commandes *******
78
# ****** Paths - chemin des commandes *******
77
SED="/bin/sed -i"
79
SED="/bin/sed -i"
78
# ****************** End of global parameters *********************
80
# ****************** End of global parameters *********************
Line 422... Line 424...
422
IPV6INIT=no
424
IPV6INIT=no
423
IPV6TO4INIT=no
425
IPV6TO4INIT=no
424
ACCOUNTING=no
426
ACCOUNTING=no
425
USERCTL=no
427
USERCTL=no
426
MTU=$MTU
428
MTU=$MTU
-
 
429
#ETHTOOL_OPTS=$ETHTOOL_OPTS
427
EOF
430
EOF
428
# Config eth1 (consultation LAN) in normal mode
431
# Config eth1 (consultation LAN) in normal mode
429
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF
432
	cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF
430
DEVICE=$INTIF
433
DEVICE=$INTIF
431
BOOTPROTO=static
434
BOOTPROTO=static
Line 434... Line 437...
434
MII_NOT_SUPPORTED=yes
437
MII_NOT_SUPPORTED=yes
435
IPV6INIT=no
438
IPV6INIT=no
436
IPV6TO4INIT=no
439
IPV6TO4INIT=no
437
ACCOUNTING=no
440
ACCOUNTING=no
438
USERCTL=no
441
USERCTL=no
439
ETHTOOL_OPTS=$ETHTOOL_OPTS
-
 
440
EOF
442
EOF
441
# Config of eth1 in bypass mode (see "alcasar-bypass.sh")
443
# Config of eth1 in bypass mode (see "alcasar-bypass.sh")
442
	cat <<EOF > /etc/sysconfig/network-scripts/default-ifcfg-$INTIF
444
	cat <<EOF > /etc/sysconfig/network-scripts/default-ifcfg-$INTIF
443
DEVICE=$INTIF
445
DEVICE=$INTIF
444
BOOTPROTO=static
446
BOOTPROTO=static
Line 495... Line 497...
495
# create the ip_blocked file with a first line (LAN between ALCASAR and the Internet GW)
497
# create the ip_blocked file with a first line (LAN between ALCASAR and the Internet GW)
496
	echo "#$PUBLIC_NETWORK/$PUBLIC_PREFIX LAN-ALCASAR-BOX" > $DIR_DEST_ETC/alcasar-ip-blocked
498
	echo "#$PUBLIC_NETWORK/$PUBLIC_PREFIX LAN-ALCASAR-BOX" > $DIR_DEST_ETC/alcasar-ip-blocked
497
# load conntrack ftp module
499
# load conntrack ftp module
498
	[ -e /etc/modprobe.preload.default ] || cp /etc/modprobe.preload /etc/modprobe.preload.default
500
	[ -e /etc/modprobe.preload.default ] || cp /etc/modprobe.preload /etc/modprobe.preload.default
499
	echo "ip_conntrack_ftp" >>  /etc/modprobe.preload
501
	echo "ip_conntrack_ftp" >>  /etc/modprobe.preload
500
# 
502
# load ipt_NETFLOW module
-
 
503
	echo "ipt_NETFLOW" >>  /etc/modprobe.preload
501
# the script "$DIR_DEST_BIN/alcasar-iptables.sh" is launched at the end in order to allow update via ssh
504
# the script "$DIR_DEST_BIN/alcasar-iptables.sh" is launched at the end in order to allow update via ssh
502
} # End of network ()
505
} # End of network ()
503
 
506
 
504
##################################################################
507
##################################################################
505
##			Fonction gestion			##
508
##			Fonction gestion			##
Line 804... Line 807...
804
	[ -e /etc/raddb/sql/mysql/dialup.conf.default ] || cp /etc/raddb/sql/mysql/dialup.conf /etc/raddb/sql/mysql/dialup.conf.default
807
	[ -e /etc/raddb/sql/mysql/dialup.conf.default ] || cp /etc/raddb/sql/mysql/dialup.conf /etc/raddb/sql/mysql/dialup.conf.default
805
	cp -f $DIR_CONF/dialup.conf /etc/raddb/sql/mysql/dialup.conf
808
	cp -f $DIR_CONF/dialup.conf /etc/raddb/sql/mysql/dialup.conf
806
# insures that mysql is up before radius start
809
# insures that mysql is up before radius start
807
	$SED "s?^# Should-Start.*?# Should-Start: \$network mysqld?" /etc/init.d/radiusd
810
	$SED "s?^# Should-Start.*?# Should-Start: \$network mysqld?" /etc/init.d/radiusd
808
	$SED "s?^# Should-Stop.*?# Should-Start: \$network mysqld?" /etc/init.d/radiusd
811
	$SED "s?^# Should-Stop.*?# Should-Start: \$network mysqld?" /etc/init.d/radiusd
809
 
-
 
810
} # End param_radius ()
812
} # End param_radius ()
811
 
813
 
812
##########################################################################
814
##########################################################################
813
##			Fonction param_web_radius			##
815
##			Fonction param_web_radius			##
814
## - Import, modification et paramètrage de l'interface "dialupadmin"	##
816
## - Import, modification et paramètrage de l'interface "dialupadmin"	##
Line 990... Line 992...
990
uamsecret	$secretuam
992
uamsecret	$secretuam
991
uamallowed	alcasar
993
uamallowed	alcasar
992
coaport		3799
994
coaport		3799
993
include		$DIR_DEST_ETC/alcasar-uamallowed
995
include		$DIR_DEST_ETC/alcasar-uamallowed
994
include		$DIR_DEST_ETC/alcasar-uamdomain
996
include		$DIR_DEST_ETC/alcasar-uamdomain
995
#dhcpgateway		
997
#dhcpgateway\t
996
#dhcprelayagent
998
#dhcprelayagent\t
997
#dhcpgatewayport
999
#dhcpgatewayport\t
998
EOF
1000
EOF
999
# create file for DHCP static ip. Reserve the second IP address for eth1 (the first one is for tun0)
1001
# create file for DHCP static ip. Reserve the second IP address for eth1 (the first one is for tun0)
1000
	echo "$PRIVATE_MAC $PRIVATE_SECOND_IP" > $DIR_DEST_ETC/alcasar-ethers
1002
	echo "$PRIVATE_MAC $PRIVATE_SECOND_IP" > $DIR_DEST_ETC/alcasar-ethers
1001
# create files for trusted domains and urls
1003
# create files for trusted domains and urls
1002
	touch $DIR_DEST_ETC/alcasar-uamallowed $DIR_DEST_ETC/alcasar-uamdomain
1004
	touch $DIR_DEST_ETC/alcasar-uamallowed $DIR_DEST_ETC/alcasar-uamdomain
Line 1033... Line 1035...
1033
	$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
1035
	$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
1034
# mode 'proxy transparent local'
1036
# mode 'proxy transparent local'
1035
	$SED "s?^http_port.*?http_port 127.0.0.1:3128 transparent?g" /etc/squid/squid.conf
1037
	$SED "s?^http_port.*?http_port 127.0.0.1:3128 transparent?g" /etc/squid/squid.conf
1036
# Configuration du cache local
1038
# Configuration du cache local
1037
	$SED "s?^#cache_dir.*?cache_dir ufs \/var\/spool\/squid 256 16 256?g" /etc/squid/squid.conf
1039
	$SED "s?^#cache_dir.*?cache_dir ufs \/var\/spool\/squid 256 16 256?g" /etc/squid/squid.conf
1038
# emplacement et formatage standard des logs
-
 
1039
	echo '#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh' >> /etc/squid/squid.conf
-
 
1040
	echo '#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh' >> /etc/squid/squid.conf
-
 
1041
        echo "access_log /var/log/squid/access.log" >> /etc/squid/squid.conf
-
 
1042
# compatibilité des logs avec awstats
1040
# désactivation des "access log"
1043
	echo "emulate_httpd_log on" >> /etc/squid/squid.conf
-
 
1044
	echo "half_closed_clients off" >> /etc/squid/squid.conf
1041
	echo '#Disable access log' >> /etc/squid/squid.conf
1045
	echo "server_persistent_connections off" >> /etc/squid/squid.conf
-
 
1046
	echo "client_persistent_connections on" >> /etc/squid/squid.conf
-
 
1047
	echo "client_lifetime 1440 minutes" >> /etc/squid/squid.conf
-
 
1048
	echo "request_timeout 5 minutes" >> /etc/squid/squid.conf
-
 
1049
	echo "persistent_request_timeout 2 minutes" >> /etc/squid/squid.conf
-
 
1050
	echo "cache_mem 256 MB" >> /etc/squid/squid.conf
1042
        echo "access_log none" >> /etc/squid/squid.conf
1051
	echo "maximum_object_size_in_memory 4096 KB" >> /etc/squid/squid.conf
-
 
1052
	echo "maximum_object_size     4096 KB" >> /etc/squid/squid.conf
-
 
1053
# anonymisation of squid version
1043
# anonymisation of squid version
1054
	echo "via off" >> /etc/squid/squid.conf
1044
	echo "via off" >> /etc/squid/squid.conf
1055
# remove the 'X_forwarded' http option
1045
# remove the 'X_forwarded' http option
1056
	echo "forwarded_for delete" >> /etc/squid/squid.conf
1046
	echo "forwarded_for delete" >> /etc/squid/squid.conf
1057
# linked squid output in HAVP input
1047
# linked squid output in HAVP input
Line 1189... Line 1179...
1189
	chmod 640 /var/log/firewall/*
1179
	chmod 640 /var/log/firewall/*
1190
	[ -e /etc/init.d/ulogd.default ] || cp /etc/init.d/ulogd /etc/init.d/ulogd.default
1180
	[ -e /etc/init.d/ulogd.default ] || cp /etc/init.d/ulogd /etc/init.d/ulogd.default
1191
	cp -f $DIR_CONF/ulogd-init /etc/init.d/ulogd
1181
	cp -f $DIR_CONF/ulogd-init /etc/init.d/ulogd
1192
}  # End of param_ulogd ()
1182
}  # End of param_ulogd ()
1193
 
1183
 
1194
##################################################################################
1184
##########################################################
1195
##				Fonction param_awstats				##
1185
##              Fonction param_nfsen			##
1196
## - configuration de l'interface des logs de consultation WEB (AWSTAT)		##
-
 
1197
##################################################################################
1186
##########################################################
1198
param_awstats()
1187
param_nfsen()
1199
{
1188
{
-
 
1189
#Decompression tarball
1200
	cp -rf /usr/share/awstats/www/ $DIR_ACC/awstats/
1190
tar xvzf ./conf/nfsen/nfsen-1.3.6p1.tar.gz -C /tmp/
1201
	chown -R apache:apache $DIR_ACC/awstats
1191
#Création groupe et utilisteur
1202
	cp /etc/awstats/awstats.conf /etc/awstats/awstats.conf.default
1192
if grep "^www-data:" /etc/group > /dev/null; then
1203
	$SED "s?^LogFile=.*?LogFile=\"/var/log/squid/access.log\"?g" /etc/awstats/awstats.conf
1193
	echo "Group already exists !"
-
 
1194
else
-
 
1195
	groupadd www-data
1204
	$SED "s?^LogFormat=.*?LogFormat=4?g" /etc/awstats/awstats.conf
1196
	echo "Group 'www-data' created !"
-
 
1197
fi
1205
	$SED "s?^SiteDomain=.*?SiteDomain=\"$HOSTNAME\"?g" /etc/awstats/awstats.conf
1198
if grep "^nfsen:" /etc/passwd > /dev/null; then
-
 
1199
	echo "User already exists !"
-
 
1200
else
-
 
1201
	useradd -m nfsen
-
 
1202
	echo "User 'nfsen' created !"
-
 
1203
fi
-
 
1204
usermod -G www-data nfsen
-
 
1205
#Ajout du plugin nfsen : PortTracker
-
 
1206
mkdir -p /var/www/nfsen/plugins
1206
	$SED "s?^HostAliases=.*?HostAliases=\"$PRIVATE_IP\"?g" /etc/awstats/awstats.conf
1207
chown -R nfsen:www-data /var/www/nfsen
-
 
1208
#Ajout du plugin PortTracker
1207
	$SED "s?^DNSLookup=.*?DNSLookup=0?g" /etc/awstats/awstats.conf
1209
mkdir -p /var/log/netflow/porttracker 
1208
	$SED "s?^DirData=.*?DirData=\"/var/lib/awstats\"?g" /etc/awstats/awstats.conf
1210
mkdir -p /usr/share/nfsen/plugins
1209
	$SED "s?^DirIcons=.*?DirIcons=\"/acc/awstats/icon\"?g" /etc/awstats/awstats.conf
1211
chown -R apache:apache /usr/share/nfsen
1210
	$SED "s?^StyleSheet=.*?StyleSheet=\"/css/style.css\"?g" /etc/awstats/awstats.conf
1212
cp -f ./conf/nfsen/PortTracker.pm /tmp/nfsen-1.3.6p1/contrib/PortTracker/
1211
	$SED "s?^BuildReportFormat=.*?BuildReportFormat=xhtml?g" /etc/awstats/awstats.conf
1213
chown apache /var/log/netflow/porttracker
1212
	$SED "s?^UseFramesWhenCGI=.*?UseFramesWhenCGI=0?g" /etc/awstats/awstats.conf
1214
#Copie du fichier de conf modifié de nfsen
1213
	$SED "s?^UseFramesWhenCGI=.*?UseFramesWhenCGI=0?g" /etc/awstats/awstats.conf
1215
cp ./conf/nfsen/nfsen.conf /tmp/nfsen-1.3.6p1/etc/
1214
	$SED "s?^ShowSummary=.*?ShowSummary=VPHB?g" /etc/awstats/awstats.conf
1216
#Copie du script d'initialisation de nfsen
1215
	$SED "s?^ShowSummary=.*?ShowSummary=VPHB?g" /etc/awstats/awstats.conf
1217
cp ./conf/nfsen/nfsen-init /etc/init.d/nfsen
1216
	$SED "s?^ShowMonthStats=.*?ShowMonthStats=VPHB?g" /etc/awstats/awstats.conf
1218
#Installation de nfsen via le scrip Perl
-
 
1219
cd /tmp/nfsen-1.3.6p1/
1217
	$SED "s?^ShowDaysOfMonthStats=.*?ShowDaysOfMonthStats=PHB?g" /etc/awstats/awstats.conf
1220
/usr/bin/perl5 install.pl etc/nfsen.conf #script lancé deux fois pour corriger,
1218
	$SED "s?^ShowDaysOfWeekStats=.*?ShowDaysOfWeekStats=PHB?g" /etc/awstats/awstats.conf
1221
/usr/bin/perl5 install.pl etc/nfsen.conf #un problème Perl : "Semaphore introuvable"
1219
	$SED "s?^ShowHoursStats=.*?ShowHoursStats=PHB?g" /etc/awstats/awstats.conf
1222
#Création de la DB pour rrdtool
1220
	$SED "s?^ShowDomainsStats=.*?ShowDomainsStats=0?g" /etc/awstats/awstats.conf
1223
cp /tmp/nfsen-1.3.6p1/contrib/PortTracker/PortTracker.pm /usr/share/nfsen/plugins/
1221
	$SED "s?^ShowHostsStats=.*?ShowHostsStats=0?g" /etc/awstats/awstats.conf
1224
cp /tmp/nfsen-1.3.6p1/contrib/PortTracker/PortTracker.php /var/www/nfsen/plugins/
1222
	$SED "s?^ShowAuthenticatedUsers=.*?ShowAuthenticatedUsers=0?g" /etc/awstats/awstats.conf
1225
sudo -u apache nftrack -I -d /var/log/netflow/porttracker
1223
	$SED "s?^ShowRobotsStats=.*?ShowRobotsStats=0?g" /etc/awstats/awstats.conf
1226
chown -R apache:www-data /var/log/netflow/porttracker/
1224
	$SED "s?^ShowFileTypesStats=.*?ShowFileTypesStats=0?g" /etc/awstats/awstats.conf
1227
chmod -R 775 /var/log/netflow/porttracker
1225
	$SED "s?^ShowFileSizesStats=.*?ShowFileSizesStats=0?g" /etc/awstats/awstats.conf
1228
#Configuration du fichier de conf d'apache
1226
	$SED "s?^ShowOSStats=.*?ShowOSStats=0?g" /etc/awstats/awstats.conf
1229
if [ -f /etc/httpd/conf.d/nfsen.conf ];then
1227
	$SED "s?^ShowScreenSizeStats=.*?ShowScreenSizeStats=0?g" /etc/awstats/awstats.conf
1230
	rm -f /etc/httpd/conf.d/nfsen.conf
1228
 
1231
fi
1229
	cat <<EOF >> /etc/httpd/conf/webapps.d/alcasar.conf
1232
cat <<EOF >> /etc/httpd/conf.d/nfsen.conf
-
 
1233
Alias /nfsen /var/www/nfsen 
1230
<Directory $DIR_ACC/awstats>
1234
<Directory /var/www/nfsen/> 
1231
	SSLRequireSSL
1235
DirectoryIndex nfsen.php 
1232
	Options ExecCGI
1236
Options -Indexes 
1233
	AddHandler cgi-script .pl
1237
AllowOverride all 
1234
	DirectoryIndex awstats.pl
-
 
1235
	Order deny,allow
1238
order allow,deny 
1236
	Deny from all
1239
allow from all 
1237
	Allow from 127.0.0.1
-
 
1238
	Allow from $PRIVATE_NETWORK_MASK
1240
AddType application/x-httpd-php .php 
1239
#	Allow from AA.BB.CC.DD/32	# Allow from specific @IP
-
 
1240
	require valid-user
1241
php_flag magic_quotes_gpc on 
1241
	AuthType digest
-
 
1242
	AuthName $HOSTNAME
1242
php_flag track_vars on 
1243
	BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
-
 
1244
	AuthUserFile $DIR_DEST_ETC/digest/key_admin
-
 
1245
	ErrorDocument 404 https://$HOSTNAME/
-
 
1246
</Directory>
1243
</Directory>
1247
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
-
 
1248
EOF
1244
EOF
-
 
1245
#Configuration du délais d'expiration des captures du profile "ALCASAR"
-
 
1246
nfsen -m ALCASAR -e 365d
-
 
1247
#Suppression des sources de nfsen
-
 
1248
rm -rf /tmp/nfsen-1.3.6p1/
1249
} # End of param_awstats ()
1249
} # End of param_nfsen
1250
 
1250
 
1251
##########################################################
1251
##########################################################
1252
##		Fonction param_dnsmasq			##
1252
##		Fonction param_dnsmasq			##
1253
##########################################################
1253
##########################################################
1254
param_dnsmasq ()
1254
param_dnsmasq ()
Line 1308... Line 1308...
1308
# Start after chilli (65) which create tun0
1308
# Start after chilli (65) which create tun0
1309
$SED "s?^# chkconfig:.*?# chkconfig: 2345 99 40?g" /etc/init.d/dnsmasq
1309
$SED "s?^# chkconfig:.*?# chkconfig: 2345 99 40?g" /etc/init.d/dnsmasq
1310
# Optionnellement on pré-active les logs DNS des clients
1310
# Optionnellement on pré-active les logs DNS des clients
1311
[ -e /etc/sysconfig/dnsmasq.default ] || cp /etc/sysconfig/dnsmasq /etc/sysconfig/dnsmasq.default
1311
[ -e /etc/sysconfig/dnsmasq.default ] || cp /etc/sysconfig/dnsmasq /etc/sysconfig/dnsmasq.default
1312
$SED "s?log-facility?#OPTIONS=\"-q --log-facility=/var/log/dnsmasq/queries.log\"?g"  /etc/sysconfig/dnsmasq
1312
$SED "s?log-facility?#OPTIONS=\"-q --log-facility=/var/log/dnsmasq/queries.log\"?g"  /etc/sysconfig/dnsmasq
1313
# Optionnellement, exemple de paramètre supplémentaire pour le cache memoire
-
 
1314
echo '#OPTIONS="$OPTIONS --cache-size=250"' >> /etc/sysconfig/dnsmasq
-
 
1315
# Optionnellement, exemple de configuration avec un A.D.
1313
# Optionnellement, exemple de configuration avec un A.D.
1316
echo '#OPTIONS="$OPTIONS --server=/your.domain/192.168.182.3"' >> /etc/sysconfig/dnsmasq
1314
echo '#OPTIONS="$OPTIONS --server=/your.domain/192.168.182.2"' >> /etc/sysconfig/dnsmasq
1317
} # End dnsmasq
1315
} # End dnsmasq
1318
 
1316
 
1319
##########################################################
1317
##########################################################
1320
##		Fonction BL (BlackList)			##
1318
##		Fonction BL (BlackList)			##
1321
##########################################################
1319
##########################################################
Line 1408... Line 1406...
1408
EOF
1406
EOF
1409
	cat <<EOF > /etc/cron.d/alcasar-archive
1407
	cat <<EOF > /etc/cron.d/alcasar-archive
1410
# Archive des logs et de la base de données (tous les lundi à 5h35)
1408
# Archive des logs et de la base de données (tous les lundi à 5h35)
1411
35 5 * * 1 root $DIR_DEST_BIN/alcasar-archive.sh --now
1409
35 5 * * 1 root $DIR_DEST_BIN/alcasar-archive.sh --now
1412
EOF
1410
EOF
1413
	cat << EOF > /etc/cron.d/awstats
-
 
1414
# mise à jour des stats de consultation WEB toutes les 30'
-
 
1415
*/30 * * * * root $DIR_ACC/awstats/awstats.pl -config=localhost -update >/dev/null 2>&1
-
 
1416
EOF
-
 
1417
	cat << EOF > /etc/cron.d/alcasar-clean_import
1411
	cat << EOF > /etc/cron.d/alcasar-clean_import
1418
# suppression des fichiers de mots de passe lors d'imports massifs par fichier de plus de 24h
1412
# suppression des fichiers de mots de passe lors d'imports massifs par fichier de plus de 24h
1419
30 * * * *  root $DIR_DEST_BIN/alcasar-import-clean.sh
1413
30 * * * *  root $DIR_DEST_BIN/alcasar-import-clean.sh
1420
EOF
1414
EOF
1421
	cat << EOF > /etc/cron.d/alcasar-distrib-updates
1415
	cat << EOF > /etc/cron.d/alcasar-distrib-updates
1422
# mise à jour automatique de la distribution tous les jours 3h30
1416
# mise à jour automatique de la distribution tous les jours 3h30
1423
30 3 * * *  root /usr/sbin/urpmi --auto-update --auto 2>&1
1417
30 3 * * *  root /usr/sbin/urpmi --auto-update --auto 2>&1
1424
EOF
1418
EOF
-
 
1419
	cat << EOF > /etc/cron.d/alcasar-netflow
-
 
1420
# mise à jour automatique du délais d'expiration des log Nertflow (tous les vendredi à 0h05)
-
 
1421
05 0 * * 5  root /usr/bin/nfexpire -e /var/log/nfsen/profiles-data/ALCASAR/ipt_netflow/ -t 1y -w 90
-
 
1422
EOF
1425
# mise à jour des stats de connexion (accounting). Scripts provenant de "dialupadmin" (rpm freeradius-web) (cf. wiki.freeradius.org/Dialup_admin).
1423
# mise à jour des stats de connexion (accounting). Scripts provenant de "dialupadmin" (rpm freeradius-web) (cf. wiki.freeradius.org/Dialup_admin).
1426
# on écrase le crontab d'origine installé par le RPM "freeradius-web" (bug remonté à qa.mandriva.com : 46739).
1424
# on écrase le crontab d'origine installé par le RPM "freeradius-web" (bug remonté à qa.mandriva.com : 46739).
1427
# 'tot_stats' (tout les jours à 01h01) : aggrégat des connexions journalières par usager (renseigne la table 'totacct') 
1425
# 'tot_stats' (tout les jours à 01h01) : aggrégat des connexions journalières par usager (renseigne la table 'totacct') 
1428
# 'monthly_tot_stat' (tous les jours à 01h05) : aggrégat des connexions mensuelles par usager (renseigne la table 'mtotacct')
1426
# 'monthly_tot_stat' (tous les jours à 01h05) : aggrégat des connexions mensuelles par usager (renseigne la table 'mtotacct')
1429
# 'truncate_raddact' (tous les 1er du mois à 01h10) : supprime les entrées journalisées plus vieilles que '$back_days' jours (défini ci-après)
1427
# 'truncate_raddact' (tous les 1er du mois à 01h10) : supprime les entrées journalisées plus vieilles que '$back_days' jours (défini ci-après)
Line 1513... Line 1511...
1513
	      find /var/log/$dir -type f -name *.log-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] -exec gzip {} \;
1511
	      find /var/log/$dir -type f -name *.log-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] -exec gzip {} \;
1514
	done
1512
	done
1515
# export des logs en 'retard' dans /var/Save/logs
1513
# export des logs en 'retard' dans /var/Save/logs
1516
	/usr/local/bin/alcasar-log.sh --export
1514
	/usr/local/bin/alcasar-log.sh --export
1517
# processus lancés par défaut au démarrage
1515
# processus lancés par défaut au démarrage
1518
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam
1516
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam nfsen
1519
	do
1517
	do
1520
		/sbin/chkconfig --add $i
1518
		/sbin/chkconfig --add $i
1521
	done
1519
	done
1522
 
1520
 
-
 
1521
	# On rajoute une tempo pour relancer radius après le redémarrage de mysqld (bug en cours d'analyse)
1523
	cat << EOF > /etc/rc.local
1522
#	cat << EOF > /etc/rc.local
-
 
1523
#!/bin/sh
-
 
1524
#
-
 
1525
### BEGIN INIT INFO
-
 
1526
# Provides: rc.local
-
 
1527
# X-Mandriva-Compat-Mode
-
 
1528
# Default-Start: 2 3 4 5
1524
/usr/local/sbin/alcasar-load_balancing.sh start &
1529
# Short-Description: Local initialization script
-
 
1530
# Description: This script will be executed *after* all the other init scripts.
-
 
1531
#              You can put your own initialization stuff in here if you don't
-
 
1532
#              want to do the full Sys V style init stuff.
-
 
1533
### END INIT INFO
-
 
1534
#
-
 
1535
#/etc/init.d/mysqld restart
1525
sleep 3
1536
#sleep 1
1526
service radiusd restart
1537
#/etc/init.d/radiusd restart
-
 
1538
#touch /var/lock/subsys/local
1527
EOF
1539
#EOF
-
 
1540
echo "/usr/local/sbin/alcasar-load_balancing.sh start &" >> /etc/rc.local
1528
 
1541
 
1529
# On applique les préconisations ANSSI
1542
# On applique les préconisations ANSSI
1530
# Apply French Security Agency rules
1543
# Apply French Security Agency rules
1531
# ignorer les broadcast ICMP. (attaque smurf) 
1544
# ignorer les broadcast ICMP. (attaque smurf) 
1532
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1545
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
Line 1576... Line 1589...
1576
	then
1589
	then
1577
		echo "net.netfilter.nf_conntrack_tcp_timeout_established = 3600" >> /etc/sysctl.conf
1590
		echo "net.netfilter.nf_conntrack_tcp_timeout_established = 3600" >> /etc/sysctl.conf
1578
	else
1591
	else
1579
		$SED "s?timeout_established.*?timeout_established = 3600?g" /etc/sysctl.conf
1592
		$SED "s?timeout_established.*?timeout_established = 3600?g" /etc/sysctl.conf
1580
	fi
1593
	fi
1581
# disable log_martians (ALCASAR is often installed between two private network addresses) 
1594
# suppression des log_martians (ALCASAR est souvent entre deux réseaux en adressage privée) 
1582
sysctl -w net.ipv4.conf.all.log_martians=0
1595
sysctl -w net.ipv4.conf.all.log_martians=0
1583
# On supprime la gestion du <CTRL>+<ALT>+<SUPPR> et des Magic SysReq Keys
1596
# On supprime la gestion du <CTRL>+<ALT>+<SUPPR> et des Magic SysReq Keys
1584
# ???	$SED "s?^ALLOW_REBOOT=.*?ALLOW_REBOOT=no?g" /etc/security/msec/level.fileserver
1597
# ???	$SED "s?^ALLOW_REBOOT=.*?ALLOW_REBOOT=no?g" /etc/security/msec/level.fileserver
1585
# modification /etc/inittab
1598
# modification /etc/inittab
1586
	[ -e /etc/inittab.default ] || cp /etc/inittab /etc/inittab.default
1599
	[ -e /etc/inittab.default ] || cp /etc/inittab /etc/inittab.default
Line 1631... Line 1644...
1631
fi
1644
fi
1632
rm -f /tmp/alcasar-conf*
1645
rm -f /tmp/alcasar-conf*
1633
chown -R root:apache $DIR_DEST_ETC/*
1646
chown -R root:apache $DIR_DEST_ETC/*
1634
chmod -R 660 $DIR_DEST_ETC/*
1647
chmod -R 660 $DIR_DEST_ETC/*
1635
chmod ug+x $DIR_DEST_ETC/digest
1648
chmod ug+x $DIR_DEST_ETC/digest
1636
 
-
 
1637
# Fix the Mageia bug in function "/etc/sysconfig/network-scripts/network-functions"
-
 
1638
[ -e /sbin/ethtool ]  || ln -s /usr/sbin/ethtool /sbin/ethtool
-
 
1639
 
-
 
1640
# Apply and save the firewall rules
1649
# Apply and save the firewall rules
1641
 	sh $DIR_DEST_BIN/alcasar-iptables.sh
1650
 	sh $DIR_DEST_BIN/alcasar-iptables.sh
1642
	sleep 2
1651
	sleep 2
1643
	cd $DIR_INSTALL
1652
	cd $DIR_INSTALL
1644
	echo ""
1653
	echo ""
Line 1741... Line 1750...
1741
				mode="update"
1750
				mode="update"
1742
			fi
1751
			fi
1743
		fi
1752
		fi
1744
# RPMs install
1753
# RPMs install
1745
		$DIR_SCRIPTS/alcasar-urpmi.sh
1754
		$DIR_SCRIPTS/alcasar-urpmi.sh
-
 
1755
		echo "Mise à jour des modules noyau installés"		
-
 
1756
		depmod -a
1746
		if [ "$?" != "0" ]
1757
		if [ "$?" != "0" ]
1747
		then
1758
		then
1748
			exit 0
1759
			exit 0
1749
		fi
1760
		fi
1750
		if [ -e $DIR_WEB/VERSION ]
1761
		if [ -e $DIR_WEB/VERSION ]
Line 1790... Line 1801...
1790
			UPD_PREVIOUS_VERSION=`echo $PREVIOUS_VERSION|cut -d"." -f3`
1801
			UPD_PREVIOUS_VERSION=`echo $PREVIOUS_VERSION|cut -d"." -f3`
1791
			mode="update"
1802
			mode="update"
1792
		else
1803
		else
1793
			mode="install"
1804
			mode="install"
1794
		fi
1805
		fi
1795
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus param_ulogd param_awstats param_dnsmasq BL cron post_install
1806
		for func in init network gestion AC init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus param_ulogd param_nfsen param_dnsmasq BL cron post_install
1796
		do
1807
		do
1797
			$func
1808
			$func
1798
# echo "*** 'debug' : end of function $func ***"; read a
1809
 #echo "*** 'debug' : end of function $func ***"; read a
1799
		done
1810
		done
1800
		;;
1811
		;;
1801
	-u | --uninstall)
1812
	-u | --uninstall)
1802
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1813
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1803
		then
1814
		then