Category Archives: diverse

desert dancer

desert dancer

“In your light I learned how to love. In your beauty I found poetry. You dance inside my heart where no one else can see you.”

Filmul mi-a adus aminte de cand citeam despre Shiraz si Hafez: “Iranians have two books in their homes: the Qur’an and Hafez. One is read, the other is not”.

scriptul

Ziceam in postul de mai devreme ca io stiu scripting pentru basic stuff, dar gasii o solutie care pare sa faca ce trebuie:

#!/bin/bash
let j=0
let t=1
let s=20
let k=0
p=(`echo {a..z}{a..z}{a..z}`)
for c in `seq 0 62`; do
 for i in `seq 0 4 255`; do
  ip tunnel add g${p[$c]}$t mode gre local 10.15.1.2 remote 10.16.1.2 ttl 255 key 1$k$c$i
  ip addr add 10.$s.0.$[$i+1]/30 peer 10.$s.0.$[$i+2]/30 dev g${p[$c]}$t
  ip link set dev g${p[$c]}$t up
 j=$[$j+1]
 c=$[$c+1]
 done
let j=0
t=$[$t+1]
s=$[$s+1]
k=$[$k+1]
done

La rulare (daca adaug echo in fata comenzilor de iproute2) zice asa:

sh s | grep key | uniq | wc -l
    4032

Unde s este numele scriptului. Logic, nu? :))

Si cheile sunt unice, ca la asta imi era tarsala sa nu se incalece pe undeva:

sh s | grep key | cut -d" " -f 14 | uniq | wc -l
    4032

Posibil BUG:

Din motive care imi scapa, din cand in cand, cand vrea sa adauge un tunel, kernelul intoarce ca nu poate adauga gre0 desi scriptul incearca cu totul alt nume. Se intampla cam de 5 ori la 4023 de iteratii si drept urmare adauga doar 4027 de tunele (ceea ce oricum este mai mult decat nevoie pe o singura masina)

Rulat cu set -x, outputul arata asa cand ii da cu virgula:

+ j=17
+ c=61
+ for i in '`seq 0 4 255`'
+ ip tunnel add gacj45 mode gre local 10.15.1.2 remote 10.16.1.2 ttl 255 key 1446168
add tunnel "gre0" failed: File exists
+ ip addr add 10.64.0.69/30 peer 10.64.0.70/30 dev gacj45
Cannot find device "gacj45"
+ ip link set dev gacj45 up
Cannot find device "gacj45"

N-am nici o idee de ce face asta, ca pare totul ok ca si comenzi date. Se strica de la ip tunnel add si normal ca restul de comenzi nu merg ca numele ala de cap de tunel nu exista.

Si ca sa sterg turma de tunele, ii dau in cap cu asta:

for i in `ip a l | grep NONE | cut -d" " -f2 | cut -d"@" -f1`; do ip tunnel del $i; done

Now beware of my newly acquired mad scripting skillz :))

“internet” paralel (3)

Una din chestiile la care ma gandeam cu ideaa mea este scalabilitatea tunelelor GRE, in sensul de cate se pot termina pe o masina normala.

Asa ca m-am apucat de treaba:

[gw-a] <---> [router] <---> [gw-b]
  • gw-a:
    • eth0: 10.15.1.2/24
  • gw-b:
    • eth0: 10.16.1.2/24
  • router:
    • eth0: 10.15.1.1/24
    • eth1: 10.16.1.1/24

Fiecare tunel are asociate adrese dintr-un /30 si are si cheie setata. Cand se foloseste GRE cu cheie, cheia este folosita la identificarea precisa a traficului in cazul in care ai mai multe tunele cu aceeasi masina sau chiar si cu masini distincte (cheia se adauga la tupla de asocieri).

 Pe gw-a punem prima adresa IP din subnet:

#!/bin/bash
let j=0
for i in `seq 0 4 255`; do
 ip tunnel add gta$i mode gre local 10.15.1.2 remote 10.16.1.2 ttl 255 key 10$i
 ip addr add add 10.20.0.$[$i+1]/30 peer 10.20.0.$[$i+2]/30 dev gta$i
 ip link set dev gta$i up
 j=$j+1
done

Pe gw-b punem a doua adresa IP din subnet:

#!/bin/bash
let j=0
for i in `seq 0 4 255`; do
 ip tunnel add gta$i mode gre local 10.16.1.2 remote 10.15.1.2 ttl 255 key 10$i
 ip addr add add 10.20.0.$[$i+2]/30 peer 10.20.0.$[$i+1]/30 dev gta$i
 ip link set dev gta$i up
 j=$j+1
done

Cu asta ridicam cate 64 de tunele o data. Pentru eu stiu scripting cat sa fac chestii relativ basic, se editeaza fisierul de script si se incrementeaza asa:

  • a din numele interfetei de tunel se schimba in b, c si tot asa
  • key 10$i se muta in 11$i si tot asa (11, 12, 13 etc.)
  • subnetul se incrementeaza si el 10.20 devine 10.21, si tot asa

O sa fac un update cand ma prind cum pot modifica totul programtic si sa pot ridica toate interfetele o data.

Exista un catch: indexul unei interfete nu poate depasi 254, adica nu poti avea eth255 ca da oroare, asa ca am venit cu hack-ul de mai sus: 64 de gta, 64 de gtb si tot asa. Ideal ar fi fost pana la 254, da nu stiu cum :)

Eu am testat pana la vreo 1216 interfete de tunel ridicate (vreo 19 iteratii de script), cu cheie si tot ce trebuie, dupa care m-am plictisit, dar cred ca merge pana pe la vreo 4094 de interfete de tunel. Bine ar fi sa mearga si mai sus, dar pana la urma intr-un setup complet cred ca intai ramai fara CPU si latime de banda :)

Anyway, ideea e ca pe o masina cu putina memorie (eu am testat cu 1GB RAM in ideea ca fiecare interface descriptor mai haleste ceva kernel memory, da nu stiu cat, asa ca presupun ca merge si in 512MB toata jucaria) se pot ridica foarte usor vreo 1000+ de tunele GRE si deci si vreo 1000+ de tunele VPN cu diversi.

Quagga tine cateva sute de mii de rute in BGP fara probleme (ultima oara cand m-am dat cu el pe post de router in Internet a dus vreo 300k prefixe – full routing table pe vremea aia).

Pentru scalabilitate se pot face un numar oarecare de HUB-uri care discuta intre ele, iar fiecare client se conecteaza la unul sau mai multe HUB-uri daca se vrea si un fel de redundanta ceva.

Daca nu mi-a dat undeva cu virgula, setup-ul asta este scalabil pentru tot Internetul, CPU si latime de banda sa avem :)

Partea si mai buna: este interoperabil cu orice alt vendor de stie de GRE-over-IPSec si BGP peste.

Din punct de vedere al securitatii:

  • Nu mai exista optiunea de a intercepta traficul in tranzit, trebuie facut la sursa sau pe HUB-uri. Asta face viata unui atacator mult mai grea, mai ales daca HUB-urile se afla in teritorii neprietenoase.
  • Traficul primit pe VPN trebuie tratat ca orice alt trafic (de exemplu ca un alt ISP), nu e mai de incredere decat junk-ul din Internet, asa ca trebuie aplicate aceleasi protectii.
  • Din route-map-uri pe HUB-uri se pot controla anunturile facute de clienti astfel incat sa nu existe posibilitatea de a anunta prefixe aiurea in scopuri de “traffic hijacking”.
  • Pentru ca tot traficul catre anumite destinatii se duce pe VPN, un atacator nu-si poate da seama cine cu cine vorbeste, cat si pe ce protocoale. Nexam metadata, nexam analize statistice, totul este la gramada. E ca la ToR, vezi ca intra da nu stii unde se duce :))

arta

Zilele astea am aflat sau mai bine zis mi-am clarificat ce tip de arta imi place: street art si chestiile abstracte cool. In principal pentru ca mi se pare ca vine din suflet, nu e cu pretentii, e mereu la moda si cand nu mai e dai peste si faci altceva nou. Iar chestiile abstracte cool inseamna cam ce-a facut Dali si altii pe aceeasi idee. Ma tot rodea chestia asta de ceva vreme, ca nu intelegeam ce e asa wow la tablourile cu pretentii (Picasso, Rubens, Munch, Matisse si altii). Anyway, “art is the eye of the beholder”.

you know the drill

Asta imi aduce aminte de Pi.

street_art_1

robotel

Dupa ce-mi termin io cu stuff-ul de dimineata, cateodata pe la pranz ma duc sa halesc si sa mai ies la produs pe undeva prin Baneasa.

Intr-o vreme ma opream zilnic in Promenada la masa si dupa aia inapoi acasa. Si mi-a intrat asa tare in reflex ca acu cand nu mai am treaba pe acolo, dar cum ajung pe Barbu Vacarescu invariabil parca intru in transa si caut cum sa ajung pe Floreasca si dupa aia ies din transa si habar n-am de ce vroiam acolo ca nu aveam treaba deloc la mall.

Si ma seaca ca aproape de fiecare data mi se intampla asta. Parca sunt ca un robot din ala care e programat cand vede ceva anume sa faca ceva…

dnssec (1)

DNS-ul este unul din protocoalele care reprezinta coloana verterbrala a Internetului. Cand a fost inventat, securitatea nu a fost luata in calcul pentru ca s-a mers pe ideea ca toti utilizatorii o sa fie cinstiti, lucru care s-a dovedit un pic fals. DNS-ul a fost abuzat de tot felul de oameni pentru diverse scopuri, mai mult sau mai putin oneroase.

Cele mai intalnite abuzuri asupra lui sunt “cache poisoning” si Man-in-the-Middle (MITM).

Pentru a face protocolul rezilient asupra acestor doua tipuri majore de atacuri si pentru a putea lansa noi servicii sigura bazate pe DNS, un grup de oameni destepti s-au gandit sa adauge si securitate la protocol. Pentru ca e relativ mult de vorbit despre partea de securitate si ideile nu vin toate o data, exista vreo 3 RFC-uri mari care acopera specificatiile de DNSSEC: 4033, 4034 si 4035.

Pe scurt, o autoritate centrala va garanta in jos “zonele” de DNS pana la ultimul domeniu astfel incat daca un server de DNS care stie de DNSSEC trebuie sa rezolve un nume de host sau de domeniu, va putea verifica foarte usor ca raspunsurile primite nu au fost modificate in tranzit de catre o terta parte.

DNSSEC foloseste doua tipuri de chei:

  • KSK sau Key Signing Key: este cheia cu care sunt semnate inregistrarile de tip DNSKEY. O data create aceste chei, se creaza si inregistrarile de tip DS care for fi publicate in zona domeniului parinte astfel incat sa se realizeze cum trebuie “chain of trust”.
  • ZSK sau Zone Signing Key: este cheia cu care sunt semnate toate inregistrarile (zona) unui server de DNS autoritativ.

Ca si tipuri de inregistrari, atunci cand avem DNSSEC, avem:

  • RRSIG: reprezinta semnatura digitala pentru o inregistrare in DNS.
  • DNSKEY: reprezinta cheia publica pe care resolver-ul de DNS o foloseste pentru a verifica autenticitatea raspunsului primit
  • DS sau Delegation Signer: reprezinta informatii despre cheile folosite de un domeniu pentru semnarea lor. Inregistrarile de tip DS se pun doar in domeniul parinte si fac referinta la subdomeniul pentru care sunt folosite. Aceste inregistrari reprezinta un HASH al cheilor de semnare efective pentru micsora transferul de date pentru validarea unei semnaturi.
  • NSEC: reprezinta un pointer la urmatoarele inregistrari dintr-o zona si la tipuri de inregistrari existente. Este folosit pentru a valida existenta sau inexistenta inregistrarilor dintr-un domeniu.
  • NSEC3: la fel ca NSEC, insa cu o modificare pentru sporirea rezilientei protocolului si pentru a face imposibila enumerarea tuturor inregistrarilor dintr-o zona de DNS
  • NSEC3PARAM: este folosit de serverele autoritative pentru a decide ce alte inregistrari pot fi trimise unui client care efectueaza interogari pe langa tipul de inregistrare solicitat explicit.

“Trust anchors” reprezinta mecanismul prin care un server de DNS are incredere in anumite semnaturi pentru domenii. Echivalentul ar fi “root hints” sau in PKI: lista autoritatilor de certificare in care are incredere (Trusted Root CAs).

Acum, partea practica :)

dnssec_1

Si pentru ca mi-am dorit mereu un TLD, o sa-l numesc .imacandi. pentru postul asta si o sa avem asa:

[root "."] =>

[TLD "imacandi."] =>

[domeniu "sin.imacandi."]

Plus un resolver pe langa astea care are doar cheia publica a “.” si va face rezolvare recursiva pentru $hostname.sin.imacandi.net.

Servere si adrese IP:

  • dns-s-1 (root server) / 172.16.155.101
  • dns-s-2 (ns for .imacandi.) / 172.16.155.102
  • dns-s-3 (ns for sin.imacandi.) / 172.16.155.103
  • dns-s-5 (resolver) / 172.16.155.108

(da stiu ca pe poza sunt mai multe servere, da m-a luat desenatul pe dinainte si dupa aia mi-am dat seama ca ma pot descurca si cu mai putine)

Ca si software voi folosi BIND 9.9.4 pe CentOS 7 (default).

Prima oara semnam “.”

root@dns-s-1 named]# dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE .
Generating key pair....+++ ...................+++ 
K.+007+64334
[root@dns-s-1 named]# dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE .
Generating key pair...................................................++ ......................................................................................................................................................++ 
K.+007+28638

[root@dns-s-1 named]# for key in `ls K*key`; do echo "\$INCLUDE $key" >> named.ca ; done
[root@dns-s-1 named]# cat named.ca 
$TTL 3600
@       IN      SOA     dns-s-1.root-servers.net.      hostmaster.root-servers.net.
(                       2012071200 ; serial number YYMMDDNN
                        28800           ; Refresh
                        7200            ; Retry
                        864000          ; Expire
                        3600             ; Min TTL
)
                NS      dns-s-1.root-servers.net.
$ORIGIN .
dns-s-1.root-servers.net. 3600 IN A 172.16.155.101
$INCLUDE K.+007+28638.key
$INCLUDE K.+007+64334.key

[root@dns-s-1 named]# dnssec-signzone -A -3 $(head -c 1000 /dev/urandom | sha1sum | cut -b 1-16) -N INCREMENT -o . -t named.ca

Verifying the zone using the following algorithms: NSEC3RSASHA1.
Zone fully signed:
Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
                         ZSKs: 1 active, 0 stand-by, 0 revoked
named.ca.signed
Signatures generated:                       10
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.022
Signatures per second:                 447.407
Runtime in seconds:                      0.026

Modificam /etc/named.conf astfel:

zone "." {
   type master;
   file "named.ca.signed";
};

Apoi restartam named si in loguri o sa zica urmatoarele (printre altele):

Mar 28 14:13:34 dns-s-1 named[2338]: zone ./IN: loaded serial 2012071201 (DNSSEC signed)

Acum avem “.” semnat (self-signed ca e root, nu exista autoritate mai mare ca .)

Dupa “.” urmeaza crearea unui TLD (Top Level Domain), si anume imacandi. Pentru asta adaugam urmatoarele inregistrari in zona “.”:

imacandi. IN NS ns1.dns.imacandi.
ns1.dns.imacandi. IN A 172.16.155.102

Acum ca zona a fost modificata, trebuie re-semnata si dupa aceea reincarcata de BIND.

dnssec-signzone -A -3 $(head -c 1000 /dev/urandom | sha1sum | cut -b 1-16) -N INCREMENT -o . -t named.ca
[root@dns-s-1 named]# rndc reload
server reload successful

Acum trecem pe dns-s-2 si cream configurarile necesare pentru noua zona, chain of trust cu “.” si importul inregistrarilor de tip DS in “.”.

In primul rand, modificam /etc/named.conf astfel:

trusted-keys {
"." 257 3 7 "AwEAAa8SV9IPDSXr+THXuogKOGxCvERdRf39cJ9spETd22AgVRYTI1Tr C57FXGtcC+tGa0AYs9chGsZ8eNwGD76YdnydD8CT+tLfokbVHih0ewQz RiobvXE4UY7HycrnC+ZY9yToM4ktKSsX1YWFsNGcIBn60c5J39LbAJ/i bB2+TCvdJNE4jrHkP4pf/onXJvG/RMFllShMtmOqgn1y79yJGTwoO2ab Rbm4kV3qDKiLtfrmyLqJTGbKf+R98NTpe1ufPnQCDwV13xlNRlsok8Gz cFDjTNf6ZepQ2wF8CzpDYHK7/tANCEFgR0vOzYkb8VkkaEzMUCYOveqp wy8e+isoDtoBA1e48awEYo3o+YN1DVEbCoR4Xbdy4cf+qkXv0nS8QNar 0RHSjghmsQddDVMoFaYLWv8lqSCd1uQufSnMd1okv3nEyKIwWBB3xG5r x7GJpqMtqA4BRWcv28tGgPkbFaWMkjVPqUIBgyk87fAB+a1H51uy0J1K Q+99U+8/41m6mnNoa2kjxJL53dYcf0DO4eUgsRY2LcO6etk/XbHm9/+M GOfes0pmPJ8V3Yb2V1J5WV62sYaPrvw+jh3h2V5RvNW+QHZ6U5M73eWZ w8vYyygYl3sWHy03vX4mQnq2XsMJ0CDvR+XLWG98RpItYG65LwhiayRP +dDhJpSyOY3aeXLD";
};
zone "imacandi." IN {
 type master;
 file "imacandi.";
 };

In zona “imacandi.” se trec urmatoarele:

$TTL 3600
@       IN      SOA     ns1.dns.imacandi.     hostmaster.dns.imacandi. (
                        2012071203 ; serial number YYMMDDNN
                        28800           ; Refresh
                        7200            ; Retry
                        864000          ; Expire
                        3600             ; Min TTL
)
                NS      ns1.dns.imacandi.
ns1.dns.imacandi. 3600 IN A 172.16.155.102
$ORIGIN imacandi.
sin IN NS dns1.sin.imacandi.
dns1.sin IN A 172.16.155.103

Dupa ce avem configurata zona, trecem la crearea cheilor KSK si ZSK si dupa aia semnam zona.

[root@dns-s-2 named]# dnssec-keygen -a RSASHA256 -b 2048 -n ZONE imacandi.
Generating key pair.............+++ ....+++ 
Kimacandi.+008+03645
[root@dns-s-2 named]# dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE imacandi.
Generating key pair.......................................................................+++ ..................+++ 
Kimacandi.+008+35377

Adaugam cheile in fisierul de zona:

$INCLUDE Kimacandi.+008+03645
$INCLUDE Kimacandi.+008+35377

Si semnam zona:

[root@dns-s-2 named]# dnssec-signzone -N INCREMENT -o imacandi. -t imacandi.
Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
                      ZSKs: 1 active, 0 stand-by, 0 revoked
imacandi..signed
Signatures generated:                        8
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.009
Signatures per second:                 833.159
Runtime in seconds:                      0.012

Dupa semnare, luam datele despre DS si le adaugam in zona parinte:

imacandi. IN DS 35377 8 1 16085596E91E80E95E70FA8EABE646A25499967E
imacandi. IN DS 35377 8 2 818FB42E72B000DCD9621F9F78D85845C25BAC44566CD4B687543C1B A874B6C5

Si re-semnam zona parinte.

Pe dns-s-3 am creat zona sin.imacandi.

zone "sin.imacandi" IN {
 type master;
 file "sin.imacandi.signed";
 };

Dupa aceea am creat cheile de semnare:

[root@dns-s-3 named]# dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE sin.imacandi
Generating key pair............................................+++ ..................................+++ 
Ksin.imacandi.+007+43763
[root@dns-s-3 named]# dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE sin.imacandi
Generating key pair.......++ ................++ Ksin.imacandi.+007+02085

Le-am adaugat in zona si dupa am semnat zona:

[root@dns-s-3 named]# dnssec-signzone -A -3 $(head -c 1000 /dev/urandom | sha1sum | cut -b 1-16) -N INCREMENT -o sin.imacandi -t sin.imacandi
Verifying the zone using the following algorithms: NSEC3RSASHA1.
Zone fully signed:
Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
                         ZSKs: 1 active, 0 stand-by, 0 revoked
sin.imacandi.signed
Signatures generated:                       12
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.022
Signatures per second:                 543.084
Runtime in seconds:                      0.026

Iar pentru validare, in configuratia lui BIND am adaugat cheia pentru “.” pe dns-s-3 in named.conf:

trusted-keys {
"." 257 3 7 "AwEAAa8SV9IPDSXr+THXuogKOGxCvERdRf39cJ9spETd22AgVRYTI1Tr C57FXGtcC+tGa0AYs9chGsZ8eNwGD76YdnydD8CT+tLfokbVHih0ewQz RiobvXE4UY7HycrnC+ZY9yToM4ktKSsX1YWFsNGcIBn60c5J39LbAJ/i bB2+TCvdJNE4jrHkP4pf/onXJvG/RMFllShMtmOqgn1y79yJGTwoO2ab Rbm4kV3qDKiLtfrmyLqJTGbKf+R98NTpe1ufPnQCDwV13xlNRlsok8Gz cFDjTNf6ZepQ2wF8CzpDYHK7/tANCEFgR0vOzYkb8VkkaEzMUCYOveqp wy8e+isoDtoBA1e48awEYo3o+YN1DVEbCoR4Xbdy4cf+qkXv0nS8QNar 0RHSjghmsQddDVMoFaYLWv8lqSCd1uQufSnMd1okv3nEyKIwWBB3xG5r x7GJpqMtqA4BRWcv28tGgPkbFaWMkjVPqUIBgyk87fAB+a1H51uy0J1K Q+99U+8/41m6mnNoa2kjxJL53dYcf0DO4eUgsRY2LcO6etk/XbHm9/+M GOfes0pmPJ8V3Yb2V1J5WV62sYaPrvw+jh3h2V5RvNW+QHZ6U5M73eWZ w8vYyygYl3sWHy03vX4mQnq2XsMJ0CDvR+XLWG98RpItYG65LwhiayRP +dDhJpSyOY3aeXLD";
};

Iar pe dns-s-2 am adaugat inregistrarile de tip DS si am resemnat zona imacandi.:

sin.imacandi. IN DS 2085 7 1 E1B11E776525C73D7E7484817F57F4F9BDDFAB53
sin.imacandi. IN DS 2085 7 2 FC19462CA30C80691DAF2FFB6847130F7384BB9DAA82199FFDA60415 90976C45

Acum situatia este in felul urmator: dns-s-1 este autoritativ pentru “.” si contine inregistrari de tip DS pentru “imacandi.”, dns-s-2 este autoritativ pentru “imacandi.” si contine inregistrari de tip DS pentru “sin.imacandi.”, dns-s-3 este autoritativ pentru “sin.imacandi.” si contine inregistrari de tip A pentru teste.

Un query recursiv pe dns-s-2 pentru un host numit bumblebee.sin.imacandi. care este definit in zona de pe dns-s-3 arata asa:

[root@dns-s-3 named]# dig +dnssec -t A bumblebee.sin.imacandi. @172.16.155.102 +multiline
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> +dnssec -t A bumblebee.sin.imacandi. @172.16.155.102 +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14987
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;bumblebee.sin.imacandi. IN A
;; ANSWER SECTION:
bumblebee.sin.imacandi. 3521 IN A 172.16.155.104
bumblebee.sin.imacandi. 3521 IN RRSIG A 7 3 3600 (
20150427161417 20150328161417 43763 sin.imacandi.
E9AQRx+ns1ZrmoPw+TduURzS8cGBAftivGEBBh1W75/u
yZ24tGQQ6bmmYQK84YO39qj2JDLANH06212Co0/emBjJ
Ug//YU+06nwT/fRu8vp/VL1u/8F3rSAGT5KSai1cFnjM
Tt/c+urWzAmw9CzxwBO4QE9NCth8jT35tblfUSuTN0xy
lOeTnTPqXvyTYNRm0HxygqIgEDC4K3PdDbZbYAT02djj
/S8upDBZydJb3KuuHRvIZ6n4k0SKAyKChdCABFEGgM/M
qPozD0gU52nYuUlR0fbfY844eqQfnRMNJvfIcY3xYb3h
yidsFSwqgxs0vynCriefAVu/IxpAptlHpw== )

Important este flag-ul AD din raspuns care inseamna Authenticated Data, asta inseamna ca serverul care raspunde poate verifica tot lantul si “chain of trust” este intact.

Mai sunt cateva aspecte pe care intentionez sa le exemplific intr-un post urmator candva:

  • semnare automata a zonelor
  • pentru paranoici: interfatarea cu un HSM si stocarea cheilor private pe el
  • update-ul automat al zonelor + semnarea automata

Cam asta e din categoria ce mai face sin sambata cand ploua afara :)