| 2013 | 
           raphael.pi | 
           1 | 
           #/bin/bash
  | 
        
        
            | 
            | 
           2 | 
           # alcasar-dhcp.sh
  | 
        
        
            | 
            | 
           3 | 
              | 
        
        
            | 
            | 
           4 | 
           # by Raphaël Pion
  | 
        
        
            | 
            | 
           5 | 
           # This script is distributed under the Gnu General Public License (GPL)
  | 
        
        
            | 
            | 
           6 | 
              | 
        
        
            | 
            | 
           7 | 
           # active ou desactive l'option NTP du DHCP sur le réseau de consultation
  | 
        
        
            | 
            | 
           8 | 
           # enable or disable the NTP option of DHCP service on consultation LAN
  | 
        
        
            | 
            | 
           9 | 
              | 
        
        
            | 
            | 
           10 | 
              | 
        
        
            | 
            | 
           11 | 
           #configuration files
  | 
        
        
            | 
            | 
           12 | 
           SED="/bin/sed -i"
  | 
        
        
            | 
            | 
           13 | 
           CHILLI_CONF_FILE="/etc/chilli.conf"
  | 
        
        
            | 
            | 
           14 | 
           ALCASAR_CONF_FILE="/usr/local/etc/alcasar.conf"
  | 
        
        
            | 
            | 
           15 | 
              | 
        
        
            | 
            | 
           16 | 
           #NTP parameters
  | 
        
        
            | 
            | 
           17 | 
           NTP_STATE=$(grep 'DHCP=' $ALCASAR_CONF_FILE | cut -d'=' -f2)
  | 
        
        
            | 
            | 
           18 | 
           CHILLI_NTP_IP=$(grep 'CHILLI_NTP_IP=' $ALCASAR_CONF_FILE | cut -d'=' -f2)
  | 
        
        
            | 
            | 
           19 | 
              | 
        
        
            | 
            | 
           20 | 
           usage="Usage: alcasar-chilli_ntp.sh {--on | -on} | {--off | -off} "
  | 
        
        
            | 
            | 
           21 | 
           nb_args=$#
  | 
        
        
            | 
            | 
           22 | 
           args=$1
  | 
        
        
            | 
            | 
           23 | 
           if [ $nb_args -eq 0 ]
  | 
        
        
            | 
            | 
           24 | 
           then
  | 
        
        
            | 
            | 
           25 | 
           	echo "$usage"
  | 
        
        
            | 
            | 
           26 | 
           	exit 1
  | 
        
        
            | 
            | 
           27 | 
           fi
  | 
        
        
            | 
            | 
           28 | 
           case $args in
  | 
        
        
            | 
            | 
           29 | 
           	-\? | -h | --h)
  | 
        
        
            | 
            | 
           30 | 
           		echo "$usage"
  | 
        
        
            | 
            | 
           31 | 
           		exit 0
  | 
        
        
            | 
            | 
           32 | 
           		;;
  | 
        
        
            | 
            | 
           33 | 
           	--off|-off) # disable NTP options over DHCP of coovachilli
  | 
        
        
            | 
            | 
           34 | 
           		$SED "s?^CHILLI_NTP_ENABLED.*?CHILLI_NTP_ENABLED=off?g" $ALCASAR_CONF_FILE
  | 
        
        
            | 
            | 
           35 | 
           		$SED "s?.*dhcpopt\t.*?#dhcpopt\t\t$CHILLI_NTP_IP?g" $CHILLI_CONF_FILE
  | 
        
        
            | 
            | 
           36 | 
           		#/usr/bin/systemctl restart chilli
  | 
        
        
            | 
            | 
           37 | 
           		;;
  | 
        
        
            | 
            | 
           38 | 
           	--on|-on) # enable NTP options over DHCP of coovachilli
  | 
        
        
            | 
            | 
           39 | 
           		if [ $NTP_STATE == "on" ]
  | 
        
        
            | 
            | 
           40 | 
           		then
  | 
        
        
            | 
            | 
           41 | 
           			#DHCP Options : rfc2132
  | 
        
        
            | 
            | 
           42 | 
           			#dhcp option value will be convert in hexa.
  | 
        
        
            | 
            | 
           43 | 
           			#NTP option (or 'option 42') is like :
  | 
        
        
            | 
            | 
           44 | 
           			#			
  | 
        
        
            | 
            | 
           45 | 
           			#    Code   Len         Address 1               Address 2
  | 
        
        
            | 
            | 
           46 | 
           			#   +-----+-----+-----+-----+-----+-----+-----+-----+--
  | 
        
        
            | 
            | 
           47 | 
           			#   |  42 |  n  |  a1 |  a2 |  a3 |  a4 |  a1 |  a2 |  ...
  | 
        
        
            | 
            | 
           48 | 
           			#   +-----+-----+-----+-----+-----+-----+-----+-----+--
  | 
        
        
            | 
            | 
           49 | 
           			#
  | 
        
        
            | 
            | 
           50 | 
           			#Code : 42 => 2a
  | 
        
        
            | 
            | 
           51 | 
           			#Len : 4 => 04
  | 
        
        
            | 
            | 
           52 | 
           			#Convert CHILLI_NTP_IP into hexadecimal value
  | 
        
        
            | 
            | 
           53 | 
           			if [ $CHILLI_NTP_IP != "none" ]
  | 
        
        
            | 
            | 
           54 | 
           			then
  | 
        
        
            | 
            | 
           55 | 
           				a1=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f1))
  | 
        
        
            | 
            | 
           56 | 
           				a2=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f2))
  | 
        
        
            | 
            | 
           57 | 
           				a3=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f3))
  | 
        
        
            | 
            | 
           58 | 
           				a4=$( printf "%02x\n" $(cat /usr/local/etc/alcasar.conf | grep CHILLI_NTP_IP | cut -d'=' -f2 | cut -d'.' -f4))
  | 
        
        
            | 
            | 
           59 | 
           				HEXA_CHILLI_NTP_IP="2a04$a1$a2$a3$a4"
  | 
        
        
            | 
            | 
           60 | 
              | 
        
        
            | 
            | 
           61 | 
           				$SED "s?.*dhcpopt.*?dhcpopt\t\t$HEXA_CHILLI_NTP_IP?g" $CHILLI_CONF_FILE
  | 
        
        
            | 
            | 
           62 | 
           				$SED "s?^CHILLI_NTP_ENABLED.*?CHILLI_NTP_ENABLED=on?g" $ALCASAR_CONF_FILE
  | 
        
        
            | 
            | 
           63 | 
           				/usr/bin/systemctl restart chilli
  | 
        
        
            | 
            | 
           64 | 
           			else
  | 
        
        
            | 
            | 
           65 | 
           				echo "Vous devez spécifier une addresse IP désignant votre serveur NTP"
  | 
        
        
            | 
            | 
           66 | 
           			fi
  | 
        
        
            | 
            | 
           67 | 
           		else
  | 
        
        
            | 
            | 
           68 | 
           			echo "L'option NTP du DHCP de coovachilli ne peut pas s'activer. En effet le DHCP est 'off' sur ALCASAR"
  | 
        
        
            | 
            | 
           69 | 
           		fi
  | 
        
        
            | 
            | 
           70 | 
           		;;
  | 
        
        
            | 
            | 
           71 | 
           	*)
  | 
        
        
            | 
            | 
           72 | 
           		echo "Argument inconnu :$1";
  | 
        
        
            | 
            | 
           73 | 
           		echo "$usage"
  | 
        
        
            | 
            | 
           74 | 
           		exit 1
  | 
        
        
            | 
            | 
           75 | 
           		;;
  | 
        
        
            | 
            | 
           76 | 
           esac
  | 
        
        
            | 
            | 
           77 | 
              |