20,7 → 20,7 |
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal) |
# ALCASAR is based on a stripped Mageia (LSB) with the following open source softwares : |
# |
# Coovachilli (a fork of chillispot), freeradius, mysql, apache, netfilter, squid, dansguardian, ntpd, openssl, dnsmasq, havp, libclamav |
# Coovachilli, freeradius, mariaDB, apache, netfilter, squid, dansguardian, ntpd, openssl, dnsmasq, havp, libclamav, Ulog, fail2ban, NFsen and NFdump |
|
# Options : |
# -i or --install |
27,18 → 27,18 |
# -u or --uninstall |
|
# Functions : |
# testing : Tests de connectivité et de téléchargement avant installation |
# init : Installation des RPM et des scripts |
# network : Paramètrage du réseau |
# gestion : Installation de l'interface de gestion |
# AC : Initialisation de l'autorité de certification. Création des certificats |
# init_db : Création de la base 'radius' sur le serveur MySql |
# param_radius : Configuration du serveur d'authentification FreeRadius |
# param_web_radius: Configuration de l'interface de gestion de FreeRadius (dialupadmin) |
# param_chilli : Configuration du daemon 'coova-chilli' et de la page d'authentification |
# param_squid : Configuration du proxy squid en mode 'cache' |
# param_dansguardian : Configuration de l'analyseur de contenu DansGuardian |
# antivirus : Installation havp + libclamav |
# testing : connectivity tests and downloading before intall |
# init : Installation of RPM and scripts |
# network : Network parameters |
# ACC : ALCASAR Control Center installation |
# CA : Certification Authority initialization |
# init_db : Initilization of radius database managed with MariaDB |
# param_radius : FreeRadius initialisation |
# param_web_radius : copy ans modifiy original "freeradius web" in ACC |
# param_chilli : coovachilli initialisation (+authentication page) |
# param_squid : Squid cache proxy configuration |
# param_dansguardian : DansGuardian filtering HTTP proxy configuration |
# antivirus : HAVP + libclamav configuration |
# param_nfsen : Configuration du grapheur nfsen pour apache |
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours |
# BL : Configuration de la BlackList |
102,7 → 102,7 |
service network start |
|
################################################################## |
## Function TESTING ## |
## Function "testing" ## |
## - Test of Internet access ## |
################################################################## |
testing () |
240,7 → 240,7 |
} # end of testing |
|
################################################################## |
## Fonction INIT ## |
## Function "init" ## |
## - Création du fichier "/root/ALCASAR_parametres.txt" ## |
## - Installation et modification des scripts du portail ## |
################################################################## |
314,7 → 314,7 |
} # End of init () |
|
################################################################## |
## Fonction network ## |
## Function "network" ## |
## - Définition du plan d'adressage du réseau de consultation ## |
## - Nommage DNS du système ## |
## - Configuration de l'interface eth1 (réseau de consultation) ## |
508,13 → 508,13 |
} # End of network () |
|
################################################################## |
## Fonction gestion ## |
## - installation du centre de gestion ## |
## Function "ACC" ## |
## - installation du centre de gestion (ALCASAR Control Center) ## |
## - configuration du serveur web (Apache) ## |
## - définition du 1er comptes de gestion ## |
## - sécurisation des accès ## |
################################################################## |
gestion() |
ACC () |
{ |
[ -d $DIR_WEB ] && rm -rf $DIR_WEB |
mkdir $DIR_WEB |
705,13 → 705,13 |
ErrorDocument 404 https://$HOSTNAME/ |
</Directory> |
EOF |
} # End of gestion () |
} # End of ACC() |
|
########################################################################################## |
## Fonction AC() ## |
## Fonction "CA" ## |
## - Création d'une Autorité de Certification et du certificat serveur pour apache ## |
########################################################################################## |
AC () |
CA () |
{ |
$SED "s?ifcfg-eth.?ifcfg-$INTIF?g" $DIR_DEST_BIN/alcasar-CA.sh |
$DIR_DEST_BIN/alcasar-CA.sh |
722,10 → 722,10 |
$SED "s?^#SSLCertificateChainFile.*?SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt?" $FIC_VIRTUAL_SSL |
chown -R root:apache /etc/pki |
chmod -R 750 /etc/pki |
} # End AC () |
} # End CA () |
|
########################################################################################## |
## Fonction init_db() ## |
## Fonction "init_db" ## |
## - Initialisation de la base Mysql ## |
## - Affectation du mot de passe de l'administrateur (root) ## |
## - Suppression des bases et des utilisateurs superflus ## |
758,7 → 758,7 |
} # End init_db () |
|
########################################################################## |
## Fonction param_radius ## |
## Fonction "param_radius" ## |
## - Paramètrage des fichiers de configuration FreeRadius ## |
## - Affectation du secret partagé entre coova-chilli et freeradius ## |
## - Modification de fichier de conf pour l'accès à Mysql ## |
815,7 → 815,7 |
} # End param_radius () |
|
########################################################################## |
## Fonction param_web_radius ## |
## Function "param_web_radius" ## |
## - Import, modification et paramètrage de l'interface "dialupadmin" ## |
## - Création du lien vers la page de changement de mot de passe ## |
########################################################################## |
874,7 → 874,7 |
} # End of param_web_radius () |
|
################################################################################## |
## Fonction param_chilli ## |
## Fonction "param_chilli" ## |
## - Création du fichier d'initialisation et de configuration de coova-chilli ## |
## - Paramètrage de la page d'authentification (intercept.php) ## |
################################################################################## |
1021,7 → 1021,7 |
} # End of param_chilli () |
|
########################################################## |
## Fonction param_squid ## |
## Fonction "param_squid" ## |
## - Paramètrage du proxy 'squid' en mode 'cache' ## |
## - Initialisation de la base de données ## |
########################################################## |
1060,7 → 1060,7 |
} # End of param_squid () |
|
################################################################## |
## Fonction param_dansguardian ## |
## Fonction "param_dansguardian" ## |
## - Paramètrage du gestionnaire de contenu Dansguardian ## |
################################################################## |
param_dansguardian () |
1108,7 → 1108,7 |
} # End of param_dansguardian () |
|
################################################################## |
## Fonction antivirus ## |
## Fonction "antivirus" ## |
## - configuration havp + libclamav ## |
################################################################## |
antivirus () |
1156,7 → 1156,7 |
} |
|
################################################################################## |
## param_ulogd function ## |
## function "param_ulogd" ## |
## - Ulog config for multi-log files ## |
################################################################################## |
param_ulogd () |
1164,7 → 1164,7 |
# Three instances of ulogd (three different logfiles) |
[ -d /var/log/firewall ] || mkdir -p /var/log/firewall |
nl=1 |
for log_type in tracability ssh ext-access |
for log_type in int-access ssh ext-access |
do |
[ -e /var/log/firewall/$log_type.log ] || touch /var/log/firewall/$log_type.log |
cp -f /etc/ulogd.conf /etc/ulogd-$log_type.conf |
1186,7 → 1186,7 |
|
|
########################################################## |
## Fonction param_nfsen ## |
## Function "param_nfsen" ## |
########################################################## |
param_nfsen() |
{ |
1207,19 → 1207,14 |
fi |
usermod -G www-data nfsen |
#Ajout du plugin nfsen : PortTracker |
mkdir -p /var/www/nfsen/plugins |
mkdir -p /var/www/nfsen/plugins /var/log/netflow/porttracker /usr/share/nfsen/plugins |
chown -R nfsen:www-data /var/www/nfsen |
#Ajout du plugin PortTracker |
mkdir -p /var/log/netflow/porttracker |
mkdir -p /usr/share/nfsen/plugins |
chown -R apache:apache /usr/share/nfsen |
chown -R apache:apache /usr/share/nfsen /var/log/netflow/porttracker |
cp -f $DIR_CONF/nfsen/PortTracker.pm /tmp/nfsen-1.3.6p1/contrib/PortTracker/ |
chown apache /var/log/netflow/porttracker |
#Copie du fichier de conf modifié de nfsen |
cp $DIR_CONF/nfsen/nfsen.conf /tmp/nfsen-1.3.6p1/etc/ |
#Copie du script d'initialisation de nfsen |
cp $DIR_CONF/nfsen/nfsen.service /lib/systemd/system/ |
systemctl enable nfsen.service |
#Installation de nfsen via le scrip Perl |
DirTmp=$(pwd) |
cd /tmp/nfsen-1.3.6p1/ |
1256,7 → 1251,7 |
} # End of param_nfsen |
|
########################################################## |
## Fonction param_dnsmasq ## |
## Function "param_dnsmasq" ## |
########################################################## |
param_dnsmasq () |
{ |
1323,7 → 1318,7 |
} # End dnsmasq |
|
########################################################## |
## Fonction BL (BlackList) ## |
## Fonction "BL" ## |
########################################################## |
BL () |
{ |
1372,7 → 1367,7 |
} |
|
########################################################## |
## Fonction cron ## |
## Fonction "cron" ## |
## - Mise en place des différents fichiers de cron ## |
########################################################## |
cron () |
1459,7 → 1454,7 |
} # End cron |
|
################################################################## |
## Fonction Fail2Ban ## |
## Fonction "Fail2Ban" ## |
##- Modification de la configuration de fail2ban ## |
##- Sécurisation DDOS, SSH-Brute-Force, Intercept.php ... ## |
################################################################## |
1474,7 → 1469,7 |
} #Fin de fail2ban_install() |
|
################################################################## |
## Fonction post_install ## |
## Fonction "post_install" ## |
## - Modification des bannières (locales et ssh) et des prompts ## |
## - Installation de la structure de chiffrement pour root ## |
## - Mise en place du sudoers et de la sécurité sur les fichiers## |
1536,12 → 1531,7 |
done |
# export des logs en 'retard' dans /var/Save/logs |
/usr/local/bin/alcasar-log.sh --export |
# processus lancés par défaut au démarrage |
for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam nfsen |
do |
/sbin/chkconfig --add $i |
done |
|
# create the alcasar-load_balancing unit |
cat << EOF > /lib/systemd/system/alcasar-load_balancing.service |
# This file is part of systemd. |
# |
1566,10 → 1556,18 |
[Install] |
WantedBy=multi-user.target |
EOF |
systemctl enable alcasar-load_balancing.service |
# processes launched at boot time (SYSV) |
for i in ntpd iptables ulogd dnsmasq squid chilli httpd radiusd netfs mysqld dansguardian havp freshclam |
do |
/sbin/chkconfig --add $i |
done |
# processes launched at boot time (Systemctl) |
for i in alcasar-load_balancing.service nfsen.service |
|
# On applique les préconisations ANSSI |
# Apply French Security Agency rules |
do |
systemctl enable $i |
done |
# Apply French Security Agency (ANSSI) rules |
# ignorer les broadcast ICMP. (attaque smurf) |
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 |
# ignorer les erreurs ICMP bogus |
1643,7 → 1641,6 |
$SED "/^kernel/s/vga=.*/vga=791 nomodeset/" /boot/grub/menu.lst |
$SED "/^kernel/s/BOOT_IMAGE=linux /BOOT_IMAGE=linux-nonfb /" /boot/grub/menu.lst |
$SED "/^gfxmenu/d" /boot/grub/menu.lst |
|
# Remove unused services and users |
for old_svc in alsa sound dm |
do |
1675,7 → 1672,6 |
chown -R root:apache $DIR_DEST_ETC/* |
chmod -R 660 $DIR_DEST_ETC/* |
chmod ug+x $DIR_DEST_ETC/digest |
|
# Apply and save the firewall rules |
sh $DIR_DEST_BIN/alcasar-iptables.sh |
sleep 2 |
1832,10 → 1828,10 |
else |
mode="install" |
fi |
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 |
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 |
do |
$func |
echo "*** 'debug' : end of function $func ***"; read a |
# echo "*** 'debug' : end of function $func ***"; read a |
done |
;; |
-u | --uninstall) |