Projet

Général

Profil

Actions

Wiki » Historique » Révision 3

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


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 aussi sur l'IP 45.67.81.23 car facile à retenir, c'est 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.

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
  }
}

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