dnssec

71
DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security DNS and Security Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto Julien Pivotto RMLL Security Track July 5th, 2016

Upload: julien-pivotto

Post on 13-Apr-2017

1.014 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: DNSSec

DNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and SecurityDNS and Security

Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto

RMLL Security TrackJuly 5th, 2016

Page 2: DNSSec

whoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoiswhoisJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto

• Sysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.euSysadmin at inuits.eu

• From small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgsFrom small to large scale orgs• Automation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & MonitoringAutomation & Monitoring• @roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie on irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/github

Page 3: DNSSec

inuits.eu

Page 4: DNSSec

DNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNSDNS

Page 5: DNSSec

What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?What is DNS?

• TTTTTTTTTTTTTTTTTL;DR Translates domain name to IP• IIIIIIIIIIIIIIIIIn facto, stores much more data than IP

Page 6: DNSSec

How it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksHow it worksLicensed under a Creative Commons Attribution-ShareAlike 2.0 License

https://www.flickr.com/photos/frans16611/6139595092

Page 7: DNSSec

Licensed under a Creative Commons Attribution-ShareAlike 2.0 LicenseInspired by @jpmens - Icons by http://jcartier.net/spip.php?aticle39

Page 8: DNSSec

Licensed under a Creative Commons Attribution-ShareAlike 2.0 LicenseInspired by @jpmens - Icons by http://jcartier.net/spip.php?aticle39

Page 9: DNSSec

Licensed under a Creative Commons Attribution-ShareAlike 2.0 LicenseInspired by @jpmens - Icons by http://jcartier.net/spip.php?aticle39

Page 10: DNSSec

Licensed under a Creative Commons Attribution-ShareAlike 2.0 LicenseInspired by @jpmens - Icons by http://jcartier.net/spip.php?aticle39

Page 11: DNSSec

Licensed under a Creative Commons Attribution-ShareAlike 2.0 LicenseInspired by @jpmens - Icons by http://jcartier.net/spip.php?aticle39

Page 12: DNSSec

DNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-criticalDNS is mission-critical

• HHHHHHHHHHHHHHHHHolds IP addresses• HHHHHHHHHHHHHHHHHolds service definitions• HHHHHHHHHHHHHHHHHolds hostnames, TXT records

Page 13: DNSSec

DNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practicesDNS practices

• DDDDDDDDDDDDDDDDDo not mix Authoritative and Recursiveservers

• MMMMMMMMMMMMMMMMMix your DNS server `brand'• HHHHHHHHHHHHHHHHHide your DNS masters• DDDDDDDDDDDDDDDDDo not invent new TLD

Page 14: DNSSec

Data stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNSData stored in DNS

• AAAAAAAAAAAAAAAAA records: IP addresses• CCCCCCCCCCCCCCCCCNAME: Cannonical names• SSSSSSSSSSSSSSSSSRV: Service record• MMMMMMMMMMMMMMMMMX: Mail servers• TTTTTTTTTTTTTTTTTXT: Text record

Page 15: DNSSec

SRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV recordsSRV records

_xmpp−client._tcp.inuits.eu. IN SRV0 5 5222 xmpp.inuits.eu.

Page 16: DNSSec

TXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT RecordsTXT Records

• SSSSSSSSSSSSSSSSSPF record: Sender Policy Framework• DDDDDDDDDDDDDDDDDKIM• KKKKKKKKKKKKKKKKKeybase.io• LLLLLLLLLLLLLLLLLet's Encrypt DNS challenge

Page 17: DNSSec

Not secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by designNot secure by design

• 11111111111111111983• DDDDDDDDDDDDDDDDDesigned for scale, not security• EEEEEEEEEEEEEEEEEarly 2000: birth of DNSSec

Page 18: DNSSec

DNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSecDNSSec

• 22222222222222222000's DNSSec RFC• DDDDDDDDDDDDDDDDDNSSec hit DNS root in 2010• MMMMMMMMMMMMMMMMMultiple iteration of RFC

Page 19: DNSSec

The Domain Name System SecurityExtensions (DNSSEC) add data origin

authentication and data integrity to theDomain Name System.

RFC 4033

Page 20: DNSSec

What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?What is DNS Sec?

• PPPPPPPPPPPPPPPPProof of origin and integrity• ZZZZZZZZZZZZZZZZZones and records signing• PPPPPPPPPPPPPPPPProof of non-existence

Page 21: DNSSec

Two types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keysTwo types of keys

• ZZZZZZZZZZZZZZZZZSK: Zone Signing Key• KKKKKKKKKKKKKKKKKSK: Key Signing Key

Page 22: DNSSec

Zone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing keyZone Signing key

• PPPPPPPPPPPPPPPPPrivate/Public key pair• SSSSSSSSSSSSSSSSSign the Records• eeeeeeeeeeeeeeeee.g sign the A records, the MX records …• RRRRRRRRRRRRRRRRRolled out frequently

Page 23: DNSSec

Key Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing KeyKey Signing Key

• PPPPPPPPPPPPPPPPPrivate/Public key pair• SSSSSSSSSSSSSSSSSign the ZSK• DDDDDDDDDDDDDDDDDesigned to be stronger than the ZSK• IIIIIIIIIIIIIIIIIts fingerprint is stored in parent zone

Page 24: DNSSec

DNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records types

• RRRRRRRRRRRRRRRRRRSIG: Signature• DDDDDDDDDDDDDDDDDNSKEY: Public key• DDDDDDDDDDDDDDDDDS: Hash of a DNSKEY (parent zone)

Page 25: DNSSec

DNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records typesDNS Records types

• NNNNNNNNNNNNNNNNNSEC: Next secure• RRRRRRRRRRRRRRRRReturns the next secure entry• RRRRRRRRRRRRRRRRReturned when next secure is not found• NNNNNNNNNNNNNNNNNSEC/NSEC3 records are signed• NNNNNNNNNNNNNNNNNSEC3 prevents zone walking

Page 26: DNSSec

In PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn PracticeIn Practice

Page 27: DNSSec

BindBindBindBindBindBindBindBindBindBindBindBindBindBindBindBindBind

• RRRRRRRRRRRRRRRRReference DNS Server• DDDDDDDDDDDDDDDDDeveloped by the Internet SystemsConsortium

• CCCCCCCCCCCCCCCCCurrent version: bind9• bbbbbbbbbbbbbbbbbind10 project is abandoned

Page 28: DNSSec

Bind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind featuresBind features

• SSSSSSSSSSSSSSSSSupports everything• RRRRRRRRRRRRRRRRRecurive, Authoritative• DDDDDDDDDDDDDDDDDynamic updates• DDDDDDDDDDDDDDDDDNSSec

Page 29: DNSSec

Bind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSecBind and DNSSec

• FFFFFFFFFFFFFFFFFull support + NSEC3• MMMMMMMMMMMMMMMMManual signing• AAAAAAAAAAAAAAAAAutomated signing• DDDDDDDDDDDDDDDDDNSSec and dynamic zones

Page 30: DNSSec

Generating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keys

mkdir /etc/bind/keyscd /etc/bind/keysdnssec−keygen rmll.examplednssec−keygen −f KSK rmll.example

Page 31: DNSSec

Generating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keysGenerating keys

dnssec−keygen −a NSEC3RSASHA1 −b 2048 rmll.example

dnssec−keygen −a NSEC3RSASHA1 −b 4096 −fKSK rmll.example

Page 32: DNSSec

Generating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keysGenerating DS keys

dnssec−dsfromkey −f /var/bind/rmll.example −K /etc/bind/keys/ rmll.example

rmll.example. IN DS 18025 8 1E223065EE5EE66F08CA1C89D8

rmll.example. IN DS 18025 8 2 522D8EA3287FFF41186169A30

Page 33: DNSSec

Enable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bindEnable DNSSec in bind

options {dnssec−enable yes;dnssec−validation yes;

}

Page 34: DNSSec

Enable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signedManually signed

zone "rmll.example" IN {type master;file "rmll.example.zone.signed";

};

Page 35: DNSSec

Enable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneEnable DNSSec for a zoneAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto SigningAuto Signing

zone "rmll.example" IN {type master;file "rmll.example.zone";key−directory "/etc/bind/keys";auto−dnssec maintain;inline−signing yes;

};

Page 36: DNSSec

Manually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zoneManually Sign a zone

dnssec−signzone −S −o rmll.example −K /etc/bind/keys/ /var/bind/master/rmll.example.zone

• Creates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone fileCreates a .signed zone file

Page 37: DNSSec

DANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANE

Page 38: DNSSec

DANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANEDANE

• DDDDDDDDDDDDDDDDDNS-based Authentication of NamedEntities

• NNNNNNNNNNNNNNNNNew record types to store public keyshashes

• IIIIIIIIIIIIIIIIIndependant from DNSSec (!)

Page 39: DNSSec

TLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA records

• HHHHHHHHHHHHHHHHHash the fingerprint of a TLS key• """""""""""""""""Replacement" for the CA (https)• NNNNNNNNNNNNNNNNNot implemented natively in browsers• IIIIIIIIIIIIIIIIImplemented in IRC clients (irssi)

Page 40: DNSSec

TLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA recordsTLSA records

_443._tcp IN TLSA 3 0 1 2bfa3214fda53315b140e65fe66

_443._tcp.www IN TLSA 3 0 1 2bfa3214fda53315b140e65

_6697._tcp.irc IN TLSA 3 0 1 2bfa3214fda53315b140e6

Page 41: DNSSec

Generating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hashGenerating a hash

openssl x509 −in cert.pem −outform DER |openssl sha256

Page 42: DNSSec

SSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSHSSH

Page 43: DNSSec

TOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFUTOFU

• TTTTTTTTTTTTTTTTTrust on first use• WWWWWWWWWWWWWWWWWorks on slowly moving env's• NNNNNNNNNNNNNNNNNowadays we populate new hosts all thetime

• NNNNNNNNNNNNNNNNNowadays we rebuild existing hosts

Page 44: DNSSec

SSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP recordsSSHFP records

• HHHHHHHHHHHHHHHHHash the fingerprint of a SSH server• IIIIIIIIIIIIIIIIImplemented in OpenSSH• UUUUUUUUUUUUUUUUUses DNS to recognize SSH key

Page 45: DNSSec

IN SSHFP 1 1e0fd9112d2fc6974597fe8968665ad6b420c

IN SSHFP 1 2 9de5bc066a898733420bcfaae8f43e80e532

IN SSHFP 2 1 223e89447a53a3178be02fee6fdd5b44228a

IN SSHFP 2 2 2644fcbd2a1b179091a195207e395d009b16

Page 46: DNSSec

VerifyHostKeyDNS noVerifyHostKeyDNS yesVerifyHostKeyDNS ask

Page 47: DNSSec

$ ssh −o VerifyHostKeyDNS=yes rmll.exampleThe authenticity of host 'rmll.example

(1.2.3.4)' can't be established.ECDSA key fingerprint is SHA256:

f8zwQD3RU62PXgwCw5WRk2OIyVY.Matching host key fingerprint found in DNSAre you sure you want to continue?

Page 48: DNSSec

Populating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fieldsPopulating SSHFP fields

• WWWWWWWWWWWWWWWWWhat if we have a single source of truth?• SSSSSSSSSSSSSSSSSomething that can scale, and be quickenough?

Page 49: DNSSec

Config ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig ManagementConfig Management

• QQQQQQQQQQQQQQQQQuickly moving env often use CfgmgmtTools

• TTTTTTTTTTTTTTTTThey know the env, store data• WWWWWWWWWWWWWWWWWe use Puppet+The foreman

Page 50: DNSSec

PuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppetPuppet

• AAAAAAAAAAAAAAAAA Config Management Tool• DDDDDDDDDDDDDDDDDeclarative• EEEEEEEEEEEEEEEEEnforces a desired state

Page 51: DNSSec

Puppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet FactsPuppet Facts

• VVVVVVVVVVVVVVVVValues collected on the host• OOOOOOOOOOOOOOOOOS version, Uptime, kernel• SSSSSSSSSSSSSSSSSSH fingerprints• SSSSSSSSSSSSSSSSSent back to master

Page 52: DNSSec

facts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfp

• hhhhhhhhhhhhhhhhhttps://github.com/jpmens/facts2sshfp• PPPPPPPPPPPPPPPPPython script• RRRRRRRRRRRRRRRRRead facts yaml files• CCCCCCCCCCCCCCCCConverts Puppet facts to SSHFP records• UUUUUUUUUUUUUUUUUses Puppet as single source of truth• fffffffffffffffffacts2sshfp.py -T nsupdate.template -Da.aa.

• OOOOOOOOOOOOOOOOOutput to templates, nsupdate commands…

Page 53: DNSSec

The Foreman

Provisioning Configuration MonitoringReporting

Page 54: DNSSec

The Foreman

Provisioning

Configuration MonitoringReporting

Page 55: DNSSec

The Foreman

Provisioning Configuration

MonitoringReporting

Page 56: DNSSec

The Foreman

Provisioning Configuration Monitoring

Reporting

Page 57: DNSSec

The Foreman

Provisioning Configuration MonitoringReporting

Page 58: DNSSec
Page 59: DNSSec
Page 60: DNSSec
Page 61: DNSSec

Foreman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman ProxiesForeman Proxies

• FFFFFFFFFFFFFFFFForeman works with a GUI + Proxies• DDDDDDDDDDDDDDDDDHCP proxy, Puppet Proxy, DNS proxy…• DDDDDDDDDDDDDDDDDNS Proxy is pluggable: bind9, powerdns…

Page 62: DNSSec

Foreman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is greatForeman is great

• OOOOOOOOOOOOOOOOOpen Source• BBBBBBBBBBBBBBBBBacked by Red Hat• TTTTTTTTTTTTTTTTThe main brick behind Red Hat Satellite 6• PPPPPPPPPPPPPPPPProvides a REST API

Page 63: DNSSec

Building a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) hostBuilding a (libvirt) host

• CCCCCCCCCCCCCCCCCreate/update DNS entries• CCCCCCCCCCCCCCCCCreate/update DHCP entries• CCCCCCCCCCCCCCCCCreate the VM in libvirt• BBBBBBBBBBBBBBBBBoot the VM• SSSSSSSSSSSSSSSSServe a kickstart• RRRRRRRRRRRRRRRRRun Puppet

Page 64: DNSSec

The Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxyThe Foreman - Puppet proxy

• PPPPPPPPPPPPPPPPPuppet Collects and save Facts on themachines

• IIIIIIIIIIIIIIIIIt can send it back to the Foreman• FFFFFFFFFFFFFFFFForeman can graph them, query them…

Page 65: DNSSec

facts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfpfacts2sshfp

• hhhhhhhhhhhhhhhhhttps://github.com/jpmens/facts2sshfp• fffffffffffffffffacts2sshfp.py -T nsupdate.template--foreman-url=https://foreman.example -Da.aa.

Page 66: DNSSec

ConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionLicensed under a Creative Commons Attribution 2.0 License

https://www.flickr.com/photos/haslamdigital/17191280202/sizes/h/

Page 67: DNSSec

DNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocksDNS rocks

• NNNNNNNNNNNNNNNNNeeded everywhere• DDDDDDDDDDDDDDDDDistributed• CCCCCCCCCCCCCCCCContains lots of data• MMMMMMMMMMMMMMMMMakes our life easier

Page 68: DNSSec

DNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implementDNSSec is easy to implement

• AAAAAAAAAAAAAAAAAutomation is key• IIIIIIIIIIIIIIIIImplemented in most of the tools• AAAAAAAAAAAAAAAAAnd most of the DNS servers

Page 69: DNSSec

DANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more securityDANE adds more security

• SSSSSSSSSSSSSSSSSSH fingerprint• IIIIIIIIIIIIIIIIIRC, SMTP certificates hashes• EEEEEEEEEEEEEEEEExisting client-side implementations

Page 70: DNSSec

DNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANEDNSSec+DANE

• DDDDDDDDDDDDDDDDDNSSec and Dane are more useful together• MMMMMMMMMMMMMMMMMake sure your resolver supports DNSsec!• TTTTTTTTTTTTTTTTThe power to check certificates without CA

Page 71: DNSSec

ContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContact

Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien [email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie

inuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitshttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.eu

[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636