Subversion Repositories ALCASAR

Rev

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

Rev 2549 Rev 2552
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
#  $Id: alcasar.sh 2549 2018-05-06 02:27:57Z tom.houdayer $
2
#  $Id: alcasar.sh 2552 2018-05-08 22:21:47Z rexy $
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 114... Line 114...
114
        echo "                     ALCASAR V$VERSION Installation"
114
        echo "                     ALCASAR V$VERSION Installation"
115
        echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
115
        echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
116
        echo "-----------------------------------------------------------------------------"
116
        echo "-----------------------------------------------------------------------------"
117
}
117
}
118
 
118
 
119
##################################################################
119
########################################################
120
##                      Function "testing"                      ##
120
##                  Function "testing"                ##
121
## - Test of Mageia version                                     ##
121
## - Test Mageia version                              ##
122
## - Test of ALCASAR version (if already installed)             ##
122
## - Test ALCASAR version (if already installed)      ##
123
## - Test of free space on /var  (>10G)                         ##
123
## - Test free space on /var  (>10G)                  ##
124
## - Test of Internet access                                    ##
124
## - Test Internet access                             ##
125
##################################################################
125
########################################################
126
testing ()
126
testing ()
127
{
127
{
128
# Test of Mageia version
128
# Test of Mageia version
129
# extract the current Mageia version and hardware architecture (i586 ou X64)
129
# extract the current Mageia version and hardware architecture (i586 ou X64)
130
        fic=`cat /etc/product.id`
130
        fic=`cat /etc/product.id`
Line 357... Line 357...
357
        fi
357
        fi
358
        rm -rf /tmp/con_ok.html
358
        rm -rf /tmp/con_ok.html
359
        echo ". : ok"
359
        echo ". : ok"
360
} # end of testing ()
360
} # end of testing ()
361
 
361
 
362
##################################################################
362
#######################################################################
363
##                      Function "init"                         ##
363
##                    Function "init"                                ##
364
## - Création du fichier "/root/ALCASAR_parametres.tx          ##
364
## - Creation of ALCASAR conf file "/usr/local/etc/alcasar.conf      ##
365
## - Installation et modification des scripts du portail        ##
365
## - Creation of random password for GRUB, mariadb (admin and user)  ##
366
##################################################################
366
#######################################################################
367
init ()
367
init ()
368
{
368
{
369
        if [ "$mode" != "update" ]
369
        if [ "$mode" != "update" ]
370
        then
370
        then
371
# On affecte le nom d'organisme
371
# On affecte le nom d'organisme
Line 435... Line 435...
435
DOMAIN=$DOMAIN
435
DOMAIN=$DOMAIN
436
EOF
436
EOF
437
        chmod o-rwx $CONF_FILE
437
        chmod o-rwx $CONF_FILE
438
} # End of init ()
438
} # End of init ()
439
 
439
 
440
##################################################################
440
#########################################################
441
##                      Function "network"                      ##
441
##                    Function "network"               ##
442
## - Définition du plan d'adressage du réseau de consultation ##
442
## - Define the several network address                ##
443
## - Nommage DNS du système                                    ##
443
## - Define the DNS naming                             ##
444
## - Configuration de l'interface INTIF (réseau de consultation)##
444
## - INTIF parameters (consultation network)           ##
445
## - Modification du fichier /etc/hosts                         ##
445
## - Write "/etc/hosts" file                           ##
446
## - Renseignement des fichiers hosts.allow et hosts.deny       ##
446
## - write "hosts.allow" & "hosts.deny" files          ##
447
##################################################################
447
#########################################################
448
network ()
448
network ()
449
{
449
{
450
        header_install
450
        header_install
451
        if [ "$mode" != "update" ]
451
        if [ "$mode" != "update" ]
452
                then
452
                then
Line 529... Line 529...
529
        DNS1=${DNS1:=208.67.220.220}
529
        DNS1=${DNS1:=208.67.220.220}
530
        DNS2=${DNS2:=208.67.222.222}
530
        DNS2=${DNS2:=208.67.222.222}
531
        PUBLIC_NETMASK=`/bin/ipcalc -m $PUBLIC_IP_MASK | cut -d"=" -f2`
531
        PUBLIC_NETMASK=`/bin/ipcalc -m $PUBLIC_IP_MASK | cut -d"=" -f2`
532
        PUBLIC_PREFIX=`/bin/ipcalc -p $PUBLIC_IP $PUBLIC_NETMASK|cut -d"=" -f2`
532
        PUBLIC_PREFIX=`/bin/ipcalc -p $PUBLIC_IP $PUBLIC_NETMASK|cut -d"=" -f2`
533
        PUBLIC_NETWORK=`/bin/ipcalc -n $PUBLIC_IP/$PUBLIC_PREFIX|cut -d"=" -f2`
533
        PUBLIC_NETWORK=`/bin/ipcalc -n $PUBLIC_IP/$PUBLIC_PREFIX|cut -d"=" -f2`
534
# Wrtie the conf file
534
# Write network parameters in the conf file
535
        echo "EXTIF=$EXTIF" >> $CONF_FILE
535
        echo "EXTIF=$EXTIF" >> $CONF_FILE
536
        echo "INTIF=$INTIF" >> $CONF_FILE
536
        echo "INTIF=$INTIF" >> $CONF_FILE
537
        ######## Récupération des interfaces du ou des réseaux de consultation supplémentaires #################
537
        ######## Récupération des interfaces du ou des réseaux de consultation supplémentaires #################
538
        INTERFACES=`/usr/sbin/ip link|grep '^[[:digit:]]:'|grep -v "^lo\|$EXTIF\|tun0"|cut -d " " -f2|tr -d ":"`
538
        INTERFACES=`/usr/sbin/ip link|grep '^[[:digit:]]:'|grep -v "^lo\|$EXTIF\|tun0"|cut -d " " -f2|tr -d ":"`
539
 
-
 
540
        for i in $INTERFACES
539
        for i in $INTERFACES
541
        do
540
        do
542
                SUB=`echo ${i:0:2}`
541
                SUB=`echo ${i:0:2}`
543
                if [ $SUB = "wl" ]
542
                if [ $SUB = "wl" ]
544
                        then WIFIF=$i
543
                        then WIFIF=$i
545
                elif [ "$i" != "$INTIF" ] && [ $SUB != "ww" ]
544
                elif [ "$i" != "$INTIF" ] && [ $SUB != "ww" ]
546
                        then LANIF=$i
545
                        then LANIF=$i
547
                fi
546
                fi
548
        done
547
        done
549
 
-
 
550
        if [ -n "$WIFIF" ]
548
        if [ -n "$WIFIF" ]
551
                then echo "WIFIF=$WIFIF" >> $CONF_FILE
549
                then echo "WIFIF=$WIFIF" >> $CONF_FILE
552
        elif [ -n "$LANIF" ]
550
        elif [ -n "$LANIF" ]
553
                then echo "LANIF=$LANIF" >> $CONF_FILE
551
                then echo "LANIF=$LANIF" >> $CONF_FILE
554
        fi
552
        fi
555
        #########################################################################################################
553
        #########################################################################################################
556
 
-
 
557
        IP_SETTING=`grep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-$EXTIF|cut -d"=" -f2`           # IP setting (static or dynamic)
554
        IP_SETTING=`grep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-$EXTIF|cut -d"=" -f2` # test static or dynamic
558
        if [ $IP_SETTING == "dhcp" ]
555
        if [ $IP_SETTING == "dhcp" ]
559
                then
556
                then
560
                echo "PUBLIC_IP=dhcp" >> $CONF_FILE
557
                echo "PUBLIC_IP=dhcp" >> $CONF_FILE
561
                echo "GW=dhcp" >> $CONF_FILE
558
                echo "GW=dhcp" >> $CONF_FILE
562
        else
559
        else
Line 578... Line 575...
578
        [ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default
575
        [ -e /etc/sysconfig/network.default ] || cp /etc/sysconfig/network /etc/sysconfig/network.default
579
        cat <<EOF > /etc/sysconfig/network
576
        cat <<EOF > /etc/sysconfig/network
580
NETWORKING=yes
577
NETWORKING=yes
581
FORWARD_IPV4=true
578
FORWARD_IPV4=true
582
EOF
579
EOF
583
# /etc/hosts config
580
# write "/etc/hosts"
584
        [ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default
581
        [ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default
585
        cat <<EOF > /etc/hosts
582
        cat <<EOF > /etc/hosts
586
127.0.0.1       localhost
583
127.0.0.1       localhost
587
$PRIVATE_IP     $HOSTNAME.$DOMAIN $HOSTNAME
584
$PRIVATE_IP     $HOSTNAME.$DOMAIN $HOSTNAME
588
EOF
585
EOF
589
# EXTIF (Internet) config
586
# write EXTIF (Internet) config
590
        [ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
587
        [ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
591
        if [ $IP_SETTING == "dhcp" ]
588
        if [ $IP_SETTING == "dhcp" ]
592
                then
589
                then
593
                cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
590
                cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
594
DEVICE=$EXTIF
591
DEVICE=$EXTIF
Line 624... Line 621...
624
ACCOUNTING=no
621
ACCOUNTING=no
625
USERCTL=no
622
USERCTL=no
626
MTU=$MTU
623
MTU=$MTU
627
EOF
624
EOF
628
        fi
625
        fi
629
# Config INTIF (consultation LAN) in normal mode
626
# write INTIF (consultation LAN) in normal mode
630
        cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF
627
        cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$INTIF
631
DEVICE=$INTIF
628
DEVICE=$INTIF
632
BOOTPROTO=static
629
BOOTPROTO=static
633
ONBOOT=yes
630
ONBOOT=yes
634
NOZEROCONF=yes
631
NOZEROCONF=yes
Line 637... Line 634...
637
IPV6TO4INIT=no
634
IPV6TO4INIT=no
638
ACCOUNTING=no
635
ACCOUNTING=no
639
USERCTL=no
636
USERCTL=no
640
EOF
637
EOF
641
        cp -f /etc/sysconfig/network-scripts/ifcfg-$INTIF /etc/sysconfig/network-scripts/default-ifcfg-$INTIF
638
        cp -f /etc/sysconfig/network-scripts/ifcfg-$INTIF /etc/sysconfig/network-scripts/default-ifcfg-$INTIF
642
# Config of INTIF in bypass mode (see "alcasar-bypass.sh")
639
# write INTIF in bypass mode (see "alcasar-bypass.sh")
643
        cat <<EOF > /etc/sysconfig/network-scripts/bypass-ifcfg-$INTIF
640
        cat <<EOF > /etc/sysconfig/network-scripts/bypass-ifcfg-$INTIF
644
DEVICE=$INTIF
641
DEVICE=$INTIF
645
BOOTPROTO=static
642
BOOTPROTO=static
646
IPADDR=$PRIVATE_IP
643
IPADDR=$PRIVATE_IP
647
NETMASK=$PRIVATE_NETMASK
644
NETMASK=$PRIVATE_NETMASK
Line 681... Line 678...
681
ACCOUNTING=no
678
ACCOUNTING=no
682
USERCTL=no
679
USERCTL=no
683
EOF
680
EOF
684
        fi
681
        fi
685
        #########################################################################################################
682
        #########################################################################################################
686
# Renseignement des fichiers hosts.allow et hosts.deny
683
# write hosts.allow & hosts.deny
687
        [ -e /etc/hosts.allow.default ]  || cp /etc/hosts.allow /etc/hosts.allow.default
684
        [ -e /etc/hosts.allow.default ]  || cp /etc/hosts.allow /etc/hosts.allow.default
688
        cat <<EOF > /etc/hosts.allow
685
        cat <<EOF > /etc/hosts.allow
689
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
686
ALL: LOCAL, 127.0.0.1, localhost, $PRIVATE_IP
690
sshd: ALL
687
sshd: ALL
691
ntpd: $PRIVATE_NETWORK_SHORT
688
ntpd: $PRIVATE_NETWORK_SHORT
Line 709... Line 706...
709
$SED "s?\[ -f \$IPTABLES_CONFIG \] .*?#&?" /usr/libexec/iptables.init # comment the test (flush all rules & policies)
706
$SED "s?\[ -f \$IPTABLES_CONFIG \] .*?#&?" /usr/libexec/iptables.init # comment the test (flush all rules & policies)
710
#
707
#
711
# the script "$DIR_DEST_BIN/alcasar-iptables.sh" is launched at the end in order to allow update via ssh
708
# the script "$DIR_DEST_BIN/alcasar-iptables.sh" is launched at the end in order to allow update via ssh
712
} # End of network ()
709
} # End of network ()
713
 
710
 
714
##################################################################
711
###################################################
715
##                      Function "ACC"                          ##
712
##                  Function "ACC"               ##
716
## - installation of then ALCASAR Control Center (ACC)  )       ##
713
## - copy ALCASAR Control Center (ACC) files     ##
717
## - configuration of the web server (Lighttpd)                 ##
714
## - configuration of the web server (Lighttpd)  ##
718
## - creation of the first ACC admin account                    ##
715
## - creation of the first ACC admin account     ##
719
## - secure the access                                          ##
716
## - secure the ACC access                       ##
720
##################################################################
717
###################################################
721
ACC ()
718
ACC ()
722
{
719
{
723
        [ -d $DIR_WEB ] && rm -rf $DIR_WEB
720
        [ -d $DIR_WEB ] && rm -rf $DIR_WEB
724
        mkdir $DIR_WEB
721
        mkdir $DIR_WEB
725
# Copy & adapt ACC files
722
# Copy & adapt ACC files
Line 794... Line 791...
794
        $SED "s/^\([\t ]*\)var.server_name.*/\1var.server_name = \"$HOSTNAME.$DOMAIN\"/g" /etc/lighttpd/vhosts.d/alcasar.conf
791
        $SED "s/^\([\t ]*\)var.server_name.*/\1var.server_name = \"$HOSTNAME.$DOMAIN\"/g" /etc/lighttpd/vhosts.d/alcasar.conf
795
 
792
 
796
        /usr/bin/systemctl start lighttpd
793
        /usr/bin/systemctl start lighttpd
797
        /usr/bin/systemctl start php-fpm
794
        /usr/bin/systemctl start php-fpm
798
 
795
 
799
# Définition du premier compte lié au profil 'admin'
796
# Creation of the first account (in 'admin' profile)
800
        if [ "$mode" = "install" ]
797
        if [ "$mode" = "install" ]
801
                then
798
                then
802
                        header_install
799
                        header_install
803
# Creation of keys file for the admin account ("admin")
800
# Creation of keys file for the admin account ("admin")
804
                        [ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
801
                        [ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
Line 816... Line 813...
816
        [ -e /var/Save/security/acc_access.log ] || touch /var/Save/security/acc_access.log
813
        [ -e /var/Save/security/acc_access.log ] || touch /var/Save/security/acc_access.log
817
        chown root:apache /var/Save/security/acc_access.log
814
        chown root:apache /var/Save/security/acc_access.log
818
        chmod 664 /var/Save/security/acc_access.log
815
        chmod 664 /var/Save/security/acc_access.log
819
} # End of ACC ()
816
} # End of ACC ()
820
 
817
 
821
##########################################################################
818
##################################################################
822
##                              Fonction "CA"                           ##
819
##                               Fonction "CA"                  ##
823
## - Creating the CA and the server certificate (lighttpd)              ##
820
## - Creating the CA and the server certificate (lighttpd)      ##
824
##########################################################################
821
##################################################################
825
CA ()
822
CA ()
826
{
823
{
827
        $DIR_DEST_BIN/alcasar-CA.sh
824
        $DIR_DEST_BIN/alcasar-CA.sh
828
 
825
 
829
        chown -R root:apache /etc/pki
826
        chown -R root:apache /etc/pki
830
        chmod -R 750 /etc/pki
827
        chmod -R 750 /etc/pki
831
} # End of CA ()
828
} # End of CA ()
832
 
829
 
833
##################################################################
830
#############################################################
834
##                    Function "time_server"                    ##
831
##               Function "time_server"                    ##
835
## - Configuring NTP server                                     ##
832
## - Configuring NTP server                                ##
836
##################################################################
833
#############################################################
837
time_server ()
834
time_server ()
838
{
835
{
839
# Set the Internet time server
836
# Set the Internet time server
840
        [ -e /etc/ntp/step-tickers.default ] || cp /etc/ntp/step-tickers /etc/ntp/step-tickers.default
837
        [ -e /etc/ntp/step-tickers.default ] || cp /etc/ntp/step-tickers /etc/ntp/step-tickers.default
841
        cat <<EOF > /etc/ntp/step-tickers
838
        cat <<EOF > /etc/ntp/step-tickers
Line 1337... Line 1334...
1337
        /usr/bin/freshclam --no-warnings
1334
        /usr/bin/freshclam --no-warnings
1338
} # End of antivirus ()
1335
} # End of antivirus ()
1339
 
1336
 
1340
################################################################################
1337
################################################################################
1341
##                           Function "tinyproxy"                             ##
1338
##                           Function "tinyproxy"                             ##
1342
## - Set the parameters of tinyproxy (proxy between filterde users and havp)  ##
1339
## - Set the parameters of tinyproxy (proxy between filtered users and havp)  ##
1343
################################################################################
1340
################################################################################
1344
tinyproxy ()
1341
tinyproxy ()
1345
{
1342
{
1346
        tinyproxy_exist=`grep -c ^tinyproxy: /etc/passwd`
1343
        tinyproxy_exist=`grep -c ^tinyproxy: /etc/passwd`
1347
        if [ "$tinyproxy_exist" == "1" ]
1344
        if [ "$tinyproxy_exist" == "1" ]
Line 1490... Line 1487...
1490
        cd $DirTmp
1487
        cd $DirTmp
1491
        rm -rf /tmp/nfsen-*
1488
        rm -rf /tmp/nfsen-*
1492
        rm -rf /tmp/SURFmap*
1489
        rm -rf /tmp/SURFmap*
1493
} # End of nfsen ()
1490
} # End of nfsen ()
1494
 
1491
 
1495
##################################################
1492
###########################################################
1496
##               Function "vnstat"              ##
1493
##                     Function "vnstat"                 ##
1497
## - Initialization of Vnstat and vnstat phpFE  ##
1494
## - Initialization of Vnstat and vnstat phpFrontEnd     ##
1498
##################################################
1495
###########################################################
1499
vnstat ()
1496
vnstat ()
1500
{
1497
{
1501
        [ -e /etc/vnstat.conf.default ] || cp /etc/vnstat.conf /etc/vnstat.conf.default
1498
        [ -e /etc/vnstat.conf.default ] || cp /etc/vnstat.conf /etc/vnstat.conf.default
1502
        $SED "s?Interface.*?Interface \"$EXTIF\"?g" /etc/vnstat.conf
1499
        $SED "s?Interface.*?Interface \"$EXTIF\"?g" /etc/vnstat.conf
1503
        [ -e $DIR_ACC/manager/stats/config.php.default ] || cp $DIR_ACC/manager/stats/config.php $DIR_ACC/manager/stats/config.php.default
1500
        [ -e $DIR_ACC/manager/stats/config.php.default ] || cp $DIR_ACC/manager/stats/config.php $DIR_ACC/manager/stats/config.php.default
Line 1614... Line 1611...
1614
                $SED "s?^ExecStart=.*?ExecStart=/usr/sbin/dnsmasq -C /etc/dnsmasq-$list.conf?g" /lib/systemd/system/dnsmasq-$list.service
1611
                $SED "s?^ExecStart=.*?ExecStart=/usr/sbin/dnsmasq -C /etc/dnsmasq-$list.conf?g" /lib/systemd/system/dnsmasq-$list.service
1615
                $SED "s?^PIDFile=.*?PIDFile=/var/run/dnsmasq-$list.pid?g" /lib/systemd/system/dnsmasq-$list.service
1612
                $SED "s?^PIDFile=.*?PIDFile=/var/run/dnsmasq-$list.pid?g" /lib/systemd/system/dnsmasq-$list.service
1616
        done
1613
        done
1617
} # End dnsmasq
1614
} # End dnsmasq
1618
 
1615
 
1619
#######################################################
1616
##########################################################
1620
##                   Function "BL"                   ##
1617
##                      Function "BL"                   ##
-
 
1618
## - copy Toulouse BL                                   ##
-
 
1619
## - adapt this BL to ALCASAR architecture              ##
-
 
1620
##     - domain names for dnsmasq-bl & dnasmasq-wl      ##
-
 
1621
##     - URLs for E²guardian                            ##
-
 
1622
##     - IPs for NetFilter                              ##
1621
#######################################################
1623
##########################################################
1622
BL ()
1624
BL ()
1623
{
1625
{
1624
        # copy the Toulouse university BL in order to be adapted to ALCASAR architecture (alcasar-bl.sh -adapt)
1626
        # copy the Toulouse university BL in order to be adapted to ALCASAR architecture (alcasar-bl.sh -adapt)
1625
        rm -rf $DIR_DG/lists/blacklists
1627
        rm -rf $DIR_DG/lists/blacklists
1626
        mkdir -p /tmp/blacklists
1628
        mkdir -p /tmp/blacklists
Line 1673... Line 1675...
1673
        $DIR_DEST_BIN/alcasar-bl.sh --adapt
1675
        $DIR_DEST_BIN/alcasar-bl.sh --adapt
1674
# enable the default categories
1676
# enable the default categories
1675
        $DIR_DEST_BIN/alcasar-bl.sh --cat_choice
1677
        $DIR_DEST_BIN/alcasar-bl.sh --cat_choice
1676
} # End BL()
1678
} # End BL()
1677
 
1679
 
1678
##########################################################
1680
#######################################################
1679
##                     Function "cron"                  ##
1681
##                  Function "cron"                  ##
-
 
1682
## - write all cron & anacron files                  ##
1680
##########################################################
1683
#######################################################
1681
cron ()
1684
cron ()
1682
{
1685
{
1683
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00
1686
# Modif du fichier 'crontab' pour passer les cron à minuit au lieu de 04h00
1684
        [ -e /etc/crontab.default ] || cp /etc/crontab /etc/crontab.default
1687
        [ -e /etc/crontab.default ] || cp /etc/crontab /etc/crontab.default
1685
        cat <<EOF > /etc/crontab
1688
        cat <<EOF > /etc/crontab
Line 1762... Line 1765...
1762
 
1765
 
1763
# removing the users crons
1766
# removing the users crons
1764
        rm -f /var/spool/cron/*
1767
        rm -f /var/spool/cron/*
1765
} # End cron()
1768
} # End cron()
1766
 
1769
 
1767
##################################################################
1770
######################################################################
1768
##                      Fonction "Fail2Ban"                     ##
1771
##                      Fonction "Fail2Ban"                         ##
1769
##- Modification de la configuration de fail2ban                ##
1772
##- Adapt conf file to ALCASAR                                      ##
1770
##- Sécurisation DDOS, SSH-Brute-Force, Intercept.php ...      ##
1773
##- Secure items : DDOS, SSH-Brute-Force, Intercept.php Brute-Force ##
1771
##################################################################
1774
######################################################################
1772
fail2ban()
1775
fail2ban()
1773
{
1776
{
1774
        /usr/bin/sh $DIR_CONF/fail2ban.sh
1777
        /usr/bin/sh $DIR_CONF/fail2ban.sh
1775
# Autorise la lecture seule 2 des 3 fichiers de log concernés, havp est traité dans le script d'init de havp
1778
# Autorise la lecture seule 2 des 3 fichiers de log concernés, havp est traité dans le script d'init de havp
1776
        [ -e /var/log/fail2ban.log ] || touch /var/log/fail2ban.log
1779
        [ -e /var/log/fail2ban.log ] || touch /var/log/fail2ban.log
Line 1783... Line 1786...
1783
$SED '/ExecStart=/a\ExecStop=/usr/bin/fail2ban-client stop' /usr/lib/systemd/system/fail2ban.service
1786
$SED '/ExecStart=/a\ExecStop=/usr/bin/fail2ban-client stop' /usr/lib/systemd/system/fail2ban.service
1784
$SED '/Type=/a\PIDFile=/var/run/fail2ban/fail2ban.pid' /usr/lib/systemd/system/fail2ban.service
1787
$SED '/Type=/a\PIDFile=/var/run/fail2ban/fail2ban.pid' /usr/lib/systemd/system/fail2ban.service
1785
$SED '/After=*/c After=syslog.target network.target lighttpd.service' /usr/lib/systemd/system/fail2ban.service
1788
$SED '/After=*/c After=syslog.target network.target lighttpd.service' /usr/lib/systemd/system/fail2ban.service
1786
} # End fail2ban()
1789
} # End fail2ban()
1787
 
1790
 
1788
##################################################################
1791
#########################################################
1789
##                      Fonction "gammu_smsd"                   ##
1792
##                   Fonction "gammu_smsd"             ##
1790
## - Creation de la base de donnée Gammu                       ##
1793
## - Creating of SMS management database               ##
1791
## - Creation du fichier de config: gammu_smsd_conf             ##
1794
## - Write the gammu a gammu_smsd conf files           ##
1792
##################################################################
1795
#########################################################
1793
gammu_smsd()
1796
gammu_smsd()
1794
{
1797
{
1795
# Create 'gammu' databse
1798
# Create 'gammu' databse
1796
MYSQL="/usr/bin/mysql -uroot -p$mysqlpwd --execute"
1799
MYSQL="/usr/bin/mysql -uroot -p$mysqlpwd --execute"
1797
        $MYSQL="CREATE DATABASE IF NOT EXISTS $DB_GAMMU;GRANT ALL ON $DB_GAMMU.* TO $DB_USER@localhost IDENTIFIED BY '$radiuspwd';FLUSH PRIVILEGES"
1800
        $MYSQL="CREATE DATABASE IF NOT EXISTS $DB_GAMMU;GRANT ALL ON $DB_GAMMU.* TO $DB_USER@localhost IDENTIFIED BY '$radiuspwd';FLUSH PRIVILEGES"
1798
# Add a gammu database structure
1801
# Add a gammu database structure
1799
        mysql -u$DB_USER -p$radiuspwd $DB_GAMMU < $DIR_CONF/empty-gammu-smsd-db.sql
1802
        mysql -u$DB_USER -p$radiuspwd $DB_GAMMU < $DIR_CONF/empty-gammu-smsd-db.sql
1800
 
1803
 
-
 
1804
# Config file for the gammu_smsd daemon & gammu (ttyUSB0 as default com port)
1801
# Config file for the daemon
1805
cat << EOF > /etc/gammurc
-
 
1806
[gammu]
-
 
1807
device = /dev/ttyUSB0
-
 
1808
connection = at115200
-
 
1809
EOF
-
 
1810
 
1802
cat << EOF > /etc/gammu_smsd_conf
1811
cat << EOF > /etc/gammu_smsd_conf
1803
[gammu]
1812
[gammu]
1804
port = /dev/ttyUSB0
1813
port = /dev/ttyUSB0
1805
connection = at115200
1814
connection = at115200
1806
 
-
 
1807
;########################################################
-
 
1808
 
1815
 
1809
[smsd]
1816
[smsd]
1810
 
-
 
1811
PIN = 1234
1817
PIN = 1234
1812
 
-
 
1813
logfile = /var/log/gammu-smsd/gammu-smsd.log
1818
logfile = /var/log/gammu-smsd/gammu-smsd.log
1814
logformat = textall
1819
logformat = textall
1815
debuglevel = 0
1820
debuglevel = 0
1816
 
1821
 
1817
service = sql
1822
service = sql
Line 1832... Line 1837...
1832
CheckSecurity = 1
1837
CheckSecurity = 1
1833
CheckSignal = 1
1838
CheckSignal = 1
1834
CheckBattery = 0
1839
CheckBattery = 0
1835
EOF
1840
EOF
1836
 
1841
 
1837
chmod 755 /etc/gammu_smsd_conf
1842
chmod 755 /etc/gammu_smsd_conf /etc/gammurc
1838
 
1843
 
1839
# Log folder for gammu-smsd
1844
# Log folder for gammu-smsd
1840
[ -e /var/log/gammu-smsd ] || mkdir /var/log/gammu-smsd
1845
[ -e /var/log/gammu-smsd ] || mkdir /var/log/gammu-smsd
1841
chmod 755 /var/log/gammu-smsd
1846
chmod 755 /var/log/gammu-smsd
1842
 
1847
 
1843
# Write radius credentials in the gammu script
1848
# Write radius credentials in the gammu script
1844
$SED "s/^u_db=\".*/u_db=\"$DB_USER\"/g" $DIR_DEST_BIN/alcasar-sms.sh
1849
$SED "s/^u_db=\".*/u_db=\"$DB_USER\"/g" $DIR_DEST_BIN/alcasar-sms.sh
1845
$SED "s/^p_db=\".*/p_db=\"$radiuspwd\"/g" $DIR_DEST_BIN/alcasar-sms.sh
1850
$SED "s/^p_db=\".*/p_db=\"$radiuspwd\"/g" $DIR_DEST_BIN/alcasar-sms.sh
1846
 
1851
 
1847
# Udev rule for Huawei GSM MODEM (idVendor: 12d1) --> run "modeswitch" to switch from "mass_storage" mode to "ttyUSB" (modem) mode
1852
# Udev rule for Modeswitch (switch from "mass_storage" mode to "ttyUSB" modem) needed with some Huawei MODEM (idVendor: 12d1)
1848
# normally not needed now since modeswitch is managed by udev (see RPM)
1853
# normally not needed now since modeswitch is managed by udev (see Mageia RPM)
1849
#cat << EOF > /lib/udev/rules.d/66-huawei.rules
1854
#cat << EOF > /lib/udev/rules.d/66-huawei.rules
1850
#KERNEL=="ttyUSB0",ATTRS{idVendor}=="12d1",RUN+="$DIR_DEST_BIN/alcasar-sms.sh --mode"
1855
#KERNEL=="ttyUSB0",ATTRS{idVendor}=="12d1",RUN+="$DIR_DEST_BIN/alcasar-sms.sh --mode"
1851
#EOF
1856
#EOF
-
 
1857
 
-
 
1858
# Udev rule for fixing the enumeration of ttyUSB port on some MODEM (when they switch randomly the order of their ports at boot time)
-
 
1859
# example : http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/
1852
 
1860
 
1853
} # End gammu_smsd()
1861
} # End gammu_smsd()
1854
 
1862
 
1855
 
-
 
1856
##################################################################
1863
############################################################
1857
##                      Fonction "msec"                         ##
1864
##                 Fonction "msec"                        ##
1858
## - Apply the "fileserver" security level                      ##
1865
## - Apply the "fileserver" security level                ##
1859
## - remove the "system request" for rebboting                  ##
1866
## - remove the "system request" for rebboting            ##
1860
## - Fix several file permissions                               ##
1867
## - Fix several file permissions                         ##
1861
##################################################################
1868
############################################################
1862
msec()
1869
msec()
1863
{
1870
{
1864
 
1871
 
1865
# Apply fileserver security level
1872
# Apply fileserver security level
1866
[ -e /etc/security/msec/security.conf.default ] || cp /etc/security/msec/security.conf /etc/security/msec/security.conf.default
1873
[ -e /etc/security/msec/security.conf.default ] || cp /etc/security/msec/security.conf /etc/security/msec/security.conf.default
Line 1944... Line 1951...
1944
## - Modifying banners (locals et ssh) & prompts        ##
1951
## - Modifying banners (locals et ssh) & prompts                ##
1945
## - SSH config                                         ##
1952
## - SSH config                                                 ##
1946
## - sudoers config & files security                    ##
1953
## - sudoers config & files security                            ##
1947
## - log rotate & ANSSI security parameters             ##
1954
## - log rotate & ANSSI security parameters                     ##
1948
## - Apply former conf in case of an update             ##
1955
## - Apply former conf in case of an update                     ##
1949
##########################################################
1956
##################################################################
1950
post_install()
1957
post_install()
1951
{
1958
{
1952
# change the SSH banner
1959
# change the SSH banner
1953
        cp -f $DIR_CONF/banner /etc/ssh/alcasar-banner-ssh
1960
        cp -f $DIR_CONF/banner /etc/ssh/alcasar-banner-ssh
1954
        echo " V$VERSION" >> /etc/ssh/alcasar-banner-ssh
1961
        echo " V$VERSION" >> /etc/ssh/alcasar-banner-ssh
Line 2143... Line 2150...
2143
        fi
2150
        fi
2144
        clear
2151
        clear
2145
        reboot
2152
        reboot
2146
} # End post_install ()
2153
} # End post_install ()
2147
 
2154
 
2148
#################################
2155
#####################################################################################
2149
#       Main Install loop       #
2156
#                                   Main Install loop                               #
2150
#################################
2157
#####################################################################################
2151
dir_exec=`dirname "$0"`
2158
dir_exec=`dirname "$0"`
2152
if [ $dir_exec != "." ]
2159
if [ $dir_exec != "." ]
2153
then
2160
then
2154
        echo "Lancez ce programme depuis le répertoire de l'archive d'ALCASAR"
2161
        echo "Lancez ce programme depuis le répertoire de l'archive d'ALCASAR"
2155
        echo "Launch this program from the ALCASAR archive directory"
2162
        echo "Launch this program from the ALCASAR archive directory"