Archiv für ‘Netzwerke’

DNSSEC mit BIND9

11. Juni 2009 00:00 | Autor: Marc | Keine Kommentare | Kategorie(n): Netzwerke, Sicherheit

Da die Verwendung von DNSSEC für die Root-Zone ja momentan heiß diskutiert wird, habe ich mir mal angesehen, wie ich denn meinem DNS-Resolver (BIND9) DNSSEC beibringe.

DNSSEC funktioniert, um es mal ganz grob zu umschreiben, mit zwei Schlüsselpaaren. Einem zone-signing-keypair (ZSK) und einem key-signing-keypair (KSK). Hiervon wird jeweils der öffentliche Schlüssel dem Resolver (aka Client) bekannt gemacht, indem dieser in das Zonefile auf einem DNS-Master integriert wird (hierzu später mehr).

Um das Ganze dann auch wirklich sicher zu machen, wird vom DNS-Resolver die trust-chain in der DNS-Hierarchie "nach oben" aufgelöst. So sucht der Resolver beim Auflösen einer DE-Domain nach den Schlüsseln für die Zone DE und danach für die Root-Zone "."

Klingt erstmal schlüssig. Nur sind weder DE-, noch Root-Zone mit entsprechenden Schlüsselpaaren signiert. Bis jetzt sind dies nur eine handvoll TLDs. Darunter .se, .pl, .gov, .museum und einige weitere. Um dennoch eine trust-chain zu schaffen, gibt es DLV (DNSSEC lookaside validation). Geht es in der normalen DNS-Hierarchie mit der trust-chain nicht weiter, versucht der DNS-Resolver per DLV einen trust-anchor zu finden.

In BIND9 (ab Version 9.3.3) wird das Ganze dann folgendermaßen implementiert (Dateinamen entsprechen Debian-Standardkonfiguration):

Zunächst den public key der ISC herunterladen, ggf. per wget. Ich habe diesen Key dann übersichtshalber in die Datei /etc/bind/named.conf.keys gespeichert. In der /etc/bind/named.conf.options werden dann folgende Zeilen hinzugefügt:
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside . trust-anchor dlv.isc.org.;

Natürlich muss dem BIND noch der public key der ISC bekannt gemacht werden. Und zwar durch folgende Zeile in der /etc/bind/named.conf:
include "/etc/namedb/named.conf.keys";

Nach einem BIND-restart kann nun per dig +dnssec iks-jena.de soa, bzw. dig iks-jena.de soa getestet werden, ob der Resolver DNSSEC spricht. Wird dig die Option +dnssec mitgegeben, sollten RRSIG-resource records ausgegeben werden.

 

VDS umgehen – Ein Ansatz

11. April 2009 16:55 | Autor: Marc | Keine Kommentare | Kategorie(n): Freiheit und Recht, Netzwerke

Auf dem Easterhegg war heute ein interessanter Ansatz zum Umgehen der Vorratsdatenspeicherung zu erfahren.

Ziel dabei ist das Originieren des Internet-Traffics im nicht-EU Ausland, in dem es keine Vorratsdatenspeicherung gibt. Die Verbindung zum Server im Ausland geschieht dabei über einen VPN-Tunnel.

Nachzulesen ist diese Lösung, die sich im Rahmen der eigenen Kreativität sicherlich noch erweitern und verbessern lässt, auf der Homepage von Dan, der den Vortrag auf dem Easterhegg gehalten hat.

 

Google per IPv6

3. April 2009 21:08 | Autor: Marc | Keine Kommentare | Kategorie(n): Netzwerke

Es ist schon länger bekannt, dass Google unter der URL ipv6.google.com per IPv6 erreichbar ist.

Weniger bekannt ist den meisten wahrscheinlich, dass Google es Providern auf Anfrage gestattet, mehrere Subdomains von google.com – darunter auch www – mit AAAA-Resource Records, sprich: IPv6-Adressen, aufzulösen. Dies ist u.a. auf den Nameservern des Tunnel Brokers SixXS der Fall.

Für alle, die nicht die Nameserver von SixXS nutzen wollen, oder können, da diese ja nur den Benutzern jenes Providers zur Verfügung steht, hier alle Namen-Adressen Paare, die ich durch Ausprobieren auftreiben konnte; fertig für die /etc/hosts

  • 2001:4860:a003::68    www.google.com
  • 2001:4860:a003::68    www.l.google.com
  • 2001:4860:a005::68    maps.google.com
  • 2001:4860:a003::68    news.google.com
  • 2001:4860:a003::68    blogsearch.google.com
  • 2001:4860:a003::53    mail.google.com
  • 2001:4860:a005::64    docs.google.com
  • 2001:4860:a003::68    picasa.google.com
  • 2001:4860:a005::88    picasaweb.google.com

 

Apache2 mit mehreren SSL-VirtualHosts

6. Februar 2009 17:05 | Autor: Marc | 4 Kommentare | Kategorie(n): Netzwerke, Sicherheit

Wer mehrere Domains auf einem Webserver betreibt, wird möglicherweise den Wunsch haben, hier verschiedene SSL-Zertifikate für die jeweiligen Domains zu installieren. Allerdings kann der Server erst nach dem SSL-Handshake entscheiden, welchen Host der Browser angefragt hat.

Abhilfe schafft das die TSL-Erweiterung SNI (Server Name Indication). Unterstützt wird diese doch recht sinnvolle Neuerung aber bisher nur von gnutls. Die Installation auf einem Debian-Server wird hier kurz beschrieben und sollte auch auf anderen Systemen mit geringen Anpassungen machbar sein.

Als Allererstes steht die Installation des Pakets apache2-threaded-dev auf dem Programm (sofern noch nicht geschehen). Dann wird die aktuelle gnutls-Version benötigt. Und zwar von gnu.org. Herunterladen, entpacken, konfigurieren, kompilieren, installieren kennt man ja. Dann benötigen div. Systeme noch einen Aufruf von ldconfig. Anschließend kann dann bereits das Apache-Modul heruntergeladen und installiert werden. Zu bekommen ist es hier.
Die Installationsprozedur verläft hier auch unspektakulär normal. Ich musste configure allerdings den Pfad von apxs2 mitgeben:
./configure --with.apxs2=/usr/bin/apxs2

make install
kopiert das Apache-Modul dann (hoffentlich) an die richtige Stelle. In diesem Fall /usr/lib/apache2/modules

Die Datei /etc/apache2/mods-enabled/gnutls.load wird nun mit folgendem Inhalt erstellt: LoadModule gnutls_module /usr/lib/apache2/modules/mod_gnutls.so
Und auch die Datei /etc/apache2/mods-enabled/gnutls.conf muss erstellt werden. Sie sollte Folgendes enthalten:
<IfModule gnutls_module>
GnuTLSCache dbm /var/cache/mod_gnutls_cache
GnuTLSCacheTimeout 300
</IfModule>

Natürlich müssen die virtuellen Hosts noch angepasst werden. Jeder vHost, der SSL verwenden soll, benötigt folgende Zeilen:
<VirtualHost 192.168.1.250:443>
ServerName www.example.de
GnuTLSEnable on
GnuTLSPriorities NORMAL
GnuTLSCertificateFile /etc/certs/example_server.pem
GnuTLSKeyFile /etc/certs/example_key.pem
DocumentRoot "/var/www/example.de"
...
</DocumentRoot>

Die möglicherweise bisher vorhandenen Zeilen, beginnend mit SSL, müssen selbstverständlich den neuen Angaben weichen.
Achtung: Die VirtualHosts-Direktiven müssen mit IP-Adresse definiert werden. Ggf. werden also für ein DocumentRoot 2 Einträge erstellt, beispielsweise bei paralleler Verwendung von IPv4 & IPv6.