Quantcast
Channel: fred – memo-linux.com
Viewing all articles
Browse latest Browse all 515

Debian : Installer le serveur DNS Unbound

$
0
0

Un petit mémo pour installer et configurer simplement un serveur DNS Unbound, pour éviter d’utiliser ceux des FAI ou autres DNS menteurs.

Dans ce mini tutoriel, je vais installer Unbound sur mon VPS ou se trouve mon serveur OpenVPN, pour que ce dernier configure ma machine client avec ce serveur DNS.

unbound-openvpn

Pour ceux qui n’ont pas de VPS, j’avais fais un article qui explique comment installer Unbound sur son PC Ubuntu : https://memo-linux.com/ubuntu-serveur-dns-unbound/

Sinon, j’avais aussi écris un autre article avec DNSMasq et DNSCrypt, pour chiffrer les requêtes DNS : https://memo-linux.com/dnscrypt-dnsmasq-sur-archlinuxmanjaro-chiffrez-toutes-les-requetes-dns/

Installer Unbound sur Debian Jessie

Ici le serveur DNS qui sera installé aura pour fonction d’être récursif et faire du cache. Pour faire simple, si le serveur n’arrive pas à résoudre le nom FQDN, il va demander aux serveurs racines et compléter son cache, sinon le serveur répond à partir de son cache.

Attention, il faut absolument sécuriser le serveur pour qu’il ne soit pas ouvert à tout Internet !

  • Installer le paquet Unbound :
apt install unbond
  • Téléchargement de la liste des serveurs DNS racines :
  • cd /var/lib/unbound/ && wget ftp://ftp.internic.net/domain/named.cache
  • Mise en place de cette liste pour le serveur Unbound :
  • mv named.cache root.hints && chown unbound:unbound root.hints

    Fichier de configuration du serveur DNS Unbound

    Mon fichier de configuration :

    server:
    statistics-interval: 0
    extended-statistics: yes
    statistics-cumulative: yes
    verbosity: 3
    interface: 127.0.0.1
    interface: 10.8.0.1 ## la passerelle VPN
    port: 53
    do-ip4: yes
    do-ip6: no
    do-udp: yes
    do-tcp: no
    access-control: 127.0.0.0/8 allow ## j'autorise mon serveur
    access-control: 10.8.0.0/24 allow ## j'autorise le réseau établie avec mon OpenVPN
    access-control: 0.0.0.0/0 refuse ## j'interdis tout le reste de l'Internet !
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    root-hints: "/var/lib/unbound/root.hints"
    hide-identity: yes
    hide-version: yes
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: yes
    cache-min-ttl: 3600
    cache-max-ttl: 86400
    prefetch: yes
    num-threads: 6
    msg-cache-slabs: 16
    rrset-cache-slabs: 16
    infra-cache-slabs: 16
    key-cache-slabs: 16
    rrset-cache-size: 256m
    msg-cache-size: 128m
    so-rcvbuf: 1m
    unwanted-reply-threshold: 10000
    do-not-query-localhost: yes
    val-clean-additional: yes
    ##je bloque cetaines pubs
    local-zone: "doubleclick.net" redirect
    local-data: "doubleclick.net A 127.0.0.1"
    local-zone: "googlesyndication.com" redirect
    local-data: "googlesyndication.com A 127.0.0.1"
    local-zone: "googleadservices.com" redirect
    local-data: "googleadservices.com A 127.0.0.1"
    local-zone: "google-analytics.com" redirect
    local-data: "google-analytics.com A 127.0.0.1"
    local-zone: "ads.youtube.com" redirect
    local-data: "ads.youtube.com A 127.0.0.1"
    local-zone: "adserver.yahoo.com" redirect
    local-data: "adserver.yahoo.com A 127.0.0.1"
    local-zone: "ask.com" redirect
    local-data: "ask.com A 127.0.0.1"
    use-syslog: yes
    logfile: /var/log/unbound.log
    harden-dnssec-stripped: yes
    cache-min-ttl: 3600
    cache-max-ttl: 86400
    prefetch: yes
    prefetch-keys: yes
    

    Modifier le fichier /etc/resolv.conf :

    nano /etc/resolv.conf
    nameserver 127.0.0.1

    Tests du serveur Unbound

    Relmance du service Unbound :

    systemctl restart unbound

    Vérifier le status :

    systemctl status unbound

    Vérifier la résolution de nom à partir du serveur :

    drill @127.0.0.1 memo-linux.com
    ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 16398
    ;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    ;; QUESTION SECTION:
    ;; memo-linux.com.	IN	A
    
    ;; ANSWER SECTION:
    memo-linux.com.	3600	IN	A	46.105.44.210
    
    ;; AUTHORITY SECTION:
    
    ;; ADDITIONAL SECTION:
    
    ;; Query time: 53 msec
    ;; SERVER: 127.0.0.1
    ;; WHEN: Mon Mar 14 11:22:34 2016
    ;; MSG SIZE  rcvd: 48
    

    La résolution fonctionne et le temps de réponse est de 53 millisecondes, si on relance la commande le temps de réponse passe à 0 milliseconde.
    Test de résolution de nom à partir un poste client connecté au VPN :

    drill @10.8.0.1 memo-linux.com
    ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 3390
    ;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    ;; QUESTION SECTION:
    ;; memo-linux.com.	IN	A
    
    ;; ANSWER SECTION:
    memo-linux.com.	3561	IN	A	46.105.44.210
    
    ;; AUTHORITY SECTION:
    
    ;; ADDITIONAL SECTION:
    
    ;; Query time: 55 msec
    ;; SERVER: 10.8.0.1
    ;; WHEN: Mon Mar 14 12:26:50 2016
    ;; MSG SIZE  rcvd: 48
    

    La résolution de nom se fait bien à partir du serveur DNS 10.8.0.1 , donc ça fonctionne parfaitement et à moi l’accès à l’Internet sans censure ! 😎

    Ressource

    Je me suis aidé de cet excellent tutoriel : http://homeserver-diy.net/wiki/index.php?title=Installer_et_configurer_son_serveur_DNS_connect%C3%A9_aux_serveurs_root_avec_Unbound


    Viewing all articles
    Browse latest Browse all 515

    Trending Articles