Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 594 → Rev 595

/alcasar.sh
39,6 → 39,7
VERSION=`cat VERSION`
DATE=`date '+%d %B %Y - %Hh%M'`
DATE_SHORT=`date '+%d/%m/%Y'`
Lang=`echo $LANG|cut -c 1-2`
# ******* Files parameters - paramètres fichiers *********
DIR_INSTALL=`pwd` # répertoire d'installation
DIR_CONF="$DIR_INSTALL/conf" # répertoire d'installation contenant les fichiers de configuration
59,8 → 60,7
DOMAIN="localdomain" # domaine local
EXTIF="eth0" # ETH0 est l'interface connectée à Internet (Box FAI)
INTIF="eth1" # ETH1 est l'interface connectée au réseau local de consultation
CUSTOM_PRIVATE_NETWORK_MASK="192.168.182.0/24" # adresse du réseau de consultation proposée par défaut
SQUID_PORT="3128" # Port d'écoute du proxy Squid
DEFAULT_PRIVATE_NETWORK_MASK="192.168.182.0/24" # adresse du réseau de consultation proposée par défaut
# ****** Paths - chemin des commandes *******
SED="/bin/sed -i"
# ****************** End of global parameters *********************
80,8 → 80,10
##################################################################
testing ()
{
echo "Tests des paramètres réseau."
echo -n "Network parameters tests : "
if [ $Lang == "fr" ]
then echo -n "Tests des paramètres réseau :"
else echo -n "Network parameters tests : "
fi
# We test the Ethernet links state
for i in $EXTIF $INTIF
do
89,12 → 91,16
sleep 3
if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
then
echo "Échec"
echo "Le lien réseau de la carte $i n'est pas actif."
echo "Réglez ce problème puis relancez ce script."
echo "Failed"
echo "The link state of $i interface id down."
echo "Resolv this problem, then restart this script."
if [ $Lang == "fr" ]
then
echo "Échec"
echo "Le lien réseau de la carte $i n'est pas actif."
echo "Réglez ce problème puis relancez ce script."
else
echo "Failed"
echo "The link state of $i interface id down."
echo "Resolv this problem, then restart this script."
fi
exit 0
fi
echo -n "."
101,19 → 107,25
done
# On teste la présence d'un routeur par défaut (Box FAI)
if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then
echo "Échec"
echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte."
echo "Réglez ce problème puis relancez ce script."
echo "Failed"
echo "You haven't configured Internet access or Internet link is on the wrong Ethernet card"
echo "Resolv this problem, then restart this script."
if [ $Lang == "fr" ]
then
echo "Échec"
echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte."
echo "Réglez ce problème puis relancez ce script."
else
echo "Failed"
echo "You haven't configured Internet access or Internet link is on the wrong Ethernet card"
echo "Resolv this problem, then restart this script."
fi
exit 0
fi
echo -n "."
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de VirtualBox)
if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
echo "La configuration des cartes réseau va être corrigée."
echo "The Ethernet card configuration will be corrected."
if [ $Lang == "fr" ]
then echo "La configuration des cartes réseau va être corrigée."
else echo "The Ethernet card configuration will be corrected."
fi
/etc/init.d/network stop
mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
120,11 → 132,15
/etc/init.d/network start
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
sleep 2
echo "Configuration corrigée"
echo "Configuration updated"
if [ $Lang == "fr" ]
then echo "Configuration corrigée"
else echo "Configuration updated"
fi
sleep 2
echo "Vous pouvez relancer ce script."
echo "You can restart this script."
if [ $Lang == "fr" ]
then echo "Vous pouvez relancer ce script."
else echo "You can restart this script."
fi
exit 0
fi
echo -n "."
133,12 → 149,16
arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2`
if [ $(expr $arp_reply) -eq 0 ]
then
echo "Échec"
echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
echo "Réglez ce problème puis relancez ce script."
echo "Failed"
echo "The Internet gateway doesn't answered"
echo "Resolv this problem, then restart this script."
if [ $Lang == "fr" ]
then
echo "Échec"
echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
echo "Réglez ce problème puis relancez ce script."
else
echo "Failed"
echo "The Internet gateway doesn't answered"
echo "Resolv this problem, then restart this script."
fi
exit 0
fi
echo -n "."
147,12 → 167,16
/usr/bin/curl www.google.fr -s -o /tmp/con_ok.html
if [ ! -e /tmp/con_ok.html ]
then
echo "La tentative de connexion vers Internet a échoué (google.fr)."
echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
echo "Vérifiez la validité des adresses IP des DNS."
echo "The Internet connection try failed (google.fr)."
echo "Please, verify that the $EXTIF card is connected with the Internet gateway."
echo "Verify the DNS IP addresses"
if [ $Lang == "fr" ]
then
echo "La tentative de connexion vers Internet a échoué (google.fr)."
echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
echo "Vérifiez la validité des adresses IP des DNS."
else
echo "The Internet connection try failed (google.fr)."
echo "Please, verify that the $EXTIF card is connected with the Internet gateway."
echo "Verify the DNS IP addresses"
fi
exit 0
fi
rm -rf /tmp/con_ok.html
173,8 → 197,10
PTN='^[a-zA-Z0-9-]*$'
until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
do
echo "Entrez le nom de votre organisme : "
echo -n "Enter the name of your organisation : "
if [ $Lang == "fr" ]
then echo "Entrez le nom de votre organisme : "
else echo -n "Enter the name of your organisation : "
fi
read ORGANISME
if [ "$ORGANISME" = "" ]
then
216,15 → 242,15
$SED "s?^radiuspwd=.*?radiuspwd=\"$radiuspwd\"?g" $DIR_DEST_SBIN/alcasar-mysql.sh $DIR_DEST_BIN/alcasar-conf.sh
# On génère le début du fichier récapitulatif
cat <<EOF > $FIC_PARAM
########################################################
## ##
## Fichier récapitulatif des paramètres d'ALCASAR ##
## ##
########################################################
################################################
## ##
## ALCASAR Paramèters ##
## ##
################################################
 
- Date d'installation : $DATE
- Version istallée : $VERSION
- Organisme : $ORGANISME
- Install date : $DATE
- Version : $VERSION
- Organism : $ORGANISME
EOF
chmod o-rwx $FIC_PARAM
} # End of init ()
232,8 → 258,7
##################################################################
## Fonction network ##
## - Définition du plan d'adressage du réseau de consultation ##
## (merci à Alexandre Trias pour le calcul de masque et RegEx) ##
## - Nommage DNS du système (portail + nom d'organisme) ##
## - Nommage DNS du système ##
## - Configuration de l'interface eth1 (réseau de consultation) ##
## - Modification du fichier /etc/hosts ##
## - Configuration du serveur de temps (NTP) ##
242,54 → 267,51
network ()
{
header_install
echo "Par défaut, le plan d'adressage du réseau de consultation est : $CUSTOM_PRIVATE_NETWORK_MASK"
if [ $Lang == "fr" ]
then echo "Par défaut, le plan d'adressage IP du réseau de consultation est : $DEFAULT_PRIVATE_NETWORK_MASK"
else echo "The default consultation network IP address is : $DEFAULT_PRIVATE_NETWORK_MASK"
fi
response=0
PTN='^[oOnN]$'
PTN='^[oOyYnN]$'
until [[ $(expr $response : $PTN) -gt 0 ]]
do
echo -n "Voulez-vous utiliser ce plan d'adressage (recommandé) (O/n)? : "
if [ $Lang == "fr" ]
then echo -n "Voulez-vous utiliser ce plan d'adressage (recommandé) (O/n)? : "
else echo -n "Do you want to use it (recommanded) (Y/n)? : "
fi
read response
done
if [ "$response" = "n" ] || [ "$response" = "N" ]
then
CUSTOM_PRIVATE_NETWORK_MASK="0"
PRIVATE_NETWORK_MASK="0"
PTN='^\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\).\([01]\?[[:digit:]][[:digit:]]\?\|2[0-4][[:digit:]]\|25[0-5]\)/[012]\?[[:digit:]]$'
until [[ $(expr $CUSTOM_PRIVATE_NETWORK_MASK : $PTN) -gt 0 ]]
until [[ $(expr $PRIVATE_NETWORK_MASK : $PTN) -gt 0 ]]
do
echo -n "Entrez un plan d'adressage au format CIDR (a.b.c.d/xx) : "
read CUSTOM_PRIVATE_NETWORK_MASK
if [ $Lang == "fr" ]
then echo -n "Entrez un plan d'adressage IP au format CIDR (a.b.c.d/xx) : "
else echo -n "Enter a network IP address in CIDR format (a.b.c.d/xx) : "
fi
read PRIVATE_NETWORK_MASK
 
done
else
PRIVATE_NETWORK_MASK=$DEFAULT_PRIVATE_NETWORK_MASK
fi
# Récupération de la config réseau côté "LAN de consultation"
# Définition de la config réseau côté "LAN de consultation"
hostname $HOSTNAME
echo "- Nom du système : $HOSTNAME" >> $FIC_PARAM
PRIVATE_NETWORK=`/bin/ipcalc -n $CUSTOM_PRIVATE_NETWORK_MASK | cut -d"=" -f2` # @ réseau de consultation (ex.: 192.168.182.0)
private_prefix=`/bin/ipcalc -p $CUSTOM_PRIVATE_NETWORK_MASK |cut -d"=" -f2` # prefixe du réseau (ex. 24)
PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$private_prefix # @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24)
classe=$((private_prefix/8)); # classe de réseau (ex.: 2=classe B, 3=classe C)
PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`. # @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2` # masque réseau de consultation (ex.: 255.255.255.0)
PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2` # @ broadcast réseau de consultation (ex.: 192.168.182.255)
TMP_MASK=`echo $PRIVATE_NETWORK_MASK|cut -d"/" -f2`; HALF_MASK=`expr $TMP_MASK + 1` # masque du 1/2 réseau de consultation (ex.: 25)
PRIVATE_STAT_IP=$PRIVATE_NETWORK/$HALF_MASK # plage des adresses statiques (ex.: 192.168.182.0/25)
PRIVATE_STAT_MASK=`/bin/ipcalc -m $PRIVATE_STAT_IP/$HALF_MASK | cut -d"=" -f2` # masque des adresses statiques (ex.: 255.255.255.128)
echo "- Hostname : $HOSTNAME" >> $FIC_PARAM
PRIVATE_NETWORK=`/bin/ipcalc -n $DEFAULT_PRIVATE_NETWORK_MASK | cut -d"=" -f2` # @ réseau de consultation (ex.: 192.168.182.0)
PRIVATE_PREFIX=`/bin/ipcalc -p $DEFAULT_PRIVATE_NETWORK_MASK |cut -d"=" -f2` # prefixe du réseau (ex. 24)
PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK/$PRIVATE_PREFIX # @ réseau + masque (x.0.0.0/8 ou x.y.0.0/16 ou x.y.z.0/24)
classe=$((PRIVATE_PREFIX/8)); # classe de réseau (ex.: 2=classe B, 3=classe C)
classe_sup=`expr $classe + 1`
classe_sup_sup=`expr $classe + 2`
private_network_ending=`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup`
private_broadcast_ending=`echo $PRIVATE_BROADCAST | cut -d"." -f$classe_sup`
private_plage=`expr $private_broadcast_ending - $private_network_ending + 1`
private_half_plage=`expr $private_plage / 2`
private_dyn=`expr $private_half_plage + $private_network_ending`
private_dyn_ip_network=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`"."$private_dyn"."`echo $PRIVATE_NETWORK | cut -d"." -f$classe_sup_sup-5`
PRIVATE_DYN_IP=`echo $private_dyn_ip_network | cut -d"." -f1-4`/$HALF_MASK # plage des adresses dynamiques (ex.: 192.168.182.128/25)
PRIVATE_DYN_MASK=`/bin/ipcalc -m $PRIVATE_DYN_IP/$HALF_MASK | cut -d"=" -f2` # masque des adresses dynamiques (ex.: 255.255.255.128)
private_dyn_ip_network=`echo $PRIVATE_DYN_IP | cut -d"/" -f1` # plage des adresses dynamiques sans le masque (ex.: 192.168.182.0)
private_dyn_ip_end=`echo $private_dyn_ip_network | cut -d"." -f4` # dernier octet de la plage des adresses dynamiques (ex.: 128)
PRIVATE_DYN_FIRST_IP=`echo $private_dyn_ip_network | cut -d"." -f1-3`"."`expr $private_dyn_ip_end + 1` # 1ère adresse de la plage dynamique (ex.: 192.168.182.129)
private_broadcast_end=`echo $PRIVATE_BROADCAST | cut -d"." -f4`
PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_broadcast_end - 1` # dernière adresse de la plage dynamique (ex.: 192.168.182.254)
PRIVATE_IP=`echo $PRIVATE_NETWORK | cut -d"." -f1-3`"."`expr $private_network_end + 1` # @ip du portail (côté réseau de consultation)
PRIVATE_NETWORK_SHORT=`echo $PRIVATE_NETWORK | cut -d"." -f1-$classe`. # @ compatible hosts.allow et hosts.deny (ex.: 192.168.182.)
PRIVATE_MASK=`/bin/ipcalc -m $PRIVATE_NETWORK_MASK | cut -d"=" -f2` # masque réseau de consultation (ex.: 255.255.255.0)
PRIVATE_BROADCAST=`/bin/ipcalc -b $PRIVATE_NETWORK_MASK | cut -d"=" -f2` # @ broadcast réseau de consultation (ex.: 192.168.182.255)
PRIVATE_IP=`echo $PRIVATE_NETWORK | cut -d"." -f1-3`"."`expr $private_network_ending + 1` # @ip du portail (côté réseau de consultation)
PRIVATE_DYN_FIRST_IP=`echo $PRIVATE_IP | cut -d"." -f1-3`"."`expr $private_network_ending + 1` # @ip du portail (côté réseau de consultation)
PRIVATE_DYN_LAST_IP=`echo $PRIVATE_BROADCAST | cut -d"." -f1-3`"."`expr $private_network_ending - 1` # @ip du portail (côté réseau de consultation)
# Récupération de la config réseau côté "Internet"
[ -e /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF ] || cp /etc/sysconfig/network-scripts/ifcfg-$EXTIF /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF
EXT_IP=`grep IPADDR /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2` # @ip du portail (côté Internet)
300,9 → 322,14
DNS2=${DNS2:=208.67.222.222}
EXT_NETMASK=`grep NETMASK /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
EXT_GATEWAY=`grep GATEWAY /etc/sysconfig/network-scripts/default-ifcfg-$EXTIF|cut -d"=" -f2`
echo "- Adresse IP 'côté Internet' ($EXTIF) : $EXT_IP / $EXT_NETMASK" >> $FIC_PARAM
echo "- Serveurs DNS renseignés : $DNS1 et $DNS2" >> $FIC_PARAM
echo "- Routeur de sortie : $EXT_GATEWAY" >> $FIC_PARAM
echo "- IP address 'Internet side' ($EXTIF) : $EXT_IP / $EXT_NETMASK" >> $FIC_PARAM
echo "- Gateway : $EXT_GATEWAY" >> $FIC_PARAM
echo "- DNS servers : $DNS1 et $DNS2" >> $FIC_PARAM
echo "- IP address 'LAN side' ($INTIF) : $PRIVATE_IP/$PRIVATE_PREFIX" >> $FIC_PARAM
echo "- Dynamic IP addresses (DHCP) : from $PRIVATE_DYN_FIRST_IP to $PRIVATE_DYN_LAST_IP" >> $FIC_PARAM
echo "PRIVATE_NETWORK_MASK=$PRIVATE_NETWORK_MASK" > $DIR_DEST_ETC/alcasar-network
echo "PRIVATE_IP=$PRIVATE_IP" >> $DIR_DEST_ETC/alcasar-network
echo "DHCP=on" >> $DIR_DEST_ETC/alcasar-network
# Configuration réseau
cat <<EOF > /etc/sysconfig/network
NETWORKING=yes
315,9 → 342,6
127.0.0.1 localhost
$PRIVATE_IP $HOSTNAME
EOF
echo "- Adresse IP 'côté réseau de consultation' ($INTIF) : $PRIVATE_IP / $PRIVATE_NETWORK_MASK" >> $FIC_PARAM
echo " - plage d'adresses statiques : $PRIVATE_STAT_IP" >> $FIC_PARAM
echo " - plage d'adresses dynamiques (via DHCP) : $PRIVATE_DYN_IP" >> $FIC_PARAM
# Configuration de l'interface eth0 (Internet)
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$EXTIF
DEVICE=$EXTIF
437,22 → 461,34
</body>
</html>
EOF
echo "- URL d'accès au centre de gestion : http://$HOSTNAME" >> $FIC_PARAM
echo "- ALCASAR Control Center URL : http://$HOSTNAME" >> $FIC_PARAM
# Définition du premier compte lié au profil 'admin'
header_install
if [ "$mode" = "install" ]
then
header_install
echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :"
echo " - le profil 'admin' capable de réaliser toutes les opérations"
echo " - le profil 'backup' lié uniquement aux fonctions d'archivage"
echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers"
echo ""
echo "Définissez le premier compte du profil 'admin' :"
echo
echo -n "Nom : "
if [ $Lang == "fr" ]
then
echo "Pour administrer Alcasar via le centre de gestion WEB, trois profils de comptes ont été définis :"
echo " - le profil 'admin' capable de réaliser toutes les opérations"
echo " - le profil 'backup' lié uniquement aux fonctions d'archivage"
echo " - le profil 'manager' lié uniquement aux fonctions de gestion des usagers"
echo ""
echo "Définissez le premier compte du profil 'admin' :"
echo
echo -n "Nom : "
else
echo "To manage Alcasar thru the WEB control center, three accounts profiles were defined :"
echo " - the 'admin profile who can do all operations"
echo " - the 'backup' profile link to backup functions"
echo " - the 'manager' profile link to users management"
echo ""
echo "Define the first account of the 'admin' profile :"
echo
echo -n "Account : "
fi
read admin_portail
echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM
echo "- Name of the first account of the admin profile : $admin_portail" >> $FIC_PARAM
# Création du fichier de clés de ce compte dans le profil "admin"
[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
mkdir -p $DIR_DEST_ETC/digest
462,7 → 498,7
/usr/sbin/htdigest -c $DIR_DEST_ETC/digest/key_admin $HOSTNAME $admin_portail
done
$DIR_DEST_SBIN/alcasar-profil.sh --list
else # version < 2.1
else # mise à jour des versions < 2.1
if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
then
echo "Cette mise à jour nécessite de redéfinir le premier compte d'administration du portail"
469,7 → 505,7
echo
echo -n "Nom : "
read admin_portail
echo "- Nom du premier compte lié au profil 'admin' : $admin_portail" >> $FIC_PARAM
echo "- Name of the first user of admin profile : $admin_portail" >> $FIC_PARAM
[ -d $DIR_DEST_ETC/digest ] && rm -rf $DIR_DEST_ETC/digest
mkdir -p $DIR_DEST_ETC/digest
chmod 755 $DIR_DEST_ETC/digest
718,7 → 754,7
ErrorDocument 404 https://$HOSTNAME
</Directory>
EOF
echo "- URL pour le changement du mot de passe usager : https://$HOSTNAME/pass/" >> $FIC_PARAM
echo "- User change password URL : https://$HOSTNAME/pass/" >> $FIC_PARAM
} # End of param_web_radius ()
 
##########################################################################################
750,15 → 786,15
unixipc chilli.eth1.ipc
pidfile /var/run/chilli.eth1.pid
net $PRIVATE_NETWORK_MASK
dynip $PRIVATE_DYN_IP
statip $PRIVATE_STAT_IP
dhcpif $INTIF
#nodynip
#statip $PRIVATE_NETWORK_MASK
ethers $DIR_DEST_ETC/alcasar-ethers
domain localdomain
dns1 $PRIVATE_IP
dns2 $PRIVATE_IP
uamlisten $PRIVATE_IP
uamport 3990
dhcpif $INTIF
ethers $DIR_DEST_ETC/alcasar-ethers
macallowlocal
locationname $HOSTNAME
radiusserver1 127.0.0.1
781,7 → 817,7
touch $DIR_DEST_ETC/alcasar-macallowed
chown root:apache $DIR_DEST_ETC/alcasar-*
chmod 660 $DIR_DEST_ETC/alcasar-*
echo "- URL de deconnexion du portail : http://alcasar:3990/logoff" >> $FIC_PARAM
echo "- Disconnect URL : http://alcasar:3990/logoff" >> $FIC_PARAM
# Configuration des fichier WEB d'interception (secret partagé avec coova-chilli et nom d'organisme)
$SED "s?^\$uamsecret =.*?\$uamsecret = \"$secretuam\";?g" $DIR_WEB/intercept.php
$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php
805,7 → 841,7
$SED "/^htcp_access allow localnet/d" /etc/squid/squid.conf
$SED "/^always_direct allow localnet/d" /etc/squid/squid.conf
# mode 'proxy transparent local'
$SED "s?^http_port.*?http_port 127.0.0.1:$SQUID_PORT transparent?g" /etc/squid/squid.conf
$SED "s?^http_port.*?http_port 127.0.0.1:3128 transparent?g" /etc/squid/squid.conf
# emplacement et formatage standard des logs
echo '#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh' >> /etc/squid/squid.conf
echo '#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Ag' >> /etc/squid/squid.conf
1218,6 → 1254,7
$SED "s?^#ListenAddress 0\.0\.0\.0?ListenAddress $PRIVATE_IP?g" /etc/ssh/sshd_config
# sshd n'est pas lancé automatiquement au démarrage
/sbin/chkconfig --del sshd
echo "SSH=off" >> $DIR_DEST_ETC/alcasar-network
# Coloration des prompts
[ -e /etc/bashrc.default ] || cp /etc/bashrc /etc/bashrc.default
cp -f $DIR_CONF/bashrc /etc/. ; chmod 644 /etc/bashrc ; chown root:root /etc/bashrc
1233,9 → 1270,11
do
/sbin/chkconfig --add $i
done
# pour éviter les alertes de dépendance avec le service 'netfs'.
# pour éviter les alertes de dépendance entre service.
$SED "s?^# Required-Start.*?# Required-Start: \$local_fs \$network?g" /etc/init.d/mysqld
$SED "s?^# Required-Stop.*?# Required-Stop: \$local_fs \$network?g" /etc/init.d/mysqld
$SED "s?^# Should-Start.*?# Should-Start: radiusd ldap?g" /etc/init.d/httpd
$SED "s?^# Should-Stop.*?# Should-Stop: radiusd ldap?g" /etc/init.d/httpd
# On affecte le niveau de sécurité du système : type "fileserver"
$SED "s?BASE_LEVEL=.*?BASE_LEVEL=fileserver?g" /etc/security/msec/security.conf
# On supprime la vérification du mode promiscious des interfaces réseaux ( nombreuses alertes sur eth1 dûes à Tun0 )
1249,7 → 1288,7
# ignorer les erreurs ICMP bogus
$SED "s?^ACCEPT_BOGUS_ERROR_RESPONSES=.*?ACCEPT_BOGUS_ERROR_RESPONSES=no?g" /etc/security/msec/level.fileserver
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
# désactiver l’envoi et la réponse aux ICMP redirects
# désactiver l'envoi et la réponse aux ICMP redirects
accept_redirect=`grep accept_redirect /etc/sysctl.conf|wc -l`
if [ "$accept_redirect" == "0" ]
then
1272,7 → 1311,7
fi
$SED "s?tcp_syncookies.*?tcp_syncookies = 1?g" /etc/sysctl.conf
sysctl -w net.ipv4.tcp_syncookies=1
# activer l’antispoofing niveau Noyau
# activer l'antispoofing niveau Noyau
$SED "s?^ENABLE_IP_SPOOFING_PROTECTION.*?ENABLE_IP_SPOOFING_PROTECTION=yes?g" /etc/security/msec/level.fileserver
sysctl -w net.ipv4.conf.all.rp_filter=1
# ignorer le source routing
1339,6 → 1378,7
then
$DIR_DEST_BIN/alcasar-conf.sh --load
fi
rm -f /tmp/alcasar-conf*
chown -R root:apache $DIR_DEST_ETC/*
chmod -R 660 $DIR_DEST_ETC/*
chmod ug+x $DIR_DEST_ETC/digest $DIR_DEST_ETC/alcasar-dnsfilter*
1391,14 → 1431,18
if [ -e $DIR_WEB/VERSION ]
then
actual_version=`cat $DIR_WEB/VERSION`
echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
if [ $Lang == "fr" ]
then echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
else echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
fi
response=0
PTN='^[oOnNyY]$'
until [[ $(expr $response : $PTN) -gt 0 ]]
do
echo "Voulez-vous effectuer une mise à jour (O/n)? ";
echo -n "Do you want to update (Y/n)?";
if [ $Lang == "fr" ]
then echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
else echo -n "Do you want to update (Y/n)?";
fi
read response
done
if [ "$response" = "o" ] || [ "$response" = "O" ] || [ "$response" = "y" ] || [ "$response" = "Y" ]
1413,18 → 1457,23
mode="update"
fi
fi
# System update - rpms install
$DIR_SCRIPTS/alcasar-urpmi.sh
if [ "$?" != "0" ]
then
exit 0
fi
if [ -e /tmp/alcasar-conf.tar.gz ]
# RPMs install
$DIR_SCRIPTS/alcasar-urpmi.sh
if [ "$?" != "0" ]
then
echo "#### Installation avec mise à jour ####"
echo "#### Installation with update ####"
exit 0
fi
if [ -e $DIR_WEB/VERSION ]
then
# On désinstalle la version actuelle
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
fi
if [ -e /tmp/alcasar-conf.tar.gz ]
then
if [ $Lang == "fr" ]
then echo "#### Installation avec mise à jour ####"
else echo "#### Installation with update ####"
fi
# On récupère le nom d'organisme à partir de fichier de conf
tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme
ORGANISME=`cat $DIR_CONF/organisme`
1436,7 → 1485,7
 
do
$func
# echo "*** 'debug' : end of function $func ***"; read a
echo "*** 'debug' : end of function $func ***"; read a
done
;;
-u | --uninstall)