IPSec (Kurzform für Internet Protocol Security) wurde 1998 entwickelt, um die Schwächen des Internetprotokolls (IP) zu beheben. Es stellt eine Sicherheitsarchitektur für die Kommunikation über IP-Rechnernetze zur Verfügung. IPsec soll die Schutzziele Vertraulichkeit, Authentizität und Integrität gewährleisten.
Es wird hauptsächlich in unsicheren Umgebungen verwendet, um die Daten vor Mitlesern (Sniffern) zu schützen. Um zwei Standorte sicher über das Internet zu verbinden, wird meistens IPSec verwendet.
Bei diesem Wiki wird davon ausgegangen das die IPFire direkt mit dem Internet verbunden ist. Ferner wird davon ausgegangen das ein DynDNS-Dienst eingetragen ist. Alternativ ist es natürlich möglich eine Verbindung einzurichten wenn die IPFire ein feste IP-Adresse hat.
Grundsätzlich gibt es zwei Möglichkeiten eine VPN-Verbindung mit IPSec einzurichten. Zum einen eine Host-zu-Netz Virtual Private Network (RoadWarrior) Verbindung und zum anderen eine Netz-zu-Netz Virtual Private Network Verbindung.
Beide Möglichkeiten werden im laufe dieses Wikis beispielhaft konfiguriert.
Wenden wir uns nun zuerst der Grundkonfiguration (globale einstellungen) zu. Wenn wir eine Netz-zu-Netz VPN-Verbindung einrichten muss diese natürlich auf beiden Seiten eingerichtet werden.
Wie auf dem Bild zu sehen ist müssen wir hier lediglich den Namen (FQDN) bzw. die öffenliche IP (falls es eine feste IP-Adresse ist) eintragen.
Nach der Eingabe auf den „Speichern“-Button drücken
Nachdem wir die Grundkonfiguration vorgenommen haben erstellen wir nun eine Verbindung. Dazu klicken wir, auf der gleichen Seite, in dem Bereich „Verbindungsstatus und -kontrolle:„ auf den „Hinzufügen“-Button.
Nun erscheint dieses Auswahlfenster indem wir uns entscheiden welche Verbindungsart wir hinzufügen möchten.
Eine Host-zu-Netz Verbindung ermöglicht es einem Client sich über das Internet mit dem Netz zu verbinden und dessen Ressourcen z.B. Netzwerkfreigaben zu Nutzen.
Eine Netz-zu-Netz Verbindung ist eine VPN-Verbindung zweier Netze per IPSec (z.B. zwei IPFires) über das Internet.
Bei beiden Verbindungsarten hat man die Wahl, ob man es mit einem Preshared Key oder mit einem Zertifikat erstellen will. Die einfache Variante ist per Preshared Key.
Wir wählen das entsprechende aus und bestätigen die Auswahl mit dem Hinzufügen-Button.
Dieser Teil des Wikis ist leider noch nicht fertig.
In diesem Beispiel richten wir eine Netz-zu-Netz Verbindung zwischen zwei IPFire ein.
Das schöne ist, dass man an beiden IPFire nur sehr wenig einstellen muss und somit die Einrichtung nur einige Minuten dauert. Allerdings ist zu beachten das eine Verbindung mithilfe eine Preshared Keys (PSK) auch deutlich unsicherer ist als eine auf Zertifikatsbasis! Jeder der den PSK hat kann eine Verbindung aufbauen und hat vollen Zugriff auf das Netzwerk!
Ab IPFire Version 2.7, ist es unbedingt erforderlich bei einer PSK-Verbindung, die „Lokale ID“ und die „Remote ID“ anzugeben. Dies wird durch die Implementierung von Strongwan erforderlich. Bei Verbindungen mit Zertifikaten sollten keine ID´s angegeben werden.
Zunächst überlegen wir uns einen Namen für die Verbindung. Dieser könnte zB der Dyndns-Name der gegenüberliegenden IPFire sein.
Bei der Wahl des Preshared Key ist darauf zu achten, dass in dem Key keine Kommas enthalten sein dürfen.
Damit sich die beiden IPFire verbinden können muß bei beiden, in den globalen Einstellungen, der Haken neben „Öffentliche IP oder FQDN“ für das rote Interface oder <%defaultroute>: „Aktiviert:„ gesetzt sein.
Siehe erstes Bild „globale einstellungen“.
Nach kurzer Zeit sollten sich die beiden IPFire via IPSec verbunden haben.
Wie im vorherigen Beispiel erwähnt ist es sicherer statt eines Preshared-Keys mit Zertifikaten zu arbeiten.
Dazu müssen wir allerdings zunächst einige Grundeinstellungen vornehmen um die Voraussetzungen zu erfüllen eine Verbindung mithilfe von Zertifikaten herzustellen.
Auf beiden IPFire müssen wir Root-Zertifikate erstellen.
Auf der Seite auf der wir auch schon die globalen Einstellungen vorgenommen haben finden wir, etwas unterhalb, auch die Einstellungen für die Zertifikate. Dort klicken wir auf die Schaltfläche „Erzeuge Root/Host Zertifikate“
Es erscheint eine neue Seite auf der wir die nötigen Informationen eintragen.
Mehr Informationen als auf dem Bild zu sehen sind muss man zwar nicht eintragen aber je mehr eingetragen sind desto leichter lassen sich Root-Zertifikate voneinander unterscheiden.
Nachdem wir das Root-Zertifikat erstellt haben sind wir automatisch wieder zurück auf der vorherigen Seite. Dieser Vorgang kann je nach verwendeter Hardware mehrere Minuten dauern! Nun sehen wir im unteren Bereich das ein Root-Zertifikat und ein Host Zertifikat erstellt wurden und zur Verfügung stehen.
Wir exportieren sowohl das Root- als auch das Host-Zertifikat indem wir auf das Diskettensymbol daneben klicken. Um nicht durcheinander zu kommen benennen wir die Zertifikatsdateien so, dass wir diese der entsprechenden IPFire später leicht zuordnen können.
Auf beiden IPFire importieren wir nun das Root-Zertifikat der Gegenseite. Dazu vergeben wir zunächst in dem Feld „CA Name“ einen beliebigen Namen. Auch hier sollte man einen sinnvollen Namen wählen um es übersichtlich zu halten. Anschließend drücken wir auf die „Durchsuchen“-Schaltfläche, wählen die Zertifikatsdatei der Gegenseite aus und schließen den Dialog ab indem wir auf „Öffnen“ klicken.
In der Liste der Zertifikate erschient nun ein weiteres.
Damit sind die Voraussetzungen für eine Netz-zu-Netz Verbindung mit Zertifikaten geschaffen.
Nun müssen wir noch die Verbindung / Tunnel erstellen. Wie wir eine Verbindung erstellen haben wir schon unter dem Punkt „Einrichtung einer Verbindung“ besprochen.
Die Einrichtung einer Verbindung ist nahezu identisch mit dem beschriebenen Weg im Beispiel einer Einrichtung auf Basis einen Preshared-Keys. Die Einzige Ausnahme ist, dass wir natürlich statt einen Preshared-Key einzugeben ein Zertifikat auswählen. Dazu wählen wir weiter unten den Punkt „Ein Zertifikat hochladen“ aus, klicken anschließend daneben auf „Durchsuchen“ und wählen die Host-Zertifikatsdatei der jeweils anderen IPfire aus.
Abschließend klicken wir auf den „Speichern“-Button.
Problem:
Lösung:
Problem:
Lösung:
Problem:
Hat man ein IPSec Net2Net VPN eingerichtet und hat gleichzeitig den Firewallmodus 1 aktiv und versucht dann z.B. mittels RDP auf den Server im anderen Netz zuzugreifen, tut sich nichts. In der Firewall LOG allerdings sieht man Einträge mit ESP (Port) und einer Nummer als Quell-IFace.
Lösung:
Um das Problem zu beheben muss folgendes getan werden:
/sbin/iptables -A CUSTOMOUTPUT -p esp -j ACCEPT