configure_bind9.sh 4.31 KB
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
#!/bin/bash

if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Erreur !!!"
echo "Doit etre execute avec sudo"
exit 1
fi

bind9=`whereis bind9`
bind=`whereis bind`
bind9Ok=${bind9#*:}
bindOk=${bind#*:}
if [ "$bind9Ok" == "" ] && [ "$bindOk" == "" ]; then
echo "Le programme Bind n'est peut etre pas installe."
echo "Executer \"sudo apt-get install bind9\""
exit 2
fi

adresse_ip=`hostname -i`
echo "Adresse IP : "$adresse_ip
echo "Est-ce correct ? [O/n]"
read reponse
if [ "$reponse" != "o" ] && [ "$reponse" != "O" ] && [ "$reponse" != "" ]; then
echo "Veuillez verifier vos parametres"
exit 2
fi

nom_de_domaine=`hostname -d`
echo "Nom de domaine : "$nom_de_domaine
echo "Est-ce correct ? [O/n]"
read reponse
if [ "$reponse" != "o" ] && [ "$reponse" != "O" ] && [ "$reponse" != "" ]; then
echo "Veuillez verifier votre fichier /etc/hosts"
exit 2
fi

host_name=`hostname`
echo "Nom d'hote : "$host_name
echo "Est-ce correct ? [O/n]"
read reponse
if [ "$reponse" != "o" ] && [ "$reponse" != "O" ] && [ "$reponse" != "" ]; then
echo "Veuillez verifier votre fichier /etc/hosts"
exit 2
fi

rep_bind="/etc/bind"
if [ ! -d $rep_bind ]; then
echo "Le repertoire $rep_bind n'existe pas !"
echo "Le programme Bind n'est peut etre pas installe."
echo "Executer \"sudo apt-get install bind9\""
exit 2
fi

named_conf="/etc/bind/named.conf"
if [ ! -f $named_conf ]; then
echo "Le fichier $named_conf n'existe pas !"
echo "Le programme Bind n'est peut etre pas installe."
echo "Executer \"sudo apt-get install bind9\""
exit 2
fi

old="$IFS"
IFS="."
tab=( $adresse_ip )
IFS="$old"

for (( i=0 ; i<${#tab[*]} ; i++ )) ; do
echo $i" -> "${tab[$i]}
done

addr=${tab[2]}"."${tab[1]}"."${tab[0]}
addr_inv=${tab[0]}"."${tab[1]}"."${tab[2]}
file_conf=$rep_bind"/named.conf."$host_name
file_nom_de_domaine=$rep_bind"/zones/"$nom_de_domaine".hosts"
file_in_addr=$rep_bind"/zones/rev."$addr_inv".in-addr.arpa"

echo "Creation du fichier \"$file_conf\""
echo "" > $file_conf
echo "Ajout des informations dans le fichier \"$rep_bind"/named.conf."$host_name\""

echo "zone \"$nom_de_domaine\" {
type master;
file \"$file_nom_de_domaine\";
};" >> $file_conf

echo "" >> $file_conf

echo "zone \"$addr.in-addr.arpa\" {
type master;
file \"$file_in_addr\";
};" >> $file_conf

echo "Ajout du lien vers \"$file_conf\" dans le fichier \"$named_conf\""
echo "include \"$file_conf\";" >> $named_conf

rep_zones=$rep_bind"/zones"
echo "Creation du repertoire \"$rep_zones\""
mkdir $rep_zones

hostname_f=`hostname -f`
echo "Creation du fichier \"$file_nom_de_domaine\""
echo "" > $file_nom_de_domaine
echo "\$ttl 86400
@ IN SOA $hostname_f. mail.$nom_de_domaine. (
2008061803
21600
3600
604800
86400 )

;ENREGISTREMENT \"A\" DNS <-> IP CLASSIQUES
@ IN NS mail.$nom_de_domaine.
IN MX 10 mail.$nom_de_domaine.
IN A $adresse_ip
mail IN A $adresse_ip
$host_name IN A $adresse_ip

;ENREGISTREMENT MESSAGERIE
$nom_de_domaine. IN MX 10 $host_name" >> $file_nom_de_domaine


echo "Creation du fichier \"$file_in_addr\""
echo "" > $file_in_addr
echo "@ IN SOA $nom_de_domaine. admin.$nom_de_domaine. (
2006081403;
28800;
604800;
604800;
86400);

IN NS $hostname_f.
${tab[3]} IN PTR $hostname_f." >> $file_in_addr

named_conf_options=$rep_bind"/named.conf.options"
echo "Creation du fichier \"$named_conf_options\""
if [ -f $named_conf_options ]; then
mv $named_conf_options $named_conf_options".save"
fi
echo "" > $named_conf_options
echo "options {
directory \"/var/cache/bind\";
query-source address * port 53;

forwarders {
212.27.40.240;
212.27.40.241;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};" >> $named_conf_options

echo "Configuration terminee."
echo "Appuyer sur Entree pour continuer..."
read

echo "Redemarrage de Bind9"
/etc/init.d/bind9 restart
echo "Appuyer sur Entree pour continuer..."
read

echo "Verification de la configuration"
named-checkconf
echo "Appuyer sur Entree pour continuer..."
read

echo "Verification des enregistrements MX"
dig mx $nom_de_domaine
echo "Appuyer sur Entree pour continuer..."
read

echo "Verification des enregistrements A"
dig a "mail."$nom_de_domaine
echo "Appuyer sur Entree pour continuer..."
read

echo "Verification des enregistrements DNS"
nslookup $nom_de_domaine
echo "Appuyer sur Entree pour continuer..."
read

exit 0