Blame view

configure_bind9.sh 4.31 KB
8545b1168   root   e09fbe56-dc1f-4f1...
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