Login Logout

HowToOpenBSD/Unbound

Voici ce que doit contenir le fichier /var/unbound/etc/unbound.conf

server:
  # interface sur laquelle le daemon écoute
  interface: XX.XX.XX.XX
  interface: 127.0.0.1
  interface: ::1

  access-control: 0.0.0.0/0 refuse
  access-control: 127.0.0.0/8 allow
  # important, on précise qui pourra interroger le service
  access-control: XX.XX.XX.0/24 allow
  access-control: ::0/0 refuse
  access-control: ::1 allow

  hide-identity: yes
  hide-version: yes

  auto-trust-anchor-file: "/var/unbound/db/root.key"

On active unbound dans rc.conf.local et on démarre le daemon !

# rcctl enable unbound
# rcctl start unbound

Utiliser un serveur dns particulier pour une zone

On pourra forwarder certaines requêtes vers un serveur différent en rajoutant les directives ci-dessous :

forward-zone:
        name: "foo.local."
        forward-addr: 192.0.2.1
        forward-first: yes

Dans le cas présent, les requêtes concernent une zone locale, ainsi afin d’éviter une vérification DNSSEC pour ces dernières on ajoutera la directive suivante dans la configuration de unbound :

domain-insecure: "foo.local."

Rajouter / modifier un enregistrement DNS

Parfois on veut pouvoir modifier un enregistrement DNS, par exemple quand on a un VPN. On peut utiliser /etc/hosts pour les champs A mais pas pour les MX. On peut donc utiliser unbound pour mentir :

        local-zone: "example.com." typetransparent
        local-data: "example.com. IN MX 10 fakemx.example.com."
        local-data: "fakemx.example.com. IN A 192.168.1.3"

Configuration sur un routeur

Il NE faut PAS mettre une configuration de type

	interface: 0.0.0.0

car unbound ne va pas forcément répondre avec la bonne interface et on peut avoir des erreurs du type

$ dig @ipdurouteur
;; reply from unexpected source: autre.ip.du.routeur#53, expected ipdurouteur#53

Il faut lister explicitement toutes les interfaces sur lesquelles on souhaite qu’unbound écoute.