Tipps & Tricks: IPsec Manager für Linux

JackCarver

Well-known Member

Hallo zusammen,
ich möchte euch hier das doch unter Linux etwas komplexe Thema IPsec vereinfachen und näherbringen. Dazu hab ich ein Tool geschrieben, das euch weitgehend alle Schritte zur Installation und Konfiguration von IPsec unter Linux abnimmt und euch ne GUI liefert, mit Hilfe der ihr euch zu den PP Servern neben OpenVPN auch über IPsec verbinden könnt. Ich hab mich bemüht das ganze relativ einfach zu halten, werde aber zu jedem der Schritte Installation, Verbindung zu den Servern, Update des Programms einen Abschnitt mit Bildern verfassen. Der Faden ist dazu erstmal in 4 Abschnitte unterteilt, die da wären:

- Allgemeiner Teil
- Installation der benötigten Pakete und Anpassen der Konfigdateien
- Verbindung zu den PP Servern über die GUI
- Update des Programmes im Falle, dass weitere Server hinzukommen

Hier ist dem allgemeinen Teil gewidmet, wo ich
einige allgemeine Sachen zum Thema IPsec und zum Programm sage.

Allgemeines zu IPsec:

Was IPsec ist, wird den meisten wahrschneinlich klar sein, in Kürze kann man sagen, dass es ebenfalls wie OpenVPN ein ssl basiertes VPN darstellt. Es wird unter Linux mittels unterschiedlicher Implementierungen realisiert, wobei die derzeit mE am besten Unterstützte und auch die mit der besten Dokumentation Strongswan darstellt. Diese wird auch von meinem Programm genutzt. Daneben gibt es zb noch Openswan.

Etwas was zu Ipsec zu sagen ist, ist dass es im Unterschied zu OpenVPN eher im Profibereich verwendet wird und eine Routerbasierte VPN Lösung ist. Sehr viele Router können IPsec, dagegen gibt es meines Wissens keinen einzigen der von Haus aus OpenVPN beherrscht. Das ist dem Umstand geschuldet, dass es für Verbindungen Router1 -> Router2 entwickelt wurde um idR 2 Netzwerke übers Internet zusammenzuschließen.
Aufgrunddessen ist es im Unterschied zu OpenVPN aber auch zickiger was NAT anbelangt, dh der Zugriff eines Clients hinter einem Router zu einem IPsec Server ist in manchen Fällen etwas schwierig um das mal so zu sagen, wobei der Router hier eine entscheidende Rolle spielt.
Es gibt Modelle, wie zb die Easybox von Vodafone, respektive mein Modell, das ich beim Testen am liebsten aus dem Fenster geschmissen hätte, da es sehr IPsec inkompatibel ist.
Wenn es also Schwierigkeiten bei Verbindungen gibt, insbesondere zu annähernd jedem Server, könnt ihr davon ausgehen, dass es an eurem Router liegt.

Das Programm benötigt zur Funktion zwei Pakete, die während des Setups installiert werden müssen, zum einen das Paket Strongswan, das die IPsec Funktion darstellt, zum anderen das Paket gksu, das benötigt wird um das Programm mit root Rechten zu starten. Ohne root Rechte keine IPsec Verbindung, ist leider so...Wie das aussieht seht ihr im Abschnitt Setup.

Das Programm erfindet also nichts neu, es ist rein ne GUI als Aufsatz auf Strongswan. Updates von IPsec spielt ihr also bequem über die Paketverwaltung ein, falls welche verfügbar sind.
Zum anderen verwendet das Programm hier in der ersten Version die zertifikatsbasierte Einwahl mittels ikev2 zu PP, das PP Zertifikat wird automatisch beim Setup installiert.
Weiterhin braucht das Programm euren PP Usernamen und euer PP Passwort und ich weiß dass das evtl für den einen oder anderen ein gewisses Problem darstellt, aber ich kann euch versichern, dass es keine Backdoor gibt, die irgendwas an irgendwen sendet. Wenn ihr dem ganzen nicht traut, dann trennt im Setup an der Stelle einfach das Internet oder blockt es mit der Firewall, es wird dazu keine Internetverbindung benötigt.
Das einzige was die GUI kontaktiert ist der gewünschte PP Server und die check-ip Abfrage von PP über https, mehr auch nicht.

Ich hab das Programm zu jedem einzelnen PP Server getestet, was auch nahezu zu 100% problemlos funktionierte, zumindest in meinem Fall übers iPhone als Router ;-)
Zu zwei Servern hab ich auch Verbindungen über jeweils ca 1,5 Std ohne Probs getestet.
Zur Funktionalität werd ich in den jeweiligen Abschnitten dann was schreiben, ich hab mich entschlossen hier an dieser Stelle es als Version 1.0 einzustellen, für Erweiterungen, Vorschläge dafür etc bin ich nahezu zu allem offen. Auch zum Thema PSK, wobei ich das mit gemischten Gefühlen sehe, wenn allerdings daran Interesse besteht kann man auch das nachrüsten.

Eine Idee wäre auch zb ne Firewallfunktion.

Die erste Version ist an Ubuntu 13.10 angepasst und auch darauf entwickelt worden, ich habe allerdings vor es auch für Mint anzupassen, je nachdem was man anpassen muss.
 
Das Setup:

Wie weiter oben schon gesagt benötigt das Programm zwei Pakete, die in einer Standardinstallation von Ubuntu 13.10 nicht vorhanden sind. Ich schreib auch keinem vor unbedingt Strongswan zu verwenden, das Programm sucht lediglich nach einer vorhandenen IPsec Installation, das kann rein theoretisch auch Openswan sein, ob allerdings die Konfig damit funktioniert hab ich nicht getestet. Solltet ihr bereits beide Pakete installiert haben wird dieser Schritt natürlich automatisch ausgelassen.

Wenn ihr das gezippte Paket runtergeladen habt, dann entpackt es irgendwo in euer Homeverzeichnis. Wo das dann ist ist komplett egal, wichtig ist nur, dass alles so in den Verzecihnissen bleibt wie es ist.
Das Hauptverzeichnis sieht dabei so aus:







Das wichtigste Tool ist dabei start_program, darüber wird alles gestartet. Des weiteren gibt es unter dem Verzeichnis Dateien noch die Programme IPsecManager sowie das copytool.
Bei allen drei zuerst mal nachgucken ob diese ausführbar sind, andernfalls ausführbar machen. Dazu Rechtsklick auf das jeweilige Prog und unter Zugriffsrechten sollte das so aussehen:

Mint:





Ubuntu:




Dann startet ihr das Prog start_program, die GUI sieht dabei folgendermaßen aus:







Hier ist als erstes der Button Setup zu klicken, beim Klick auf Programmstart bekommt ihr zunächst nur angezeigt, dass Pakete fehlen. Danach öffnet sich das Ubuntu Software Center mit den zu installierenden Paketen:






Anmerkung:
Unter der Mint Version werden nötige Pakete mittels apt-get installiert. Ihr sehr die Ausgaben der Konsole im Programmfenster.
Unter Ubuntu wird das Software-Center geöffnet. Achtet hier bitte darauf, dass ihr vorher alle Paketquellen im Software-Center aktiviert, es kann sonst sein, dass betsimmte Pakete nicht gefunden werden. Aufgefallen ist mir das beim Testen unter der 14.04 LTS Version.







Nun einfach rechts unten auf "Zwei Elemente installieren" klicken. Sobald die Installation abgeschlossen ist schließt ihr das Software Center, ein Fenster geht auf das zur Eingabe des Admin Passwortes verlangt und es öffnet sich das Fenster zur Eingabe des PP Usernamen und des PP Passwortes:









Tragt dort bitte die Infos ein und klickt auf "Konfigdateien erzeugen", dann werden die IPsec Konfigurationsdateien angepasst und es wird das PP Zertifikat installiert. Schließt danach das Fenster mit "OK".
Nun ist es an der Zeit in dem noch geöffneten start_program auf "Programmstart" zu klicken und ihr seht bereits die IPsec GUI:







Zum Abschluss des Setups und zum neu einlesen der Konfiguration klickt ihr nun bitte wie im Bild auf "Aktionen -> IPsec Daemon neu starten" und wartet bis im Anzeigefenster ein done erscheint:








Damit ist das Setup abgeschlossen.
 
Verbindug zu den PP Servern:

Die Oberfläche der GUI ist relativ schnell erklärt:






Mit den Buttons Connect bzw Disconnect werden die Verbindungen gestartet, um welche es sich dabei handelt wählt ihr aus dem Dropdownfeld aus, das bereits Amsterdam vorbelegt hat. In dem großen Feld in der Mitte werden alle Ausgaben des Programms angezeigt. Der Status zeigt Dsiconnected und das Feld der externen IP ist leer. Sobald eine Verbindung steht erscheint bei der externen IP die PP Server-IP und das Feld Disconnected wechselt über Connecting... auf Connected. Unten rechts zählt bei erfolgreicher Verbindung ein Timer hoch:









Verbunden mit Bukarest. Zum Trennen der Verbindung einfach auf Disconnect klicken:









Das Feld wechselt über Disconnecting... auf Disconnected, ihr seid wieder über euren Router verbunden. Anschließend kann ein anderer Server aus dem Dropdownfeld gewählt werden und ne erneute Verbindung gestartet werden.


Falls es mal klemmt:

Ihr habt unter dem Menü Aktionen einige Punkte zur Auswahl:







Bei größeren Änderungen an der IPsec Konfig, insbesondere wenn man zb wie im nächsten Abschnitt gezeigt ein Update derselben macht, sollte man immer zuerst den Punkt "IPsec Daemon neu starten" wählen.
Manchmal kann es vorkommen, dass im Fenster angezeigt wird "Verbindung soundso nicht gefunden". In dem Fall kann man den zweiten Punkt "IPsec Verbindungen neu einlesen" wählen.
Falls im Anzeigefenster Fehler erscheinen, so kann man sich auch die IPsec Konfigurationsdatei anzeigen lassen
um diese hier zb zu posten.
Der letzte Punkt lässt einem die IPsec Secrets anziegen, darin ist der Username und das Passwort enthalten, der Username ist auch in der Konfigdatei enthalten, also diese Dinge vor dem Posten schwärzen.

Bei den ersten beiden Punkten wird der Abschluss immer mit einem "done" quittiert, das man abwarten muss.
 
Das Update:

Ich werde das Programm mit allen derzeit aktuellen Servern und IPs einstellen und es auch aktuell halten, nichtsdestotrotz könnt ihr das auch mit relativ wenig Aufwand selber machen. Wie das geht zeig ich euch hier. Das Programm wird in weiten Teilen durch folgende Dateien gesteuert, welche sich unter dem Unterverzeichnis Dateien befinden:


- pp_server_hostnames.txt
- pp_server_IPs.txt
- ipsec.conf

pp_server_hostnames.txt sowie pp_server_IPs.txt sind einfache Listen mit den PP Servern, sowie den zugehörigen IPs. Die hostnames.txt bestimmt was im Dropdownfeld zur Auswahl angezeigt wird. Das was ihr da eintragt bekommt ihr zur Auswahl präsentiert. Wie vielleicht bemerkt fehlt der neue PP Server Nürnbergzb in dieser Liste. Um diesen hinzuzufügen und auch nutzen zu können sind folgende Schritte notwendig:


1, Die hostnames.txt mit nem Texteditor öffnen und den neuen Server, im Beispiel Nürnberg dort eintragen und speichern::






Euch merken wie ihr das geschrieben habt, im Beispiel Nuernberg, dann die Datei schließen.


2, Die ipsec.conf im Texteditor öffnen:

Wichtig sind hier die conn Abschnitte mit den Namen der Verbindungen wie zb Amsterdam usw. Ihr kopiert nun einfach nen conn Abschnitt, zb passend zu Nuernberg im Alphabet und fügt den dort zwischen ein, ich hab hier Montreal genommen (Bei den Namen der conn Abschnitte bitte keine Leerzeichen verwenden, also zb Panama-City statt Panama City, und vice versa natürlich auch in der hostnames.txt):






Nun passt ihr ihn einfach passend aus der PP Serverliste an und speichert die Datei ab. Wichtig ist, dass der Name hinter conn exakt derselbe ist, den ihr in der hostnames.txt eingetragen habt.

3, Die pp_server_IPs.txt im Texteditor öffnen und einfach die zu Nürnberg gehörenden IPs aus der PP Serverliste, die von IPs/ports sowie die Extra IPs dort am Schluss der Liste untereinander hineinkopieren:






4, Das Tool start_program öffnen und das Setup erneut ausführen.
5, Die IPsec GUI starten und die Aktion "IPsec Daemon neu starten" ausführen, auf "done" warten.
6, Im Dropdownfeld den neuen Eintrag Nuernberg auswählen und die Verbindung starten:






7, Verbunden mit Nürnberg:


 
@JackCarver

THX !

PS: Hoffentlich kommt bald mein PC aus der Reparatur zurück, damit ich wieder mit Linux "arbeiten" kann.
 
Nach einigen Änderungen (Ubuntu 14.04 bringt Strongswan in Version 5.x statt 4.x mit) steht nun auch der Link zum neuen Ubuntu 14.04 LTS oben bereit.
 
Back
Top