[Python-es] Obtener los registros DNS RRSIG
Alejandro Acosta
alejandroacostaalamo en gmail.com
Mar Ago 25 08:24:38 EDT 2020
Hola lista, muy buenos días,
Espero puedan ayudarme.
Quiero obtener los registro RRSIG de algunos dominios pero no lo
logro a la perfección. ¿Cual es el problema?, la librería dnspython no
me muestra todos los rrsig.
Ejemplo, utilicemos el dominio ietf.org:
Vía dig:
;; ANSWER SECTION:
ietf.org. 1787 IN RRSIG SOA 5 2 1800 20210817174325
20200817164614 40452 ietf.org.
QoubcalPlW2mj1rkqtbniLW86IXOAA9oSM5C1Eqdfr8py2FfL+84Byi0
xryrXk3d7tbgUIRcDFoRVZ3lxQvOM9gevZZckgoCw4/Tm23Lo/4g7yF4
t7M7CdbYuJ10y+flnN4mR+NVK93FF/z1+an/IaiB2F4QX9JrHln57KTv
WHRN7J0DoxNizicbfChfCwfJPAAVki6FTgGy1FCrHdf8YdPqL6uh/hLt
K4Cm/ZG/S6U+wIBY3q3byhl99Q2IeuRXtDBv/6uZhsP0x9Jxnhr6454x
6CyJMA8sDLNaT+iJX6f6qOAFTjqDDJ6FSwpgnHfn5Hc5CQtoNA0lsxDb h+dr+g==
ietf.org. 1787 IN RRSIG NS 5 2 1800 20210817174510
20200817164614 40452 ietf.org.
OVO1QWS/WmldpK0Ir7L/ALWQn/8ONP3PSp66/Uv0WlS5rugBoxSbOlug
8c3CkRJTAzfDXGnUTg80k0o4n9G+Bfmg00dv3tIVc+fpmQpie9BoRFVo
FkZ85+a0GNZYfdgKuRZDgtnhtJNSN8MHv1PRDZqG+TilvIfOLuu7q1EN
9aJ5J/rpu8LwrJ+qYNgvxxu2UPd4JcQ4SFfyVawZSzfF5gIxhPozVGv2
3mERB3sgEB8H1IJDlcdXjU1lWT5FVDufGX149UPGUNui30ra+FHYtjIS
mkYNpjAJiYv6MY8h+jL7XIE61hhXlzwmr/Ygx3XPk7B4PkUehfWtaM7Y 6AWcCw==
ietf.org. 1787 IN RRSIG A 5 2 1800 20210817174543
20200817164614 40452 ietf.org.
MlrNAlhBg4euHhdWL76IFZnTiPdiJxPG3eIo7sa6FfqO6v7jRKjLeyoF
s5WO+G1D+B03UfLTpZ9vsil2IXp0+QqW2d305qY7erLbIytPEMaqT237
yOw+i4aONpQwOU91sebxXGObwDwMcfBauDMoC5X4yXzQ3JalN3l4xnWN
62h3FsxQQzRHRvFnCiJmmidlmL0o/8kish1dZN1kC1ZpXYiydPNEVCZ4
R+0wLBY5EU6IJQkWWXZdYpJeUFHovpGqdsB+5gFBZoTi96b5wagGBgzT
D+Ja3plUSRHuyba/7p1gdg+dK85zNYKJul2UYCbE5FkeLuUalJLT2hi2 eRGpfA==
ietf.org. 1787 IN RRSIG MX 5 2 1800 20210817174547
20200817164614 40452 ietf.org.
KMUpIGlAmw5uSQbhTWDLLpUqE34k0Aa5UsHkigHnm8zKNbusXh2mf27L
dQTCIToYRsTq8JyjTqBIpaCY15IQEDWxq8hVqEgGXd6/Ilz/p+wHZoVd
J2h8VETOZvwcGoEvImItedT33Z5lQpCxgTdHGd9clt98kFTqlXNF3Bu7
5JSddshmK8W2aFazUyfsHmxJwo/TwOZ521YoQJEbS99C/+O0qobZEdZd
5Uyh5rWtTh3hHtF99g24Bp4Ym1tmSVYVO2bzLjEfauLO+PMn6bYn4Ilq
8pVmRoSqfawXsy95sXRSi7VYP12H9/C1OhbwWvKquhSmm3vin0h/Vz8b 5JmUQw==
ietf.org. 1787 IN RRSIG TXT 5 2 1800 20210817174548
20200817164614 40452 ietf.org.
TCoovJ+KIGyn6WAQlnLSUI2Y3o/SEI49R31yNiljE2aOiNlpycjFkP5V
Z1QV9j7kinSopVgIVNLuVLGKzJPwQwxsCOBsI1PrjslkRHEHfbQELCws
tLratFwEvJVBFGZTZgzdeAIi5h7myr+kFipm+h7WsBkW9u00fYjJB18a
Hsiguw2HUfdaPtKl3TClDetHhZnOe5Wtqc1AR6RMnwE2+P3HS5nFNYO6
Cxa3VNt14JieltUP/HG7W3LXAapvNL5e7R0gmIsIE/FZ6xBD7IA06dwK
hC/6/9bNAMFZPGF4+luND2KBYd6zNnEPUbUDPtBv6/Dr+k6IahqkcFRz 8R++Wg==
ietf.org. 1787 IN RRSIG AAAA 5 2 1800 20210817174604
20200817164614 40452 ietf.org.
e7HhqVt4SBkQRab12v7Msk+X8BU71rinUURIkloIpLrSNIgCWNOhQe8Z
lfpwNymkPiC0sc5vYdHVCq4qtS4CQRJBT64J8PaK7s/R6Kh/5GBhPykD
kx+4dBIrHSkPAZPRlst2L1H+2C3SfuXwYqcVo+hg4cY1sIywvo7Q6fe3
fDpGfyFZHZdxy4uIE8tM7L4lCbS8rQ+xgWRFj/ksQdN+WNT0r9Gs7N3Z
/yGcJt11Wlvvlr9/090qgqk9231EbiwiOrzCGSzS2hWlgpdfIJ9q7dPJ
Hagmg8WC5SF05Hu7o99UE7CfV8JK+KFVj9rrPGDxTw9fa1noIeKLtJNS m4p+nA==
ietf.org. 1787 IN RRSIG NSEC 5 2 1800 20210817174437
20200817164614 40452 ietf.org.
gO6O5uUxiwXGnK5itHzCkVoxnQdX4sWQMUI0HCg86E1+5UG15vJ0AEh7
JooHN+lqwbZ7U6aZQXW4k4bpYWhogAkxq8eaWhseN+I94P2Wc4tmlAk2
5x6da0m8qA70V2Hy25C+4ard9f1A2ViK/+Nh2pmr/OdK+EOIVZuof1FQ
tsUwHRuBUIh+inQwTtlFQH/2OBlbBpuv0MeWrO+oLmc5i+WoluCg9re9
sAXDkseu5xUmxwqculiUAL/IqGAdhQGBL+P/7xZ7V697lLNEMNYyF6/c
Z5I8D/Llr7Gd6j2oCbYs/Sj7sysMjOBhaiWdqosZrmFiChgrNxsrmnoW 0enu5g==
ietf.org. 1787 IN RRSIG DNSKEY 5 2 1800 20210817174257
20200817164614 45586 ietf.org.
KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkEei2qC0mTKstlT0JZhxb33omE
IxHlIbuZZt+ZCbkwAAv4uXpJcJYdV6HezC61fn8spwctYE11AP2XPLxJ
Ydna2LCq5qE++wDksDkYyaqY+HqIxVfVeeNJQcAXhd4dT+TeqGkSSEMq
iorXAVPkxtW+U/B0hEapWc71MwYPRGxkReiuW99vICyLpKe1EBgTaW3H
6VJpEKK3vaY8M5C49R4768TtP6aWBnS/2g2bvphO/jFPlw0r7yBGrlZ4
lF95Ow021ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9IGqapwi+whZrDdrTF c+5NrQ==
ietf.org. 1787 IN RRSIG DNSKEY 5 2 1800 20210817174454
20200817164614 40452 ietf.org.
NUsyWRv4URiXZf920o5Hrd+gFXjoNig0MHXhFFy52mcOJSzM0RpCzs3k
4dqf7oYhdvF7ABVObar0iCJQSs51eU1IGpTDUIdlMVgPW8UeM8G5TW5A
0RTWEebel3eCPel7S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJg3Gd9aaC
tvEf+pb+xoABiu8eh0K2U4vURgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK
9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UOCOKJ1VgH98nNYPCqjfENtF80
nT+qwG8Od1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe2gy2j2Er1q/Vr60x tKH0SA==
ietf.org. 1787 IN RRSIG SPF 5 2 1800 20210817174534
20200817164614 40452 ietf.org.
erTXZQfOy0kNKh+ZaYJQJu6fs/dnaUlfaILRu5B+fTWhtQ/jKvRKLb6/
2WWXq0knDF9pIx2EIn2/tNwIpPntragmgv2yeM0vAF05/ZwoWab52VHM
vK0ekBPP0HZMUCEhqAWrhVG9qnOzcpIZ0KOrnheI3jcz9fdWLujtYE1t
vN591i4j+UNbp0Inob65GBUIXzPEhYZxXTireNcbUeAxf/Y2hGg4EMHw
41I+g+IfTAr1Ykat1AJ0MqcP/MAd+RKJW83absfLlGNp4E3HihulNvbi
TKcp/fsjUeoTQ6rIXQn+5D86Kv3kYVg93JuaY9RgPZqP9LaNmaa6obQq ejHl
Vía dnspython:
ietf.org. 1720 IN RRSIG DNSKEY 5 2 1800 20210817174257 20200817164614 45586 ietf.org. KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkE ei2qC0mTKstlT0JZhxb33omEIxHlIbuZ Zt+ZCbkwAAv4uXpJcJYdV6HezC61fn8s pwctYE11AP2XPLxJYdna2LCq5qE++wDk sDkYyaqY+HqIxVfVeeNJQcAXhd4dT+Te qGkSSEMqiorXAVPkxtW+U/B0hEapWc71 MwYPRGxkReiuW99vICyLpKe1EBgTaW3H 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/ 2g2bvphO/jFPlw0r7yBGrlZ4lF95Ow02 1ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9I Gqapwi+whZrDdrTFc+5NrQ==
ietf.org. 1720 IN RRSIG DNSKEY 5 2 1800 20210817174454 20200817164614 40452 ietf.org. NUsyWRv4URiXZf920o5Hrd+gFXjoNig0 MHXhFFy52mcOJSzM0RpCzs3k4dqf7oYh dvF7ABVObar0iCJQSs51eU1IGpTDUIdl MVgPW8UeM8G5TW5A0RTWEebel3eCPel7 S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJ g3Gd9aaCtvEf+pb+xoABiu8eh0K2U4vU RgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UO COKJ1VgH98nNYPCqjfENtF80nT+qwG8O d1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe 2gy2j2Er1q/Vr60xtKH0SA==
Miren la diferencia, vía dnspython solo son dos registros.
Si soy más simplista e intento:
import dns.resolver
answers = dns.resolver.query('ietf.org', ’RRSIG’)
for rdata in answers:
print(rdata)
No trae nada (que tendría lógica porque tecnicamente RRSIG no son
registros DNS).
El código que estoy usando (que no sirve) es:
import dns.flags
import dns.resolver
import dns.rdatatype
import dns.rdataclass
name_server = '8.8.8.8'
response='' #let's reset this
domain_name = FQDNorDOMAIN
rdtype = dns.rdatatype.DNSKEY
resolver = dns.resolver.Resolver()
resolver.use_edns(0,dns.flags.DO,4096)
resolver.nameservers = ([name_server])
try:
response = resolver.query(domain_name, rdtype, dns.rdataclass.IN,
True).response
answer=str(response).splitlines( )
for line in answer:
if 'RRSIG' in line: print (line)
except Exception:
print ('NX domain')
¿Que podría hacer para traer los registros RRSIG de los nombres de
dominio?
Muchas gracias,
Alejandro,
P.D. Ejecutar dig y parsearlo no es válido :-(.., sorry
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200825/fa9a12d3/attachment.html>
Más información sobre la lista de distribución Python-es