DNSSEC HOWTO

Obsah | Zpět | Dále

I. Zabezpečení dat DNS

2. Zabezpečení zóny DNS

2.4 Podepisování zóny

Pokud vytváříte páry klíčů, měli byste je připojit k vašim zónovým souborům. Podívejte se na příklad na obrázku 7, kde používáme pro připojení klíčů příkaz $include. Před podepsáním zvyšujeme sériové číslo v záznamu SOA.

V níže uvedeném příkladu použijeme pro klíče podpisující klíče a klíče podepisující zóny klíče typu RSASHA1.


; example.net zone
;
$TTL 100
$ORIGIN example.net.
@                       100     IN      SOA     ns.example.net. (
                                                olaf.nlnetlabs.nl.
                                                2002050501
                                                100
                                                200
                                                604800
                                                100
                                                )



                        NS              ns.example.net.

ns.example.net.         A               192.168.2.203

a                      A               192.168.2.1
b                      A               192.168.2.2


*                      A               192.168.2.10
b.a                    A               192.168.2.11


; These are the keys that need to be publised in the DNSKEY RRset
;
$include Kexample.net.+005+17000.key    ; ZSK
$include Kexample.net.+005+49656.key    ; KSK

Obrázek 7: Příkladová zóna example.net

Jakmile je klíč přidán do zónového souboru, jsme připraveni podepsání zóny pomocí nástroje dnssec-signzone (všechny argumenty viz obrázek 8). Pro určení původu zóny používáme příznak –o; implicitně je původ odvozován ze jména zónového souboru.

Pomocí ’-k key_name’ určujeme, který klíč má být použit jako klíč podepisující klíče. Klíč podepíše pouze DNSKEY RRset v apexu zóny. Klíče, které zadáváme jako argumenty na konci příkazu jsou užívány k podpisu všech dat RR, pro která je zóna autoritativní. Pokud neurčíte klíče, použije BIND ty, pro které jsou přidány veřejné klíče v zóně a pro rozlišení mezi klíči podepisujícími klíče a klíči podepisujícími zóny použije příznak SEP.

V praxi nedoporučujeme, abyste se spoléhali na implicitní nastavení, protože ve scénářích rotace klíčů budete mít veřejný klíč ve vašem zónovém souboru, ale nebudete jej chtít používat pro podepsání zóny (abyste předešli zdvojení podpisů, a tak delším časům generování podpisu a zabírání více zdrojů na vašem jmenném serveru). Níže uvádíme příkaz vydaný k podepsání zóny pomocí 49656 klíče jako klíč podepisujícího klíče a 17000 klíč jako klíč podpisující zóny.

/usr/local/sbin/dnssec-signzone  \
   -o example.net  \
   -k Kexample.net.+005+49656 \
   db.example.net \
   Kexample.net.+005+17000.key

Obrázek níže ukazuje podepsaný zónový soubor. Všimněte si, že apex DNSKEX RRset je pouze RRset se dvěma podpisy vytvořený pomocí klíčů podepisujících zóny a klíčů podepisujících klíče. Ostatní RRsety jsou podepsány pouze klíči podepisujícími zóny.

Proces podepisování dokončil následující:

  • Roztřídil zónu podle ‚kanonického‘ pořádku.
  • Pro každou jmenovku vložil záznamy NSEC.
  • Přidal key-id jako komentář ke každému DNSKEY-record.
  • Podepsal DNSKEY RR set dvěma klíči; klíčem podepisujícím klíče a klíčem podepisujícím zóny.
  • Podepsal ostatní RRsety klíčem podepisujícím zóny.
  • Vytvořil dva soubory, dsset-example.net a keyset-example.net. Tyto soubory jsou důležité při sestavování řetězu důvěry. Implicitně se soubory vytvářejí v ‚aktuálním adresáři‘ tj., adresáři, ve kterém spouštíte příkaz thednssec-signzone, ale když určíte tomuto adresáři -d, pak budou soubory vytvořeny tam.

Podpisy byly vytvořeny s implicitní životností 30 dnů od okamžiku podepsání. Jakmile podpisy vyprší, nemohou být data ověřena a zóna bude označena jako ‚podvodná‘. Proto musíte vaši zónu znovu podepsat nejpozději do 30 dnů! Níže se zabýváme opětovným podepsáním zóny.

Podepsaná zóna je uložena v db.example.net.signed, ujistěte se, že jste nakonfigurovali named tak, aby použil tento soubor při poskytování zón.

Usage:
       dnssec-signzone [options] zonefile [keys]

Version: 9.3.2
Options: (default value in parenthesis)
        -c class (IN) 
        -d directory
                directory to find keyset files (.)
        -g: generate DS records from keyset files
        -s [YYYYMMDDHHMMSS|+offset]:
                RRSIG start time - absolute|offset (now - 1 hour)
        -e [YYYYMMDDHHMMSS|+offset|"now"+offset]:
                RRSIG end time  - absolute|from start|from now (now + 30 days)
        -i interval:
                cycle interval - resign if < interval from end ( (end-start)/4 )
        -v debuglevel (0)
        -o origin:
                zone origin (name of zonefile)
        -f outfile:
                file the signed zone is written in (zonefile + .signed)
        -r randomdev:
                a file containing random data
        -a: verify generated signatures
        -p: use pseudorandom data (faster but less secure)
        -t: print statistics
        -n ncpus (number of cpus present)
        -k key_signing_key
        -l lookasidezone
        -z: ignore KSK flag in DNSKEYs
Signing Keys: (default: all zone keys that have private keys)    keyfile (Kname+alg+tag)

Obrázek 8: Argumenty dnssec-signzone

; File written on Fri Mar 30 21:04:12 2007
; dnssec\_signzone version 9.3.2
example.net.            100     IN SOA  ns.example.net. olaf.nlnetlabs.nl. (
                                        2002050501 ; serial
                                        100        ; refresh (1 minute 40 seconds)
                                        200        ; retry (3 minutes 20 seconds)
                                        604800     ; expire (1 week)
                                        100        ; minimum (1 minute 40 seconds)
                                        )
                        100     RRSIG   SOA 5 2 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        Q7QT/Y3MhD9Zx6/UK3jy09lCv+hEox1Sf4sI
                                        hYjSp873y962zXRtXcFp9oa2LgBq/aGM+LLV
                                        qFOpK7WlhxyZRxKdNbl4f6F7hRps11k7bPCv
                                        ZbjJ0nsiRsFfhjtCyll7EWeXYEmkUqtsbKC4
                                        dsUEc/jjo8jm1CBntmk7FBLtw9I= )
                        100     NS      ns.example.net.
                        100     RRSIG   NS 5 2 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        k4Dy4YRfMwTUsKtpjWJ2IyFFvnLbR7TBVeU3
                                        j3+y28E5r8l8g6Se4peXfzB+2Ks+wUPmZwzm
                                        UFt9KVNzIJ7GA26VmEACWcuDGIvS65GuCrO4
                                        +sNmfsZXW2txtDWedvlnmytDxEIKvbtRu4QJ
                                        rgCGlYaoC1v6/mNDa6ZBlDYxeLk= )
                        100     NSEC    *.example.net. NS SOA RRSIG NSEC DNSKEY
                        100     RRSIG   NSEC 5 2 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        fEnDtTdDyYrC7DqMTkIPaYeo2yml2Woq97Gc
                                        oAP50Rc0bCDdIz+UPXfj3PVSOuFunaHNYYUq
                                        mangw8n75B9g7Uqrb6brAteEJSHqKkxYUcdG
                                        AzpY+m+Yl82TjxOj7jFGZxiwqyjF2PQLaY13
                                        wfrjb5CVDnF8WbREP6/Jhm45Plg= )
                        100     DNSKEY  256 3 5 (
                                        AQPI4+0M1V055RS2Hqv+8w8V20Dh+SQmFzHQ
                                        tZMuzLH3UxWE0GmG5GfjijandJeAZTKLpERX
                                        B6RfHTHGG8lD3IO1azWN6DiVFEVzgr0otAdD
                                        onfYF8gUT03ZnRcXlkJk41h12NOfq6rkODaF
                                        nfMHCppI3WZ/MJqe+9hLJtis+oEsRw==
                                        ) ; key id = 17000
                        100     DNSKEY  257 3 5 (
                                        AQOzgs4qea+ImJ1OCworkabHqFnvPKybVT7b
                                        nDIkJ2HvXWslbwNWJ66Ox3N6ftpCTc9wWBMw
                                        5+xOh7ilTwFPruMa2gURwEywZaMG9ipILOXm
                                        KO4a5I+8R2QTH4BM0WaIKnv5jCHose/l9LL3
                                        Y8MApsjP6gOWNM8b9aVTjBFnf0xEF7sOSBBB
                                        E4G2/og5Fr+H8DYaotqgJ3nrzRfYA0gSXwwb
                                        ) ; key id = 49656
                        100     RRSIG   DNSKEY 5 2 100 20070429180412 (   
                                        20070330180412 17000 example.net.
                                        hFcUzcQnsQbiOhnQS+oDf+/g7kGsDqpWrqZV
                                        kedbecrJQy9RK/IMy5WFmhP9g158PReEFdES
                                        lh/wRD+j0hKqOpRXKbGeOi231AUSqvhou8VF
                                        zBq5vSe8NiRK+1eLzmHerA8GEXqgP8mxdy/A
                                        5Q/8hdyA/DSYe8u1gfrB41MSmj4= )
                        100     RRSIG   DNSKEY 5 2 100 20070429180412 (
                                        20070330180412 49656 example.net.
                                        oyum/nlrNZ7XdxiA/tpdmzAp16YmXS8YTPyJ
                                        EdCJUYZPp3ioJ83EnOmxzQK+YLqwjw8thNGw
                                        cCOd3sKBjlR04C0d+Wjth8OEXuqo2bWkKdfI
                                        IyIq3SQr5rrNFpgJtxAsse2j6sdDVqOV3VSf
                                        syPHRsOd2DpGmFaoiLq0ORpRfzyV6afk6u4L
                                        FgIOJJQXkZiLWbLA4GfGHr1g6Ae3Bf1FtQ== )
*.example.net.          100     IN A    192.168.2.10
                        100     RRSIG   A 5 2 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        aRpTVJ7TI1LJ706fBMOLhorgA601KVUE6j4t
                                        AFJTzt7LQTnZQF/+czAkW39ETFYt351psfXB
                                        ZThiDsLwkuLe5buJPzftDEhbB4CJrYd9/fFe
                                        dX6KdI0PTizO20dpMJld0sP0NO/JTDwSrhaa
                                        xAYeCCz/1C/AkYT9hKpa5YXVKjY= )
                        100     NSEC    a.example.net. A RRSIG NSEC
                        100     RRSIG   NSEC 5 2 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        X9ViqG4mT8lDS+hckEdk2XqwHTpnDxRp1dxK
                                        Gfayhgt+svMtXmhjcJZ0Kz/c6ByU/JIXv/eE
                                        3gsoJFMNU2iUIbWbMeX6l4Gy3B+gMeQ9F+fT
                                        FHuwVMHOVLih+Zlm3OpDbUUBwYJj4XOBY6aA
                                        7mBaSZ7lUEnjDF3MeCZCTshkuUs= )
a.example.net.          100     IN A    192.168.2.1
                        100     RRSIG   A 5 3 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        oN1QemG7B47dWBod6ecdvmb87VegMa5mN16P
                                        CsJGnIwNLOWDWxvSiuKOH/COvrGIHegqQle/
                                        VQBvjl6XVPdxNQ0HWUlIRCaFKYEiMcxdn6er
                                        bH5nHYNHsFD4SHy2q0uEi6kqlRpNSuza+oDi
                                        ASbGdWhELy5gFsdpZlFS1naUNNM= )
                        100     NSEC    b.a.example.net. A RRSIG NSEC
                        100     RRSIG   NSEC 5 3 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        iXgRHchMpXLYwrfrwSAfqAHHhbf7EePgaiEa
                                        3U2GhkvlhKCACh6pGA4vZwFgey4cnA4nP+rk
                                        CE2p0BNGhPC0Mdx3eby6NX2Dbuzkc6TctFSj
                                        Y1eZLXdju8EfAdk5Jhs+9noBcZFNNTM8Wid5
                                        8MW2ur0187CTdWIXq8jAqodngAs= )
b.a.example.net.        100     IN A    192.168.2.11
                        100     RRSIG   A 5 4 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        hf5hrMDv+BlTkTECLuEGukknfDuH/nPpUWpz   
                                        +gfzzeRChQReSXDXJn1259jXSkt8IUhD3v7G
                                        KY1MTQEOQlWkB8OOC9r86yAW+hLnyIWXqe+t
                                        I+JR7ga00qx4gy6LhMYlQ/2Ywdo= )
                        100     NSEC    b.example.net. A RRSIG NSEC
                        100     RRSIG   NSEC 5 4 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        Kon6z25uqnHpGc91BcbR6hs0KKQ4z0nm9SsE
                                        OJFgSfhYDBygiHl84eQFLvP/BjsJd4BQHxke
                                        v9X/J6QK4vM1NDsVVvYdPw7ybh6MOLU8Lo8p
                                        k4lbeOXvChD8ONjDebULKP+Iz6fxXjQ6WsG7
                                        NvHskJBZfZPHxigi+SlQILHVMgQ= )
b.example.net.          100     IN A    192.168.2.2
                        100     RRSIG   A 5 3 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        lWXfx2ebTpOBvCxk+mX882u1oiodeRkAS3ck
                                        IbSni18DxEh3sTBjj9FaWEO3uiTYS5OK+ZnP
                                        G00qlAljL1znWuPsv1X0/olIqSEYNgBJI98r
                                        fDhfDXzVs/zCtFm1WesaNs+akohz9zOzITGh
                                        U3j5DkLx1gk62SWrlDhcpCnt0qI= )
                        100     NSEC    ns.example.net. A RRSIG NSEC
                        100     RRSIG   NSEC 5 3 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        Pg4u+EI+HzeFFQ3EV8hzDlaDNx00ijGV5OMP
                                        V3U0j1FE2BoMIn+7aBvCQ719p9aGIFE5iDU/
                                        nMLQ0M0lA1dHD/aXhVCDp4gsM0hhqa2nuEUq
                                        uUV6kRWzjS6czHg66+g0GilxBK2m6TCF7dQI
                                        A7LyJZvUWSOVKrfTTpGWuPjZIMU= )
ns.example.net.         100     IN A    192.168.2.203
                        100     RRSIG   A 5 3 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        Bm3vcmaEC3kdcJuYljUSverccng5qK+fUI79
                                        Eyfh+hkPRh6XgByQdheBQEQmIZ8DCFbF3QVC
                                        R9257CSyVEL0JAcWldsfVFkMHb1Y/T00UtpE
                                        3Y+hjgKmaNZPCEEOgWxhBEoutP1Sb+ielJOw
                                        TL0+pb/cIyEkFsbBH5rGKcdCBOw= )
                        100     NSEC    example.net. A RRSIG NSEC
                        100     RRSIG   NSEC 5 3 100 20070429180412 (
                                        20070330180412 17000 example.net.
                                        wEsZezaBDr+LpSTIuz2zG4oskTnCM+e8PC36
                                        uIQcq0koygY+cluYdSfEETWl2wiTmnkTpSm0
                                        p78BtcfAIiyKsV6AwwSsw1mYexhH5ARYHtHv
                                        yeWYuaKel+d/f4qa0ToUOOnF3aYum5Ss1joB
                                        Zw+7POOeJ8tve6gaUvLlYCAW7Ko= )

Obrázek 9: Příklad podepsaného zónového souboru

Obsah | Zpět | Dále