Projet

Général

Profil

Actions

Wiki » Historique » Révision 5

« Précédent | Révision 5/35 (diff) | Suivant »
sacha, 26/12/2022 00:27


DNS récursif Ouvert DoH DoT & HA

Aquilenet propose deux serveurs DNS ouverts cf https://www.aquilenet.fr/services/dns/
On a mis aussi un DNS ouvert sur l'IP 45.67.81.23 car facile à retenir, avec l'adresse de dns.aquilenet.fr (voir http://dns.aquilenet.fr) . Nous en avons profité pour ajouter DoH et DoT et d'avoir cette adresse en IP Virtuelle partagée entre Gaia et Hades.
Cette IP virtuelle est portée par Keepalived sur Hades le primaire et Gaia le secondaire. Si le démon Keepalived est arrêté sur Hades, l'ip bascule sur Gaia. Si on redémarre le démon sur Hades, ce dernier reprend l'IP: pratique pour les mises à jour, le service continue à fonctionner.

Configurations communes à Gaia et Hades

Apache2

  • /etc/apache2/sites-enabled/dns.aquilenet.fr.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@aquilenet.fr
        ServerName dns.aquilenet.fr
        DocumentRoot /srv/www/dns.aquilenet.fr 
    
        ErrorLog ${APACHE_LOG_DIR}/dns.aqln.error.log 
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/dns.aqln.access.log combined
    
        Alias /.well-known/acme-challenge /srv/letsencrypt/challenges/dns.aquilenet.fr
        <Directory /srv/letsencrypt/challenges/dns.aquilenet.fr>
            Require all granted
        </Directory>
        <Directory />
                Options FollowSymLinks 
                AllowOverride None
                Require all granted
        </Directory>
    </VirtualHost>
    

Bind9

BIND 9.17.10 implémente DoH, au jour de l'installation il n'est disponible que dans les backports bullseye (A changer quand il sera dans main).

  • /etc/bind/named.conf.options

Dans la catégorie "options {"

        listen-on-v6 { 2a0c:e300::101; };
        listen-on { 185.233.100.101; 45.67.81.23; };
        # DOH
        listen-on port 443 tls local-tls http default { 45.67.81.23; };
        # DoT
        listen-on port 853 tls local-tls { 45.67.81.23; };
        recursion yes;
        dnssec-validation auto;
# DoH DoT
tls local-tls {
    key-file "/etc/letsencrypt/live/dns.aquilenet.fr/privkey.pem";
    cert-file "/etc/letsencrypt/live/dns.aquilenet.fr/fullchain.pem";
    dhparam-file "/etc/bind/dhparam.pem";
    protocols { TLSv1.2; TLSv1.3; };
    prefer-server-ciphers yes;
    session-tickets no;
};

AppArmor

  • /etc/apparmor.d/local/usr.sbin.named
/etc/letsencrypt/** r,

appliquer avec: apparmor_parser -r /etc/apparmor.d/usr.sbin.named

Configurations spécifiques

Génération du certificat SSL sur Hades

certbot --apache --agree-tos --email sysop@aquilenet.fr -d dns.aquilenet.fr
chgrp bind /etc/letsencrypt/live/dns.aquilenet.fr/privkey.pem
chmod 0640 /etc/letsencrypt/live/dns.aquilenet.fr/privkey.pem
openssl dhparam -out /etc/bind/dhparam.pem 4096

Copie du certificat sur gaia

  • /etc/letsencrypt/renewal-hooks/post/sync-cert.sh ~~~ #!/bin/bash rsync -aPHSA /etc/letsencrypt/archive/dns.aquilenet.fr gaia:/etc/letsencrypt/archive/ ~~~

Keepalived

Hades Master

  • /etc/keepalived/keepalived.conf
global_defs {
  notification_email {
    sysop@aquilenet.fr
  }
  notification_email_from vrrp-dns@aquilenet.fr.fr
  smtp_server localhost
  smtp_connect_timeout 30
}

vrrp_instance DNS {
  state MASTER 
  interface eth0
  virtual_router_id 101 
  priority 100
  advert_int 2
  smtp_alert
  unicast_src_ip 185.233.100.16 
  unicast_peer {
    185.233.100.2
  }
  virtual_ipaddress {
    45.67.81.23/32 dev eth1 scope global # VIP
  }
}

Gaia Slave

  • /etc/keepalived/keepalived.conf
global_defs {
  notification_email {
    sysop@aquilenet.fr
  }
  notification_email_from vrrp-dns@aquilenet.fr.fr
  smtp_server localhost
  smtp_connect_timeout 30
}

vrrp_instance DNS {
  state BACKUP
  interface eth0
  virtual_router_id 101
  priority 50
  advert_int 2
  smtp_alert
  unicast_src_ip 185.233.100.2
  unicast_peer {
    185.233.100.16
  }
  virtual_ipaddress {
    45.67.81.23/32 dev eth1 scope global # VIP
  }
}

Validation

  • test du service

    dig +https +short x.org @45.67.81.23      
    131.252.210.176
    dig +tls +short x.org @45.67.81.23      
    131.252.210.176
    
  • bascule keepalived

Mis à jour par sacha il y a presque 2 ans · 5 révisions