Ns.fjfi.cvut.cz

From NMS
Revision as of 22:44, 5 November 2014 by Vokacpet (Talk | contribs) (Rotování klíčů)

Jump to: navigation, search
Servery / Služby
Přístupné komukoliv
windows
srk
linux / unix
kmlinux
Omezený/individuální účet
linux / unix
bimbo · buon(KF) · km(KM) · lenochod(KJR) · linux · node(KM) · sunrise(KF) · unixlab(KFE) · vkstat(KM)
Služby
backup · DHCP · DNS · doména FJFI · eduroam · fileserver · IdM · forum · gitlab · lists · moodle · indico · mailgw · K4 · mailserver · NMS · openvpn · skolniftp · ssh · videokonference · VoIP · video · VPN · wififjfi · wiki · www
Učebny
e-sklipek · KFE unixlab · KFE pclab · PD1 · KM 105 · KM 115
Ostatní
Network · Blokované porty
[edit] · [view]

Základní informace

Správce 
Petr Vokáč
HW 
T1119 miniITX 1U Intel Atom 525 (dualcore), X7SPE-HF-D525 (PCI-E8,2GLAN,2SFF,front IO/C)
OS 
CentOS7
Využití 
nameserver pro doménu fjfi.cvut.cz
Konto 
-

Instalace a konfigurace

  • standardní (minimální) instalace operačního systému
  • standardní puppet konfigurace pro server (certifikáty, logging, monitoring, kerberos, ...)
  • specifický software a konfigurace
    • ISC bind
      • konfigurace v /etc/named.*, /etc/named
      • data uložena v /var/named
    • firewall
firewall-cmd --permanent --add-service=dns
firewall-cmd --pernament --add-rich-rule='rule family="ipv4" source address="mgmt.srv.ip.addr" port port="rndc" protocol="tcp" accept'
firewall-cmd --pernament --add-rich-rule='rule family="ipv6" source address="mgmt.srv.ip.addr" port port="rndc" protocol="tcp" accept'
# další specifická IP+porty pro monitoring, zálohování, ...
firewall-cmd --reload

Konfigurace

  • změny mohou provádět vybraní správci
  • informace ke konfiguraci ISC Bind
    • podpora GSS-TSIG DDNS update z Windows Serverů
  • v plánu je upgrade hw a clusterové řešení (postavené na RH cluster suite + drbd)
  • v plánu je support pro DNSSEC (po podepsání nadřazené domény)
  • v plánu jsou různá view pro vnitřní a externí sítě

Automatické změny

  • smtp.fjfi.cvut.cz -> směřuje na mailgw1.fjfi.cvut.cz resp. mailgw2.fjfi.cvut.cz dle dostupnosti
  • ldap[1-3].fjfi.cvut.cz, krb[1-3].fjfi.cvut.cz, wc[1-3].fjfi.cvut.cz -> směřuje na dostupné doménové kontrolery
  • *.dhcp.fjfi.cvut.cz, *.7.32.147.in-addr.arpa, *.11.32.147.in-addr.arpa -> aktualizováno DHCP serverem při přidělení adresy síťovému zařízení
  • *.radvd.fjfi.cvut.cz -> aktualizováno na základě informací o registrovaném zařízení, týká se zařízení u nichž je uvedena IPv6 adresa "dynamic". Podle informací o umístění zařízení (Břehová, Trojanova, Trója, Mobilní) se generují různé záznamy pro všechny podsítě, kde se může zařízení vyskytovat. DNS jména pak mohou vypadat následujícím způsobem def-tjn-123-untrusted.radvd.fjfi.cvut.cz.

DNSSEC

Prvotní inicializace a konfigurace

  • konfigurace pro ISC Bind 9.9
  • vygenerování klíčů pro podpis DNS zony
cd /etc/named
dnssec-keygen -r /dev/urandom -3 fjfi.cvut.cz
dnssec-keygen -r /dev/urandom -3 -f KSK fjfi.cvut.cz
chown named:named Kfjfi.cvut.cz.+*+*.key
chown named:named Kfjfi.cvut.cz.+*+*.private
  • vygenerování NSEC3 seedu
rndc signing -nsec3param 1 0 10 $(printf "%04x%04x" $RANDOM $RANDOM) fjfi.cvut.cz
  • upravení konfigurace pro automatické podepisování zóny
zone "fjfi.cvut.cz" {
  // ...
  # look for dnssec keys here
  key-directory "/etc/named";
  # publish and activate dnssec keys
  auto-dnssec maintain;
  # use inline signing (bind 9.9)
  inline-signing yes;
};

Otestování konfigurace

  • aplikace upravené konfigurace a par užitečných příkazů pro zjištění aktuálního stavu
rndc reconfig
# vylistování aktuálně načtených klíčů
rndc signing -list fjfi.cvut.cz
# kontrola podpisů v zóně
dig +dnssec +noall +answer @127.0.0.1 -t SOA fjfi.cvut.cz
dig @127.0.0.1 AXFR fjfi.cvut.cz
# čitelné vypsání zkompilované zóny
named-compilezone -f raw -F text -o - fjfi.cvut.cz data/fjfi.cvut.cz.zone.signed
named-checkzone -D -f raw -o - fjfi.cvut.cz data/fjfi.cvut.cz.zone.signed
# získání DSKEY
dig @127.0.0.1 dnskey fjfi.cvut.cz | dnssec-dsfromkey -f - fjfi.cvut.cz
dnssec-dsfromkey -a SHA-1 Kexample.net.+008+50707.key
dnssec-dsfromkey -a SHA-256 Kexample.net.+008+50707.key

Rotování klíčů

  • základní informace jsou v RFC 4641 a konkrétní informace k ISC Bind
  • standardní velikost klíčů je 1024 bitů pro ZSK a 2048 bitů pro KSK (velikost by měla odpovídat důležitosti domény resp. její postavení v hierarchii domén)
  • doporučená doba rotace ZSK klíčů je 90 dní a pro KSK klíče 2 roky (viz. pravidla pro .cz doménu)
  • výše vygenerované klíče nemají omezenou platnost a lze ji změnit pomocí
dnssec-settime -I 20141001 -D 20141101 Kfjfi.cvut.cz.+007+first.key
  • pro ZSK je asi nejvhodnější použít Pre-Publish Key Rollover
  • vždy budou publikovány dva ZSK klíče z nichž právě jeden bude aktivní
  • nový klíč se stejnými parametry a správnými hodnotami pro publikaci a aktivaci (pokud není změněno sig-validity-interval) lze vygenerovat
dnssec-keygen -r /dev/urandom -I 20141001 -D 20141101 -S Kfjfi.cvut.cz.+ZSK+current.key
  • budeme udržovat 3 poslední ZSK klíče (prev, current, next) a při rotaci se zbavíme nejstaršího a přidáme jeden nový
# globální proměné
DOMAIN='fjfi.cvut.cz'
KEYDIR='/etc/named/keys'
mkdir -p ${KEYDIR}/all

# vytvoření prvního ZSK klíče
INADATE=`date --date='3 months' +%Y%m%d`
DELDATE=`date --date='4 months' +%Y%m%d`

ZSK=`dnssec-keygen -r /dev/urandom -K ${KEYDIR}/all -I ${INADATE} -D ${DELDATE} -3 ${DOMAIN}`
chown named:named ${KEYDIR}/all/${ZSK}.*
ln -s all/${ZSK}.key ${KEYDIR}/K${DOMAIN}.+ZSK+current.key
ln -s all/${ZSK}.private ${KEYDIR}/K${DOMAIN}.+ZSK+current.private

# vytvoření prvního KSK klíče
INADATE=`date --date='24 months' +%Y%m%d`
DELDATE=`date --date='25 months' +%Y%m%d`

KSK=`dnssec-keygen -r /dev/urandom -K ${KEYDIR} -I ${INADATE} -D ${DELDATE} -3 -f KSK ${DOMAIN}`
chown named:named ${KEYDIR}/all/${KSK}.*
ln -s all/${KSK}.key ${KEYDIR}/K${DOMAIN}.+KSK+current.key
ln -s all/${KSK}.private ${KEYDIR}/K${DOMAIN}.+KSK+current.private

# vytvoření dalšího ZSK klíče
INADATE=`date --date='3 months' +%Y%m%d`
DELDATE=`date --date='4 months' +%Y%m%d`

ZSK=`dnssec-keygen -r /dev/urandom -K ${KEYDIR}/all -I ${INADATE} -D ${DELDATE} -S ${KEYDIR}/K${DOMAIN}.+ZSK+current.key`
chown named:named ${KEYDIR}/all/${ZSK}.*

if [ -f ${KEYDIR}/K${DOMAIN}.+ZSK+retired.key ]; then
    rm ${KEYDIR}/K${DOMAIN}.+ZSK+retired.*
fi

mv ${KEYDIR}/K${DOMAIN}.+ZSK+current.key ${KEYDIR}/K${DOMAIN}.+ZSK+retired.key
mv ${KEYDIR}/K${DOMAIN}.+ZSK+current.private ${KEYDIR}/K${DOMAIN}.+ZSK+retired.private

mv ${KEYDIR}/K${DOMAIN}.+ZSK+next.key ${KEYDIR}/K${DOMAIN}.+ZSK+current.key
mv ${KEYDIR}/K${DOMAIN}.+ZSK+next.private ${KEYDIR}/K${DOMAIN}.+ZSK+current.private

# vytvoření dalšího ZSK klíče
# stejné jako pro KSK, ale navíc je potřeba přidat DS záznam do nařazené zóny
  • pro KSK klíč je navíc potřeba nahrát DS záznam do nadřazené domény před datem publikace nového klíče