La Fibre

Télécom => Logiciels et systèmes d'exploitation => Linux Linux (usage serveur) => Discussion démarrée par: jeremyp3 le 23 juillet 2023 à 20:36:38

Titre: génération de ptr IPV6 à la volée avec le AAAA associé
Posté par: jeremyp3 le 23 juillet 2023 à 20:36:38
Bonjour,

Disposant d'un bloque IPV6, j'aimerai pouvoir générer un PTR  à la volé en fonction de l'ipv6 fourni au dns, un peu comme le fait SFR pour ses IP.
 
par exemple:
$ dig +short -x 2a02:842b:9999:8888:ddff:ef65:cb45:1
2a02-842b-9999-8888-ddff-ef65-cb45-0001.rev.sfr.net.

$ dig +short @nsrev00.dns.sfr.net 2a02-842b-9999-8888-ddff-ef65-cb45-0001.rev.sfr.net IN AAAA
2a02:842b:9999:8888:ddff:ef65:cb45:1

du coup on retrouve bien l'ip dans les deux sens,  mais je suppose que c'est fait à la volée, puisque n'importe quel IP résout.

après une petite recherche, j'ai trouver quelque chose qui fait 50% de ce que je cherche:
https://blog.veloc1ty.de/2019/08/29/creating-ipv6-ptr-on-the-fly/

il s'agit d'un plugin pour le serveur dns coredns, que je ne connaissais pas personnellement.

conaissez vous autre chose ayant cette possibilité ? j'utilise actuellement bind comme serveur dns pour mes ips.

Merci pour du pointage, si vous en avez.
Titre: génération de ptr IPV6 à la volée avec le AAAA associé
Posté par: cali le 23 juillet 2023 à 23:56:07
C'est une mauvaise idée car ça augmente l'exposition aux DoS.
Titre: génération de ptr IPV6 à la volée avec le AAAA associé
Posté par: Symbol le 23 juillet 2023 à 23:59:03
Knot DNS, Synthrecord.
https://www.knot-dns.cz/docs/3.2/html/modules.html#synthrecord-automatic-forward-reverse-records (https://www.knot-dns.cz/docs/3.2/html/modules.html#synthrecord-automatic-forward-reverse-records)

PowerDNS Authoritative, LUA reverse records
https://doc.powerdns.com/authoritative/lua-records/functions.html#reverse-dns-functions (https://doc.powerdns.com/authoritative/lua-records/functions.html#reverse-dns-functions)

Les clauses $GENERATE de BIND ne créent pas d'enregistrements à la volée, mais pré-génèrent les enregistrements en mémoire au démarrage (ce qui est très différent).
Titre: génération de ptr IPV6 à la volée avec le AAAA associé
Posté par: bolemo le 24 juillet 2023 à 01:44:13
Avec bind, si tu autorise la mise-à-jour des records via nsupdate, tu peux faire un script maison de ce genre (lancé par un cron job régulièrement) :
#!/bin/sh

DUF='/tmp/rdns6.dnsupdate'
DUF2='/tmp/rdns6.dnsupdate2'
DB='/opt/bolemo/var/rdns6.db'
DBT='/tmp/rdns6.dbtmp'

touch $DB
rm -f $DBT

:> $DUF
:> $DUF2
#echo 'debug' >> $DUF
#echo 'debug' >> $DUF2

echo 'server ns.tondomaine.com' >> $DUF
echo 'server ns1.tondomaine.com' >> $DUF2

ip -6 neigh | awk '
  BEGIN {
    while ((getline dbl < "'$DB'") > 0) l[dbl]=1
    close ("'$DB'")
    chg=0
  }
  index($1,"prefixeipv6")==1 {if (l[$1]==1) {l[$1]=2} else {l[$1]=3}}
  END {
    for (ip in l) {
      "ipv6calc -qa " ip | getline arpa
      "echo \""ip"\" | md5sum - | cut -f1 -d\" \"" | getline ptr
      if (l[ip]==1) {
        printf ("update delete %s PTR\n",arpa) >> "'$DUF'"
        printf ("update delete %s.rev.tondomaine.com AAAA\n",ptr) >> "'$DUF2'"
        printf ("DELETING %s %s\n",ptr,arpa)
        chg=1
        continue
      }
      if (l[ip]==3) {
        printf ("update add %s 120 PTR %s.rev.tondomaine.com\n",arpa, ptr) >> "'$DUF'"
        printf ("update add %s.rev.tondomaine.com 120 AAAA %s\n",ptr,ip) >> "'$DUF2'"
        printf ("ADDING %s %s\n",ptr,arpa)
        chg=1
      } else {
        printf ("KEEPING %s %s\n",ptr,arpa)
      }
      print ip >> "'$DBT'"
    }
    if (chg==1) system("touch '$DBT'")
  }
'

echo 'send' >> $DUF
echo 'send' >> $DUF2

if [ -e "$DBT" ]; then
  cat $DUF
  nsupdate $DUF
  cat $DUF2
  nsupdate $DUF2
  [ -s $DBT ] && mv -f $DBT $DB || rm -f $DBT
fi

rm -rf $DUF
rm -rf $DUF2
Titre: génération de ptr IPV6 à la volée avec le AAAA associé
Posté par: kgersen le 24 juillet 2023 à 09:53:53
C'est une mauvaise idée car ça augmente l'exposition aux DoS.

t'as un exemple ?

si c'est toujours dynamique, sans caching, ca ne peut saturer la mémoire du serveur dns d'origine.

Apres si tu pense a de l'attaque par amplification, le taux de croissance entre la taille de la requête (l'ipv6 litéral) et la taille de la réponse (le reverse) ne me semble pas assez grand pour justifier son utilisation.