Line 1... |
Line 1... |
1 |
#!/bin/bash
|
1 |
#!/bin/bash
|
2 |
# $Id: alcasar.sh 2482 2018-01-17 09:10:56Z lucas.echard $
|
2 |
# $Id: alcasar.sh 2488 2018-02-25 14:53:54Z lucas.echard $
|
3 |
|
3 |
|
4 |
# alcasar.sh
|
4 |
# alcasar.sh
|
5 |
# ALCASAR is a Free and open source NAC created by Franck BOUIJOUX (3abtux), Pascal LEVANT and Richard REY (Rexy)
|
5 |
# ALCASAR is a Free and open source NAC created by Franck BOUIJOUX (3abtux), Pascal LEVANT and Richard REY (Rexy)
|
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 |
# team@alcasar.net
|
7 |
# team@alcasar.net
|
Line 16... |
Line 16... |
16 |
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
|
16 |
# Script d'installation d'ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau)
|
17 |
# ALCASAR est architecturé autour d'une distribution Linux Mageia minimaliste et les logiciels libres suivants :
|
17 |
# ALCASAR est architecturé autour d'une distribution Linux Mageia minimaliste et les logiciels libres suivants :
|
18 |
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
|
18 |
# Install script for ALCASAR (a secured and authenticated Internet access control captive portal)
|
19 |
# ALCASAR is based on a stripped Mageia (LSB) with the following open source softwares :
|
19 |
# ALCASAR is based on a stripped Mageia (LSB) with the following open source softwares :
|
20 |
|
20 |
|
21 |
# Coovachilli, freeradius, mariaDB, apache, netfilter, dansguardian, ntpd, openssl, dnsmasq, gammu, havp, libclamav, Ulog, fail2ban, tinyproxy, NFsen and NFdump
|
21 |
# Coovachilli, freeradius, mariaDB, lighttpd, netfilter, dansguardian, ntpd, openssl, dnsmasq, gammu, havp, libclamav, Ulog, fail2ban, tinyproxy, NFsen and NFdump
|
22 |
|
22 |
|
23 |
# Options :
|
23 |
# Options :
|
24 |
# -i or --install
|
24 |
# -i or --install
|
25 |
# -u or --uninstall
|
25 |
# -u or --uninstall
|
26 |
|
26 |
|
Line 58... |
Line 58... |
58 |
DIR_INSTALL=`pwd` # current directory
|
58 |
DIR_INSTALL=`pwd` # current directory
|
59 |
DIR_CONF="$DIR_INSTALL/conf" # install directory (with conf files)
|
59 |
DIR_CONF="$DIR_INSTALL/conf" # install directory (with conf files)
|
60 |
DIR_SCRIPTS="$DIR_INSTALL/scripts" # install directory (with script files)
|
60 |
DIR_SCRIPTS="$DIR_INSTALL/scripts" # install directory (with script files)
|
61 |
DIR_BLACKLIST="$DIR_INSTALL/blacklist" # install directory (with blacklist files)
|
61 |
DIR_BLACKLIST="$DIR_INSTALL/blacklist" # install directory (with blacklist files)
|
62 |
DIR_SAVE="/var/Save" # backup directory (traceability_log, user_db, security_log)
|
62 |
DIR_SAVE="/var/Save" # backup directory (traceability_log, user_db, security_log)
|
63 |
DIR_WEB="/var/www/html" # directory of APACHE
|
63 |
DIR_WEB="/var/www/html" # directory of Lighttpd
|
64 |
DIR_DG="/etc/dansguardian" # directory of DansGuardian
|
64 |
DIR_DG="/etc/dansguardian" # directory of DansGuardian
|
65 |
DIR_ACC="$DIR_WEB/acc" # directory of the 'ALCASAR Control Center'
|
65 |
DIR_ACC="$DIR_WEB/acc" # directory of the 'ALCASAR Control Center'
|
66 |
DIR_DEST_BIN="/usr/local/bin" # directory of ALCASAR scripts
|
66 |
DIR_DEST_BIN="/usr/local/bin" # directory of ALCASAR scripts
|
67 |
DIR_DEST_ETC="/usr/local/etc" # directory of ALCASAR conf files
|
67 |
DIR_DEST_ETC="/usr/local/etc" # directory of ALCASAR conf files
|
68 |
DIR_DEST_SHARE="/usr/local/share" # directory of share files used by ALCASAR (dnsmasq for instance)
|
68 |
DIR_DEST_SHARE="/usr/local/share" # directory of share files used by ALCASAR (dnsmasq for instance)
|
Line 712... |
Line 712... |
712 |
} # End of network ()
|
712 |
} # End of network ()
|
713 |
|
713 |
|
714 |
##################################################################
|
714 |
##################################################################
|
715 |
## Function "ACC" ##
|
715 |
## Function "ACC" ##
|
716 |
## - installation of then ALCASAR Control Center (ACC) ) ##
|
716 |
## - installation of then ALCASAR Control Center (ACC) ) ##
|
717 |
## - configuration of the web server (Apache) ##
|
717 |
## - configuration of the web server (Lighttpd) ##
|
718 |
## - creation of the first ACC admin account ##
|
718 |
## - creation of the first ACC admin account ##
|
719 |
## - secure the access ##
|
719 |
## - secure the access ##
|
720 |
##################################################################
|
720 |
##################################################################
|
721 |
ACC ()
|
721 |
ACC ()
|
722 |
{
|
722 |
{
|
Line 762... |
Line 762... |
762 |
$SED "s?^display_errors.*?display_errors = Off?" /etc/php.ini
|
762 |
$SED "s?^display_errors.*?display_errors = Off?" /etc/php.ini
|
763 |
$SED "s?^display_startup_errors.*?display_startup_errors = Off?" /etc/php.ini
|
763 |
$SED "s?^display_startup_errors.*?display_startup_errors = Off?" /etc/php.ini
|
764 |
$SED "s?^html_errors.*?html_errors = Off?g" /etc/php.ini
|
764 |
$SED "s?^html_errors.*?html_errors = Off?g" /etc/php.ini
|
765 |
$SED "s?^expose_php.*?expose_php = Off?g" /etc/php.ini
|
765 |
$SED "s?^expose_php.*?expose_php = Off?g" /etc/php.ini
|
766 |
$SED "s?^allow_url_fopen.*?allow_url_fopen = Off?" /etc/php.ini
|
766 |
$SED "s?^allow_url_fopen.*?allow_url_fopen = Off?" /etc/php.ini
|
767 |
# Configuring & sécuring Apache
|
767 |
# Configuring & securing Lighttpd
|
768 |
rm -rf /var/www/cgi-bin/* /var/www/perl/* /var/www/icons/README* /var/www/error/README*
|
768 |
rm -rf /var/www/cgi-bin/* /var/www/perl/* /var/www/icons/README* /var/www/error/README*
|
769 |
[ -e /etc/httpd/conf/httpd.conf.default ] || cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default
|
769 |
[ -e /etc/lighttpd/lighttpd.conf.default ] || cp /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.default
|
770 |
$SED "s?^#ServerName.*?ServerName $HOSTNAME.$DOMAIN?g" /etc/httpd/conf/httpd.conf
|
770 |
[ -e /etc/lighttpd/modules.conf.default ] || cp /etc/lighttpd/modules.conf /etc/lighttpd/modules.conf.default
|
771 |
$SED "s?^Listen.*?Listen $PRIVATE_IP:80?g" /etc/httpd/conf/httpd.conf
|
771 |
[ -e /etc/lighttpd/conf.d/fastcgi.conf.default ] || cp /etc/lighttpd/conf.d/fastcgi.conf /etc/lighttpd/conf.d/fastcgi.conf.default
|
772 |
$SED "s?Options Indexes.*?Options -Indexes?g" /etc/httpd/conf/httpd.conf
|
772 |
[ -e /etc/php-fpm.conf ] || cp /etc/php-fpm.conf /etc/php-fpm.conf.default
|
773 |
echo "ServerTokens Prod" >> /etc/httpd/conf/httpd.conf
|
773 |
[ -d /etc/lighttpd/vhosts.d ] || mkdir /etc/lighttpd/vhosts.d
|
- |
|
774 |
|
774 |
echo "ServerSignature Off" >> /etc/httpd/conf/httpd.conf
|
775 |
cp $DIR_CONF/lighttpd/conf.d/fastcgi.conf /etc/lighttpd/conf.d/fastcgi.conf
|
775 |
[ -e /etc/httpd/conf/modules.d/00_base.conf.default ] || cp /etc/httpd/conf/modules.d/00_base.conf /etc/httpd/conf/modules.d/00_base.conf.default
|
776 |
cp $DIR_CONF/lighttpd/vhosts.d/alcasar.conf /etc/lighttpd/vhosts.d/alcasar.conf
|
- |
|
777 |
|
776 |
$SED "s?^LoadModule authn_anon_module.*?#LoadModule authn_anon_module modules/mod_authn_anon.so?g" /etc/httpd/conf/modules.d/00_base.conf
|
778 |
$SED "s?^;listen\.owner.*?listen\.owner = apache?g" /etc/php-fpm.conf
|
777 |
$SED "s?^LoadModule status_module.*?#LoadModule status_module modules/mod_status.so?g" /etc/httpd/conf/modules.d/00_base.conf
|
779 |
$SED "s?^;listen\.group.*?listen\.group = apache?g" /etc/php-fpm.conf
|
778 |
$SED "s?^LoadModule info_module.*?#LoadModule info_module modules/mod_info.so?g" /etc/httpd/conf/modules.d/00_base.conf
|
780 |
$SED "s?^;listen\.mode.*?listen\.mode = 0660?g" /etc/php-fpm.conf
|
- |
|
781 |
|
779 |
$SED "s?^LoadModule imagemap_module.*?#LoadModule imagemap_module modules/mod_imagemap.so?g" /etc/httpd/conf/modules.d/00_base.conf
|
782 |
$SED "s?^server\.use-ipv6.*?server\.use-ipv6 = \"disable\"?g" /etc/lighttpd/lighttpd.conf
|
780 |
$SED "s?^LoadModule rewrite_module.*?#LoadModule rewrite_module modules/mod_rewrite.so?g" /etc/httpd/conf/modules.d/00_base.conf
|
783 |
$SED "s?^#server\.bind.*?server\.bind = \"$HOSTNAME.$DOMAIN\"?g" /etc/lighttpd/lighttpd.conf
|
781 |
$SED "s?^LoadModule speling_module.*?#LoadModule speling_module modules/mod_speling.so?g" /etc/httpd/conf/modules.d/00_base.conf
|
784 |
$SED "s?^#server\.tag.*?server\.tag = \"\"?g" /etc/lighttpd/lighttpd.conf
|
782 |
[ -e /etc/httpd/conf/conf.d/ssl.conf.default ] || cp /etc/httpd/conf/conf.d/ssl.conf /etc/httpd/conf/conf.d/ssl.conf.default
|
- |
|
783 |
echo "Listen $PRIVATE_IP:443" > /etc/httpd/conf/conf.d/ssl.conf # Listen only on INTIF
|
785 |
echo "include \"vhosts.d/alcasar.conf\"" >> /etc/lighttpd/lighttpd.conf
|
- |
|
786 |
|
784 |
echo "SSLProtocol all -SSLv2 -SSLv3" >> /etc/httpd/conf/conf.d/ssl.conf # exclude vulnerable protocols
|
787 |
$SED "s?^#[ ]*\"mod_auth\",.*? \"mod_auth\",?g" /etc/lighttpd/modules.conf
|
785 |
echo "SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS" >> /etc/httpd/conf/conf.d/ssl.conf # Define the cipher suite
|
- |
|
786 |
echo "SSLHonorCipherOrder on" >> /etc/httpd/conf/conf.d/ssl.conf # The Browser must respect the order of the cipher suite
|
- |
|
787 |
echo "SSLPassPhraseDialog builtin" >> /etc/httpd/conf/conf.d/ssl.conf # in case of passphrase the dialog will be perform on stdin
|
- |
|
788 |
echo "SSLSessionCache \"shmcb:/run/httpd/ssl_scache(512000)\"" >> /etc/httpd/conf/conf.d/ssl.conf # default cache size
|
788 |
$SED "s?^#[ ]*\"mod_alias\",.*? \"mod_alias\",?g" /etc/lighttpd/modules.conf
|
789 |
echo "SSLSessionCacheTimeout 300" >> /etc/httpd/conf/conf.d/ssl.conf # default cache time in seconds
|
789 |
$SED "s?^#[ ]*\"mod_redirect\",.*? \"mod_redirect\",?g" /etc/lighttpd/modules.conf
|
790 |
# Error page management
|
- |
|
791 |
[ -e /etc/httpd/conf/conf.d/multilang-errordoc.conf.default ] || cp /etc/httpd/conf/conf.d/multilang-errordoc.conf /etc/httpd/conf/conf.d/multilang-errordoc.conf.default
|
790 |
$SED "s?^#include \"conf.d/fastcgi.conf\".*?include \"conf.d/fastcgi.conf\"?g" /etc/lighttpd/modules.conf
|
792 |
cat <<EOF > /etc/httpd/conf/conf.d/multilang-errordoc.conf
|
- |
|
793 |
Alias /error/ "/var/www/html/"
|
- |
|
794 |
<Directory "/usr/share/httpd/error">
|
- |
|
795 |
AllowOverride None
|
- |
|
796 |
Options IncludesNoExec
|
- |
|
797 |
AddOutputFilter Includes html
|
- |
|
798 |
AddHandler type-map var
|
- |
|
799 |
Require all granted
|
- |
|
800 |
LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
|
- |
|
801 |
ForceLanguagePriority Prefer Fallback
|
- |
|
802 |
</Directory>
|
- |
|
803 |
ErrorDocument 400 /error/error.php?error=400
|
- |
|
804 |
ErrorDocument 401 /error/error.php?error=401
|
- |
|
805 |
ErrorDocument 403 /error/error.php?error=403
|
- |
|
806 |
ErrorDocument 404 /error/index.php
|
- |
|
807 |
ErrorDocument 405 /error/error.php?error=405
|
- |
|
808 |
ErrorDocument 408 /error/error.php?error=408
|
- |
|
809 |
ErrorDocument 410 /error/error.php?error=410
|
- |
|
810 |
ErrorDocument 411 /error/error.php?error=411
|
- |
|
811 |
ErrorDocument 412 /error/error.php?error=412
|
- |
|
812 |
ErrorDocument 413 /error/error.php?error=413
|
- |
|
813 |
ErrorDocument 414 /error/error.php?error=414
|
- |
|
814 |
ErrorDocument 415 /error/error.php?error=415
|
- |
|
815 |
ErrorDocument 500 /error/error.php?error=500
|
- |
|
816 |
ErrorDocument 501 /error/error.php?error=501
|
- |
|
817 |
ErrorDocument 502 /error/error.php?error=502
|
- |
|
818 |
ErrorDocument 503 /error/error.php?error=503
|
- |
|
819 |
ErrorDocument 506 /error/error.php?error=506
|
- |
|
820 |
EOF
|
791 |
|
821 |
[ -e /usr/share/httpd/error/include/top.html.default ] || cp /usr/share/httpd/error/include/top.html /usr/share/httpd/error/include/top.html.default
|
792 |
$SED "s?^server\.bind.*?server\.bind = \"$HOSTNAME.$DOMAIN\"?g" /etc/lighttpd/lighttpd.conf
|
822 |
$SED "s?background-color.*?background-color: #EFEFEF; }?g" /usr/share/httpd/error/include/top.html
|
793 |
$SED 's/^$SERVER\["socket"\] == ".*:443.*/$SERVER\["socket"\] == "'"$HOSTNAME.$DOMAIN"':443" {/g' /etc/lighttpd/vhosts.d/alcasar.conf
|
823 |
[ -e /usr/share/httpd/error/include/bottom.html.default ] || cp /usr/share/httpd/error/include/bottom.html /usr/share/httpd/error/include/bottom.html.default
|
794 |
$SED "s/^\([\t ]*\)var.server_name.*/\1var.server_name = \"$HOSTNAME.$DOMAIN\"/g" /etc/lighttpd/vhosts.d/alcasar.conf
|
- |
|
795 |
|
824 |
cat <<EOF > /usr/share/httpd/error/include/bottom.html
|
796 |
/usr/bin/systemctl start lighttpd
|
825 |
</body>
|
- |
|
826 |
</html>
|
- |
|
827 |
EOF
|
797 |
|
828 |
# Définition du premier compte lié au profil 'admin'
|
798 |
# Définition du premier compte lié au profil 'admin'
|
829 |
if [ "$mode" = "install" ]
|
799 |
if [ "$mode" = "install" ]
|
830 |
then
|
800 |
then
|
831 |
header_install
|
801 |
header_install
|
832 |
admin_portal=!
|
- |
|
833 |
PTN='^[a-zA-Z0-9-]*$'
|
- |
|
834 |
until [[ $(expr $admin_portal : $PTN) -gt 0 ]]
|
- |
|
835 |
do
|
- |
|
836 |
header_install
|
- |
|
837 |
if [ $Lang == "fr" ]
|
- |
|
838 |
then
|
- |
|
839 |
echo ""
|
- |
|
840 |
echo "Définissez un premier compte d'administration d'ALCASAR :"
|
- |
|
841 |
echo
|
- |
|
842 |
echo -n "Nom : "
|
- |
|
843 |
else
|
- |
|
844 |
echo ""
|
- |
|
845 |
echo "Define the first account allow to administrate ALCASAR :"
|
- |
|
846 |
echo
|
- |
|
847 |
echo -n "Account : "
|
- |
|
848 |
fi
|
- |
|
849 |
read admin_portal
|
- |
|
850 |
if [ "$admin_portal" == "" ]
|
- |
|
851 |
then
|
- |
|
852 |
admin_portal=!
|
- |
|
853 |
fi
|
- |
|
854 |
done
|
- |
|
855 |
# Creation of keys file for the admin account ("admin")
|
802 |
# Creation of keys file for the admin account ("admin")
|
856 |
[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
|
803 |
[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
|
857 |
mkdir -p $DIR_DEST_ETC/digest
|
804 |
mkdir -p $DIR_DEST_ETC/digest
|
858 |
chmod 755 $DIR_DEST_ETC/digest
|
805 |
chmod 755 $DIR_DEST_ETC/digest
|
859 |
until [ -s $DIR_DEST_ETC/digest/key_admin ]
|
806 |
until [ -s $DIR_DEST_ETC/digest/key_admin ]
|
860 |
do
|
807 |
do
|
861 |
/usr/bin/htdigest -c $DIR_DEST_ETC/digest/key_admin "ALCASAR Control Center (ACC)" $admin_portal
|
808 |
$DIR_DEST_BIN/alcasar-profil.sh --add admin
|
862 |
done
|
809 |
done
|
863 |
$DIR_DEST_BIN/alcasar-profil.sh --list
|
- |
|
864 |
fi
|
810 |
fi
|
865 |
# ACC partitioning
|
- |
|
866 |
rm -f /etc/httpd/conf/webapps.d/alcasar*
|
- |
|
867 |
cat <<EOF > /etc/httpd/conf/webapps.d/alcasar.conf
|
- |
|
868 |
<Directory $DIR_WEB>
|
- |
|
869 |
AllowOverride None
|
- |
|
870 |
Order deny,allow
|
- |
|
871 |
Deny from all
|
- |
|
872 |
Allow from 127.0.0.1
|
- |
|
873 |
Allow from $PRIVATE_NETWORK_MASK
|
- |
|
874 |
ErrorDocument 404 https://$HOSTNAME.$DOMAIN/
|
- |
|
875 |
</Directory>
|
- |
|
876 |
<Directory $DIR_WEB/certs>
|
- |
|
877 |
AddType application/x-x509-ca-cert crt
|
- |
|
878 |
</Directory>
|
- |
|
879 |
<Directory $DIR_ACC>
|
- |
|
880 |
SSLRequireSSL
|
- |
|
881 |
AllowOverride None
|
- |
|
882 |
Order deny,allow
|
- |
|
883 |
Deny from all
|
- |
|
884 |
Allow from 127.0.0.1
|
- |
|
885 |
Allow from $PRIVATE_NETWORK_MASK
|
- |
|
886 |
require valid-user
|
- |
|
887 |
AuthType digest
|
- |
|
888 |
AuthName "ALCASAR Control Center (ACC)"
|
- |
|
889 |
AuthDigestDomain $HOSTNAME.$DOMAIN
|
- |
|
890 |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
|
- |
|
891 |
AuthUserFile $DIR_DEST_ETC/digest/key_all
|
- |
|
892 |
ErrorDocument 404 https://$HOSTNAME.$DOMAIN/
|
- |
|
893 |
</Directory>
|
- |
|
894 |
<Directory $DIR_ACC/admin>
|
- |
|
895 |
SSLRequireSSL
|
- |
|
896 |
AllowOverride None
|
- |
|
897 |
Order deny,allow
|
- |
|
898 |
Deny from all
|
- |
|
899 |
Allow from 127.0.0.1
|
- |
|
900 |
Allow from $PRIVATE_NETWORK_MASK
|
- |
|
901 |
require valid-user
|
- |
|
902 |
AuthType digest
|
- |
|
903 |
AuthName "ALCASAR Control Center (ACC)"
|
- |
|
904 |
AuthDigestDomain $HOSTNAME.$DOMAIN
|
- |
|
905 |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
|
- |
|
906 |
AuthUserFile $DIR_DEST_ETC/digest/key_admin
|
- |
|
907 |
ErrorDocument 404 https://$HOSTNAME.$DOMAIN/
|
- |
|
908 |
</Directory>
|
- |
|
909 |
<Directory $DIR_ACC/manager>
|
- |
|
910 |
SSLRequireSSL
|
- |
|
911 |
AllowOverride None
|
- |
|
912 |
Order deny,allow
|
- |
|
913 |
Deny from all
|
- |
|
914 |
Allow from 127.0.0.1
|
- |
|
915 |
Allow from $PRIVATE_NETWORK_MASK
|
- |
|
916 |
require valid-user
|
- |
|
917 |
AuthType digest
|
- |
|
918 |
AuthName "ALCASAR Control Center (ACC)"
|
- |
|
919 |
AuthDigestDomain $HOSTNAME.$DOMAIN
|
- |
|
920 |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
|
- |
|
921 |
AuthUserFile $DIR_DEST_ETC/digest/key_manager
|
- |
|
922 |
ErrorDocument 404 https://$HOSTNAME.$DOMAIN/
|
- |
|
923 |
</Directory>
|
- |
|
924 |
<Directory $DIR_ACC/backup>
|
- |
|
925 |
SSLRequireSSL
|
- |
|
926 |
AllowOverride None
|
- |
|
927 |
Order deny,allow
|
- |
|
928 |
Deny from all
|
- |
|
929 |
Allow from 127.0.0.1
|
- |
|
930 |
Allow from $PRIVATE_NETWORK_MASK
|
- |
|
931 |
require valid-user
|
- |
|
932 |
AuthType digest
|
- |
|
933 |
AuthName "ALCASAR Control Center (ACC)"
|
- |
|
934 |
AuthDigestDomain $HOSTNAME.$DOMAIN
|
- |
|
935 |
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
|
- |
|
936 |
AuthUserFile $DIR_DEST_ETC/digest/key_backup
|
- |
|
937 |
ErrorDocument 404 https://$HOSTNAME.$DOMAIN/
|
- |
|
938 |
</Directory>
|
- |
|
939 |
Alias /save/ "$DIR_SAVE/"
|
- |
|
940 |
<Directory $DIR_SAVE>
|
- |
|
941 |
SSLRequireSSL
|
- |
|
942 |
Options Indexes
|
- |
|
943 |
Order deny,allow
|
- |
|
944 |
Deny from all
|
- |
|
945 |
Allow from 127.0.0.1
|
- |
|
946 |
Allow from $PRIVATE_NETWORK_MASK
|
- |
|
947 |
require valid-user
|
- |
|
948 |
AuthType digest
|
- |
|
949 |
AuthName "ALCASAR Control Center (ACC)"
|
- |
|
950 |
AuthDigestDomain $HOSTNAME.$DOMAIN
|
- |
|
951 |
AuthUserFile $DIR_DEST_ETC/digest/key_backup
|
- |
|
952 |
ErrorDocument 404 https://$HOSTNAME.$DOMAIN/
|
- |
|
953 |
</Directory>
|
- |
|
954 |
EOF
|
811 |
|
955 |
# Launch after coova (in order to wait tun0 to be up)
|
812 |
# Launch after coova (in order to wait tun0 to be up)
|
956 |
$SED "s?^After=.*?After=network.target remote-fs.target nss-lookup.target chilli.service?g" /lib/systemd/system/httpd.service
|
813 |
$SED "s?^After=.*?After=network.target remote-fs.target nss-lookup.target chilli.service?g" /lib/systemd/system/lighttpd.service
|
957 |
# Log file for ACC access imputability
|
814 |
# Log file for ACC access imputability
|
958 |
[ -e /var/Save/security/acc_access.log ] || touch /var/Save/security/acc_access.log
|
815 |
[ -e /var/Save/security/acc_access.log ] || touch /var/Save/security/acc_access.log
|
959 |
chown root:apache /var/Save/security/acc_access.log
|
816 |
chown root:apache /var/Save/security/acc_access.log
|
960 |
chmod 664 /var/Save/security/acc_access.log
|
817 |
chmod 664 /var/Save/security/acc_access.log
|
961 |
} # End of ACC ()
|
818 |
} # End of ACC ()
|
962 |
|
819 |
|
963 |
##########################################################################
|
820 |
##########################################################################
|
964 |
## Fonction "CA" ##
|
821 |
## Fonction "CA" ##
|
965 |
## - Creating the CA and the server certificate (apache) ##
|
822 |
## - Creating the CA and the server certificate (lighttpd) ##
|
966 |
##########################################################################
|
823 |
##########################################################################
|
967 |
CA ()
|
824 |
CA ()
|
968 |
{
|
825 |
{
|
969 |
$DIR_DEST_BIN/alcasar-CA.sh
|
826 |
$DIR_DEST_BIN/alcasar-CA.sh
|
970 |
FIC_VIRTUAL_SSL=`find /etc/httpd/conf -type f -name *default_ssl_vhost.conf`
|
- |
|
971 |
[ -e /etc/httpd/conf/vhosts-ssl.default ] || cp $FIC_VIRTUAL_SSL /etc/httpd/conf/vhosts-ssl.default
|
- |
|
972 |
cat <<EOF > $FIC_VIRTUAL_SSL
|
- |
|
973 |
# default SSL virtual host, used for all HTTPS requests that do not
|
- |
|
974 |
# match a ServerName or ServerAlias in any <VirtualHost> block.
|
- |
|
975 |
|
827 |
|
976 |
<VirtualHost _default_:443>
|
- |
|
977 |
# general configuration
|
- |
|
978 |
ServerAdmin root@localhost
|
- |
|
979 |
ServerName $HOSTNAME.$DOMAIN
|
- |
|
980 |
|
- |
|
981 |
# SSL configuration
|
- |
|
982 |
SSLEngine on
|
- |
|
983 |
SSLCertificateFile /etc/pki/tls/certs/alcasar.crt
|
- |
|
984 |
SSLCertificateKeyFile /etc/pki/tls/private/alcasar.key
|
- |
|
985 |
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
|
- |
|
986 |
CustomLog logs/ssl_request_log \
|
- |
|
987 |
"%t %{SSL_PROTOCOL}x %{SSL_CIPHER}x [%h] \"%r\" %b"
|
- |
|
988 |
ErrorLog logs/ssl_error_log
|
- |
|
989 |
ErrorLogFormat "[%t] [%m:%l] [client %a] %M"
|
- |
|
990 |
</VirtualHost>
|
- |
|
991 |
EOF
|
- |
|
992 |
chown -R root:apache /etc/pki
|
828 |
chown -R root:apache /etc/pki
|
993 |
chmod -R 750 /etc/pki
|
829 |
chmod -R 750 /etc/pki
|
994 |
} # End of CA ()
|
830 |
} # End of CA ()
|
995 |
|
831 |
|
996 |
##################################################################
|
832 |
##################################################################
|
Line 1933... |
Line 1769... |
1933 |
/usr/bin/touch /var/log/auth.log
|
1769 |
/usr/bin/touch /var/log/auth.log
|
1934 |
# fail2ban unit
|
1770 |
# fail2ban unit
|
1935 |
[ -e /lib/systemd/system/fail2ban.service.default ] || cp /lib/systemd/system/fail2ban.service /lib/systemd/system/fail2ban.service.default
|
1771 |
[ -e /lib/systemd/system/fail2ban.service.default ] || cp /lib/systemd/system/fail2ban.service /lib/systemd/system/fail2ban.service.default
|
1936 |
$SED '/ExecStart=/a\ExecStop=/usr/bin/fail2ban-client stop' /usr/lib/systemd/system/fail2ban.service
|
1772 |
$SED '/ExecStart=/a\ExecStop=/usr/bin/fail2ban-client stop' /usr/lib/systemd/system/fail2ban.service
|
1937 |
$SED '/Type=/a\PIDFile=/var/run/fail2ban/fail2ban.pid' /usr/lib/systemd/system/fail2ban.service
|
1773 |
$SED '/Type=/a\PIDFile=/var/run/fail2ban/fail2ban.pid' /usr/lib/systemd/system/fail2ban.service
|
1938 |
$SED '/After=*/c After=syslog.target network.target httpd.service' /usr/lib/systemd/system/fail2ban.service
|
1774 |
$SED '/After=*/c After=syslog.target network.target lighttpd.service' /usr/lib/systemd/system/fail2ban.service
|
1939 |
} # End fail2ban()
|
1775 |
} # End fail2ban()
|
1940 |
|
1776 |
|
1941 |
##################################################################
|
1777 |
##################################################################
|
1942 |
## Fonction "gammu_smsd" ##
|
1778 |
## Fonction "gammu_smsd" ##
|
1943 |
## - Creation de la base de donnée Gammu ##
|
1779 |
## - Creation de la base de donnée Gammu ##
|
Line 2144... |
Line 1980... |
2144 |
cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
|
1980 |
cp -f $DIR_CONF/logrotate.d/* /etc/logrotate.d/
|
2145 |
chmod 644 /etc/logrotate.d/*
|
1981 |
chmod 644 /etc/logrotate.d/*
|
2146 |
# Log compression
|
1982 |
# Log compression
|
2147 |
$SED "s?^delaycompress.*?#&?g" /etc/logrotate.conf
|
1983 |
$SED "s?^delaycompress.*?#&?g" /etc/logrotate.conf
|
2148 |
# actualisation des fichiers logs compressés
|
1984 |
# actualisation des fichiers logs compressés
|
2149 |
for dir in firewall dansguardian httpd
|
1985 |
for dir in firewall dansguardian lighttpd
|
2150 |
do
|
1986 |
do
|
2151 |
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 {} \;
|
1987 |
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 {} \;
|
2152 |
done
|
1988 |
done
|
2153 |
# create the alcasar-load_balancing unit
|
1989 |
# create the alcasar-load_balancing unit
|
2154 |
cat << EOF > /lib/systemd/system/alcasar-load_balancing.service
|
1990 |
cat << EOF > /lib/systemd/system/alcasar-load_balancing.service
|
Line 2174... |
Line 2010... |
2174 |
|
2010 |
|
2175 |
[Install]
|
2011 |
[Install]
|
2176 |
WantedBy=multi-user.target
|
2012 |
WantedBy=multi-user.target
|
2177 |
EOF
|
2013 |
EOF
|
2178 |
# processes launched at boot time (Systemctl)
|
2014 |
# processes launched at boot time (Systemctl)
|
2179 |
for i in alcasar-load_balancing mysqld httpd ntpd iptables dnsmasq dnsmasq-blacklist dnsmasq-whitelist dnsmasq-blackhole radiusd nfsen dansguardian freshclam ulogd-ssh ulogd-traceability ulogd-ext-access chilli fail2ban havp tinyproxy vnstat sshd
|
2015 |
for i in alcasar-load_balancing mysqld lighttpd ntpd iptables dnsmasq dnsmasq-blacklist dnsmasq-whitelist dnsmasq-blackhole radiusd nfsen dansguardian freshclam ulogd-ssh ulogd-traceability ulogd-ext-access chilli fail2ban havp tinyproxy vnstat sshd
|
2180 |
do
|
2016 |
do
|
2181 |
/usr/bin/systemctl -q enable $i.service
|
2017 |
/usr/bin/systemctl -q enable $i.service
|
2182 |
done
|
2018 |
done
|
2183 |
|
2019 |
|
2184 |
# disable processes at boot time (Systemctl)
|
2020 |
# disable processes at boot time (Systemctl)
|