Sonntag, 29. Dezember 2013

DNS im lokalen Netzwerk

Namensauflösung im lokalen Netzwerk mittels DNS


Wer seinen eigenen Server betreibt, möchte diesen gelegentlich von extern wie auch vom internen Netz aus erreichen. Üblicherweise geschieht dies über den FQDN, sei es einer der eigenen Domain oder die eines DDNS Anbieters.
Der Zugriff von einem externen Netzwerk auf einen Server in einem genateten Privaten Netzwerk hängt einerseits von einer korrekten Portweiterleitung und von einer funktionierenden Namensauflösung im Internet ab. Dieser Blog Beitrag geht auf diesen Fall aber nicht näher ein. Viel mehr soll er eine Hilfestellung und einen Lösungsansatz für all jene geben, bei denen der Zugriff von extern funktioniert, vom LAN aus, in dem sich der Server befindet, aber nicht.
Goggle liefert dazu auch schnell mal die Ursache des Problems:
Kann man vom LAN aus über den FQDN den Server im eigenen Netzwerk nicht erreichen, so blockiert mit ziemlicher Sicherheit der Router diesen Zugriff. Goggle gibt im gleichen Atemzug dazu auch noch die Lösung, der Router muss NAT-Loopback auch bekannt als Port-Reflection können.
Viele Hersteller von Routern deaktivieren dieses Feature aus Sicherheitsgründen per Default oder implementieren es schon gar nicht mehr. Ausgenommen sind natürlich die Hersteller welche auf Gedöns ihrer Kunden wieder einen Rückzieher gemacht haben, man will ja schliesslich verkaufen. Namen nenne ich keine ;) Wer sich näher mit der Sicherheitsproblematik auseinandersetzen möchte, empfehle ich dieses Video.


OK kein NAT-Loopback, was nun?

Der Router kann nun kein NAT-Loopback, trotzdem möchte man auf den Komfort der Namensauflösung auch im LAN nicht verzichten. Gut man könnte sich jetzt einen Router eines bekannten Herstellers kaufen welcher dies noch unterstützt oder man macht sich Gedanken wie man die Namensauflösung selber in die Hand nehmen könnte. Damit mich in Zukunft zumindest virtuell keiner mehr verstört anschauen muss wenn ich das Wörtchen DNS in den Mund nehme, habe ich diesen Post geschrieben :)

DNS yourself

Dieser Artikel soll in keiner Weise Anspruch auf eine professionelle DNS Konfiguration haben, sondern Anwendern welche mit der oben genannten Problematik anstehen eine Hilfe leisten.

dnsmasq

Eventuell hat man Glück un betreibt einen Router welcher bereits den dnsmasq Service benutzt und sich dieser auch konfigurieren lässt. Beispiele dazu sind die Appliances von ipfire, dd-wrt oder open-wrt.
Auch der Swisscom Centro Grande Pirelli war noch mit der openRG Version mit freigeschaltetem Admin GUI in der Lage dnsmasq zu konfigurieren.
Ich gehe davon aus das der Router auch gleichzeitig als DNS Resolver im LAN agiert. Dank dnsmasq kann man in der sogenannten Host Datei gezielt "Manipulationen" vornehmen. So wie in unserem Fall nötig die lokale IP eines Servers bei einer Namensauflösung. Wir würden also zu jeder FQDN welche wir nutzen möchten eine entsprechende IP hinterlegen. 
Macht nun ein Client eine Namensabfrage zB. auf  www.DEINSERVER.org, würde der Router die IP Adresse nun nicht mehr bei seinem eingetragenem DNS Server (idR. die des Providers) nachfragen, sondern die IP direkt selber liefern also zB. 192.168.1.10

Hierzu ein Beispiel einer Konfiguration in ipfire:

Hosts Konfiguration in ipfire


Zugegeben, viele welche diese Seite wohl besuchen werden, haben gerade nicht so einen Router im Einsatz, darum Möglichkeit 2 (von vielen anderen)

DNS Server auf der Synology Diskstation


Vielen Usern wird sich das Problem stellen, wenn sie auf ihr NAS zugreifen möchten. Darum und weil ich gerade eine zur Hand habe, zeige ich hier noch die Möglichkeit mittels Synology Diskstation

Mittels Paketmanager lässt sich ganz komfortabel ein DNS Server installieren.
Die Installation selber ist also eigentlich kein Problem. Kümmern wir uns also um die richtige Konfiguration für das lokale Netzwerk.

 

Für die eigene Domain erstellt man im DNS Server eine eigene Master Zone.
In dieser Master Zone belässt man den Domänentyp auf Forward Zone.
Als Domainname gibt man die eigene Domain an zB. myroot.noip.com
Als Master DNS-Server trägt man die IP der Diskstation ein. Den Rest kann man wie im Screenshot gezeigt belassen. 



Nun muss man noch die Eintrage der Zone den eigenen Bedürfnissen entsprechend anpassen.
Für einen IPv4 Eintrag kann man in diesem Fall einen A-Record erstellen. Möchte man wie im Screenshot gezeigt mail.tuxone.ch auf die IP 192.168.3.11 auflösen, muss man dies so konfigurieren. Möchte man die ganze Domain also einfach tuxone.ch auf nur eine IP aufgelöst haben, müsste man das Feld bei Name einfach leer lassen. Die TTL kann man so hoch belassen, ich nehme nicht an das hier gross Fluktuationen im Gange sind.


So, nun hat man einen bereits funktionierenden DNS im lokalen Netzwerk. Damit dieser den Clients aber auch bekannt ist, muss man noch die DHCP Einträge, im einfachen Fall auf dem Router, ändern.
Bei den meisten Consumer Routern gibt der DHCP Server auf dem Router als Namensserver gleich sich selber an. Damit man in Zukunft auch den DNS Server der Diskstation benutzen kann, müssen wir dies auch mitteilen. In der Regel kann man bei den DHCP Einstellungen des Routers manuell mindestens 2 IP Adressen angeben. Beim Nameserver 1 ist die IP der Diskstation einzutragen, beim Nameserver 2 die IP des Routers oder die IP eines öffentlichen Providers.
Für Swisscom Kunden ist im folgenden Screenshot noch eine Beispielkonfiguration zu sehen.
Bei den Centro Routern ist die nötige Einstellung unter Einstellungen > Grundeinstellungen Netzwerk zu finden. Hier kann man die DNS-Server IP Adressen manuell zuteilen:


Nach dem Speichern dieser Einstellung und einem DHCP/release/renew der Clients sollte die Namensauflösung nun auch im LAN wie gewünscht funktionieren.


Samstag, 21. Dezember 2013

ALIX Nachfolger im Test

PC Engines mit neuem APU System Board


PC Engines arbeitet an einem Nachfolger der erfolgreichen ALIX Serie, welche von vielen sehnlichst erwartet wird.
Mit seinem 500Mhz Geode LX Prozessor, den 3 Fast Ethernet Ports und 256MB RAM war und ist das ALIX Board ins besonderem unter den Firewall bauern sehr beliebt. So gibt es von den bekannten Firewall Appliances pfsense, m0n0wall, ipfire und den wrt's, Images welche direkt auf einem ALIX funktionieren.
Mit immer schnelleren Internetanschlüssen und höheren Anforderungen ist das ALIX mit seinen Fast Ethernet Ports und dem dürftigen RAM mittlerweile doch eher knapp bemessen ;)

apu.b1 der Nachfolger

Erfreulich das PC Engines nun wieder mit etwas neuem kommen wird. Natürlich mit Giga Ethernet Ports, natürlich mit mehr RAM. Aktuell hat PC Engines Interessierten eine erste Serie an Beta Boards geliefert. 

Hier die Spezifikationen des Beta Boards

  • Applications:
  • Routers, firewalls, VOIP, dedicated servers, special purpose network plumbing, education tools...
  • CPU:
  • AMD G series T40N or T40E APU, 1 GHz dual core (Bobcat core) with 64 bit support, 32K data + 32K instruction + 512KB L2 cache per core
  • DRAM:
  • 2 GB DDR3-1066 DRAM
  • Storage:
  • Boot from SD card (connected through USB), external USB or m-SATA SSD. 1 SATA data + power connector.
  • Power:
  • About 6 to 12W of 12V DC power depending on CPU load.
  • Expansion:
  • 2 miniPCI express (one with SIM socket for 3G modem), LPC bus, GPIO header, I2C bus, COM2 (3.3V RXD/TXD).
  • Connectivity:
  • Gigabit Ethernet (Realtek RTL8111E), 1 DB9 serial port (console).
  • Firmware:
  • CoreBoot open source system BIOS with support for iPXE and USB boot.
  • Form factor:
  • 6"x6" (152.4 x 152.4 mm), fits in our case1d2*u enclosures.
  • Cooling:
  • Conductive cooling from the CPU and south bridge to the enclosure using a 3 mm alu heat spreader. Please contact us for advice if you want to integrate this board in your own enclosure.


Preislich ist das das Board im selben Rahmen wie der Vorgänger ALIX. Für Rund Fr. 150.- ist man also mit einem Board, AC Adapter, Gehäuse und einer 16GB m-sata SSD dabei. Somit könnte der Erfolg also bereits wieder vorprogrammiert sein.
In Zukunft plant der Hersteller gemäss Webseite die definitive Version mit bis zu 2Ghz und 4GB RAM zu bringen. Das Board verfügt noch über 2 PCI-e Steckplätze für Zusatzhardware. Das System kann von einer SD Karte (Slot vorhanden), über ein externes USB Medium oder über den m-sata Anschluss booten.
Wer Installationen auf ALIX Boards kennt, wird auch hier schnell einen Weg finden. Man kennt's, es gibt keinen VGA Anschluss, die Konfiguration erfolgt über den seriellen Port.

Hands-On

Sofern man ein Gehäuse bestellt hat, wird das Board bereits darauf montiert beliefert. Weil die CPU passiv über das Gehäuse gekühlt wird, ratet der Hersteller zur vorgängigen Kontaktaufnahme. Ich denke nicht umsonst, den das Ding kann ganz schön warm werden :) So ist auch im mitgelieferten Sheet bemerkt, dass man in Zukunft wohl von der T40N CPU (9W TDP) auf die T40E (6W TDP) wechseln möchte.

Als OS habe ich mich für ipfire entschieden, weil dies sowieso meine präferierte Appliance ist.
Die Installation habe ich auf eine 16GB m-sata SSD, welche man direkt bei PC Engines bestellen kann, getätigt. Dazu habe ich das gewöhnliche ALIX Image von ipfire genommen, weil hier die serielle Schnittstelle, welche man zur Installation benötigt, bereits aktiviert ist. Da ich keinen m-sata Leser habe, musste ich einen kleinen Workaround anwenden um das Image auf die m-sata zu bekommen. Da mir nichts besseres eingefallen ist, habe einfach zuerst eine ipfire Installation über einen USB Stick vorgenommen und danach von diesem Hostsystem das Image auf die SSD kopiert. So konnte ich im 2ten Schritt die eigentliche Installation vornehmen.

Bereits beim Feeling handelt es sich mit der neuen CPU im Vergleich zum Geode Prozessor um Welten.
Auch im Vergleich mit meinem Hauptsystem einem Intel Atom D2500 muss sich der T40N 1Ghz dual Core nicht verstecken. So ist das Navigieren im WUI sehr flüssig, der Web-Proxy schnell gestartet.
Gerne würde ich an dieser Stelle iperf Messungen zwischen den LAN Schnittstellen liefern. Leider bin ich aber nicht fähig hier realistische Werte zu liefern, zudem bockt ipfire ohne richtigen WAN Anschluss ein wenig rum.
So habe ich einfach das ganze Setup welches ich von meiner Atom Firewall her habe auf das apu Board transferiert um eventuelle Unterscheide festzustellen. 
Das Gerät läuft an einem VDSL Anschluss eines Schweizer Providers mit einer Servive Geschwindigkeit von
40'000/8'000 kbps,
parallelen IPTV Streams,
Snort, Guardian (IDS),
Web-Proxy, inkl. URL-Filter, Virusscanner,
OpenVPN Server für Roadwarriors und einer Net2Net Verbindung,
und der Forward Firewall "block all"
absolut problemlos. Hier hätte das Alix mit dem IDS und der Proxy Geschichte bereits seine Mühe.
Da in dieser Konstellation noch genügend Luft vorhanden ist, habe ich auch gleich noch das TOR Relay aktiviert, welches ~40GB Bidirektionalen Traffic pro Tag generiert und besonders viele Verbindungen aufbaut.
Jetzt kommt die CPU ins Schwitzen und läuft gegen den Anschlag, was in diesem Fall aber auch beim Atom Board so wäre.
Trotzdem bleibt das Ding und alle Services stabil. Hier meine Profil-ID von ipfire: http://fireinfo.ipfire.org/profile/7378c5927b73fafd9bd170e460667f6c080e9e19


Obwohl das Board noch in der Beta Phase ist und es noch Anpassungen an der Hardware geben wird, ist das Board auf einem überzeugendem Stand.
Ich hoffe das sich die Installation in Zukunft noch ein wenig vereinfachen lässt. Auch ein ein WLAN Adapter im AC Standard wäre für die Zukunft nett. Ich sehe hier für dieses Board und ipfire, Potential weitere User zum Umstieg zu motivieren. Der Erfolg von solchen Appliances auch bei weiteren Usern Fuss zu fassen, hängt meiner Meinung nach auch von einer einfachen Installation und guter Hardware ab. 
Das dass Interesse besteht, sehe ich immer wieder an den Mails welche mich erreichen. An dieser Stelle möchte ich bei allen bedanken und mich bei denen entschuldigen welche keine Antwort bekommen. So macht es mir zB. auch besonders Freude, pfsense Usern zu helfen, obwohl dies nicht meine Hauptfirewall ist.

Ich werde über die Feiertage noch 2-3 Artikel vorbereiten. So viel sei schon gesagt. Es wird spannend, es wird geil und es wird Netz Impact haben. ;D

Frohe Festtage und es Guets Nois

lg Thomas