Einrichten eines VPN Tunnels unter Linux: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
 
(59 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__INHALTSVERZEICHNIS_ERZWINGEN__  
__INHALTSVERZEICHNIS_ERZWINGEN__  


'''Um eine VPN Verbindung aufbauen zu können 
== Allgemeine Infos ==
* Müssen Sie die Netzordnung der Hochschule Mittweida bestätigt haben
* Darf Ihr Kennwort nicht abgelaufen sein
Beides können Sie im Bereich Ihrer persönlichen [https://setup.hs-mittweida.de Einstellungen] prüfen.
'''


== Installation ==
Um eine VPN Verbindung aufbauen zu können, müssen folg. Voraussetzungen erfüllt sein:


Bitte führen Sie '''nur eine''' der Folgenden Installationen durch und beachten Sie die Bemerkungen am Ende jeder Installationsanleitung!
=== Nutzerkonto ===
* Nutzer ist angelegt und noch gültig
* Passwort ist gesetzt und noch gültig
* Netzordnung der Hochschule Mittweida wurde bestätigt
** siehe [https://setup.hs-mittweida.de Setup]
 
=== VPN-Server ===
 
* VPN-Server sollte von extern erreichbar sein
** prüfen mit "ping vpn4.hs-mittweida.de"
 
=== Internet-Provider ===
 
* sollte VPN-Verbindungen zuverlässig aufbauen können
** prüfen mit [https://speedguide.net/analyzer.php Speedguide]
 
=== VPN-Client ===
 
* sollte korrekt installiert und konfiguriert sein
** dieser Anleitung Schritt für Schritt folgen
 
== Getestete Linux Versionen ==
 
* Debian
** Debian 9 (Jessie)
** Debian 10 (Buster)
** Debian 11 (Bullseye)
 
* Ubuntu
** Ubuntu 20.04 (Focal Fossa)
** Ubuntu 21.04 (Hirsute Hippo)
** Ubuntu 22.04 (Jammy Jellyfish)
 
* Linux Mint
** Linux Mint 20.3 (Una)
** Linux Mint 21.1 (Vera)
 
 
Stand 03/2023
 
== Installation unter Linux ==
 
Bitte führen Sie '''nur eine''' der folgenden Installationen durch und beachten Sie die Bemerkungen am Ende der Anleitung!
 
=== Paketverwaltung ===
 
''' aktuelle Version, ohne Backports '''


=== Paketverwaltung unter Debian Wheezy/Jessie ===
Wird eine aktuelle Linux-Version verwendet, z.B. Debian 11 (bullseye),
so führen Sie die Installation ganz einfach mit der Paketverwaltung durch:


Für die aktuelle Stronswan-Version muss folgende Paketquelle hinzugefügt werden (/etc/apt/sources.list):
<pre>
sudo apt-get update
sudo apt-get install ca-certificates
sudo apt-get install strongswan
sudo apt-get install libcharon-extra-plugins
sudo apt-get install libcharon-standard-plugins
sudo apt-get install libcharon-extauth-plugins
sudo apt-get install libstrongswan-extra-plugins
sudo apt-get install libstrongswan-standard-plugins
</pre>


''' Wheezy: '''
''' veraltete Version, mit Backports '''
deb http://http.debian.net/debian wheezy-backports main


Danach die folgenden Befehle für die Installation ausführen:
Wird eine veraltete Linux-Version verwendet, z.B. Debian 9 (jessie),
apt-get update
so muss zunächst der Paketverwaltung mitgeteilt werden,
apt-get -t wheezy-backports install ca-certificates strongswan libcharon-extra-plugins libstrongswan-extra-plugins libstrongswan-standard-plugins
dass sie Backports verwenden soll.
Dazu muss /etc/apt/sources.list wie folgt angepasst werden:


''' Jessie: '''
<pre>
  deb http://http.debian.net/debian jessie-backports main
  sudo deb http://http.debian.net/debian jessie-backports main
</pre>


Danach die folgenden Befehle für die Installation ausführen:
Danach die folgenden Befehle für die Installation ausführen:
  apt-get update
<pre>
  apt-get -t jessie-backports install ca-certificates strongswan libcharon-extra-plugins libstrongswan-extra-plugins libstrongswan-standard-plugins
  sudo apt-get update  
 
  sudo apt-get -t jessie-backports install ca-certificates  
sudo apt-get -t jessie-backports install strongswan  
sudo apt-get -t jessie-backports install libcharon-extra-plugins  
sudo apt-get -t jessie-backports install libcharon-standard-plugins
sudo apt-get -t jessie-backports install libstrongswan-extra-plugins  
sudo apt-get -t jessie-backports install libstrongswan-standard-plugins
</pre>


Außerdem müssen im Init-Script (/etc/init.d/ipsec) die folgenden Zeilen um "$syslog" erweitert werden:
Außerdem müssen im Init-Script (/etc/init.d/ipsec) die folgenden Zeilen um "$syslog" erweitert werden:
Zeile 36: Zeile 96:
</pre>
</pre>


''' Weitere Schritte: '''
Unabhängig von der Linux-Version sollten Sie anschließend das [[VPN-Strongswan#Zertifikat]] einrichten
und mit der [[VPN-Strongswan#Konfiguration]] fortfahren.
=== Kompilieren ===


Erstellen Sie nun noch Links auf die folgenden Konfigurationsdateien, um in den folgenden Schritten unter Punkt [[VPN-Strongswan#Konfiguration]] einfacher auf die Verschiedenen Installationsmethoden einzugehen:
Zur manuellen Kompilierung und Installation benötigen Sie das Terminal-Fenster.  
<pre>
Öffnen Sie dafür das (Start-) Menü unten links, tippen daraufhin in dem Suchfeld "Terminal"
ln -s /etc/strongswan.conf ~/Downloads/strongswan/
ein und starten Sie das Programm "Terminal".
ln -s /etc/ipsec.conf ~/Downloads/strongswan/
ln -s /etc/ipsec.secrets ~/Downloads/strongswan/
</pre>


Alternativ können Sie auch gleichzeitig die Tasten Alt+Strg+T drücken.


=== Kompilieren unter Linux Mint (18) ===
Wechseln Sie nun in ein Verzeichnis Ihrer Wahl (im folgenden erstelle ich im "Downloads"
ein neues Verzeichnis mit der Bezeichnung "strongswan" und wechsle in dieses):


Zur manuellen Kompilierung und Installation benötigen Sie das Terminal-Fenster. Öffnen Sie dafür das (Start-) Menü unten links, tippen daraufhin in dem Suchfeld "Terminal" ein und starten Sie das Programm "Terminal".
Wechseln Sie nun in ein Verzeichnis Ihrer Wahl (im folgenden erstelle ich im "Downloads" ein neues Verzeichnis mit der Bezeichnung "strongswan" und wechsle in dieses).
<pre>
<pre>
  mkdir ~/Downloads/strongswan
  mkdir ~/Downloads/strongswan
  cd ~/Downloads/strongswan/
  cd ~/Downloads/strongswan/
</pre>
</pre>
Im Verzeichnis "strongswan" angekommen, sollten Sie die '''aktuelle''' Version von Strongswan (in meinem Fall die Version 5.5.1) herunterladen und das Archiv entpacken. Geben sie dafür im Terminal-Fenster folgende Befehle ein:
 
Im Verzeichnis "strongswan" angekommen, sollten Sie die '''aktuelle''' Version von Strongswan  
(in meinem Fall die Version 5.9.3) herunterladen und das Archiv entpacken.  
Geben sie dafür im Terminal-Fenster folgende Befehle ein:
 
<pre>
<pre>
  wget https://download.strongswan.org/strongswan.tar.gz
  wget https://download.strongswan.org/strongswan.tar.gz
  tar -xzvf strongswan.tar.gz
  tar -xzvf strongswan.tar.gz
</pre>
</pre>
Das Verzeichnis sollte nun zwei Elemente enthalten. Geben Sie zur Kontrolle "ls" ein:


[[Datei:verzeichnisnachdownload.png]]
Das Verzeichnis sollte nun folgenden Inhalt haben:
 
<pre>
ls -al ~/Downloads/strongswan
strongswan-5.9.3
strongswan.tar.gz
</pre>


Wechseln Sie nun in das Verzeichnis mit der heruntergeladenen Version (in meinem Fall die 5.5.1). Über "sudo su" machen Sie sich daraufhin zum "root"-Nutzer, da für die nächsten Schritte höhere Berechtigungen notwendig sindmit mit "apt-get install ..." müssen sie vor den nächsten Schritten noch zusätzliche Pakete für den Kompilierungsprozess installieren.
Wechseln Sie nun in das Unterverzeichnis mit der heruntergeladenen Version (in meinem Fall die 5.9.3).  
Über "sudo su" machen Sie sich daraufhin zum "root"-Nutzer, da für die nächsten Schritte höhere  
Berechtigungen notwendig sind mit mit "apt-get install ..." müssen sie vor den nächsten Schritten  
noch zusätzliche Pakete für den Kompilierungsprozess installieren (falls nicht schon vorhanden):


<pre>
<pre>
  cd strongswan-5.5.1/
  cd strongswan-5.9.3
  sudo su
  sudo su
  apt-get install libc-dev-bin libc6-dev libgmp-dev \
  apt-get install libc-dev-bin
                libgmpxx4ldbl libcurl3 libcurl4-openssl-dev \
apt-get install libc6-dev
                libssl-dev zlib1g-dev
apt-get install libgmp-dev
apt-get install libcurl4
apt-get install libcurl4-openssl-dev
apt-get install libssl-dev
apt-get install zlib1g-dev                
</pre>
</pre>


Über den Befehl ".configure ..." werden nun noch Parameter festgelegt, um den korrekten Installationsumfang des Strongswans zu gewährleisen:
Über den Befehl ".configure ..." werden nun noch Parameter festgelegt, um den korrekten  
Installationsumfang des Strongswans zu gewährleisen:


<pre>
<pre>
  ./configure --enable-curl --enable-eap-mschapv2 \
  ./configure --enable-curl --enable-eap-mschapv2 --enable-eap-identity --enable-openssl
            --enable-eap-identity --enable-openssl
</pre>
</pre>


[[Datei:configureoutput.png]]
Nach erfolgreicher Konfiguration sollte folg. Zusammenfassung angezeigt werden:
 
<pre>
strongSwan will be built with the following plugins
-----------------------------------------------------
libstrongswan:
  aes des rc2 sha2 sha1 md5 mgf1 random nonce x509
  revocation constraints pubkey pkcs1 pkcs7 pkcs8
  pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp
  curve25519 xcbc cmac hmac drbg curl
libcharon:
  attr kernel-netlink resolve socket-default stroke vici
  updown eap-identity eap-mschapv2 xauth-generic counters
libtnccs:    
libtpmtss:
</pre>


Über die Befehle "make" und "make install" kompilieren und installieren Sie letztendlich das Programm:
Über die Befehle "make" und "make install" kompilieren und installieren Sie letztendlich das Programm:
Zeile 86: Zeile 180:
  make
  make
  make install
  make install
exit
</pre>
</pre>


'''Weitere Schritte:'''
Unabhängig von der Linux-Version sollten Sie dannach das [[VPN-Strongswan#Telekom-Zertifikat]] einrichten
und mit der [[VPN-Strongswan#Konfiguration]] fortfahren.
'''Bemerkungen nach der erfolgreichen Installation:'''
Wenn Sie die zur Kompilierung notwendigen Pakete nicht mehr benötigen, können Sie diese wieder entfernen mit:
<pre>
apt-get remove libc-dev-bin
apt-get remove libc6-dev
apt-get remove libgmp-dev
apt-get remove libcurl4
apt-get remove libcurl4-openssl-dev
apt-get remove libssl-dev
apt-get remove zlib1g-dev
</pre>
Außerdem kann der Strongswan jederzeit wieder deinstalliert werden, solange das Verzeichnis "strongswan/strongswan-5.9.3"
(in meinem Fall war es die Strongswan-Version 5.9.3) nicht gelöscht wird. Öffnen Sie dafür wieder das Terminal, wechseln
in dieses Verzeichnis und führen Sie den Befehl "make uninstall" aus. Dieser Schritt sollte ebenfalls ausgeführt werden,
bevor Sie eine neue Version des Strongswan installieren.


Erstellen Sie nun noch Links auf die folgenden Konfigurationsdateien, um in den folgenden Schritten unter Punkt [[VPN-Strongswan#Konfiguration]] einfacher auf die Verschiedenen Installationsmethoden einzugehen:
<pre>
<pre>
  ln -s /usr/local/etc/strongswan.conf ~/Downloads/strongswan/
  make uninstall
ln -s /usr/local/etc/ipsec.conf ~/Downloads/strongswan/
ln -s /usr/local/etc/ipsec.secrets ~/Downloads/strongswan/
</pre>
</pre>


== Zertifikat ==
Im Verzeichnis "/usr/local/etc/ipsec.d/cacerts" muss ein Link zum Zertifikat
der USERTrust RSA Certification Authority (seit Dezember 2023) angelegt werden.
Sie können wie folgt prüfen, ob dieses auf Ihrem Rechner vorhanden ist mit:
<pre>
cd /etc/ssl/certs
sudo find -iname "*.pem" | grep -i usertrust
./USERTrust_RSA_Certification_Authority.pem
./USERTrust_ECC_Certification_Authority.pem
</pre>


'''Bemerkungen nach der erfolgreichen Installation:'''
Und anschließend so verlinken:


Wenn Sie die zur Kompilierung notwendigen Pakete nicht mehr benötigen, sollten diese nun wieder entfernen.:
<pre>
<pre>
  sudo apt-get remove libc-dev-bin libc6-dev libgmp-dev \
  ln -s /etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem /usr/local/etc/ipsec.d/cacerts/
                    libgmpxx4ldbl libcurl3 libcurl4-openssl-dev \
                    libssl-dev zlib1g-dev
</pre>
</pre>
Außerdem kann der Strongswan jederzeit wieder deinstalliert werden, solange das Verzeichnis "strongswan/strongswan-5.5.1" (in meinem Fall war es die Strongswan-Version 5.5.1) nicht gelöscht wird. Öffnen Sie dafür wieder das Terminal, wechseln in dieses Verzeichnis und führen Sie den Befehl "make uninstall" aus. Dieser Schritt sollte ebenfalls ausgeführt werden, wenn Sie eine neue Version des Strongswan installieren wollen.
 
Prüfen Sie den Link mit:
<pre>
<pre>
make uninstall
ls -al /usr/local/etc/ipsec.d/cacerts
</pre>
</pre>


Das Ergebnis sollte so aussehen:
<pre>
USERTrust_RSA_Certification_Authority.pem -> /etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem
</pre>


== Konfiguration ==
== Konfiguration ==


Nach der Installation müssen folgende Dateien, welche Sie unter "~/Downloads/strongswan" verlinkt haben, bearbeitet werden:
Nach der Installation müssen folgende Dateien bearbeitet bzw. neu angelegt werden:
 
<pre>
  ~/Downloads/strongswan/strongswan.conf
  ~/Downloads/strongswan/strongswan.conf
  ~/Downloads/strongswan/ipsec.conf
  ~/Downloads/strongswan/ipsec.conf
  ~/Downloads/strongswan/ipsec.secrets
  ~/Downloads/strongswan/ipsec.secrets
</pre>


=== Vorbereitung ===
=== strongswan.conf ===
im Verzeichnis "/etc/ipsec.d/cacert" muss ein Link zum Zertifikat der Deutschen Telekom angelegt werden:
<pre>
ln -s /etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem /etc/ipsec.d/cacerts/
</pre>


==== strongswan.conf ====
Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).
Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).
<pre>
<pre>
  sudo nano ~/Downloads/strongswan/strongswan.conf
  sudo nano ~/Downloads/strongswan/strongswan.conf
</pre>
</pre>
In dieser Datei '''darf nur noch''' folgender Text '''enthalten sein''':
In dieser Datei '''darf nur noch''' folgender Text '''enthalten sein''':
<pre>
<pre>
charon {
charon {
Zeile 137: Zeile 263:
}
}
</pre>
</pre>
'''Alles''' was sonst in der Datei steht ist '''unnötig''' und '''behindert''' die Verbindung.
'''Alles''' was sonst in der Datei steht ist '''unnötig''' und '''behindert''' die Verbindung.


==== ipsec.conf ====
=== ipsec.conf ===
 
Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).
Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).
<pre>
<pre>
  sudo nano ~/Downloads/strongswan/ipsec.conf
  sudo nano ~/Downloads/strongswan/ipsec.conf
</pre>
</pre>
In dieser Datei '''muss''' folgender Text '''hinzugefügt werden''':
In dieser Datei '''muss''' folgender Text '''hinzugefügt werden''':
<pre>
<pre>
conn hsmw-vpn
conn hsmw-vpn
Zeile 161: Zeile 292:
         auto=add
         auto=add
</pre>
</pre>
'''Alles''' was sonst in der Datei steht '''wird''' für die Verbindung '''benötigt'''.
'''Alles''' was sonst in der Datei steht '''wird''' für die Verbindung '''benötigt'''.
Ersetzen Sie '''username@hs-mittweida.de''' mit ihrem eigenem Nutzernamen, z.B. '''ameier3@hs-mittweida.de'''.
=== ipsec.secrets ===


==== ipsec.secret ====
Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).
Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).
<pre>
<pre>
  sudo nano ~/Downloads/strongswan/ipsec.secret
  sudo nano ~/Downloads/strongswan/ipsec.secrets
</pre>
</pre>
In diese Datei kann folgender Text hinzugefügt werden:
 
In diese Datei sollten Sie Ihre Zugangsdaten hinzufügen:
 
<pre>
<pre>
username@hs-mittweida.de : EAP "K3nnw0rt"
username@hs-mittweida.de : EAP "K3nnw0rt"
</pre>
</pre>


=== Start und Stop der VPN-Verbindung ===
Ersetzen Sie '''username@hs-mittweida.de''' mit ihrem eigenem Nutzernamen, z.B. '''ameier3@hs-mittweida.de'''.
Um den VPN-Tunnel aufzubauen muss folgender Befehl ausgeführt werden:
Ersetzen Sie '''K3nnw0rt''' mit ihrem eigenem Passwort, z.B. '''Top@Secret007'''.
<pre>ipsec up hsmw-vpn</pre>
 
Schützen Sie Ihre Zugangsdaten vor unbefugtem Zugriff mit:
 
<pre>
chmod 600 ~/Downloads/strongswan/ipsec.secrets
</pre>
 
Die Dateirechte sollten so gesetzt sein:
 
<pre>
-rw-rw-r--  1 user user  370 Okt  8 07:52 ipsec.conf
-rw-------  1 user user  47 Okt  8 07:53 ipsec.secrets
-rw-rw-r--  1 user user  195 Okt  8 07:51 strongswan.conf
</pre>
 
=== Verlinkung ===
 
Erstellen Sie nun noch Links auf die Konfigurationsdateien:
 
<pre>
sudo ln -s ~/Downloads/strongswan/strongswan.conf /usr/local/etc/strongswan.conf
sudo ln -s ~/Downloads/strongswan/ipsec.conf /usr/local/etc/ipsec.conf
sudo ln -s ~/Downloads/strongswan/ipsec.secrets /usr/local/etc/ipsec.secrets 
</pre>
 
Prüfen Sie die Links mit:
 
<pre>
ls -al /usr/local/etc
ipsec.conf -> ~/Downloads/strongswan/ipsec.conf
ipsec.secrets -> ~/Downloads/strongswan/ipsec.secrets
strongswan.conf -> ~/Downloads/strongswan/strongswan.conf
</pre>
 
== VPN-Tunnel aufbauen ==
 
Bevor ein VPN-Tunnel aufgebaut werden kann, muss der IPSEC-Dienst gestartet werden mit:
 
<pre>
sudo ipsec start
</pre>


Der VPN-Tunnel wird mit dem folgenden Befehl beendet:
Dannach wird der VPN-Tunnel wie folgt aufgebaut:
<pre>ipsec down hsmw-vpn</pre>


'''Bemerkung:'''
Sollte Strongswan von Hand kompiliert worden sein, so muss der IPSec-Service vor dem ersten Verbindungsaufbau einmalig von Hand gestartet werden. Folgender Befehl muss dafür ausgeführt werden:
<pre>
<pre>
  ipsec start
  sudo ipsec up hsmw-vpn
</pre>
</pre>
Falls die Konfigurations-Dateien im falschen Verzeichnis liegen, meldet ipsec das beim Starten so:
<pre>
abort initialization due to invalid configuration
Starting strongSwan 5.9.3 IPsec [starter]...
failed to open config file '/usr/local/etc/ipsec.conf'
unable to start strongSwan -- fatal errors in config
</pre>
Die Datei (oder der symbolische Link) 'ipsec.conf' wurde im Verzeichnis '/usr/local/etc' erwartet,
liegt aber im Verzeichnis '/etc', Abhilfe:
<pre>
cp /etc/ipsec.conf /usr/local/etc/ipsec.conf
</pre>
Falls die Konfigurations-Dateien im richtigen Verzeichnis liegen, ipsec beim Starten jedoch immer noch Probleme hat,
könnte die Ursache dafür inhaltliche Fehler (z.B. falscher Nutzername, falsches Passwort) und/oder formale Fehler (z.B. falscher Zeichensatz, falsche Zeilenumbrüche, Sonderzeichen, fehlendes '=', fehlendes ':') in den Konfigurations-Dateien sein.
== VPN-Tunnel prüfen ==
Um den Zustand des VPN-Tunnels zu prüfen, ist folg. Befehl hilfreich:
<pre>
sudo ipsec status
</pre>
Es sollte ein Bericht angezeigt werden, der so ähnlich aussieht:
<pre>
Security Associations (1 up, 0 connecting):
hsmw-vpn[1]: ESTABLISHED 8 minutes ago, 192.168.178.43[192.168.178.43]...141.55.128.84[vpn4.hs-mittweida.de]
hsmw-vpn{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c70d1c9a_i c918ee5f_o
hsmw-vpn{1}:  141.55.149.125/32 === 0.0.0.0/0
</pre>
Falls der IPSEC-Dienst läuft, aber der VPN-Tunnel noch nicht aufgebaut wurde:
<pre>
Security Associations (0 up, 0 connecting):
none
</pre>
== VPN-Tunnel abbauen ==
Um den VPN-Tunnel abzubauen, muss folgender Befehl ausgeführt werden:
<pre>
sudo ipsec down hsmw-vpn
</pre>
Dannach kann der IPSEC-Dienst wieder gestoppt werden mit:
<pre>
sudo ipsec stop
</pre>
[[Kategorie:VPN]]
[[Kategorie:Linux]]
[[en:VPN_Strongswan]]

Aktuelle Version vom 17. Juli 2024, 09:35 Uhr


Allgemeine Infos

Um eine VPN Verbindung aufbauen zu können, müssen folg. Voraussetzungen erfüllt sein:

Nutzerkonto

  • Nutzer ist angelegt und noch gültig
  • Passwort ist gesetzt und noch gültig
  • Netzordnung der Hochschule Mittweida wurde bestätigt

VPN-Server

  • VPN-Server sollte von extern erreichbar sein
    • prüfen mit "ping vpn4.hs-mittweida.de"

Internet-Provider

  • sollte VPN-Verbindungen zuverlässig aufbauen können

VPN-Client

  • sollte korrekt installiert und konfiguriert sein
    • dieser Anleitung Schritt für Schritt folgen

Getestete Linux Versionen

  • Debian
    • Debian 9 (Jessie)
    • Debian 10 (Buster)
    • Debian 11 (Bullseye)
  • Ubuntu
    • Ubuntu 20.04 (Focal Fossa)
    • Ubuntu 21.04 (Hirsute Hippo)
    • Ubuntu 22.04 (Jammy Jellyfish)
  • Linux Mint
    • Linux Mint 20.3 (Una)
    • Linux Mint 21.1 (Vera)


Stand 03/2023

Installation unter Linux

Bitte führen Sie nur eine der folgenden Installationen durch und beachten Sie die Bemerkungen am Ende der Anleitung!

Paketverwaltung

aktuelle Version, ohne Backports

Wird eine aktuelle Linux-Version verwendet, z.B. Debian 11 (bullseye), so führen Sie die Installation ganz einfach mit der Paketverwaltung durch:

 sudo apt-get update
 sudo apt-get install ca-certificates
 sudo apt-get install strongswan
 sudo apt-get install libcharon-extra-plugins 
 sudo apt-get install libcharon-standard-plugins
 sudo apt-get install libcharon-extauth-plugins 
 sudo apt-get install libstrongswan-extra-plugins 
 sudo apt-get install libstrongswan-standard-plugins

veraltete Version, mit Backports

Wird eine veraltete Linux-Version verwendet, z.B. Debian 9 (jessie), so muss zunächst der Paketverwaltung mitgeteilt werden, dass sie Backports verwenden soll. Dazu muss /etc/apt/sources.list wie folgt angepasst werden:

 sudo deb http://http.debian.net/debian jessie-backports main

Danach die folgenden Befehle für die Installation ausführen:

 sudo apt-get update 
 sudo apt-get -t jessie-backports install ca-certificates 
 sudo apt-get -t jessie-backports install strongswan 
 sudo apt-get -t jessie-backports install libcharon-extra-plugins 
 sudo apt-get -t jessie-backports install libcharon-standard-plugins
 sudo apt-get -t jessie-backports install libstrongswan-extra-plugins 
 sudo apt-get -t jessie-backports install libstrongswan-standard-plugins

Außerdem müssen im Init-Script (/etc/init.d/ipsec) die folgenden Zeilen um "$syslog" erweitert werden:

# Required-Start:    $network $remote_fs
# Required-Stop:     $network $remote_fs

Weitere Schritte:

Unabhängig von der Linux-Version sollten Sie anschließend das VPN-Strongswan#Zertifikat einrichten und mit der VPN-Strongswan#Konfiguration fortfahren.

Kompilieren

Zur manuellen Kompilierung und Installation benötigen Sie das Terminal-Fenster. Öffnen Sie dafür das (Start-) Menü unten links, tippen daraufhin in dem Suchfeld "Terminal" ein und starten Sie das Programm "Terminal".

Alternativ können Sie auch gleichzeitig die Tasten Alt+Strg+T drücken.

Wechseln Sie nun in ein Verzeichnis Ihrer Wahl (im folgenden erstelle ich im "Downloads" ein neues Verzeichnis mit der Bezeichnung "strongswan" und wechsle in dieses):

 mkdir ~/Downloads/strongswan
 cd ~/Downloads/strongswan/

Im Verzeichnis "strongswan" angekommen, sollten Sie die aktuelle Version von Strongswan (in meinem Fall die Version 5.9.3) herunterladen und das Archiv entpacken. Geben sie dafür im Terminal-Fenster folgende Befehle ein:

 wget https://download.strongswan.org/strongswan.tar.gz
 tar -xzvf strongswan.tar.gz

Das Verzeichnis sollte nun folgenden Inhalt haben:

 ls -al ~/Downloads/strongswan
 strongswan-5.9.3
 strongswan.tar.gz

Wechseln Sie nun in das Unterverzeichnis mit der heruntergeladenen Version (in meinem Fall die 5.9.3). Über "sudo su" machen Sie sich daraufhin zum "root"-Nutzer, da für die nächsten Schritte höhere Berechtigungen notwendig sind mit mit "apt-get install ..." müssen sie vor den nächsten Schritten noch zusätzliche Pakete für den Kompilierungsprozess installieren (falls nicht schon vorhanden):

 cd strongswan-5.9.3
 sudo su
 apt-get install libc-dev-bin
 apt-get install libc6-dev
 apt-get install libgmp-dev
 apt-get install libcurl4
 apt-get install libcurl4-openssl-dev
 apt-get install libssl-dev
 apt-get install zlib1g-dev                  

Über den Befehl ".configure ..." werden nun noch Parameter festgelegt, um den korrekten Installationsumfang des Strongswans zu gewährleisen:

 ./configure --enable-curl --enable-eap-mschapv2 --enable-eap-identity --enable-openssl

Nach erfolgreicher Konfiguration sollte folg. Zusammenfassung angezeigt werden:

strongSwan will be built with the following plugins
-----------------------------------------------------
libstrongswan:
   aes des rc2 sha2 sha1 md5 mgf1 random nonce x509
   revocation constraints pubkey pkcs1 pkcs7 pkcs8
   pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp
   curve25519 xcbc cmac hmac drbg curl
libcharon:
   attr kernel-netlink resolve socket-default stroke vici
   updown eap-identity eap-mschapv2 xauth-generic counters
libtnccs:     
libtpmtss:

Über die Befehle "make" und "make install" kompilieren und installieren Sie letztendlich das Programm:

 make
 make install

Weitere Schritte:

Unabhängig von der Linux-Version sollten Sie dannach das VPN-Strongswan#Telekom-Zertifikat einrichten und mit der VPN-Strongswan#Konfiguration fortfahren.

Bemerkungen nach der erfolgreichen Installation:

Wenn Sie die zur Kompilierung notwendigen Pakete nicht mehr benötigen, können Sie diese wieder entfernen mit:

 apt-get remove libc-dev-bin
 apt-get remove libc6-dev
 apt-get remove libgmp-dev 
 apt-get remove libcurl4
 apt-get remove libcurl4-openssl-dev
 apt-get remove libssl-dev
 apt-get remove zlib1g-dev 

Außerdem kann der Strongswan jederzeit wieder deinstalliert werden, solange das Verzeichnis "strongswan/strongswan-5.9.3" (in meinem Fall war es die Strongswan-Version 5.9.3) nicht gelöscht wird. Öffnen Sie dafür wieder das Terminal, wechseln in dieses Verzeichnis und führen Sie den Befehl "make uninstall" aus. Dieser Schritt sollte ebenfalls ausgeführt werden, bevor Sie eine neue Version des Strongswan installieren.

 make uninstall

Zertifikat

Im Verzeichnis "/usr/local/etc/ipsec.d/cacerts" muss ein Link zum Zertifikat der USERTrust RSA Certification Authority (seit Dezember 2023) angelegt werden. Sie können wie folgt prüfen, ob dieses auf Ihrem Rechner vorhanden ist mit:

cd /etc/ssl/certs
sudo find -iname "*.pem" | grep -i usertrust
./USERTrust_RSA_Certification_Authority.pem
./USERTrust_ECC_Certification_Authority.pem

Und anschließend so verlinken:

 ln -s /etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem /usr/local/etc/ipsec.d/cacerts/

Prüfen Sie den Link mit:

ls -al /usr/local/etc/ipsec.d/cacerts

Das Ergebnis sollte so aussehen:

USERTrust_RSA_Certification_Authority.pem -> /etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem

Konfiguration

Nach der Installation müssen folgende Dateien bearbeitet bzw. neu angelegt werden:

 ~/Downloads/strongswan/strongswan.conf
 ~/Downloads/strongswan/ipsec.conf
 ~/Downloads/strongswan/ipsec.secrets

strongswan.conf

Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).

 sudo nano ~/Downloads/strongswan/strongswan.conf

In dieser Datei darf nur noch folgender Text enthalten sein:

charon {
  load = curl aes des sha1 sha2 md5 pem pkcs1 gmp random nonce x509 revocation hmac xcbc stroke kernel-netlink socket-default fips-prf eap-mschapv2 eap-identity updown openssl resolve
}

Alles was sonst in der Datei steht ist unnötig und behindert die Verbindung.

ipsec.conf

Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).

 sudo nano ~/Downloads/strongswan/ipsec.conf

In dieser Datei muss folgender Text hinzugefügt werden:

conn hsmw-vpn
        keyexchange=ikev2
        left=%defaultroute
        leftid=%any
        leftauth=eap
        eap_identity=username@hs-mittweida.de
        leftsourceip=%config
        leftdns=%config4
        leftfirewall=no
        right=141.55.128.84
        rightid=@vpn4.hs-mittweida.de
        rightsubnet=0.0.0.0/0
        rightauth=pubkey
        auto=add

Alles was sonst in der Datei steht wird für die Verbindung benötigt. Ersetzen Sie username@hs-mittweida.de mit ihrem eigenem Nutzernamen, z.B. ameier3@hs-mittweida.de.

ipsec.secrets

Öffnen Sie die Datei mit einem Editor ihrer Wahl (ich habe dafür "nano" verwendet).

 sudo nano ~/Downloads/strongswan/ipsec.secrets

In diese Datei sollten Sie Ihre Zugangsdaten hinzufügen:

username@hs-mittweida.de : EAP "K3nnw0rt"

Ersetzen Sie username@hs-mittweida.de mit ihrem eigenem Nutzernamen, z.B. ameier3@hs-mittweida.de. Ersetzen Sie K3nnw0rt mit ihrem eigenem Passwort, z.B. Top@Secret007.

Schützen Sie Ihre Zugangsdaten vor unbefugtem Zugriff mit:

chmod 600 ~/Downloads/strongswan/ipsec.secrets

Die Dateirechte sollten so gesetzt sein:

-rw-rw-r--  1 user user  370 Okt  8 07:52 ipsec.conf
-rw-------  1 user user   47 Okt  8 07:53 ipsec.secrets
-rw-rw-r--  1 user user  195 Okt  8 07:51 strongswan.conf

Verlinkung

Erstellen Sie nun noch Links auf die Konfigurationsdateien:

 sudo ln -s ~/Downloads/strongswan/strongswan.conf /usr/local/etc/strongswan.conf
 sudo ln -s ~/Downloads/strongswan/ipsec.conf /usr/local/etc/ipsec.conf 
 sudo ln -s ~/Downloads/strongswan/ipsec.secrets /usr/local/etc/ipsec.secrets  

Prüfen Sie die Links mit:

 ls -al /usr/local/etc
 ipsec.conf -> ~/Downloads/strongswan/ipsec.conf
 ipsec.secrets -> ~/Downloads/strongswan/ipsec.secrets
 strongswan.conf -> ~/Downloads/strongswan/strongswan.conf

VPN-Tunnel aufbauen

Bevor ein VPN-Tunnel aufgebaut werden kann, muss der IPSEC-Dienst gestartet werden mit:

 sudo ipsec start

Dannach wird der VPN-Tunnel wie folgt aufgebaut:

 sudo ipsec up hsmw-vpn

Falls die Konfigurations-Dateien im falschen Verzeichnis liegen, meldet ipsec das beim Starten so:

abort initialization due to invalid configuration
Starting strongSwan 5.9.3 IPsec [starter]...
failed to open config file '/usr/local/etc/ipsec.conf'
unable to start strongSwan -- fatal errors in config

Die Datei (oder der symbolische Link) 'ipsec.conf' wurde im Verzeichnis '/usr/local/etc' erwartet, liegt aber im Verzeichnis '/etc', Abhilfe:

 cp /etc/ipsec.conf /usr/local/etc/ipsec.conf

Falls die Konfigurations-Dateien im richtigen Verzeichnis liegen, ipsec beim Starten jedoch immer noch Probleme hat, könnte die Ursache dafür inhaltliche Fehler (z.B. falscher Nutzername, falsches Passwort) und/oder formale Fehler (z.B. falscher Zeichensatz, falsche Zeilenumbrüche, Sonderzeichen, fehlendes '=', fehlendes ':') in den Konfigurations-Dateien sein.

VPN-Tunnel prüfen

Um den Zustand des VPN-Tunnels zu prüfen, ist folg. Befehl hilfreich:

 sudo ipsec status

Es sollte ein Bericht angezeigt werden, der so ähnlich aussieht:

Security Associations (1 up, 0 connecting):
hsmw-vpn[1]: ESTABLISHED 8 minutes ago, 192.168.178.43[192.168.178.43]...141.55.128.84[vpn4.hs-mittweida.de]
hsmw-vpn{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c70d1c9a_i c918ee5f_o
hsmw-vpn{1}:   141.55.149.125/32 === 0.0.0.0/0

Falls der IPSEC-Dienst läuft, aber der VPN-Tunnel noch nicht aufgebaut wurde:

Security Associations (0 up, 0 connecting):
none

VPN-Tunnel abbauen

Um den VPN-Tunnel abzubauen, muss folgender Befehl ausgeführt werden:

 sudo ipsec down hsmw-vpn

Dannach kann der IPSEC-Dienst wieder gestoppt werden mit:

 sudo ipsec stop