Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/09/2014, à 17:39

castrogne

[RESOLU] Bind9 non fonctionnel depuis l'extérieur

Bonjour,

J'aimerai faire de mon VPS un serveur DNS. J'ai suivi le tuto suivant (qui date un peu) : (impossible de mettre le lien, manque de droit désolé...)
http://blog.idneo.fr/configuration-dns- … nager-ovh/

Or je reste bloqué car lorsque je choisis "Ajouter un DNS Secondaire" dans mon interface OVH, et que je remplis le tout, j'ai l'erreur suivante :
"Une erreur est survenue lors de la demande d'ajout du domaine sur le DNS secondaire. (First we need to verify you are the owner of this domain. To do so, please add a TXT field on your DNS zone for the domain mondomaine.fr, with the subdomain 'ownercheck' and the following value: '123456789'. Once done and your zone reloaded, try again (you don't need to wait for DNS propagation).)"

Mes excuses, ce genre de question a été posé moult fois, mais je n'arrive pas à trouver de solution qui corrige mon problème, ou bien je suis perdu car c'est ma première manipulation de ce genre.

Voici ma configuration :
Fichier named.conf.options

root@vpsxxxxx:/etc/bind# cat named.conf.options
options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See [url]http://www.kb.cert.org/vuls/id/800113[/url]

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        // forwarders {
        //      0.0.0.0;
        // };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See [url]https://www.isc.org/bind-keys[/url]
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on { any; };
        allow-recursion { any;  };
        allow-query { any; };
};

Fichier  named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
include "/etc/bind/zones.mondomaine";

Fichier  zones.mondomaine

zone "mondomaine.fr"      {
        type master;
        file "/etc/bind/db.mondomaine.fr";
};
zone "z.y.x.w.in-addr.arpa" {
        type master;
        file "/etc/bind/db.135";
};

Fichier db.mondomaine.fr

$TTL    12H
$ORIGIN mondomaine.fr.
@       IN      SOA     vpsxxxxx.ovh.net. admin.mondomaine.fr. (
        2014091302      ; Serial
        8H              ; Refresh
        30M             ; Retry
        4W              ; Expire
        8H              ; Minimum TTL
)
                        IN      NS              vpsxxxxx.ovh.net.
                        IN      NS              sdns2.ovh.net.
                        IN      MX      10      mail.mondomaine.fr.
mondomaine.fr.      IN      A       W.X.Y.Z
ns                      IN      A       W.X.Y.Z
mail                    IN      A       W.X.Y.Z
www                     IN      CNAME           mondomaine.fr.
ftp                     IN      CNAME           mondomaine.fr.
ownercheck              3600    TXT             "198f4bfc"

Fichier db.135

;
; BIND reverse data file for local loopback interface
;
$TTL    12H
@       IN      SOA     vpsxxxxx.ovh.net. admin.mondomaine.fr. (
        2014091302      ; Serial
        8H              ; Refresh
        30M             ; Retry
        3W              ; Expire
        8H              ; Minimum TTL
)
        IN      NS      vpsxxxxx.ovh.net.
        IN      NS      sdns2.ovh.net.
        IN      PTR     mondomaine.fr.

Iptables :

Chain INPUT (policy DROP)
...
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain

Chain FORWARD (policy ACCEPT)
...

Chain OUTPUT (policy ACCEPT)
....
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain

Tests fait depuis le serveur:

root@vpsxxxxx:/etc/bind# nslookup mondomaine.fr.
Server:         W.X.Y.Z
Address:        W.X.Y.Z#53

Name:   mondomaine.fr
Address: W.X.Y.Z
root@vpsxxxxx:/etc/bind# host ns.mondomaine.fr
ns.mondomaine.fr has address w.x.y.z
root@vpsxxxxx:/etc/bind# dig TXT @vpsxxxxx.ovh.net ownercheck.mondomaine.fr

; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> TXT @vpsxxxxx.ovh.net ownercheck.mondomaine.fr
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37813
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ownercheck.mondomaine.fr.  IN      TXT

;; ANSWER SECTION:
ownercheck.mondomaine.fr. 3600 IN   TXT     "198f4bfc"

;; AUTHORITY SECTION:
mondomaine.fr.      43200   IN      NS      vpsxxxxx.ovh.net.
mondomaine.fr.      43200   IN      NS      sdns2.ovh.net.

;; Query time: 0 msec
;; SERVER: w.x.y.z#53(w.x.y.z)
;; WHEN: Sat Sep 13 18:34:15 CEST 2014
;; MSG SIZE  rcvd: 128
root@vpsxxxxx:/etc/bind# ping ns.mondomaine.fr
PING ns.mondomaine.fr (w.x.y.z) 56(84) bytes of data.
64 bytes from vpsxxxxx.ovh.net (w.x.y.z): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from vpsxxxxx.ovh.net (w.x.y.z): icmp_seq=2 ttl=64 time=0.067 ms

Bien entendu, rien de tout cela ne marche depuis l'extérieur du serveur... Qu'ai-je loupé?

Dernière modification par castrogne (Le 17/09/2014, à 19:58)

Hors ligne

#2 Le 16/09/2014, à 13:44

bruno

Re : [RESOLU] Bind9 non fonctionnel depuis l'extérieur

Bonjour,

Or je reste bloqué car lorsque je choisis "Ajouter un DNS Secondaire"

et dans ta configuration il y a :

        type master;

Tu ne vois pas comme une contradiction ?

Hors ligne

#3 Le 16/09/2014, à 20:16

castrogne

Re : [RESOLU] Bind9 non fonctionnel depuis l'extérieur

Bonjour,

Merci pour la réponse.

Comme je le disais, c'est la première fois que je fais la manip. Et effectivement, ça me semble étrange, mais j'ai suivi le tuto qui parle bien de DNS secondaire au début, puis "type master;"

Quoi qu'il en soit, c'est bien un master que je souhaite faire. J'ai également déclaré le serveur comme DNS du nom de domaine, je viens d'avoir la confirmation, mais pas mieux. Le problème me semble de toute façon venir de la connexion à ma machine, qui semble rejetée par bind9.

Voici d'ailleurs un log dans /var/log/messages, en réponse au dig depuis une machine extérieure :
Sep 16 20:12:31 vps55883 kernel: [5336855.933899] paquet IPv4 inattendu IN=venet0 OUT= MAC= SRC=monip DST=W.X.Y.Z LEN=76 TOS=0x00 PREC=0x00 TTL=56 ID=25780 PROTO=UDP SPT=14734 DPT=53 LEN=56

étrange comme log je trouve

Hors ligne

#4 Le 16/09/2014, à 21:08

sechanbask

Re : [RESOLU] Bind9 non fonctionnel depuis l'extérieur

Bonjour,

Est-ce que tu autorises les requêtes extérieures ?

moi j'ai sur le fichier /etc/bind/named.conf.options

allow-query {
        any;
};

Hors ligne

#5 Le 16/09/2014, à 21:42

castrogne

Re : [RESOLU] Bind9 non fonctionnel depuis l'extérieur

Merci,

Je viens d'ajouter la ligne et de relancer bind9 : même résultat depuis l'exterieur. :

Sur la machine distante :

$ dig TXT @vpsxxxxx.ovh.net ownercheck.mondomaine.fr

; <<>> DiG 9.8.1-P1 <<>> TXT @vpsxxxxx.ovh.net ownercheck.mondomaine.fr
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

sur le serveur, log messages :

Sep 16 21:39:37 vps55883 kernel: [5342082.457503] paquet IPv4 inattendu IN=venet0 OUT= MAC= SRC=ipclient DST=W.X.Y.Z LEN=531 TOS=0x00 PREC=0x00 TTL=113 ID=23201 DF PROTO=UDP SPT=53 DPT=39628 LEN=511

J'ai mis à jour mon names.conf.option du premier post en ajoutant ta ligne. Selon ce site, de toute façon, c'est la valeur par défaut :
http://www.zytrax.com/books/dns/ch7/que … llow-query

Retour à la case départ...

Hors ligne

#6 Le 17/09/2014, à 09:44

bruno

Re : [RESOLU] Bind9 non fonctionnel depuis l'extérieur

Ce que tu vois dans tes logs ressemble bien à un paquet rejeté par iptables.
Commence par désactiver ton pare-feu avant de refaire un test depuis l'extérieur.

Hors ligne

#7 Le 17/09/2014, à 20:03

castrogne

Re : [RESOLU] Bind9 non fonctionnel depuis l'extérieur

Salut,

Alors effectivement, c'était bien iptables... J'avais déjà pensé avoir écarté cette solution car j'avais ajouté la commande suivante :

iptables -P INPUT ACCEPT

Or cela ne marchait toujours pas, J'ai fait aujourd'hui un script pour totalement vider iptables :

#!/bin/sh
/sbin/iptables -t filter -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -t raw -F
/sbin/iptables -t filter -P INPUT ACCEPT
/sbin/iptables -t filter -P OUTPUT ACCEPT
/sbin/iptables -t filter -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P POSTROUTING ACCEPT
/sbin/iptables -t mangle -P FORWARD ACCEPT
/sbin/iptables -t mangle -P INPUT ACCEPT
/sbin/iptables -t raw -P OUTPUT ACCEPT
/sbin/iptables -t raw -P PREROUTING ACCEPT

Une fois ceci réalisé, j'ai pu faire mon dig distant sans souci. J'ai donc analysé mon script iptables et j'ai remarqué que j'avais plassé mes règles du port 53 après les règles suivantes: 

-A INPUT -j LOG --log-prefix "paquet IPv4 inattendu "
-A INPUT -j REJECT --reject-with icmp-port-unreachable

Donc tout ce qui suit était rejeté, avec le fameux message "paquet IPV4 inattendu"... mes règles étaient inutiles, tout comme ma commande mettant par défaut accept. J'ai donc redéplacé mes règles de rejet en fin de script, et maintenant tout fonctionne, du point de vue de mon serveur en tout cas. Le reste est du ressort de la configuration OVH, je ne vous embêterait donc pas avec ça smile.

Merci!

Hors ligne