DEBIAN : Ajouter une entrée DNS

DEBIAN : Ajouter une entrée DNS - Infrastructures serveurs - Systèmes & Réseaux Pro

Marsh Posté le 24-07-2012 à 17:48:41    

Bonjour,
 
Je suis entrain de mettre en place une zone wifi.  
J'ai un UTM qui me fait filtrage web et authentification WEB.
 
Lorsqu'on ouvre Internet Explorer ou autre, nous avons la page d'authentification pour accéder à Internet et cela fonctionne sur réseau prod.
Maintenant je passe ce systeme sur le réseau "invite" dans un vlan.
 
J'accède bien à mon UTM avec l'adresse IP du réseau invité mais il ne sait pas résoudre le nom de l'UTM AXX00000123456
Pour des raisons techniques, je suis obligé de laisser la configuration de la page d'authentification avec le nom réseau et nom pas avec l'adresse ip.
 
Si par exemple, la page s'ouvrait avec une adresse IP  ==> Cela fonctionne... mais je ne peux pas le faire car je casse autre chose pour mon réseau de prod.
 
Donc l'idée que j'ai eu, c'est de mettre un serveur DNS sous debian qui servirait uniquement à résoudre le nom AXX00000123456 mais je n'y arrive pas.
 
Des conseils, des idées, des questions... merci de m'aider.

Reply

Marsh Posté le 24-07-2012 à 17:48:41   

Reply

Marsh Posté le 25-07-2012 à 08:20:38    

Bonjour,
 
Tu n'as pas un serveur DNS en prod qui pourrait t'aider ? Car je ne comprends pas bien le principe de créer un serveur DNS sur le serveur lui même pour qu'il s'auto resolve (Si j'ai bien compris, et je sais je ne suis pas tres tres claire.)

Reply

Marsh Posté le 25-07-2012 à 08:29:26    

Vu que c'est un VLAN public, je ne veux pas qu'ils communiquent entre eux. Le seul lien entre la prod et le public c'est le Firewall.
 
Le serveur DNS est la pour résoudre le nom DNS du Firewall.
Aujourd'hui si je me connecte avec un Iphone par exemple. J'ai impossible d'afficher la page. (La page d'authentification du Firewall s'affiche directement comme un HotSpot)
Si je tape l'adresse ip du firewall, et que je m'authentifie alors j'ai l'accès.
 
Je suis ouvert à d'autres propositions d'architecture.
 

Reply

Marsh Posté le 25-07-2012 à 08:31:53    

Alors je comprends mieux, je pense que ta solution peut fonctionner avec un serveur bind tout simple, et une entrée dns.

Reply

Marsh Posté le 25-07-2012 à 08:33:20    

lol :) c'est ce que je demande :) ...
J'ai peut être pas été clair.
Comment je peux faire pour rentrer le nom AXX00000 par exemple ?
Pour le moment j'ai essayé de emttre dans le fichier hosts mais ça ne fonctionne pas.
 
J'ai jamais utilisé BIND :).

Reply

Marsh Posté le 25-07-2012 à 08:48:38    

Envoies tes fichiers de cons je m'y penche dans la journée si j'ai le temps mais normalement sa ressemble à ça :
 
sid     IN      A       192.168.0.1
 
Voila un lien qui t'expliquera tout le fonctionnement : http://wiki.debian.org/fr/Bind9


Message édité par aliendra le 25-07-2012 à 08:49:41
Reply

Marsh Posté le 25-07-2012 à 08:50:16    

les fichiers de conf, eug c'est une distribution standard vierge. J'ai rien changé dans le bind.conf et autre options named etc...
Pour reprend ton exemple, ca serait :
 
AX0000123456 IN A 192.168.0.254  
 
dans quel fichier ?
 

Code :
  1. options {
  2.         directory "/var/cache/bind";
  3.         query-source address * port *;
  4.         forward only;
  5.         forwarders { ICI L'ADDRESSE DE MON FIREWALL ou LES DNS DE MES FAI; };
  6.         auth-nxdomain no;    # conform to RFC1035
  7.         listen-on-v6 { none; };
  8.         listen-on { 127.0.0.1; 192.168.0.254; };
  9.         allow-transfer { none; };
  10.         allow-query { internals; };
  11.         allow-recursion { internals; };
  12.         version none;
  13. };


Message édité par PsYKrO_Fred le 25-07-2012 à 08:56:25
Reply

Marsh Posté le 25-07-2012 à 08:55:29    

Donc alors procédons dans l'ordre :
 
Création de ta zone dans le named.conf.local :
 

Citation :

zone "example.com" {
        type master;
        file "/var/cache/bind/db.example.com";
};


 
A savoir que le file répertorie ton fichier de zone. Il faut donc la plupart du temps le créer et lui affecter les droits adéquat.
 
Dans un deuxieme temps :
 
Créer ton fichier zone et l'agencer de la façon suivante : (Attention à la casse c'est assez sensible un ptit BIND)
 

Citation :

$TTL    3600
@       IN      SOA     sid.example.com. root.example.com. (
                   2007010401           ; Serial
                         3600           ; Refresh [1h]
                          600           ; Retry   [10m]
                        86400           ; Expire  [1d]
                          600 )         ; Negative Cache TTL [1h]
;
@       IN      NS      sid.example.com.
@       IN      MX      10 sid.example.com.
 
sid     IN      A       192.168.0.1
etch    IN      A       192.168.0.2
 
pop     IN      CNAME   sid
www     IN      CNAME   sid
mail    IN      CNAME   sid
)
 


 
Tu reload ton bind pour qu'il prenne les modifications efféctués :  
 
/etc/init.d/bind reload
 
Tu test tes résultats en local à coup de nslookup et de dig !
 
Voila n’hésite pas si tu as d'autres questions. (Au cas ou j'aurais oublié des infos !)


Message édité par aliendra le 25-07-2012 à 08:56:28
Reply

Marsh Posté le 25-07-2012 à 09:41:01    

re,
 
Création de ta zone dans le named.conf.local :
 

Citation :

zone "test.net" {
        type master;
        file "/var/cache/bind/db.test.net";
};


 
 
Par contre je n'ai pas bien compris  
 

Code :
  1. Créer ton fichier zone


 
je fais un vi de db.test.net ?
 
et je copie colle  

Code :
  1. $TTL    3600
  2. @       IN      SOA     sid.example.com. root.example.com. (
  3.                    2007010401           ; Serial
  4.                          3600           ; Refresh [1h]
  5.                           600           ; Retry   [10m]
  6.                         86400           ; Expire  [1d]
  7.                           600 )         ; Negative Cache TTL [1h]
  8. ;
  9. @       IN      NS      sid.example.com.
  10. @       IN      MX      10 sid.example.com.
  11. sid     IN      A       192.168.0.1
  12. etch    IN      A      192.168.0.2
  13. pop     IN      CNAME   sid
  14. www     IN      CNAME   sid
  15. mail    IN      CNAME   sid
  16. )


 
Et je change juste les valeurs en rouge?

Reply

Marsh Posté le 25-07-2012 à 09:49:49    

Bah déjà tout les CNAME tu n'en n'as normalement pas besoin car ce sont uniquement des ALIAS.
 
Ensuite pour le SOA : nomdetamachine.test.net. (D'apres la creation de ta zone)
 
Si mes souvenirs sont bon oui tu n'as que sa à changé. Apres chaque entrée DNS sera de la forme suivante :
 
NomMachine    IN      A       IP

Reply

Marsh Posté le 25-07-2012 à 09:49:49   

Reply

Marsh Posté le 25-07-2012 à 09:54:40    

aliendra a écrit :

Bah déjà tout les CNAME tu n'en n'as normalement pas besoin car ce sont uniquement des ALIAS.
 
Ensuite pour le SOA : nomdetamachine.test.net. (D'apres la creation de ta zone)
 
Si mes souvenirs sont bon oui tu n'as que sa à changé. Apres chaque entrée DNS sera de la forme suivante :
 
NomMachine    IN      A       IP


 
Donc le fichier peut ressembler à ça alors :
 

Code :
  1. $TTL    3600
  2.     @       IN      SOA     Nom_Serveur_DNs.test.net. (
  3.                        2007010401           ; Serial
  4.                              3600           ; Refresh [1h]
  5.                               600           ; Retry   [10m]
  6.                             86400           ; Expire  [1d]
  7.                               600 )         ; Negative Cache TTL [1h]
  8.     ;
  9.     @       IN      NS      sid.example.com.
  10.     @       IN      MX      10 sid.example.com.
  11.     AX0000000  IN      A       192.168.0.254
  12.     etch    IN      A      192.168.0.2
  13.     pop     IN      CNAME   sid
  14.     www     IN      CNAME   sid
  15.     mail    IN      CNAME   sid
  16.     )


Message édité par PsYKrO_Fred le 25-07-2012 à 09:55:12
Reply

Marsh Posté le 25-07-2012 à 09:56:39    

Laisse le @ IN NS (Il définit ton serveur DNS ^^ Ici c'est Nom_Serveur_DNs.test.net. )
 
Je pense que si tu enleve le MX (Mail Exchanger) Il va pas kiffer donc laisse le aussi sous la forme suivante : 10 Nom_Serveur_DNs.test.net.
 
Et pour le IN A c'est sa c'est correct :p

Reply

Marsh Posté le 25-07-2012 à 10:01:23    

Allez je test dans l'heure, je te tiens au courant.

Reply

Marsh Posté le 25-07-2012 à 10:47:01    

Code :
  1. :
  2.     $TTL    3600
  3.     @       IN      SOA     serveurdns.entreprise.local. root.example.com. (
  4.                        2007010401           ; Serial
  5.                              3600           ; Refresh [1h]
  6.                               600           ; Retry   [10m]
  7.                             86400           ; Expire  [1d]
  8.                               600 )         ; Negative Cache TTL [1h]
  9.     ;
  10.     @       IN      NS      serveurdns.entreprise.local.
  11.     @       IN      MX      10 serveurdns.entreprise.local.
  12.     sid     IN      A       192.168.60.251
  13.     etch    IN      A      192.168.60.251
  14.     pop     IN      CNAME   sid
  15. www     IN      CNAME   sid
  16.     mail    IN      CNAME   sid
  17. UX000123456    IN   A 192.168.60.253
  18.     )


J'ai fait ensuite un /etc/init.d/bind9 restart
 
Lorsque je fais un nslookup UX000123456, il me trouve rien.
 
dans le fichier /etc/resolv.conf  
 

Code :
  1. nameserver 192.168.60.251


 
Sur mon Iphone, je récupère comme dns  
192.168.60.251


Message édité par PsYKrO_Fred le 25-07-2012 à 10:47:35
Reply

Marsh Posté le 25-07-2012 à 11:08:05    

Regarde ton SysLog et montre moi les erreurs s'il te plait :)

Reply

Marsh Posté le 25-07-2012 à 11:11:31    

Ok je le fais dessuite. (question par anticipation où se trouve le syslog)  

Reply

Marsh Posté le 25-07-2012 à 11:21:55    

BOn je suis aller voir dans /var/log/syslog
Erreur :
 
network unreachable resolving 'serveurdns.entreprise.local/AAAA/IN'; 2001:503:27::2:30#53

Reply

Marsh Posté le 25-07-2012 à 11:43:02    

C'est normal que ton serveur travaille en Ipv6?
 
Si ce n'est pas normal et il doit travailler en Ipv4
 
“/etc/sysconfig/named” et ajoutez à la fin du fichier :
 
    OPTIONS="-4"
 
Cordialement,

Reply

Marsh Posté le 25-07-2012 à 11:57:01    

alors /etc/sysconfig, le répertoire n'existe pas.
 
Pour info quand je fait nslookup UX00000123456  
server can't find UX00000123456: NXDOMAIN
 
 
Je résume encore toutes mes étapes :
 
1- Nom serveur : serveurdns (pas de suffixe car aucun domaine)
2- Edition du resolv.conf

Code :
  1. vi /etc/resolv.conf


3- Ajout des dns (lui même et le firewall)

Code :
  1. nameserver 192.168.60.251
  2. nameserver 192.168.60.253


4- Création de db.entreprise.local

Code :
  1. vi /etc/bind/dp.entreprise.local


5- Modification du fichier  

Code :
  1. ; BIND data file for local loopback interface
  2. ;
  3. $TTL    604800
  4. @       IN      SOA     serveurdns.entreprise.local. (
  5.                               2         ; Serial
  6.                          604800         ; Refresh
  7.                           86400         ; Retry
  8.                         2419200         ; Expire
  9.                          604800 )       ; Negative Cache TTL
  10. ;
  11. @       IN      NS      serveurdns.entreprise.local.
  12. @       IN      A       192.168.60.251
  13. @       IN      MX      10 serveurdns.entreprise..
  14. UX0000123456  IN      A       192.168.60.253
  15. }


6- Edition du fichier named.conf.options  
 

Code :
  1. options {
  2.         directory "/var/cache/bind";
  3.         forwarders {
  4.                 192.168.60.253;
  5.          };
  6.         auth-nxdomain no;    # conform to RFC1035
  7.         listen-on-v6 { 192.168.60.251; };
  8. };


 
 
7- Création de la zone /etc/bind/named.conf.local

Code :
  1. zone "entrperise.local"{
  2.         type master;
  3.         allow-transfer { 192.168.60.253; };
  4.         file "/var/cache/bind/db.mecahers.local";
  5. };


8- redémarrage du bind  

Code :
  1. /etc/init.d/bind restart

Message cité 1 fois
Message édité par PsYKrO_Fred le 25-07-2012 à 12:20:02
Reply

Marsh Posté le 25-07-2012 à 12:20:21    

PsYKrO_Fred a écrit :

alors /etc/sysconfig, le répertoire n'existe pas.
 
Pour info quand je fait nslookup UX00000123456  
server can't find UX00000123456: NXDOMAIN
 
 
Je résume encore toutes mes étapes :
 
1- Nom serveur : serveurdns (pas de suffixe car aucun domaine)
2- Edition du resolv.conf

Code :
  1. vi /etc/resolv.conf


3- Ajout des dns (lui même et le firewall)

Code :
  1. nameserver 192.168.60.251
  2. nameserver 192.168.60.253


4- Création de db.entreprise.local

Code :
  1. vi /etc/bind/dp.entreprise.local


5- Modification du fichier  

Code :
  1. ; BIND data file for local loopback interface
  2. ;
  3. $TTL    604800
  4. @       IN      SOA     serveurdns.entreprise.local. (
  5.                               2         ; Serial
  6.                          604800         ; Refresh
  7.                           86400         ; Retry
  8.                         2419200         ; Expire
  9.                          604800 )       ; Negative Cache TTL
  10. ;
  11. @       IN      NS      serveurdns.entreprise.local.
  12. @       IN      A       192.168.60.251
  13. @       IN      MX      10 serveurdns.entreprise..
  14. UX0000123456  IN      A       192.168.60.253
  15. }


6- Edition du fichier named.conf.options  
 

Code :
  1. options {
  2.         directory "/var/cache/bind";
  3.         forwarders {
  4.                 192.168.60.253;
  5.          };
  6.         auth-nxdomain no;    # conform to RFC1035
  7.         listen-on-v6 { 192.168.60.251; };
  8. };


 
 
7- Création de la zone /etc/bind/named.conf.local

Code :
  1. zone "entrperise.local"{
  2.         type master;
  3.         allow-transfer { 192.168.60.253; };
  4.         file "/var/cache/bind/db.entreprise.local";
  5. };


8- redémarrage du bind  

Code :
  1. /etc/init.d/bind restart



Reply

Marsh Posté le 25-07-2012 à 12:22:33    

       listen-on-v6 { 192.168.60.251; };
 
déjà tu peux pas écouter de l'ipV4 Sur de l'ipV6. Après je n'ai jamais travaillé sur cette version mais ce paramètre me semble plus que louche :o

Reply

Marsh Posté le 25-07-2012 à 12:31:51    

euh c''est télécharger hier depuis le site officiel version stable.

Reply

Marsh Posté le 25-07-2012 à 12:56:54    

Oui mais justement regarde dans le wiki debian que je t'ai donné tu dois pouvoir écouter de l'ipv4 et non de l'ip V6. Vu le syslog à l'heure actuelle tes pbms viennent de là.

Reply

Marsh Posté le 25-07-2012 à 14:14:38    

aliendra a écrit :

Oui mais justement regarde dans le wiki debian que je t'ai donné tu dois pouvoir écouter de l'ipv4 et non de l'ip V6. Vu le syslog à l'heure actuelle tes pbms viennent de là.


Je regarde pas à pas :  

Code :
  1. named-checkzone entreprise.local ./db.entreprise.local
  2. dns_master_load: ./db.entreprise.local:17: unexpected end of line
  3. dns_master_load: ./db.entreprise.local:16: unexpected end of input
  4. ./db.entreprise.local: file does not end with newline
  5. zone entreprise.local/IN: loading from master file ./db.entreprise.local failed: unexpected end of input
  6. zone entreprise.local/IN: not loaded due to errors.


 
EDIT : j'avance, j'avais laissé un ";".

Code :
  1. named-checkzone entreprise.local ./db.entreprise.local
  2. zone entreprise.local/IN: NS 'serveurdns.entreprise.local' has no address records (A or AAAA)
  3. zone entreprise.local/IN: not loaded due to errors.


 
EDIT2: J'ai ajouté dans le hostanem serveurdns en serveurdns.entreprise.local  
J'ai aussi ajouté une entrée DNS  

Code :
  1. serveurdns  IN   A       192.168.60.251


 
Et le résultat est OK.
 
J'avance...
 
Suite : Je tente la commande  
 

Code :
  1. named-checkconf -z
  2. zone entreprise.local/IN: loading from master file /var/cache/bind/db.entreprise.local failed: file not found
  3. zone entreprise.local/IN: not loaded due to errors.
  4. _default/entreprise.local/IN: file not found
  5. zone localhost/IN: loaded serial 2
  6. zone 127.in-addr.arpa/IN: loaded serial 1
  7. zone 0.in-addr.arpa/IN: loaded serial 1
  8. zone 255.in-addr.arpa/IN: loaded serial 1


 
Moi le fichier db.entreprise.local est crée dans /etc/bind/  
Est ce qu'il faut que je modifie mon named.conf.local ?  
Au lieu de file "/var/cache/bind/db.entreprise.local" en "/etc/bind/db.entreprise.local ou alors que je le copie dans /var/cache/bind/ ?


Message édité par PsYKrO_Fred le 25-07-2012 à 14:30:25
Reply

Marsh Posté le 25-07-2012 à 14:30:27    

Donc il ne trouve apparemment pas ton fichier et/ou il y a des erreurs dedans ! Comme je t'ai dit bind n'est pas tres permissif cet aprem j'ai du boulot un serveur m'a lâche lâchement xD Donc j'essaye de suivre le thread de loin :)
 
EDIT : Copie le dans /var/cache/bind


Message édité par aliendra le 25-07-2012 à 14:31:00
Reply

Marsh Posté le 25-07-2012 à 14:31:12    

ok merci en tout cas... je vais essaye de copier le fichier
 
EDIT: Ca fonctionne du moins,  
 

Code :
  1. /etc/bind# named-checkconf -z
  2. zone entreprise.local/IN: loaded serial 2
  3. zone localhost/IN: loaded serial 2
  4. zone 127.in-addr.arpa/IN: loaded serial 1
  5. zone 0.in-addr.arpa/IN: loaded serial 1
  6. zone 255.in-addr.arpa/IN: loaded serial 1


 
Un nslookup aussi
 

Code :
  1. nslookup UX0000123456
  2. Server:         192.168.60.251
  3. Address:        192.168.60.251#53
  4. Name:   uX0000123456.entreprise.local
  5. Address: 192.168.60.253


 
mais depuis IPhone j'ai toujours impossible d'afficher la page (je rappel avec l'adresse ip ca fonctionne). J'ai bien en DNS le serveurdns


Message édité par PsYKrO_Fred le 25-07-2012 à 14:46:48
Reply

Marsh Posté le 25-07-2012 à 15:43:29    

Bon, je ne sais pas comment j'ai tellement fait de manip.
Bref j'arrive à avoir ma page. Je m'authentifie mais maintenant je n'arrive pas à afficher google... je pense qu'il faut que je mette les redirection dans un fichier.  
 
Je tiens au jus.
 
EDIT :
 
Je viens de vérifier :
 
Et j'ai déjà semble t'il :
 

Code :
  1. forwarders {
  2.                 192.168.60.253;
  3.          };


 
D'où cela peut venir?


Message édité par PsYKrO_Fred le 25-07-2012 à 15:50:57
Reply

Marsh Posté le 25-07-2012 à 16:16:39    

Donc dans un premier temps j’imagine que ton forwarders est l'adresse ip de ton "vrai" DNS. Donc essaye dans un premier temps à partir de ton serveur dns debian de pinger l'adresse du forwarder ^^ et dans un deuxieme temps l'adresse 8.8.8.8 qui est le dns de google !

Reply

Marsh Posté le 25-07-2012 à 17:11:53    

Depuis mon serveur debian je ping tout même google.fr
Mais depuis les postes clients rien.
 
EDIT : Depuis mon poste client. avec comme DNS ma debian, il arrive à récupérer l'adresse ip de google.fr mais j'ai pas le retour de mon ping (comme la requête DNS était bonne mais que mon firewall bloque quelque chose... je vais creuser par là...


Message édité par PsYKrO_Fred le 25-07-2012 à 17:28:22
Reply

Marsh Posté le 26-07-2012 à 08:13:36    

Oui car la sans les "machines" sous les mains je peux difficilement t'aider mais pense à nous dire ce qui n'allait pas c'est toujours bien de savoir le f in mot de l'histoire :)

Reply

Marsh Posté le 26-07-2012 à 08:15:14    

Je vais essayer.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed