Różnice pomiędzy wersjami 2 i 4 (Spinanie 2 wersji)
⇤ ← Wersja 2 z 2018-10-31 14:01:24 →
Rozmiar: 7828
Edytor: wtps0n
Komentarz: + informacja o addns.xml; parametry do softhsm
← Wersja 4 z 2018-10-31 14:57:31 → ⇥
Rozmiar: 9359
Edytor: wtps0n
Komentarz: + kolejne kroki konfiguracyjne
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 31: Linia 31:
Pierwszym krokiem jest inicjalizacja SoftHSMa:
{{{#!highlight bash numbers=off
softhsm —-init-token —-slot 0 —-label "OpenDNSSEC" --so-pin 1223456 --pin 123456
Pierwszym krokiem jest inicjalizacja SoftHSMa.

=== Przygotowania ===
{{{#!highlight bash numbers=off
mkdir -p /var/db/softhsm/tokens/
chmod 0700 /var/db/softhsm/
chmod 1777 /var/db/softhsm/tokens/
}}}

=== /usr/local/etc/softhsm2.conf ===
W pliku konfiguracyjnym konieczne jest poprawienie ścieżki na ''FreeBSD''-ową :-)
{{{#!highlight bash numbers=off
perl -pi -e 'next unless /directories.tokendir/; s/lib/db/' /usr/local/etc/softhsm2.conf
}}}

=== Inicjalizacja ===
{{{#!highlight bash numbers=off
softhsm2-util --init-token --slot 0 --label "OpenDNSSEC" --so-pin 1223456 --pin 123456
Linia 39: Linia 54:
softhsm —-show-slots softhsm2-util --show-slots
Linia 160: Linia 175:
{{{#!highlight xml numbers=off
<?xml version="1.0" encoding="UTF-8"?>
Lista stref objętych podpisywaniem. W wersji 2.x OpenDNSSEC zmienia zawartość tego pliku po jawnym podaniu parametru ''--xml'' przez ''ods-enforcer'''. Zgodnie z komentarzami, plik należy utworzyć poprzez polecenie<<FootNote(Do sprawdzenie przy pierwszych próbach.)>>:
{{{#!highlight bash numbers=off
ods-enforcer zone list --xml
ods-enforcer zone export --xml
}}}

{{{#!highlight xml numbers=off
<?xml version="1.0" encoding="UTF-8"?>
}}}
= Uruchomienie OpenDNSSEC =
Po wykonanej konfiguracji można przejść do uruchamiania OpenDNSSECa.

== ods-kaspcheck ==
Narzędzie pozwala sprawdzić poprawność konfiguracji plików ODS.

== ods-enforcer-db-setup ==
Po sprawdzeniu konfiguracji można przejść do inicjalizacji bazy danych
{{{#!highlight bash numbers=off
ods-enforcer-db-setup
}}}

== Uruchomienie demonów ==
Należy ustawić w plikach rc.conf możliwość uruchamiania całej usługi a następnie ją wystartować:
{{{#!highlight bash numbers=off
service opendnssec start
}}}

== Zaimportowanie polityk ==
{{{#!highlight bash numbers=off
ods-enforcer policy import

# sprawdzenie:
ods-enforcer policy list

Wydrukuj tę dokumentację Pokaż jako slajdy

Konfiguracja DNSSEC w nsd

DNSSEC to rozszerzenie w konfiguracji strefy DNS zapewniające podpisanie każdego rekordu strefy w celu zapewnienia autentyczności odpowiedzi z serwerów DNS. DNSSEC bazuje na dwóch kluczach:

  1. Zone Signing Key - klucz podpisujący strefę (jego czas życia powinien być relatywnie krótki - np. 3 miesiące

  2. Key Signing Key - klucz podpisujący klucz ZSK. Czas życia KSK powinien być długi (przez analogię do certyfikatów): 1 rok, może 2-3 lata

  3. Delegation Signer - rekord w DNSie (wprowadzany w panelu rejestratora), który zawiera informację o KSK (por. wikipedia:DNSSEC)

Zgodnie z zaleceniami DNSSEC, podpisywanie stref powinno się zmieniać co kilka dni (zmienny SALT), aby wykluczyć, że potencjalni atakujący odgadną klucz i będą w stanie odgadnąć, jak fałszować rekordy1

Instalacja oprogramowania

Za pomocą własnego repozytorium pakietów należy zainstalować niezbędne oprogramowanie:

pkg install -Uy nsd softhsm2 opendnssec2 bind-tools ldns

Konfiguracja NSD

Konfiguracja serwera nsd znajduje się w oddzielnym dokumencie. Drobne zmiany będą dotyczyły katalogu z plikami stref, ale będzie to zaznaczone w dalszym opisie.

Konfiguracja OpenDNSSEC

Konfiguracja OpenDNSSECa składa się z następujących składowych:

  1. Konfiguracja SoftHSM-a
  2. Konfiguracja samego OpenDNSSECa

Inicjalizacja SoftHSM

Pierwszym krokiem jest inicjalizacja SoftHSMa.

Przygotowania

mkdir -p /var/db/softhsm/tokens/
chmod 0700 /var/db/softhsm/
chmod 1777 /var/db/softhsm/tokens/

/usr/local/etc/softhsm2.conf

W pliku konfiguracyjnym konieczne jest poprawienie ścieżki na FreeBSD-ową :-)

perl -pi -e 'next unless /directories.tokendir/; s/lib/db/' /usr/local/etc/softhsm2.conf

Inicjalizacja

softhsm2-util --init-token --slot 0 --label "OpenDNSSEC"  --so-pin 1223456 --pin 123456

/!\ /!\ /!\ UWAGA Należy koniecznie zapamiętać PINy, o które jest pytanie w trakcie inicjalizacji. Będą później potrzebne do konfiguracji. /!\ /!\ /!\

Sprawdzenie SoftHSM

softhsm2-util --show-slots

Pliki konfiguracyjne opendnssec

Kolejnym krokiem jest utworzenie plików konfiguracyjnych opendnssec-a. Najłatwiej to wykonać poprzez kopię przykładowych konfiguracji a następnie modyfikacji2:

cd /usr/local/etc/opendnssec
 
cp addns.xml.sample addns.xml
cp conf.xml.sample conf.xml
cp kasp.xml.sample kasp.xml
cp zonelist.xml.sample zonelist.xml

addns.xml

/!\ /!\ /!\ UWAGA W przypadku podpisywania stref w plikach nie ma potrzeby tworzenie tego pliku konfiguracyjnego /!\ /!\ /!\

<?xml version="1.0" encoding="UTF-8"?>

conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
   <RepositoryList>
       <Repository name="SoftHSM">
           <Module>/usr/local/lib/softhsm/libsofthsm.so</Module>
               <TokenLabel>OpenDNSSEC</TokenLabel>
                   <PIN>****</PIN>
               <SkipPublicKey/>
       </Repository>
   </RepositoryList>
   <Common>
       <Logging>
           <Verbosity>3</Verbosity>
           <Syslog><Facility>local0</Facility></Syslog>
       </Logging>
       <PolicyFile>/usr/local/etc/opendnssec/kasp.xml</PolicyFile>
       <ZoneListFile>/usr/local/etc/opendnssec/zonelist.xml</ZoneListFile>
   </Common>
   <Enforcer>
       <Datastore><SQLite>/usr/local/var/opendnssec/kasp.db</SQLite></Datastore>
       <Interval>PT3600S</Interval>
   </Enforcer>
   <Signer>
       <WorkingDirectory>/usr/local/var/opendnssec/tmp</WorkingDirectory>
       <WorkerThreads>4</WorkerThreads>
       <Listener>
           <Interface><Address>10.9.128.2</Address><Port>53</Port></Interface>
       </Listener>
   </Signer>
</Configuration>

kasp.xml

<?xml version="1.0" encoding="UTF-8"?>
<KASP>
    <Policy name="default">
        <Description>A default policy that will amaze you and your friends</Description>
        <Signatures>
            <Resign>PT2H</Resign>
            <Refresh>P3D</Refresh>
            <Validity>
                <Default>P14D</Default>
            <Denial>P14D</Denial>
            </Validity>
            <Jitter>PT12H</Jitter>
            <InceptionOffset>PT3600S</InceptionOffset>
        </Signatures>
        <Denial>
            <NSEC3>
                <Resalt>P100D</Resalt>
                <Hash>
                    <Algorithm>1</Algorithm>
                    <Iterations>5</Iterations>
                    <Salt length="8"/>
                </Hash>
            </NSEC3>
        </Denial>
        <Keys>
            <TTL>PT3600S</TTL>
            <RetireSafety>PT3600S</RetireSafety>
            <PublishSafety>PT3600S</PublishSafety>
            <Purge>P14D</Purge>
            <KSK>
                <Algorithm length="2048">8</Algorithm>
                <Lifetime>P1Y</Lifetime>
                <Repository>SoftHSM</Repository>
            </KSK>
            <ZSK>
                <Algorithm length="1024">8</Algorithm>
                <Lifetime>P90D</Lifetime>
                <Repository>SoftHSM</Repository>
            </ZSK>
        </Keys>
        <Zone>
            <PropagationDelay>PT43200S</PropagationDelay>
            <SOA>
                <TTL>PT3600S</TTL>
                <Minimum>PT3600S</Minimum>
                <Serial>datecounter</Serial>
            </SOA>
        </Zone>
        <Parent>
            <PropagationDelay>PT9999S</PropagationDelay>
            <DS>
                <TTL>PT3600S</TTL>
            </DS>
            <SOA>
                <TTL>PT172800S</TTL>
                <Minimum>PT10800S</Minimum>
            </SOA>
        </Parent>
    </Policy>
</KASP>

zonelist.xml

Lista stref objętych podpisywaniem. W wersji 2.x OpenDNSSEC zmienia zawartość tego pliku po jawnym podaniu parametru --xml przez ods-enforcer. Zgodnie z komentarzami, plik należy utworzyć poprzez polecenie3:

ods-enforcer zone list --xml
ods-enforcer zone export --xml

<?xml version="1.0" encoding="UTF-8"?>

Uruchomienie OpenDNSSEC

Po wykonanej konfiguracji można przejść do uruchamiania OpenDNSSECa.

ods-kaspcheck

Narzędzie pozwala sprawdzić poprawność konfiguracji plików ODS.

ods-enforcer-db-setup

Po sprawdzeniu konfiguracji można przejść do inicjalizacji bazy danych

ods-enforcer-db-setup

Uruchomienie demonów

Należy ustawić w plikach rc.conf możliwość uruchamiania całej usługi a następnie ją wystartować:

service opendnssec start

Zaimportowanie polityk

ods-enforcer policy import

# sprawdzenie:
ods-enforcer policy list

Źródła w sieci internet

  1. Hidden master oraz DNSSEC "w locie"

  2. Uruchomienie OpenDNSSEC

  3. Projekt OpenDNSSEC

  4. NSD + OpenDNSSEC

  5. https://www.digitalocean.com/community/tutorials/how-to-set-up-dnssec-on-an-nsd-nameserver-on-ubuntu-14-04

  6. https://www.digitalocean.com/community/tutorials/how-to-setup-dnssec-on-an-authoritative-bind-dns-server--2

  7. http://whyscream.net/wiki/Dnssec_howto_with_NSD_and_ldns.md

Odnośniki do dokumentacji

  1. Konfiguracja serwera DNS

  2. url2

  3. url3

  4. url4


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

  1. Trochę to dziwne. W dokumentacjach (patrz źródła) wygląda jak kopiowanie tego zalecenia z RFC?? Do wyjaśnienia. (1)

  2. Jeżeli umieszczę pliki w repozytorium konfiguracji, to będzie trzeba poniższe zmodyfikować (2)

  3. Do sprawdzenie przy pierwszych próbach. (3)

DnsSec (ostatnio edytowane 2026-06-19 07:59:23 przez wtps0n)