In früheren Versionen fand sich der Shrew Soft VPN Client im offiziellen Repository Ubuntus. Leider ist das nicht mehr der Fall. Allerdings lässt sich der Client recht einfach auch für neuere Ubuntu Versionen installieren.
Changelog
- 02. Mär – Init-Script „update-rc.d“ was missing
Client Installation
Zuerst den Client von der offiziellen Shrew Soft Seite laden. Zum aktuellen Zeitpunkt ist die neueste Version 2.2.1. Im Anschluss entpacken und in das neue Verzeichnis wechseln:
cd ~/Downloads wget https://www.shrew.net/download/ike/ike-2.2.1-release.tbz2 tar xfvj ike-2.2.1-release.tbz2 cd ike
Folgende Abhängigkeiten sind für das Bauen des Clients notwendig:
sudo apt-get install cmake build-essential libedit-dev libssl-dev flex bison lsb-cxx lsb-qt4 qt4-qmake libqt4-core libqt4-dev
Nun kann der Client kompiliert werden:
cmake -DCMAKE_INSTALL_PREFIX=/usr -DQTGUI=YES -DETCDIR=/etc -DNATT=YES make sudo make install
Leider wird hierbei keine Verknüpfung zur GUI erstellt, auch fand ich kein hochauflösendes Icon. Google hat geholfen. Das Icon habe ich auf meinen Server geladen. Eine Quellenangabe hierzu fand ich leider nicht:
sudo wget https://www.debinux.de/wp-content/uploads/shrew.png -O /usr/share/icons/shrew.png sudo nano /usr/share/applications/ike.desktop
Im Editor nun folgenden Inhalt einfügen:
[Desktop Entry] Name=Shrew Soft VPN Access Manager Name[en_CA]=Shrew Soft VPN Access Manager Name[de]=Shrew Soft VPN Zugangsverwaltung Comment=Application to manage remote site configurations Comment[en_CA]=Application to manage remote site configurations Comment[de]=Anwendung zum Verwalten der VPN-konfigurationen Exec=/usr/bin/qikea Icon=/usr/share/icons/shrew.png Terminal=false Type=Application Categories=Network
Das ganze sieht dann etwa so aus:
Die Beispielkonfiguration für den Daemon, der parallel läuft, reicht in der Regel aus. Diese Konfiguration hat erstmal nichts mit der VPN Konfiguration zu tun, die man später im Client importiert/erstellt:
sudo cp /etc/iked.conf.sample /etc/iked.conf
Der Client kann nun gestartet werden, allerdings wird eine Verbindung zum Server nicht funktionieren, da der „iked“ Dienst erst noch gestartet werden muss. Der Fehler lautet dann etwa „failed to attach to key daemon„.
Automatischer Start
Anstatt die Datei „/usr/sbin/iked“ jedes mal manuell anzustoßen, kann entweder ein Upstart- oder Init-Script verwendet werden.
Upstart
sudo nano /etc/init/iked.conf
Folgender Inhalt muss eingefügt werden:
# this script will start/stop the IKE daemon # that the IKE client depends upon description "Start and stop the IKE daemon" expect fork start on startup stop on runlevel [!2345] script exec /usr/sbin/iked end script
Anschließend den Dienst starten:
sudo initctl start iked
Init-Script
sudo nano /etc/init.d/iked
Folgender Inhalt muss eingefügt werden:
#! /bin/sh -e ### BEGIN INIT INFO # Provides: IKE daemon # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: start and stop the Shrew Soft IKE daemon ### END INIT INFO test -x /usr/sbin/iked || exit 0 . /lib/lsb/init-functions export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" case "$1" in start) log_begin_msg "Starting Shrew Soft IKE daemon..." start-stop-daemon --start --quiet --exec /usr/sbin/iked || log_end_msg 1 log_end_msg 0 ;; stop) log_begin_msg "Stopping Shrew Soft IKE daemon..." start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/iked || log_end_msg 1 log_end_msg 0 ;; restart) log_begin_msg "Restarting Shrew Soft IKE daemon..." start-stop-daemon --stop --quiet --oknodo --retry 30 --exec /usr/sbin/iked || log_end_msg 1 start-stop-daemon --start --quiet --exec /usr/sbin/iked || log_end_msg 1 log_end_msg 0 ;; *) log_success_msg "Usage: /etc/init.d/iked {start|stop|restart}" exit 1 esac exit 0
Die Datei ausführbar machen und den Dienst installieren und starten:
sudo chmod +x /etc/init.d/iked && sudo update-rc.d iked defaults && sudo /etc/init.d/iked start
Die Verbindung sollte jetzt funktionieren!
Hi,
ich hab hier ubuntu mate auf dem Laptop und lies sich auch so compilieren und installieren – er baut die verbindung auch auf… sehe auch bei ifconfig das tap0 device – aber ich kann einfach nicht die VPN IPs, die ich über die VPN erreichen muss, erreichen. tracepath scheitert auch direkt „send failed“ – hat jm ne Idee? iked und die Gui klappen und es steht auch „tunnel enabled“ – hab auch die IP von der gegenstelle erhalten.
Bin auf Tips angewiesen – Ubuntu Mate ist im Grunde ubuntu 15er mit MATE Desktop
Danke für die Anleitung.
Habe damit soeben ShrewVPN erfolgreich unter Ubuntu 14.04 installiert.
hast mir viel Sucherei erspart. Danke!
Pingback: Ubuntu Server CLI: Shrew Soft VPN Client | debinux Admin-Blog
Danke, Danke, nun geht endlich wieder mein ike unter Ubuntu!!!
Ich freue mich, dass es so weit klappt (der reboot steht noch aus). Das meckern sieht so aus:
update-rc.d: using dependency based boot sequencing
insserv: warning: script ‚K01iked‘ missing LSB tags and overrides
insserv: warning: script ‚iked‘ missing LSB tags and overrides
Vielen, vielen Dank für die Hilfe und die Hinweise. Ich werde Dein (junges) Blog weiter verfolgen…
Guß, Jörg.
Hi, freut mich natürlich zu hören! :)
Ich habe dem Beitrag oben das init-Script angefügt und die LSB tags ergänzt. So sollte das auch ohne Fehler funktionieren. Am besten kannst du das alte Script erst mit „sudo update-rc.d -f iked remove“ deaktivieren, durch das neue ersetzen (die Datei) und anschließend mit „sudo update-rc.d iked defaults“ das neue installieren.
Grüße
Andŕe
Moin.
Auf der Suche nach einer Installationsanleitung für Shrew VPN 2.2.1 auf Crunchbang 11 Waldorf (Debian 7 Wheezy) bin ich auf diese Seite gekommen. Wird dieses „how to“ auf diesem System auch funktionieren? Ich würde mir ungerne meine drische Installation versauen… Also vielen Dank schon mal für die Antwort und großes Lob für diese kleine Anleitung. Vor einer Woche hatte ich noch Ubuntu 12.04 LTS drauf (dort war IKE in den Paketquellen).
Besten Gruß.
Hi,
die Abhängigkeiten, die via apt-get installiert werden, werden höchstwahrscheinlich andere Namen haben. Debian kommt auch in wheezy ohne Upstart, weshalb der Autostart dann via klassischem init Skript geregelt werden müsste. Ist jetzt alles kaum mehr Arbeit, auch wenn es sich so anhört.
Sollte ich morgen dazu kommen, werde ich mir das anschauen.
Grüße
André
Inzwischen konnte ich meine Neugier doch nicht zügeln. Das Komplilieren und anschliessende manuelle Starten des Dienstes und des Prpgramms funkionieren einwandfrei und damit identisch dem hier aufgezeigten Weg.
Damit bleibt nur noch das automatische Starten des Diensts nach Rechnerstart, welches so nicht läuft. Das überfordert z. Z. noch meinen Kenntnisstand (Upstart vs SystemD !??!?!) …
Die Verzeichnisse existieren alle. Die Dateien habe ich erstellt. Einzig das „sudo initctl start iked“ geht nicht. Ich habe übergangsweise den Dienst jetzt per „sudo iked &“ gestartet. Das würde jedoch den Neustart den Überstehen.
So. Unabhängig vom Verständnis über den Linux-Systemstart habe ich folgendes erfolgreich getestet (noch ohne reboot).
sudo cp ~/downloads/ike/script/linux/iked /etc/init.d/
sudo /etc/init.d start
… und der Dienst startet.
Sorry. Zu aufgeregt … :-)
sudo /etc/init.d/iked start
Das klingt ja erstmal gut! :)
Das init-Script habe ich noch gar nicht gesehen, aber habe es gerade installiert, funkioniert!
Nachdem du das Script kopiert hast, musst du noch die Links für die jeweiligen Runlevel installieren:
„sudo update-rc.d iked defaults“
Wahrscheinlich wird das System meckern:
„update-rc.d: warning: /etc/init.d/iked missing LSB information“
Das ist aber egal, der benutzt dann die typischen Runlevel, die für den iked ausreichen.
Grüße
André