Difference between revisions of "Ns.fjfi.cvut.cz"
From NMS
(→Prvotní inicializace a konfigurace) |
(→Rotování klíčů) |
||
| Line 97: | Line 97: | ||
dnssec-keygen -r /dev/urandom -I 20141001 -D 20141101 -S Kfjfi.cvut.cz.+ZSK+current.key | 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ý | * 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ý | ||
| − | # | + | # global configuration |
| − | + | ||
KEYDIR='/etc/named/keys' | KEYDIR='/etc/named/keys' | ||
| − | + | ZSK_VALID=3 # ZSK valid for 3 months | |
| + | KSK_VALID=120 # KSK valid for 10 years | ||
| + | ZONE=fjfi.cvut.cz | ||
| − | # | + | # create directories for our keys |
| − | + | #mkdir -p ${KEYDIR} | |
| − | + | #mkdir -p ${KEYDIR}-all | |
| − | ZSK=` | + | # create next ZSK (zone signing key) |
| − | + | INADATE=`date --date="${ZSK_VALID} months" +%Y%m%d` | |
| − | + | DELDATE=`date --date="$((${ZSK_VALID}+1)) months" +%Y%m%d` | |
| − | + | ||
| − | + | ZSK=`dnssec-keygen -r /dev/urandom -K ${KEYDIR}-all -I ${INADATE} -D ${DELDATE} -S ${KEYDIR}/K${ZONE}.+ZSK+current.key` | |
| − | + | chown named:named ${KEYDIR}-all/${ZSK}.* | |
| − | + | ||
| − | + | # rotate old files | |
| − | + | if [ -f ${KEYDIR}/K${ZONE}.+ZSK+next.private ]; then | |
| − | + | mv ${KEYDIR}/K${ZONE}.+ZSK+current.key ${KEYDIR}/K${ZONE}.+ZSK+retired.key | |
| − | + | mv ${KEYDIR}/K${ZONE}.+ZSK+current.private ${KEYDIR}/K${ZONE}.+ZSK+retired.private | |
| − | + | mv ${KEYDIR}/K${ZONE}.+ZSK+next.key ${KEYDIR}/K${ZONE}.+ZSK+current.key | |
| − | + | mv ${KEYDIR}/K${ZONE}.+ZSK+next.private ${KEYDIR}/K${ZONE}.+ZSK+current.private | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
fi | fi | ||
| − | + | cp ${KEYDIR}-all/${ZSK}.key ${KEYDIR}/K${ZONE}.+ZSK+next.key | |
| − | + | cp ${KEYDIR}-all/${ZSK}.private ${KEYDIR}/K${ZONE}.+ZSK+next.private | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | # | + | # create next KSK (key signing key) |
| − | # | + | # same procedure except you have to add new DS record in parent zone |
* 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 | * 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 | ||
Revision as of 12:41, 20 November 2014
| Servery / Služby |
| Přístupné komukoliv |
| Omezený/individuální účet |
| 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] |
Contents
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
- ISC bind
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/keys dnssec-keygen -r /dev/urandom -3 -a RSASHA512 -b 1024 fjfi.cvut.cz dnssec-keygen -r /dev/urandom -3 -a RSASHA512 -b 2048 -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/keys";
# publish and activate dnssec keys
auto-dnssec maintain;
# use inline signing (bind 9.9)
inline-signing yes;
# change signature validity interval
//sig-validity-interval 60 30;
};
- reloadnutí konfigurac
rndc reconfig
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)
- pokud nedojde ke kompromitaci KSK nebo nejakému zásadnímu problému s použitým šifrováním tak rotování KSK není v principu potřeba (podepisují se jím pouze nové ZSK, tj. celá řada útoků vyžadující velký vzorek zašifrovaných dat není prakticky proveditelná)
- 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ý
# global configuration
KEYDIR='/etc/named/keys'
ZSK_VALID=3 # ZSK valid for 3 months
KSK_VALID=120 # KSK valid for 10 years
ZONE=fjfi.cvut.cz
# create directories for our keys
#mkdir -p ${KEYDIR}
#mkdir -p ${KEYDIR}-all
# create next ZSK (zone signing key)
INADATE=`date --date="${ZSK_VALID} months" +%Y%m%d`
DELDATE=`date --date="$((${ZSK_VALID}+1)) months" +%Y%m%d`
ZSK=`dnssec-keygen -r /dev/urandom -K ${KEYDIR}-all -I ${INADATE} -D ${DELDATE} -S ${KEYDIR}/K${ZONE}.+ZSK+current.key`
chown named:named ${KEYDIR}-all/${ZSK}.*
# rotate old files
if [ -f ${KEYDIR}/K${ZONE}.+ZSK+next.private ]; then
mv ${KEYDIR}/K${ZONE}.+ZSK+current.key ${KEYDIR}/K${ZONE}.+ZSK+retired.key
mv ${KEYDIR}/K${ZONE}.+ZSK+current.private ${KEYDIR}/K${ZONE}.+ZSK+retired.private
mv ${KEYDIR}/K${ZONE}.+ZSK+next.key ${KEYDIR}/K${ZONE}.+ZSK+current.key
mv ${KEYDIR}/K${ZONE}.+ZSK+next.private ${KEYDIR}/K${ZONE}.+ZSK+current.private
fi
cp ${KEYDIR}-all/${ZSK}.key ${KEYDIR}/K${ZONE}.+ZSK+next.key
cp ${KEYDIR}-all/${ZSK}.private ${KEYDIR}/K${ZONE}.+ZSK+next.private
# create next KSK (key signing key)
# same procedure except you have to add new DS record in parent zone
- 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