Subversion Repositories ALCASAR

Rev

Rev 1219 | Rev 1223 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 1219 Rev 1221
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
#  $Id: alcasar.sh 1219 2013-09-20 13:41:29Z crox53 $ 
2
#  $Id: alcasar.sh 1221 2013-09-22 20:39:20Z richard $ 
3
 
3
 
4
# alcasar.sh
4
# alcasar.sh
5
 
5
 
6
# ALCASAR Install script -  CopyLeft ALCASAR Team [Rexy + 3abtux + Steweb + Crox + ...] 
6
# ALCASAR Install script -  CopyLeft ALCASAR Team [Rexy + 3abtux + Steweb + Crox + ...] 
7
# Ce programme est un logiciel libre ; This software is free and open source
7
# Ce programme est un logiciel libre ; This software is free and open source
Line 18... Line 18...
18
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
18
# 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 :
19
# 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)
20
# 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 :
21
# ALCASAR is based on a stripped Mageia (LSB) with the following open source softwares :
22
#
22
#
23
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, ntpd, openssl, dnsmasq, havp, libclamav
23
# Coovachilli, freeradius, mariaDB, apache, netfilter, squid, dansguardian, ntpd, openssl, dnsmasq, havp, libclamav, Ulog, fail2ban, NFsen and NFdump
24
 
24
 
25
# Options :
25
# Options :
26
#       -i or --install
26
#       -i or --install
27
#       -u or --uninstall
27
#       -u or --uninstall
28
 
28
 
29
# Functions :
29
# Functions :
30
#	testing		: Tests de connectivité et de téléchargement avant installation
30
#	testing			: connectivity tests and downloading before intall
31
#	init		: Installation des RPM et des scripts
31
#	init			: Installation of RPM and scripts
32
#	network		: Paramètrage du réseau
32
#	network			: Network parameters
33
#	gestion		: Installation de l'interface de gestion
33
#	ACC			: ALCASAR Control Center installation
34
#	AC		: Initialisation de l'autorité de certification. Création des certificats
34
#	CA			: Certification Authority initialization
35
#	init_db		: Création de la base 'radius' sur le serveur MySql
35
#	init_db			: Initilization of radius database managed with MariaDB
36
#	param_radius	: Configuration du serveur d'authentification FreeRadius
36
#	param_radius		: FreeRadius initialisation
37
#	param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin)
37
#	param_web_radius	: copy ans modifiy original "freeradius web" in ACC
38
#	param_chilli	: Configuration du daemon 'coova-chilli' et de la page d'authentification
38
#	param_chilli		: coovachilli initialisation (+authentication page)
39
#	param_squid	: Configuration du proxy squid en mode 'cache'
39
#	param_squid		: Squid cache proxy configuration
40
#	param_dansguardian : Configuration de l'analyseur de contenu DansGuardian
40
#	param_dansguardian	: DansGuardian filtering HTTP proxy configuration
41
#	antivirus	: Installation havp + libclamav
41
#	antivirus		: HAVP + libclamav configuration
42
#	param_nfsen	: Configuration du grapheur nfsen pour apache 
42
#	param_nfsen		: Configuration du grapheur nfsen pour apache 
43
#	dnsmasq		: Configuration du serveur de noms et du serveur dhcp de secours
43
#	dnsmasq			: Configuration du serveur de noms et du serveur dhcp de secours
44
#	BL		: Configuration de la BlackList
44
#	BL			: Configuration de la BlackList
45
#	cron		: Mise en place des exports de logs (+ chiffrement)
45
#	cron			: Mise en place des exports de logs (+ chiffrement)
46
#	fail2ban	: Installation et configuration de Fail2Ban
46
#	fail2ban		: Installation et configuration de Fail2Ban
Line 100... Line 100...
100
 
100
 
101
#Launch network service (useful only when Mageia is running in SafeFail mode)
101
#Launch network service (useful only when Mageia is running in SafeFail mode)
102
service network start
102
service network start
103
 
103
 
104
##################################################################
104
##################################################################
105
##			Function TESTING			##
105
##			Function "testing"			##
106
## - Test of Internet access					##
106
## - Test of Internet access					##
107
##################################################################
107
##################################################################
108
testing ()
108
testing ()
109
{
109
{
110
	if [ $Lang == "fr" ]
110
	if [ $Lang == "fr" ]
Line 238... Line 238...
238
	rm -rf /tmp/con_ok.html
238
	rm -rf /tmp/con_ok.html
239
	echo ". : ok"
239
	echo ". : ok"
240
} # end of testing
240
} # end of testing
241
 
241
 
242
##################################################################
242
##################################################################
243
##			Fonction INIT				##
243
##			Function "init"				##
244
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
244
## - Création du fichier "/root/ALCASAR_parametres.txt"		##
245
## - Installation et modification des scripts du portail	##
245
## - Installation et modification des scripts du portail	##
246
##################################################################
246
##################################################################
247
init ()
247
init ()
248
{
248
{
Line 312... Line 312...
312
EOF
312
EOF
313
	chmod o-rwx $CONF_FILE
313
	chmod o-rwx $CONF_FILE
314
} # End of init ()
314
} # End of init ()
315
 
315
 
316
##################################################################
316
##################################################################
317
##			Fonction network			##
317
##			Function "network"			##
318
## - Définition du plan d'adressage du réseau de consultation	##
318
## - Définition du plan d'adressage du réseau de consultation	##
319
## - Nommage DNS du système 					##
319
## - Nommage DNS du système 					##
320
## - Configuration de l'interface eth1 (réseau de consultation)	##
320
## - Configuration de l'interface eth1 (réseau de consultation)	##
321
## - Modification du fichier /etc/hosts				##
321
## - Modification du fichier /etc/hosts				##
322
## - Configuration du serveur de temps (NTP)			##
322
## - Configuration du serveur de temps (NTP)			##
Line 506... Line 506...
506
# 
506
# 
507
# the script "$DIR_DEST_BIN/alcasar-iptables.sh" is launched at the end in order to allow update via ssh
507
# the script "$DIR_DEST_BIN/alcasar-iptables.sh" is launched at the end in order to allow update via ssh
508
} # End of network ()
508
} # End of network ()
509
 
509
 
510
##################################################################
510
##################################################################
511
##			Fonction gestion			##
511
##			Function "ACC"				##
512
## - installation du centre de gestion				##
512
## - installation du centre de gestion (ALCASAR Control Center)	##
513
## - configuration du serveur web (Apache)			##
513
## - configuration du serveur web (Apache)			##
514
## - définition du 1er comptes de gestion 			##
514
## - définition du 1er comptes de gestion 			##
515
## - sécurisation des accès					##
515
## - sécurisation des accès					##
516
##################################################################
516
##################################################################
517
gestion()
517
ACC ()
518
{
518
{
519
	[ -d $DIR_WEB ] && rm -rf $DIR_WEB
519
	[ -d $DIR_WEB ] && rm -rf $DIR_WEB
520
	mkdir $DIR_WEB
520
	mkdir $DIR_WEB
521
# Copie et configuration des fichiers du centre de gestion
521
# Copie et configuration des fichiers du centre de gestion
522
	cp -rf $DIR_INSTALL/web/* $DIR_WEB/
522
	cp -rf $DIR_INSTALL/web/* $DIR_WEB/
Line 703... Line 703...
703
	AuthName $HOSTNAME
703
	AuthName $HOSTNAME
704
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
704
	AuthUserFile $DIR_DEST_ETC/digest/key_backup
705
	ErrorDocument 404 https://$HOSTNAME/
705
	ErrorDocument 404 https://$HOSTNAME/
706
</Directory>
706
</Directory>
707
EOF
707
EOF
708
} # End of gestion ()
708
} # End of ACC()
709
 
709
 
710
##########################################################################################
710
##########################################################################################
711
##				Fonction AC()						##
711
##				Fonction "CA"						##
712
## - Création d'une Autorité de Certification et du certificat serveur pour apache 	##
712
## - Création d'une Autorité de Certification et du certificat serveur pour apache 	##
713
##########################################################################################
713
##########################################################################################
714
AC ()
714
CA ()
715
{
715
{
716
	$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
716
	$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh
717
	$DIR_DEST_BIN/alcasar-CA.sh
717
	$DIR_DEST_BIN/alcasar-CA.sh
718
	FIC_VIRTUAL_SSL=`find /etc/httpd/conf -type f -name *default_ssl_vhost.conf`
718
	FIC_VIRTUAL_SSL=`find /etc/httpd/conf -type f -name *default_ssl_vhost.conf`
719
	[ -e /etc/httpd/conf/vhosts-ssl.default ]  || cp $FIC_VIRTUAL_SSL /etc/httpd/conf/vhosts-ssl.default
719
	[ -e /etc/httpd/conf/vhosts-ssl.default ]  || cp $FIC_VIRTUAL_SSL /etc/httpd/conf/vhosts-ssl.default
720
	$SED "s?localhost.crt?alcasar.crt?g" $FIC_VIRTUAL_SSL
720
	$SED "s?localhost.crt?alcasar.crt?g" $FIC_VIRTUAL_SSL
721
	$SED "s?localhost.key?alcasar.key?g" $FIC_VIRTUAL_SSL
721
	$SED "s?localhost.key?alcasar.key?g" $FIC_VIRTUAL_SSL
722
	$SED "s?^#SSLCertificateChainFile.*?SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt?" $FIC_VIRTUAL_SSL
722
	$SED "s?^#SSLCertificateChainFile.*?SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt?" $FIC_VIRTUAL_SSL
723
	chown -R root:apache /etc/pki
723
	chown -R root:apache /etc/pki
724
	chmod -R 750 /etc/pki
724
	chmod -R 750 /etc/pki
725
} # End AC ()
725
} # End CA ()
726
 
726
 
727
##########################################################################################
727
##########################################################################################
728
##			Fonction init_db()						##
728
##			Fonction "init_db"						##
729
## - Initialisation de la base Mysql							##
729
## - Initialisation de la base Mysql							##
730
## - Affectation du mot de passe de l'administrateur (root)				##
730
## - Affectation du mot de passe de l'administrateur (root)				##
731
## - Suppression des bases et des utilisateurs superflus				##
731
## - Suppression des bases et des utilisateurs superflus				##
732
## - Création de la base 'radius'							##
732
## - Création de la base 'radius'							##
733
## - Installation du schéma de cette base						##
733
## - Installation du schéma de cette base						##
Line 756... Line 756...
756
	$SED "/wait_for_pid created/a echo \"Flush ALCASAR open accounting sessions\"; /usr/local/sbin/alcasar-mysql.sh -acct_stop" /etc/init.d/mysqld
756
	$SED "/wait_for_pid created/a echo \"Flush ALCASAR open accounting sessions\"; /usr/local/sbin/alcasar-mysql.sh -acct_stop" /etc/init.d/mysqld
757
	$SED "/'stop')/a echo \"Flush ALCASAR open accounting sessions\"; /usr/local/sbin/alcasar-mysql.sh -acct_stop" /etc/init.d/mysqld
757
	$SED "/'stop')/a echo \"Flush ALCASAR open accounting sessions\"; /usr/local/sbin/alcasar-mysql.sh -acct_stop" /etc/init.d/mysqld
758
} # End init_db ()
758
} # End init_db ()
759
 
759
 
760
##########################################################################
760
##########################################################################
761
##			Fonction param_radius				##
761
##			Fonction "param_radius"				##
762
## - Paramètrage des fichiers de configuration FreeRadius		##
762
## - Paramètrage des fichiers de configuration FreeRadius		##
763
## - Affectation du secret partagé entre coova-chilli et freeradius	##
763
## - Affectation du secret partagé entre coova-chilli et freeradius	##
764
## - Modification de fichier de conf pour l'accès à Mysql		##
764
## - Modification de fichier de conf pour l'accès à Mysql		##
765
##########################################################################
765
##########################################################################
766
param_radius ()
766
param_radius ()
Line 813... Line 813...
813
	$SED "s?^After=.*?After=syslog.target network.target mysqld.service?g" /lib/systemd/system/radiusd.service
813
	$SED "s?^After=.*?After=syslog.target network.target mysqld.service?g" /lib/systemd/system/radiusd.service
814
 
814
 
815
} # End param_radius ()
815
} # End param_radius ()
816
 
816
 
817
##########################################################################
817
##########################################################################
818
##			Fonction param_web_radius			##
818
##			Function "param_web_radius"			##
819
## - Import, modification et paramètrage de l'interface "dialupadmin"	##
819
## - Import, modification et paramètrage de l'interface "dialupadmin"	##
820
## - Création du lien vers la page de changement de mot de passe        ##
820
## - Création du lien vers la page de changement de mot de passe        ##
821
##########################################################################
821
##########################################################################
822
param_web_radius ()
822
param_web_radius ()
823
{
823
{
Line 872... Line 872...
872
</Directory>
872
</Directory>
873
EOF
873
EOF
874
} # End of param_web_radius ()
874
} # End of param_web_radius ()
875
 
875
 
876
##################################################################################
876
##################################################################################
877
##			Fonction param_chilli					##
877
##			Fonction "param_chilli"					##
878
## - Création du fichier d'initialisation et de configuration de coova-chilli	##
878
## - Création du fichier d'initialisation et de configuration de coova-chilli	##
879
## - Paramètrage de la page d'authentification (intercept.php)			##
879
## - Paramètrage de la page d'authentification (intercept.php)			##
880
##################################################################################
880
##################################################################################
881
param_chilli ()
881
param_chilli ()
882
{
882
{
Line 1019... Line 1019...
1019
	groupadd -f chilli
1019
	groupadd -f chilli
1020
	useradd -r -g chilli -s /bin/false -c "system user for coova-chilli" chilli
1020
	useradd -r -g chilli -s /bin/false -c "system user for coova-chilli" chilli
1021
}  # End of param_chilli ()
1021
}  # End of param_chilli ()
1022
 
1022
 
1023
##########################################################
1023
##########################################################
1024
##			Fonction param_squid		##
1024
##			Fonction "param_squid"		##
1025
## - Paramètrage du proxy 'squid' en mode 'cache'	##
1025
## - Paramètrage du proxy 'squid' en mode 'cache'	##
1026
## - Initialisation de la base de données  		##
1026
## - Initialisation de la base de données  		##
1027
##########################################################
1027
##########################################################
1028
param_squid ()
1028
param_squid ()
1029
{
1029
{
Line 1058... Line 1058...
1058
# Squid cache init
1058
# Squid cache init
1059
	/usr/sbin/squid -z
1059
	/usr/sbin/squid -z
1060
}  # End of param_squid ()
1060
}  # End of param_squid ()
1061
	
1061
	
1062
##################################################################
1062
##################################################################
1063
##		Fonction param_dansguardian			##
1063
##		Fonction "param_dansguardian"			##
1064
## - Paramètrage du gestionnaire de contenu Dansguardian	##
1064
## - Paramètrage du gestionnaire de contenu Dansguardian	##
1065
##################################################################
1065
##################################################################
1066
param_dansguardian ()
1066
param_dansguardian ()
1067
{
1067
{
1068
	mkdir /var/dansguardian
1068
	mkdir /var/dansguardian
Line 1106... Line 1106...
1106
	[ -e $DIR_DG/lists/bannedsitelist.default ] || mv $DIR_DG/lists/bannedsitelist $DIR_DG/lists/bannedsitelist.default
1106
	[ -e $DIR_DG/lists/bannedsitelist.default ] || mv $DIR_DG/lists/bannedsitelist $DIR_DG/lists/bannedsitelist.default
1107
	[ -e $DIR_DG/lists/bannedurllist.default ] || mv $DIR_DG/lists/bannedurllist $DIR_DG/lists/bannedurllist.default
1107
	[ -e $DIR_DG/lists/bannedurllist.default ] || mv $DIR_DG/lists/bannedurllist $DIR_DG/lists/bannedurllist.default
1108
} # End of param_dansguardian ()
1108
} # End of param_dansguardian ()
1109
 
1109
 
1110
##################################################################
1110
##################################################################
1111
##			Fonction antivirus			##
1111
##			Fonction "antivirus"			##
1112
## - configuration havp + libclamav				##
1112
## - configuration havp + libclamav				##
1113
##################################################################
1113
##################################################################
1114
antivirus ()		
1114
antivirus ()		
1115
{
1115
{
1116
# création de l'usager 'havp'
1116
# création de l'usager 'havp'
Line 1154... Line 1154...
1154
	cp -f $DIR_CONF/clamav-main.cvd /var/lib/clamav/main.cvd
1154
	cp -f $DIR_CONF/clamav-main.cvd /var/lib/clamav/main.cvd
1155
	/usr/bin/freshclam
1155
	/usr/bin/freshclam
1156
}
1156
}
1157
 
1157
 
1158
##################################################################################
1158
##################################################################################
1159
##			param_ulogd function					##
1159
##			function "param_ulogd"					##
1160
## - Ulog config for multi-log files 						##
1160
## - Ulog config for multi-log files 						##
1161
##################################################################################
1161
##################################################################################
1162
param_ulogd ()
1162
param_ulogd ()
1163
{
1163
{
1164
# Three instances of ulogd (three different logfiles)
1164
# Three instances of ulogd (three different logfiles)
1165
	[ -d /var/log/firewall ] || mkdir -p /var/log/firewall
1165
	[ -d /var/log/firewall ] || mkdir -p /var/log/firewall
1166
	nl=1
1166
	nl=1
1167
	for log_type in tracability ssh ext-access
1167
	for log_type in int-access ssh ext-access
1168
	do
1168
	do
1169
		[ -e /var/log/firewall/$log_type.log ] || touch /var/log/firewall/$log_type.log
1169
		[ -e /var/log/firewall/$log_type.log ] || touch /var/log/firewall/$log_type.log
1170
		cp -f /etc/ulogd.conf /etc/ulogd-$log_type.conf
1170
		cp -f /etc/ulogd.conf /etc/ulogd-$log_type.conf
1171
		$SED "s?^nlgroup=.*?nlgroup=$nl?g" /etc/ulogd-$log_type.conf 
1171
		$SED "s?^nlgroup=.*?nlgroup=$nl?g" /etc/ulogd-$log_type.conf 
1172
		$SED '/OPRINT/,$d' /etc/ulogd-$log_type.conf
1172
		$SED '/OPRINT/,$d' /etc/ulogd-$log_type.conf
Line 1184... Line 1184...
1184
	cp -f $DIR_CONF/ulogd-init /etc/init.d/ulogd
1184
	cp -f $DIR_CONF/ulogd-init /etc/init.d/ulogd
1185
}  # End of param_ulogd ()
1185
}  # End of param_ulogd ()
1186
 
1186
 
1187
 
1187
 
1188
##########################################################
1188
##########################################################
1189
##              Fonction param_nfsen			##
1189
##              Function "param_nfsen"			##
1190
##########################################################
1190
##########################################################
1191
param_nfsen()
1191
param_nfsen()
1192
{
1192
{
1193
#Decompression tarball
1193
#Decompression tarball
1194
tar xvzf ./conf/nfsen/nfsen-1.3.6p1.tar.gz -C /tmp/
1194
	tar xvzf ./conf/nfsen/nfsen-1.3.6p1.tar.gz -C /tmp/
Line 1205... Line 1205...
1205
	useradd -m nfsen
1205
		useradd -m nfsen
1206
	echo "User 'nfsen' created !"
1206
		echo "User 'nfsen' created !"
1207
fi
1207
	fi
1208
usermod -G www-data nfsen
1208
	usermod -G www-data nfsen
1209
#Ajout du plugin nfsen : PortTracker
1209
#Ajout du plugin nfsen : PortTracker
1210
mkdir -p /var/www/nfsen/plugins
1210
	mkdir -p /var/www/nfsen/plugins /var/log/netflow/porttracker /usr/share/nfsen/plugins
1211
chown -R nfsen:www-data /var/www/nfsen
1211
	chown -R nfsen:www-data /var/www/nfsen
1212
#Ajout du plugin PortTracker
-
 
1213
mkdir -p /var/log/netflow/porttracker 
-
 
1214
mkdir -p /usr/share/nfsen/plugins
-
 
1215
chown -R apache:apache /usr/share/nfsen
1212
	chown -R apache:apache /usr/share/nfsen /var/log/netflow/porttracker
1216
cp -f $DIR_CONF/nfsen/PortTracker.pm /tmp/nfsen-1.3.6p1/contrib/PortTracker/
1213
	cp -f $DIR_CONF/nfsen/PortTracker.pm /tmp/nfsen-1.3.6p1/contrib/PortTracker/
1217
chown apache /var/log/netflow/porttracker
-
 
1218
#Copie du fichier de conf modifié de nfsen
1214
#Copie du fichier de conf modifié de nfsen
1219
cp $DIR_CONF/nfsen/nfsen.conf /tmp/nfsen-1.3.6p1/etc/
1215
	cp $DIR_CONF/nfsen/nfsen.conf /tmp/nfsen-1.3.6p1/etc/
1220
#Copie du script d'initialisation de nfsen
1216
#Copie du script d'initialisation de nfsen
1221
cp $DIR_CONF/nfsen/nfsen.service /lib/systemd/system/
1217
	cp $DIR_CONF/nfsen/nfsen.service /lib/systemd/system/
1222
systemctl enable nfsen.service
-
 
1223
#Installation de nfsen via le scrip Perl
1218
#Installation de nfsen via le scrip Perl
1224
DirTmp=$(pwd)
1219
	DirTmp=$(pwd)
1225
cd /tmp/nfsen-1.3.6p1/
1220
	cd /tmp/nfsen-1.3.6p1/
1226
/usr/bin/perl5 install.pl etc/nfsen.conf #script lancé deux fois pour corriger,
1221
	/usr/bin/perl5 install.pl etc/nfsen.conf #script lancé deux fois pour corriger,
1227
/usr/bin/perl5 install.pl etc/nfsen.conf #un problème Perl : "Semaphore introuvable"
1222
	/usr/bin/perl5 install.pl etc/nfsen.conf #un problème Perl : "Semaphore introuvable"
Line 1254... Line 1249...
1254
cd $DirTmp
1249
	cd $DirTmp
1255
rm -rf /tmp/nfsen-1.3.6p1/
1250
	rm -rf /tmp/nfsen-1.3.6p1/
1256
} # End of param_nfsen
1251
} # End of param_nfsen
1257
 
1252
 
1258
##########################################################
1253
##########################################################
1259
##		Fonction param_dnsmasq			##
1254
##		Function "param_dnsmasq"		##
1260
##########################################################
1255
##########################################################
1261
param_dnsmasq ()
1256
param_dnsmasq ()
1262
{
1257
{
1263
	[ -d /var/log/dnsmasq ] || mkdir /var/log/dnsmasq
1258
	[ -d /var/log/dnsmasq ] || mkdir /var/log/dnsmasq
1264
	$SED "s?^DHCP_LEASE=.*?DHCP_LEASE=/var/log/dnsmasq/lease.log?g" /etc/sysconfig/dnsmasq # fichier contenant les baux
1259
	$SED "s?^DHCP_LEASE=.*?DHCP_LEASE=/var/log/dnsmasq/lease.log?g" /etc/sysconfig/dnsmasq # fichier contenant les baux
Line 1321... Line 1316...
1321
# Optionnellement, exemple de configuration avec un A.D.
1316
# Optionnellement, exemple de configuration avec un A.D.
1322
echo '#OPTIONS="$OPTIONS --server=/your.domain/192.168.182.3"' >> /etc/sysconfig/dnsmasq
1317
	echo '#OPTIONS="$OPTIONS --server=/your.domain/192.168.182.3"' >> /etc/sysconfig/dnsmasq
1323
} # End dnsmasq
1318
} # End dnsmasq
1324
 
1319
 
1325
##########################################################
1320
##########################################################
1326
##		Fonction BL (BlackList)			##
1321
##		Fonction "BL"				##
1327
##########################################################
1322
##########################################################
1328
BL ()
1323
BL ()
1329
{
1324
{
1330
# on copie par défaut la BL de toulouse embarqués dans l'archive d'ALCASAR
1325
# on copie par défaut la BL de toulouse embarqués dans l'archive d'ALCASAR
1331
	rm -rf $DIR_DG/lists/blacklists
1326
	rm -rf $DIR_DG/lists/blacklists
Line 1370... Line 1365...
1370
		$DIR_DEST_SBIN/alcasar-bl.sh --adapt
1365
		$DIR_DEST_SBIN/alcasar-bl.sh --adapt
1371
	fi
1366
	fi
1372
}
1367
}
1373
 
1368
 
1374
##########################################################
1369
##########################################################
1375
##		Fonction cron				##
1370
##		Fonction "cron"				##
1376
## - Mise en place des différents fichiers de cron	##
1371
## - Mise en place des différents fichiers de cron	##
1377
##########################################################
1372
##########################################################
1378
cron ()
1373
cron ()
1379
{
1374
{
1380
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00
1375
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00
Line 1457... Line 1452...
1457
# suppression des crons usagers
1452
# suppression des crons usagers
1458
	rm -f /var/spool/cron/*
1453
	rm -f /var/spool/cron/*
1459
} # End cron
1454
} # End cron
1460
 
1455
 
1461
##################################################################
1456
##################################################################
1462
## 			Fonction Fail2Ban			##
1457
## 			Fonction "Fail2Ban"			##
1463
##- Modification de la configuration de fail2ban		##
1458
##- Modification de la configuration de fail2ban		##
1464
##- Sécurisation DDOS, SSH-Brute-Force, Intercept.php ...	##
1459
##- Sécurisation DDOS, SSH-Brute-Force, Intercept.php ...	##
1465
##################################################################
1460
##################################################################
1466
fail2ban()
1461
fail2ban()
1467
{
1462
{
Line 1472... Line 1467...
1472
	chmod 644 /var/log/fail2ban.log
1467
	chmod 644 /var/log/fail2ban.log
1473
	chmod 644 /var/Save/logs/security/watchdog.log
1468
	chmod 644 /var/Save/logs/security/watchdog.log
1474
} #Fin de fail2ban_install()
1469
} #Fin de fail2ban_install()
1475
 
1470
 
1476
##################################################################
1471
##################################################################
1477
##			Fonction post_install			##
1472
##			Fonction "post_install"			##
1478
## - Modification des bannières (locales et ssh) et des prompts ##
1473
## - Modification des bannières (locales et ssh) et des prompts ##
1479
## - Installation de la structure de chiffrement pour root	##
1474
## - Installation de la structure de chiffrement pour root	##
1480
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1475
## - Mise en place du sudoers et de la sécurité sur les fichiers##
1481
## - Mise en place du la rotation des logs			##
1476
## - Mise en place du la rotation des logs			##
1482
## - Configuration dans le cas d'une mise à jour		##
1477
## - Configuration dans le cas d'une mise à jour		##
Line 1534... Line 1529...
1534
	do
1529
	do
1535
	      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 {} \;
1530
	      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 {} \;
1536
	done
1531
	done
1537
# export des logs en 'retard' dans /var/Save/logs
1532
# export des logs en 'retard' dans /var/Save/logs
1538
	/usr/local/bin/alcasar-log.sh --export
1533
	/usr/local/bin/alcasar-log.sh --export
1539
# processus lancés par défaut au démarrage
1534
# create the alcasar-load_balancing unit
1540
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam nfsen
-
 
1541
	do
-
 
1542
		/sbin/chkconfig --add $i
-
 
1543
	done
-
 
1544
 
-
 
1545
cat << EOF > /lib/systemd/system/alcasar-load_balancing.service
1535
	cat << EOF > /lib/systemd/system/alcasar-load_balancing.service
1546
#  This file is part of systemd.
1536
#  This file is part of systemd.
1547
#
1537
#
1548
#  systemd is free software; you can redistribute it and/or modify it
1538
#  systemd is free software; you can redistribute it and/or modify it
1549
#  under the terms of the GNU General Public License as published by
1539
#  under the terms of the GNU General Public License as published by
Line 1564... Line 1554...
1564
SysVStartPriority=99
1554
SysVStartPriority=99
1565
 
1555
 
1566
[Install]
1556
[Install]
1567
WantedBy=multi-user.target
1557
WantedBy=multi-user.target
1568
EOF
1558
EOF
-
 
1559
# processes launched at boot time (SYSV)
-
 
1560
	for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam
-
 
1561
	do
-
 
1562
		/sbin/chkconfig --add $i
-
 
1563
	done
-
 
1564
# processes launched at boot time (Systemctl)
1569
systemctl enable alcasar-load_balancing.service
1565
	for i in alcasar-load_balancing.service nfsen.service
1570
 
1566
 
-
 
1567
	do
1571
# On applique les préconisations ANSSI
1568
		systemctl enable $i
-
 
1569
	done
1572
# Apply French Security Agency rules
1570
# Apply French Security Agency (ANSSI) rules
1573
# ignorer les broadcast ICMP. (attaque smurf) 
1571
# ignorer les broadcast ICMP. (attaque smurf) 
1574
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1572
	sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
1575
# ignorer les erreurs ICMP bogus
1573
# ignorer les erreurs ICMP bogus
1576
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
1574
	sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
1577
# désactiver l'envoi et la réponse aux ICMP redirects
1575
# désactiver l'envoi et la réponse aux ICMP redirects
Line 1641... Line 1639...
1641
$SED "s?^title linux?title ALCASAR?g" /boot/grub/menu.lst
1639
	$SED "s?^title linux?title ALCASAR?g" /boot/grub/menu.lst
1642
$SED "/^kernel/s/splash quiet //" /boot/grub/menu.lst
1640
	$SED "/^kernel/s/splash quiet //" /boot/grub/menu.lst
1643
$SED "/^kernel/s/vga=.*/vga=791 nomodeset/" /boot/grub/menu.lst
1641
	$SED "/^kernel/s/vga=.*/vga=791 nomodeset/" /boot/grub/menu.lst
1644
$SED "/^kernel/s/BOOT_IMAGE=linux /BOOT_IMAGE=linux-nonfb /" /boot/grub/menu.lst
1642
	$SED "/^kernel/s/BOOT_IMAGE=linux /BOOT_IMAGE=linux-nonfb /" /boot/grub/menu.lst
1645
$SED "/^gfxmenu/d" /boot/grub/menu.lst
1643
	$SED "/^gfxmenu/d" /boot/grub/menu.lst
1646
 
-
 
1647
# Remove unused services and users
1644
# Remove unused services and users
1648
for old_svc in alsa sound dm
1645
	for old_svc in alsa sound dm
1649
do
1646
	do
1650
	/sbin/chkconfig --del $old_svc
1647
		/sbin/chkconfig --del $old_svc
1651
done
1648
	done
Line 1673... Line 1670...
1673
fi
1670
	fi
1674
rm -f /tmp/alcasar-conf*
1671
	rm -f /tmp/alcasar-conf*
1675
chown -R root:apache $DIR_DEST_ETC/*
1672
	chown -R root:apache $DIR_DEST_ETC/*
1676
chmod -R 660 $DIR_DEST_ETC/*
1673
	chmod -R 660 $DIR_DEST_ETC/*
1677
chmod ug+x $DIR_DEST_ETC/digest
1674
	chmod ug+x $DIR_DEST_ETC/digest
1678
 
-
 
1679
# Apply and save the firewall rules
1675
# Apply and save the firewall rules
1680
 	sh $DIR_DEST_BIN/alcasar-iptables.sh
1676
 	sh $DIR_DEST_BIN/alcasar-iptables.sh
1681
	sleep 2
1677
	sleep 2
1682
	cd $DIR_INSTALL
1678
	cd $DIR_INSTALL
1683
	echo ""
1679
	echo ""
Line 1830... Line 1826...
1830
			UPD_PREVIOUS_VERSION=`echo $PREVIOUS_VERSION|cut -d"." -f3`
1826
			UPD_PREVIOUS_VERSION=`echo $PREVIOUS_VERSION|cut -d"." -f3`
1831
			mode="update"
1827
			mode="update"
1832
		else
1828
		else
1833
			mode="install"
1829
			mode="install"
1834
		fi
1830
		fi
1835
		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 fail2ban post_install
1831
		for func in init network ACC CA init_db param_radius param_web_radius param_chilli param_squid param_dansguardian antivirus param_ulogd param_nfsen param_dnsmasq BL cron fail2ban post_install
1836
		do
1832
		do
1837
			$func
1833
			$func
1838
 echo "*** 'debug' : end of function $func ***"; read a
1834
# echo "*** 'debug' : end of function $func ***"; read a
1839
		done
1835
		done
1840
		;;
1836
		;;
1841
	-u | --uninstall)
1837
	-u | --uninstall)
1842
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1838
		if [ ! -e $DIR_DEST_SBIN/alcasar-uninstall.sh ]
1843
		then
1839
		then