La Fibre
Télécom => Logiciels et systèmes d'exploitation => Linux (usage serveur) => Discussion démarrée 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.
-
C'est une mauvaise idée car ça augmente l'exposition aux DoS.
-
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).
-
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
-
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.