Projet

Général

Profil

Wiki » Historique » Révision 3

Révision 2 (sacha, 25/12/2022 23:48) → Révision 3/35 (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](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> 
 ~~~ 

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

 ~~~