Projet

Général

Profil

Wiki » Historique » Révision 2

Révision 1 (sacha, 25/12/2022 23:44) → Révision 2/35 (sacha, 25/12/2022 23:48)

# DNS récursif Ouvert DoH DoT & HA 

 Aquilenet propose deux serveurs DNS ouverts cf https://www.aquilenet.fr/services/dns/ 
 On a mis 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](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. 


 ## 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> 
 ~~~ 

 ## Génération du certificat SSL 

 ~~~ 
 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/ 
 ~~~ 

 ## 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; }; 
     ciphers "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256"; 
     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`