#!/bin/bash # # Script de configuration DNS # ############### # FONCTIONS # ############### # #### FUNC MASTER #### function mastercf () { echo "Nom de domaine a configurer ? (domain.com)" read DOMAIN echo "Adresse IP du serveur maitre :" read IPNS1 echo "Adresse IP du serveur slave :(laisser vide si pas de slave)" read IPNS2 echo "" #CREATE DB touch /etc/bind/db.$DOMAIN db=/etc/bind/db.$DOMAIN echo "\$TTL 604800" >> $db echo "@ IN SOA $DOMAIN. root.$DOMAIN. (" >> $db echo " 1 ; Serial" >> $db echo " 604800 ; Refresh" >> $db echo " 86400 ; Retry" >> $db echo " 2419200 ; Expire" >> $db echo " 604800 ) ; Negative Cache TTL" >> $db echo "" >> $db echo " IN NS ns1.$DOMAIN." >> $db if [ "$IPNS2" = "" ] then echo "" >> $db else echo " IN NS ns2.$DOMAIN." >> $db echo "" >> $db fi echo "ns1 IN A $IPNS1" >> $db if [ "$IPNS2" = "" ] then echo "" >> $db else echo "ns2 IN A $IPNS2" >> $db echo "" >> $db fi echo "*Creation du fichier de zone* [OK]" echo "emplacement du fichier de zone : $db" #EDIT named.conf #touch /root/dev/named.conf #A SUPPRIMER !!!! cf=/etc/bind/named.conf echo "" >> $cf echo "zone \"$DOMAIN\" {" >> $cf echo " type master;" >> $cf echo " file \"/etc/bind/db.$DOMAIN\";" >> $cf if [ "$IPNS2" = "" ] then echo "};" >> $cf else echo " allow-transfer {$IPNS2;};" >> $cf echo "};" >> $cf fi echo "*Declaration de la zone dans /etc/bind/named.conf* [OK]" echo "*Restart de Bind*" a decommenter /etc/init.d/bind9 restart menu } #### FUNC SLAVE #### function slavecf () { echo "Nom de domaine a configurer ? (domain.com)" read DOMAIN echo "Adresse IP du serveur maitre :" read IPNS1 #EDIT named.conf #touch /root/dev/named.conf #A SUPPRIMER !!!! cf=/etc/bind/named.conf # echo "" >> $cf echo "zone \"$DOMAIN\" {" >> $cf echo " type slave;" >> $cf echo " file \"db.$DOMAIN\";" >> $cf echo " masters {$IPNS1;};" >> $cf echo " allow-notify {$IPNS1;};" >> $cf echo "};" >> $cf echo "" echo "*Declaration de la zone dans /etc/bind/named.conf* [OK]" echo "*Restart de Bind*" #A decommenter /etc/init.d/bind9 restart menu } #### FUNC AJOUT NS #### function ns () { echo "Nom du serveur DNS : (FQDN appartenant au domaine)" read NS echo "Adresse IP du serveur DNS :" read IPNS # EDIT DB #touch /root/dev/db.$DOMAIN # A SUPPRIMER !!!! db=/etc/bind/db.$DOMAIN # echo "" >> $db echo "@ IN NS $NS." >> $db echo "$NS. IN A $IPNS" >> $db echo "" echo "*Modification de $db*" echo "*Restart de bind9*" /etc/init.d/bind9 restart menu } #### FUNC AJOUT MX #### function mx () { echo "Nom du serveur mail : (FQDN appartenant au domaine)" read MX echo "Adresse IP du serveur mail :" read IPMX #EDIT DB #touch /root/dev/db.$DOMAIN # A SUPPRIMER !!!! db=/etc/bind/db.$DOMAIN # echo "" >> $db echo "@ IN MX 10 $MX." >> $db echo "$MX. IN A $IPMX" >> $db echo "" echo "*Modification de $db*" echo "*Restart de bind9*" /etc/init.d/bind9 restart menu } #### FUNC AJOUT A #### function a () { echo "Nom de domaine a associer a une @IPv4 : (FQDN appartenant au domaine)" read A echo "Adresse IP a associer au nom de domaine :" read IPA #EDIT DB #touch /root/dev/db.$DOMAIN # A SUPPRIMER !!!! db=/etc/bind/db.$DOMAIN # echo "" >> $db echo "$A. IN A $IPA" >> $db echo "" echo "*Modification de $db*" echo "*Restart de bind9*" /etc/init.d/bind9 restart menu } #### FUNC AJOUT AAAA #### function aaaa () { echo "Nom de domaine a associer a une @IPv6 : (FQDN appartenant au domaine)" read AAAA echo "Adresse IPv6 a associer au nom de domaine :" read IPAAAA #EDIT DB #touch /root/dev/db.$DOMAIN # A SUPPRIMER !!!! db=/etc/bind/db.$DOMAIN # echo "" >> $db echo "$AAAA. IN A $IPAAAA" >> $db echo "" echo "*Modification de $db*" echo "*Restart de bind9*" /etc/init.d/bind9 restart menu } #### FUNC AJOUT CNAME #### function cname () { echo "Nom de domaine a rediriger : (FQDN appartenant au domaine)" read NOM1 echo "Rediriger le nom vers : (FQDN appartenant au domaine)" read NOM2 #EDIT DB #touch /root/dev/db.$DOMAIN # A SUPPRIMER !!!! db=/etc/bind/db.$DOMAIN # echo "" >> $db echo "$NOM1. IN CNAME $NOM2." >> $db echo "" echo "*Modification de $db*" echo "*Restart de bind9*" /etc/init.d/bind9 restart menu } #### FUNC MENU AJOUT #### function ajout () { echo "Nom de domaine a configurer ? (domain.com)" read DOMAIN echo "" echo "Type d'enregistrement a ajouter ?" echo "1.NS" echo "2.MX" echo "3.A" echo "4.AAAA" echo "5.CNAME" echo "6.Retour au menu" echo "" echo "Choix :" read CHOIX echo "" case $CHOIX in 1)ns;; 2)mx;; 3)a;; 4)aaaa;; 5)cname;; 6)menu;; esac } #### FUNC MENU #### function menu () { echo "" echo "************************************************" echo "* Menu du script de gestion DNS *" echo "************************************************" echo "" echo "1.Configuration serveur primaire" echo "2.Configuration serveur secondaire" echo "3.Ajout d'enregistrement" echo "4.Menu Principal" echo "5.Quitter" echo "" echo "Choix :" read CHOIX echo "" case $CHOIX in 1)mastercf;; 2)slavecf;; 3)ajout;; 4)./script_menup;; 5)exit 0;; *)echo "Il faut faire un choix !" menu;; esac } menu