55,12 → 55,12 |
DB_RADIUS="radius" # nom de la base de données utilisée par le serveur FreeRadius |
DB_USER="radius" # nom de l'utilisateur de la base de données |
# ******* Network parameters - paramètres réseau ******* |
HOSTNAME="alcasar" # |
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 |
UAMPORT="3990" |
# ****** Paths - chemin des commandes ******* |
SED="/bin/sed -i" |
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ****** |
330,7 → 330,6 |
done |
fi |
# Récupération de la config réseau côté "LAN de consultation" |
HOSTNAME=alcasar-$ORGANISME |
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) |
381,8 → 380,8 |
# Modif /etc/hosts |
[ -e /etc/hosts.default ] || cp /etc/hosts /etc/hosts.default |
cat <<EOF > /etc/hosts |
127.0.0.1 $HOSTNAME localhost.localdomain localhost |
$PRIVATE_IP $HOSTNAME alcasar portail |
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 |
728,7 → 727,7 |
chown -R apache:apache $DIR_ACC/manager/ |
# Modification des fichiers de configuration |
[ -e /etc/freeradius-web/admin.conf.default ] || cp /etc/freeradius-web/admin.conf /etc/freeradius-web/admin.conf.default |
$SED "s?^general_domain:.*?general_domain: $ORGANISME.$DOMAIN?g" /etc/freeradius-web/admin.conf |
$SED "s?^general_domain:.*?general_domain: $DOMAIN?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_username:.*?sql_username: $DB_USER?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_password:.*?sql_password: $radiuspwd?g" /etc/freeradius-web/admin.conf |
$SED "s?^sql_debug:.*?sql_debug: false?g" /etc/freeradius-web/admin.conf |
806,9 → 805,9 |
dns1 $PRIVATE_IP |
dns2 $PRIVATE_IP |
uamlisten $PRIVATE_IP |
uamport $UAMPORT |
uamport 3990 |
dhcpif $INTIF |
ethers /usr/local/etc/alcasar-ethers |
ethers $DIR_DEST_ETC/alcasar-ethers |
uamanyip |
macallowlocal |
locationname $HOSTNAME |
822,22 → 821,22 |
papalwaysok |
uamsecret $secretuam |
coaport 3799 |
include /usr/local/etc/alcasar-uamallowed |
include /usr/local/etc/alcasar-uamdomain |
include /usr/local/etc/alcasar-macallowed |
include $DIR_DEST_ETC/alcasar-uamallowed |
include $DIR_DEST_ETC/alcasar-uamdomain |
include $DIR_DEST_ETC/alcasar-macallowed |
EOF |
# Pour la fonctionnalité de DHCP statique, le fichier alcasar-ethers a été copié précédemment dans /usr/local/etc |
# création des fichiers de sites, d'urls et d'adresses MAC de confiance |
echo -e "uamallowed=\"\"" > /usr/local/etc/alcasar-uamallowed |
echo -e "uamdomain=\"\"" > /usr/local/etc/alcasar-uamdomain |
echo -e "macallowed=\"\"" > /usr/local/etc/alcasar-macallowed |
chown root:apache /usr/local/etc/alcasar-* |
chmod 660 /usr/local/etc/alcasar-* |
echo "- URL de deconnexion du portail : http://$PRIVATE_IP:$UAMPORT/logoff" >> $FIC_PARAM |
# Définition du secret partagé entre coova-chilli et la page d'authentification (intercept.php) |
echo -e "uamallowed=\"\"" > $DIR_DEST_ETC/alcasar-uamallowed |
echo -e "uamdomain=\"\"" > $DIR_DEST_ETC/alcasar-uamdomain |
echo -e "macallowed=\"\"" > $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 |
# 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 $DIR_WEB/intercept.php.old |
$SED "s?^\$userpassword=1.*?\$userpassword=1;?g" $DIR_WEB/intercept.php $DIR_WEB/intercept.php.old |
$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php $DIR_WEB/intercept.php.old |
$SED "s?^\$organisme = .*?\$organisme = \"$ORGANISME\";?g" $DIR_WEB/intercept.php $DIR_WEB/intercept.php.old $DIR_WEB/status.php |
} # End of param_chilli () |
|
########################################################## |
969,7 → 968,7 |
$SED "s?^DNSSERVERS=.*?DNSSERVERS=\"$DNS1,$DNS2\"?g" $DIR_DEST_BIN/alcasar-iptables.sh |
chmod o+r $DIR_DEST_BIN/alcasar-iptables.sh #lecture possible pour apache (interface php du filtrage réseau) |
# création du fichier d'exception au filtrage |
touch /usr/local/etc/alcasar-filter-exceptions |
touch $DIR_DEST_ETC/alcasar-filter-exceptions |
# le script $DIR_DEST_BIN/alcasar-iptables.sh est lancé à la fin (pour ne pas perturber une mise à jour via ssh) |
} # End of firewall () |
|
1047,18 → 1046,15 |
########################################################## |
param_dnsmasq () |
{ |
[ -d /etc/dnsmasq.d ] || mkdir /etc/dnsmasq.d |
[ -d /var/log/dnsmasq ] || mkdir /var/log/dnsmasq |
[ -e /etc/dnsmasq.conf ] && cp /etc/dnsmasq.conf /etc/dnsmasq.conf.default |
$SED "s?^[^#]?#&?g" /etc/dnsmasq.conf # on commente ce qui ne l'est pas |
$SED "s?^#conf-dir=.*?conf-dir=/etc/dnsmasq.d?g" /etc/dnsmasq.conf # les fichiers de config se trouvent dans /etc/dnsmasq.d/* |
$SED "s?^DHCP_LEASE=.*?DHCP_LEASE=/var/log/dnsmasq/lease.log?g" /etc/sysconfig/dnsmasq # fichier contenant les baux |
[ -e /etc/dnsmasq.conf.default ] || cp /etc/dnsmasq.conf /etc/dnsmasq.conf.default |
# 1st configuration file for "dnsmasq + blackhole" (listen on udp 52) |
cat << EOF > /etc/dnsmasq.d/alcasar-dnsmasq.conf |
cat << EOF > /etc/dnsmasq.conf |
# Configuration file for "dnsmasq + blackhole" |
# Inclusion de la blacklist <domains> de Toulouse dans la configuration |
conf-dir=/usr/local/etc/alcasar-dnsfilter-enabled |
conf-file=/usr/local/etc/alcasar-dns-name # zone de definition de noms DNS locaux |
conf-dir=$DIR_DEST_ETC/alcasar-dnsfilter-enabled |
conf-file=$DIR_DEST_ETC/alcasar-dns-name # zone de definition de noms DNS locaux |
listen-address=$PRIVATE_IP |
listen-address=127.0.0.1 |
no-dhcp-interface=$INTIF |
1072,7 → 1068,7 |
server=$DNS1 |
server=$DNS2 |
# le servive DHCP est configuré mais n'est exploité que pour le "bypass" |
dhcp-range=$ORGANISME,$PRIVATE_DYN_FIRST_IP,$PRIVATE_DYN_LAST_IP,$PRIVATE_MASK,12h |
dhcp-range=$PRIVATE_DYN_FIRST_IP,$PRIVATE_DYN_LAST_IP,$PRIVATE_MASK,12h |
#dhcp-option=3,1.2.3.4 |
#dhcp-option=option:router,1.2.3.4 |
#dhcp-option=42,0.0.0.0 |
1084,7 → 1080,7 |
# 2nd dnsmasq configuration file for filter exception user (listen on udp 54) |
cat << EOF > /etc/dnsmasq-forward.conf |
# Dnsmasq configuration for exception filter users (no blackhole) |
conf-file=/usr/local/etc/alcasar-dns-name # zone de definition de noms DNS locaux |
conf-file=$DIR_DEST_ETC/alcasar-dns-name # zone de definition de noms DNS locaux |
listen-address=$PRIVATE_IP |
port=54 |
no-dhcp-interface=$INTIF |
1099,12 → 1095,15 |
server=$DNS2 |
EOF |
# On crée le fichier de résolution locale |
touch /usr/local/etc/alcasar-dns-name |
# On modifie le fichier d'initialisattion (lancement dune deuxième instance) |
[ -e /etc/init.d/dnsmasq ] && cp /etc/init.d/dnsmasq /etc/init.d/dnsmasq.default |
$SED "s?^DOMAIN_SUFFIX=.*?DOMAIN_SUFFIX=''?g" /etc/init.d/dnsmasq |
$SED "/\$dnsmasq/a daemon \$dnsmasq -C /etc/dnsmasq-forward.conf" /etc/init.d/dnsmasq |
$SED "/killproc \$DAEMON_NAME/a killall \$DAEMON_NAME" /etc/init.d/dnsmasq |
cat << EOF > $DIR_DEST_ETC/alcasar-dns-name |
# Here you can define your local domain name |
# use the /etc/hosts file to define your hosts name |
local=/$DOMAIN/ |
EOF |
# On modifie le fichier d'initialisattion (lancement et arret de la deuxième instance) |
[ -e /etc/init.d/dnsmasq.default ] || cp /etc/init.d/dnsmasq /etc/init.d/dnsmasq.default |
$SED "/daemon/a \$dnsmasq -C /etc/dnsmasq-forward.conf \$OPTIONS" /etc/init.d/dnsmasq |
$SED "/killproc \$DAEMON_NAME/a killproc \$DAEMON_NAME" /etc/init.d/dnsmasq |
} # End dnsmasq |
|
########################################################## |
1144,9 → 1143,9 |
chown -R dansguardian:apache /etc/dansguardian/ |
chmod -R g+rw /etc/dansguardian |
# On crée la structure du DNS-blackhole : |
mkdir /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
chown -R 770 /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
chown -R root:apache /usr/local/etc/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
mkdir $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
chown -R 770 $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
chown -R root:apache $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled} |
# On fait pointer le black-hole sur une page interne |
$SED "s?^IP_RETOUR=.*?IP_RETOUR=\"$PRIVATE_IP\"?g" $DIR_DEST_SBIN/alcasar-bl.sh |
# On récupère la dernière version de la BL Toulouse |
1199,7 → 1198,7 |
EOF |
# suppression des fichiers de mots de passe lors d'imports massifs par fichier de plus de 24h |
cat << EOF > /etc/cron.d/clean_import |
30 * * * * root /usr/local/bin/alcasar-import-clean.sh |
30 * * * * root $DIR_DEST_BIN/alcasar-import-clean.sh |
EOF |
# mise à jour des stats de connexion (accounting). Scripts provenant de "dialupadmin" (rpm freeradius-web) (cf. wiki.freeradius.org/Dialup_admin). |
# on écrase le crontab d'origine installé par le RPM "freeradius-web" (bug remonté à qa.mandriva.com : 46739). |
1393,9 → 1392,8 |
echo "#### Installation avec mise à jour ####" |
echo "#### Installation with update ####" |
# On récupère le nom d'organisme à partir de fichier de conf |
tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname |
ORGANISME=`cat $DIR_CONF/hostname|cut -b 9-` |
hostname `cat $DIR_CONF/hostname` |
tar -xvf /tmp/alcasar-conf.tar.gz conf/organisme |
ORGANISME=`cat $DIR_CONF/organisme` |
mode="update" |
else |
mode="install" |