staging.inyokaproject.org

OpenVpn auf VServer einrichten mit Clients in einem lokalen Netzwerk. Auto-Boot

Status: Ungelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

Frank1964

Anmeldungsdatum:
8. Januar 2017

Beiträge: 3

# Hier habe ich einen OpenVPN-Server implementiert. # Clients aus meinem lokalen Netz verbinden sich über meinen Router # mit dem Server (automatisch beim booten des Client und schedule reconnect nach Sleep oder Verbindungsabbrüchen) # Nach erfolgreicher Verbindung wird der OpenVpn Tunnel über das Device tun0 via UDP-Protokoll aufgebaut und die Verbindung ist sicher. # Alle verbundenen Clients können sich über ihre virtuellen Tunneladressen aus dem Netz 10.8.0.0 erreichen (ping, SSH, SFTP) # Durch das stete prüfen ob die Verbindung funktioniert und ggf. einer erneuten etablierung innerhalb weniger Sekunden habe ich sozusagen ein # zuverlässiges VPN und meine privaten Daten sind mit meinem Laptop/Handy weltweit sicher erreichbar. # Ich habe hier mal die Server und Client Konfiguration am Beispiel eines Ubuntu 16.04 LTS- Servers und einem LinuxMint 18 Sarah Cleint sowie # Hier habe ich einen OpenVPN-Server implementiert. # Clients aus meinem lokalen Netz verbinden sich über meinen Router # mit dem Server (automatisch beim booten des Client und schedule reconnect nach Sleep oder Verbindungsabbrüchen) # Nach erfolgreicher Verbindung wird der OpenVpn Tunnel über das Device tun0 via UDP-Protokoll aufgebaut und die Verbindung ist sicher. # Alle verbundenen Clients können sich über ihre virtuellen Tunneladressen aus dem Netz 10.8.0.0 erreichen (ping, SSH, SFTP) # Durch das stete prüfen ob die Verbindung funktioniert und ggf. einer erneuten etablierung innerhalb weniger Sekunden habe ich sozusagen ein # zuverlässiges VPN und meine privaten Daten sind mit meinem Laptop/Handy weltweit sicher erreichbar. # Ich habe hier mal die Server und Client Konfiguration am Beispiel eines Ubuntu 16.04 LTS- Servers und einem LinuxMint 18 Sarah Cleint sowie # eines Android Smartphones für alle die sowas auch machen wollen zusammen gestellt. # Ich wünsche euch gutes Gelingen 😉

# Anmelden am V-Server per SSH als root oder besser User einloggen und dann mit sudo -i arbeiten.

apt-get update && apt-get dist-upgrade apt-get install openvpn easy-rsa

# RSA-Skripte in ein Unterveizeichnis kopieren um Änderungen durch Paketupgrades zu verhindern

mkdir /etc/openvpn/easy-rsa/

cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

nano /etc/openvpn/easy-rsa/vars

#––––––––––––––––- vars –––––––––––––––––––––––––– # Werte alle Ändern, diese werden nämlich verschlüsselt !!!

# Verschlüsselung mit 4096

export KEY_SIZE=4096 ... export CA_EXPIRE=3650 # 7300 = 20 Jahre # 9125 = 25 Jahre ... export KEY_EXPIRE=3650 # 7300 = 20 Jahre # 9125 = 25 Jahre ... export KEY_COUNTRY="DE" export KEY_PROVINCE="NRW" export KEY_CITY="Düsseldorf" export KEY_ORG="Meine Firma" export KEY_EMAIL="name@adresse.de" export KEY_OU="Analyst" ... export KEY_NAME="My VPN"

#–––––––––––––––– vars ––––––––––––––––––––––––––-

# Create Certificate Authority (CA) für Signaturen

cd /etc/openvpn/easy-rsa/ source vars # die Varaibalen sollten immer vor jedem Aufruf eines Skriptes aus diesem Vereichnis gesetzt werden!!!!

# dann das Root-CA erstellen

./build-ca

# danach ./build-key-server server

cp server.crt server.key ca.crt dh4096.pem /etc/openvpn/

# Jetzt sind die Client-Zertifikate dran. # Ich empfehle Client-Zertifikate für jeden Client einzeln zu erstellen und # keine Passphrasen-Abfrage zu benutzen, da die Cleints dann nicht (ohne großen Aufwand) automatisch gestartet werden können. cd /etc/openvpn/easy-rsa/ source vars

./build-key Jupiter

#********************************************

/etc/openvpn/easy-rsa/keys/Jupiter.crt /etc/openvpn/easy-rsa/keys/Jupiter.key /etc/openvpn/ta.key /etc/openvpn/easy-rsa/Jupiter.conf

# Dies Prozedur kann nun (ab #******) für alle weiteren Cleitns wiederholt werden (z.B. für Saturn, # Mars, Uranus....etc.)

# VORBEREITUNGEN ––––––––––––––––––––––––––––––––––––––––––––––– #============================================================================================================ mkdir /etc/openvpn/ccd

# speichern und exit

# START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to eth0 -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # END OPENVPN RULES #–––––––––––––––––––––––––––––––––––––––––––––––––––––––– # Hier mit eth0 das korrekte Interface angeben, bei VServern oft "venet0"

# Hier

DEFAULT_FORWARD_POLICY="ACCEPT"

# einstellen.

ufw allow OpenSSH ufw default deny

ufw enable uft status

#!/bin/bash

KEY_DIR=/etc/openvpn/easy-rsa/keys OUTPUT_DIR=/etc/openvpn/ccd/files BASE_CONFIG=/etc/openvpn/ccd/base.conf

cat ${BASE_CONFIG} \ <(echo -e '<ca>') \ ${KEY_DIR}/ca.crt \ <(echo -e '</ca>\n<cert>') \ ${KEY_DIR}/${1}.crt \ <(echo -e '</cert>\n<key>') \ ${KEY_DIR}/${1}.key \ <(echo -e '</key>\n<tls-auth>') \ ${KEY_DIR}/ta.key \ <(echo -e '</tls-auth>') \ > ${OUTPUT_DIR}/${1}.ovpn

#––––––––––––––––––––

# Die BASE_CONFIG=/etc/openvpn/ccd/base.conf Datei wird später im Abschnitt Client-Konfiguration erstellt

sudo adduser --system --no-create-home --disabled-login --ingroup geheimvpn geheimvpn

# Der Nutzer kann also gar nix und das ist gut, weil sicher. 😉

# SERVER-Konfiguration-––––––––––––––––––––––––––––––––––––- #================================================================================================ # Server-Konfiguration durchführen für UDP-Protokoll auf Port 443. # Default wäre port 1194, allerdings ist der nicht in jedem WiFi-Hotspot offen. # Port 443 wird normalerweise für HTTPS verwendet und kann daher auch für openvpn # verwendet werden. Port 443 ist meisten offen in der Aussenwelt.

nano /etc/openvpn/server.conf

#––––––––- /etc/openvpn/server.conf –––––––––––––––––––––––––– port 443 proto udp ca /etc/openvpn/ca.cert cert /etc/openvpn/server.crt key /etc/openvpn/server.key

# Diffie-Hellmann-Parameter angeben

dh dh4096.pem

# Das ist sozusagen der Tunnel, den openvpn erstellt. # Die virtuellen Client-IP's werden dann hieraus genommen.

server 10.8.0.0 255.255.255.0 # Tunnel

# Der Datensatz in openvpn mit der Zuordnung des virtuellen Client zu seiner virutellen IP soll # auch bei Verbindungsabbruch (z.B. restart openvpn) erhalten bleiben

ifconfig-pool-persists ipp.txt

./make_config.sh Jupiter

#Die ovpn Dateien liegen im Unterverzeichnis "files". #Diese können auf die jeweiligen Clients aufgespielt werden.

cd files ll Jupiter.ovpn

#Die .ovpn Dateien haben dann alles Zertifikate inline enthalten, was das portieren zum Client #bequemer macht.

#–––––––––––––––––––––––––––––––––––––––––––

# (wie die key files oder .ovpn-Files) anlegen ohne Extension (also z.B. # touch /etc/openvpn/ccd/Jupiter

ifconfig-push 10.8.0.5 10,8,0,6

# Das sieht eigenartig aus. ist aber so! Es muss aber ein zweiter Eintrag mit einer IP +1 hinein.

# [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] # [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] # [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] # [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] # [101,102] [105,106] [109,110] [113,114] [117,118] # [121,122] [125,126] [129,130] [133,134] [137,138] # [141,142] [145,146] [149,150] [153,154] [157,158] # [161,162] [165,166] [169,170] [173,174] [177,178] # [181,182] [185,186] [189,190] [193,194] [197,198] # [201,202] [205,206] [209,210] [213,214] [217,218] # [221,222] [225,226] [229,230] [233,234] [237,238] # [241,242] [245,246] [249,250] [253,254]

# erlaubt. Wobei der Openvpn-Server dem Client dann immer die erste der beiden Zahlen als fixe IP # vergibt.

# Das muss man unbeddingt einhalten sonst startet der Client nicht.

# Damit ist seine IP die 73 im Netz. Für alle Ubuntu Clients oder Windows Clients funktioniert aber # die +1 Regel.

#––––––––––––––––––––––––––––––––––––––––––––––– #============================================================================================== # Client installieren

# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WICHTIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Ebenso muss die Protweiterleitung oder Port-Triggering im Router enabled werden. Da dies für jedes Modell # unterschiedlich ist kann ich hier kein allgemeingültiges Beispiel gegeben werden # Bei meiner einfachen Router ist das sehr einfach über das Menü zu erreichen # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

sudo apt-get install openvpn sudo apt-get install network-manager-gnome network-manager-openvpn-gnome network-manager-openvpn

cd /etc/openvpn sftp $Deine_Server_IP cd /etc/openvpn/ccd/files get Jupiter.ovpn exit

# Damit der Client automatisch gestartet werden kann muss die Dateiextension umbenannt # werden in .conf

mv /etc/openvpn/Jupiter.ovpn /etc/openvpn/Jupiter.conf

sudo openvpn --config Jupiter.conf

oder einfach

sudo service openvpn start

# Checken ob der Tunnel aufgebaut ist # Vom Server aus Jupiter anpingen ping 10.8.0.5

#–––––––––––––––––––––––––––––––––––––––––––––––––-

# Auf einem Linux Mint/Ubuntu-Client # Kopieren der Datei Jupiter.ovpn nach /etc/openvpn und umbenennen

# rename /etc/openvpn/Jupiter.ovpn /etc/openvpn/Jupiter.conf

# Autostart funktioniert natürlich nur, ohne weitere Einstellungen, wenn keine Passphrase für das Client-Zertifikat benötigt # wird, also das Client-Zertifikat mit ./build-key und nicht mit ./build-key-pass erstell worden # ist.

# Soll der Client automatisch beim booten starten und eine Verbindung zum Tunnel sudo ln -s /lib/systemd/system/openvpn\@.service openvpn\@Jupiter.service

# letzteeres sollte aber bereits schon durch 1.) erledigt ein

# Damit sollte der Tunnel beim booten automatisch aufgebaut werden, sofern das Netzwerk an ist.

# ein Provider reset oder wenn die lease abgelaufen oder einfach das Client-Laptop aus dem # Sleep-Modus zurückkehrt ist, dann kann u.U. der openvpn Client aktiv # laufen aber durch irgendeine Änderung am Netz nicht mehr connecten.

# Wenn der Client nach x-Minuten stirbt und kein reconnect stattfindet gibt es also einen # ========================================================================================

# If you put your client system to sleep, and on resume OpenVPN does not restart, resulting in mkdir /root/scripts

nano /root/scripts/check-online.sh

# durch den jeweiligen OpenVPN-Client-Namen ersetzt werden muss

#–––––––––––––––––––––– check-online.sh ––––––––––––––– #!/bin/sh IP=10.8.0.1 LOG="/root/log_online.log" LOG_FAIL="/root/log_offline.log" HIDE_RUNS=-1 DEV="tun0" OVPN_CLIENT_PID="Jupiter.pid" # TUN device online? #

for f in /var/run/openvpn/$OVPN_CLIENT_PID do

OPENVPN_PID=cat $f #echo "PID war zuletzt $OPENVPN_PID." [ -f /proc/$OPENVPN_PID/exe ] && HIDE_RUNS=1 || echo "date - OpenVPN(Hide) is user-disabled. NOT restarting." > $LOG done

if [ $HIDE_RUNS -eq 1 ] then ping -c 1 -I $DEV $IP > /dev/null

if [ $? -eq 0 ] then echo "date - OpenVPN(Hide) is up and I can ping through it." > $LOG else

echo "date - OpenVPN(Hide) is up, but I CAN'T PING THROUGH IT. RESTARTING OPENVPN AND NETWORK." > $LOG_FAIL /etc/init.d/openvpn stop sleep 5 nmcli networking off sleep 5 nmcli networking on sleep 5 /etc/init.d/openvpn start

fi fi

#––––––––––––––––- check-online.sh ––––––––––––––––––––-

# Dieses Skript schedulen mit Cron Job! */5 * * * * /bin/sh /root/scripts/check-online.sh

# Danach sollten Verbindungsabbrüche nach Sleep des host- oder guest-systems auf der Client-Seite # automatisch gefixt werden durch prüfan alle 5 Minuten und im Fehler restart des Netzwerks und OpenVPN-Client.

#**************************************************************************************

# Der Android Client wird hier der Einfachheit halber Saturn genannt # Die App OpenVpn von Arne Schwabe installieren

source vars

./build-key Saturn

# Die ovpn Dateien liegen im Unterverzeichnis "files". # Diese können auf die jeweiligen Clients aufgespielt werden.

# Die .ovpn Dateien haben dann alles Zertifikate inline enthalten, was das portieren zum Client # bequemer macht.

# Fixe IP-Zuordnungen liefen mit der Android App nur # Z.B heisst die Client.conf Saturn.conf dann im Verzeichnis

# /etc/openvpn/ccd (oden beschrieben)

# Datei anlegen mit gleichem Namen wie .ovpn-Datei im Androidgerät aber ohne Extension. # z.b. Saturn

nano /etc/openvpn/ccd/Saturn # speichern.

# Jetzt die Datei /etc/openvpn/ccd/files/Saturn.ovpn vom Server auf das # Android Gerät (Saturn) schieben.

# Auf dem Android Client die OpenVPN App von Arne Schwabe öffnen (im Google Play Store) # Beim Start über das Ordnersymbol oben rechts die Jupiter.ovpn # importieren und ggf. anpassen (evtl. Port 443 einstellen)

# Jetzt die Verbindung starten. # Mit einer App wie z.B. ghost commander können dan Verbindungen aufgebaut werden z.B. # zu anderen Clients und Dateien traferiert werden. # Mit Juice SSH können SSH Verbindungen aufgebaut werden. # Die App von Arne Schwabe kann sich bei Abbrüchen oder Netztwechseln automatisch reconnecten. # Dies sollte, wenn die VPN-Verbindung steht die Ip des OpenVpn-Servers anzeigen

#––––––––––––––––––––––––––––––––––––––––––––––-

h machen wollen zusammen gestellt. # Ich wünsche euch gutes Gelingen 😉

# Anmelden am V-Server per SSH als root oder besser User einloggen und dann mit sudo -i arbeiten.

apt-get update && apt-get dist-upgrade apt-get install openvpn easy-rsa

# RSA-Skripte in ein Unterveizeichnis kopieren um Änderungen durch Paketupgrades zu verhindern mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

nano /etc/openvpn/easy-rsa/vars #––––––––––––––––- vars –––––––––––––––––––––––––– # Werte alle Ändern, diese werden nämlich verschlüsselt !!!

# Verschlüsselung mit 4096

export KEY_SIZE=4096 ... export CA_EXPIRE=3650 # 7300 = 20 Jahre # 9125 = 25 Jahre ... export KEY_EXPIRE=3650 # 7300 = 20 Jahre # 9125 = 25 Jahre ... export KEY_COUNTRY="DE" export KEY_PROVINCE="NRW" export KEY_CITY="Düsseldorf" export KEY_ORG="Meine Firma" export KEY_EMAIL="name@adresse.de" export KEY_OU="Analyst" ... export KEY_NAME="My VPN"

#–––––––––––––––– vars ––––––––––––––––––––––––––-

# Create Certificate Authority (CA) für Signaturen

cd /etc/openvpn/easy-rsa/ source vars # die Varaibalen sollten immer vor jedem Aufruf eines Skriptes aus diesem Vereichnis gesetzt werden!!!!

# dann das Root-CA erstellen

./build-ca

# danach ./build-key-server server

cp server.crt server.key ca.crt dh4096.pem /etc/openvpn/

# Jetzt sind die Client-Zertifikate dran. # Ich empfehle Client-Zertifikate für jeden Client einzeln zu erstellen und # keine Passphrasen-Abfrage zu benutzen, da die Cleints dann nicht (ohne großen Aufwand) automatisch gestartet werden können. cd /etc/openvpn/easy-rsa/ source vars

./build-key Jupiter

#********************************************

/etc/openvpn/easy-rsa/keys/Jupiter.crt /etc/openvpn/easy-rsa/keys/Jupiter.key /etc/openvpn/ta.key /etc/openvpn/easy-rsa/Jupiter.conf

# Dies Prozedur kann nun (ab #******) für alle weiteren Cleitns wiederholt werden (z.B. für Saturn, # Mars, Uranus....etc.)

# VORBEREITUNGEN ––––––––––––––––––––––––––––––––––––––––––––––– #============================================================================================================ mkdir /etc/openvpn/ccd

# speichern und exit

# START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to eth0 -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # END OPENVPN RULES #–––––––––––––––––––––––––––––––––––––––––––––––––––––––– # Hier mit eth0 das korrekte Interface angeben, bei VServern oft "venet0"

# Hier

DEFAULT_FORWARD_POLICY="ACCEPT"

# einstellen.

ufw allow OpenSSH ufw default deny

ufw enable uft status

#!/bin/bash

KEY_DIR=/etc/openvpn/easy-rsa/keys OUTPUT_DIR=/etc/openvpn/ccd/files BASE_CONFIG=/etc/openvpn/ccd/base.conf

cat ${BASE_CONFIG} \ <(echo -e '<ca>') \ ${KEY_DIR}/ca.crt \ <(echo -e '</ca>\n<cert>') \ ${KEY_DIR}/${1}.crt \ <(echo -e '</cert>\n<key>') \ ${KEY_DIR}/${1}.key \ <(echo -e '</key>\n<tls-auth>') \ ${KEY_DIR}/ta.key \ <(echo -e '</tls-auth>') \ > ${OUTPUT_DIR}/${1}.ovpn

#––––––––––––––––––––

# Die BASE_CONFIG=/etc/openvpn/ccd/base.conf Datei wird später im Abschnitt Client-Konfiguration erstellt

sudo adduser --system --no-create-home --disabled-login --ingroup geheimvpn geheimvpn

# Der Nutzer kann also gar nix und das ist gut, weil sicher. 😉

# SERVER-Konfiguration-––––––––––––––––––––––––––––––––––––- #================================================================================================ # Server-Konfiguration durchführen für UDP-Protokoll auf Port 443. # Default wäre port 1194, allerdings ist der nicht in jedem WiFi-Hotspot offen. # Port 443 wird normalerweise für HTTPS verwendet und kann daher auch für openvpn # verwendet werden. Port 443 ist meisten offen in der Aussenwelt.

nano /etc/openvpn/server.conf

#––––––––- /etc/openvpn/server.conf –––––––––––––––––––––––––– port 443 proto udp ca /etc/openvpn/ca.cert cert /etc/openvpn/server.crt key /etc/openvpn/server.key

# Diffie-Hellmann-Parameter angeben

dh dh4096.pem

# Das ist sozusagen der Tunnel, den openvpn erstellt. # Die virtuellen Client-IP's werden dann hieraus genommen.

server 10.8.0.0 255.255.255.0 # Tunnel

# Der Datensatz in openvpn mit der Zuordnung des virtuellen Client zu seiner virutellen IP soll # auch bei Verbindungsabbruch (z.B. restart openvpn) erhalten bleiben

ifconfig-pool-persists ipp.txt

./make_config.sh Jupiter

#Die ovpn Dateien liegen im Unterverzeichnis "files". #Diese können auf die jeweiligen Clients aufgespielt werden.

cd files ll Jupiter.ovpn

#Die .ovpn Dateien haben dann alles Zertifikate inline enthalten, was das portieren zum Client #bequemer macht.

#–––––––––––––––––––––––––––––––––––––––––––

# (wie die key files oder .ovpn-Files) anlegen ohne Extension (also z.B. # touch /etc/openvpn/ccd/Jupiter

ifconfig-push 10.8.0.5 10,8,0,6

# Das sieht eigenartig aus. ist aber so! Es muss aber ein zweiter Eintrag mit einer IP +1 hinein.

# [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] # [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] # [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] # [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] # [101,102] [105,106] [109,110] [113,114] [117,118] # [121,122] [125,126] [129,130] [133,134] [137,138] # [141,142] [145,146] [149,150] [153,154] [157,158] # [161,162] [165,166] [169,170] [173,174] [177,178] # [181,182] [185,186] [189,190] [193,194] [197,198] # [201,202] [205,206] [209,210] [213,214] [217,218] # [221,222] [225,226] [229,230] [233,234] [237,238] # [241,242] [245,246] [249,250] [253,254]

# erlaubt. Wobei der Openvpn-Server dem Client dann immer die erste der beiden Zahlen als fixe IP # vergibt.

# Das muss man unbeddingt einhalten sonst startet der Client nicht.

# Damit ist seine IP die 73 im Netz. Für alle Ubuntu Clients oder Windows Clients funktioniert aber # die +1 Regel.

#––––––––––––––––––––––––––––––––––––––––––––––– #============================================================================================== # Client installieren

# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WICHTIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # Ebenso muss die Protweiterleitung oder Port-Triggering im Router enabled werden. Da dies für jedes Modell # unterschiedlich ist kann ich hier kein allgemeingültiges Beispiel gegeben werden # Bei meiner einfachen Router ist das sehr einfach über das Menü zu erreichen # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

sudo apt-get install openvpn sudo apt-get install network-manager-gnome network-manager-openvpn-gnome network-manager-openvpn

cd /etc/openvpn sftp $Deine_Server_IP cd /etc/openvpn/ccd/files get Jupiter.ovpn exit

# Damit der Client automatisch gestartet werden kann muss die Dateiextension umbenannt # werden in .conf

mv /etc/openvpn/Jupiter.ovpn /etc/openvpn/Jupiter.conf

sudo openvpn --config Jupiter.conf

oder einfach

sudo service openvpn start

# Checken ob der Tunnel aufgebaut ist # Vom Server aus Jupiter anpingen ping 10.8.0.5

#–––––––––––––––––––––––––––––––––––––––––––––––––-

# Auf einem Linux Mint/Ubuntu-Client # Kopieren der Datei Jupiter.ovpn nach /etc/openvpn und umbenennen

# rename /etc/openvpn/Jupiter.ovpn /etc/openvpn/Jupiter.conf

# Autostart funktioniert natürlich nur, ohne weitere Einstellungen, wenn keine Passphrase für das Client-Zertifikat benötigt # wird, also das Client-Zertifikat mit ./build-key und nicht mit ./build-key-pass erstell worden # ist.

# Soll der Client automatisch beim booten starten und eine Verbindung zum Tunnel sudo ln -s /lib/systemd/system/openvpn\@.service openvpn\@Jupiter.service

# letzteeres sollte aber bereits schon durch 1.) erledigt ein

# Damit sollte der Tunnel beim booten automatisch aufgebaut werden, sofern das Netzwerk an ist.

# ein Provider reset oder wenn die lease abgelaufen oder einfach das Client-Laptop aus dem # Sleep-Modus zurückkehrt ist, dann kann u.U. der openvpn Client aktiv # laufen aber durch irgendeine Änderung am Netz nicht mehr connecten.

# Wenn der Client nach x-Minuten stirbt und kein reconnect stattfindet gibt es also einen # ========================================================================================

# If you put your client system to sleep, and on resume OpenVPN does not restart, resulting in mkdir /root/scripts

nano /root/scripts/check-online.sh

# durch den jeweiligen OpenVPN-Client-Namen ersetzt werden muss

#–––––––––––––––––––––– check-online.sh ––––––––––––––– #!/bin/sh IP=10.8.0.1 LOG="/root/log_online.log" LOG_FAIL="/root/log_offline.log" HIDE_RUNS=-1 DEV="tun0" OVPN_CLIENT_PID="Jupiter.pid" # TUN device online? #

for f in /var/run/openvpn/$OVPN_CLIENT_PID do

OPENVPN_PID=cat $f #echo "PID war zuletzt $OPENVPN_PID." [ -f /proc/$OPENVPN_PID/exe ] && HIDE_RUNS=1 || echo "date - OpenVPN(Hide) is user-disabled. NOT restarting." > $LOG done

if [ $HIDE_RUNS -eq 1 ] then ping -c 1 -I $DEV $IP > /dev/null

if [ $? -eq 0 ] then echo "date - OpenVPN(Hide) is up and I can ping through it." > $LOG else

echo "date - OpenVPN(Hide) is up, but I CAN'T PING THROUGH IT. RESTARTING OPENVPN AND NETWORK." > $LOG_FAIL /etc/init.d/openvpn stop sleep 5 nmcli networking off sleep 5 nmcli networking on sleep 5 /etc/init.d/openvpn start

fi fi

#––––––––––––––––- check-online.sh ––––––––––––––––––––-

# Dieses Skript schedulen mit Cron Job! */5 * * * * /bin/sh /root/scripts/check-online.sh

# Danach sollten Verbindungsabbrüche nach Sleep des host- oder guest-systems auf der Client-Seite # automatisch gefixt werden durch prüfan alle 5 Minuten und im Fehler restart des Netzwerks und OpenVPN-Client.

#**************************************************************************************

# Der Android Client wird hier der Einfachheit halber Saturn genannt # Die App OpenVpn von Arne Schwabe installieren

source vars

./build-key Saturn

# Die ovpn Dateien liegen im Unterverzeichnis "files". # Diese können auf die jeweiligen Clients aufgespielt werden.

# Die .ovpn Dateien haben dann alles Zertifikate inline enthalten, was das portieren zum Client # bequemer macht.

# Fixe IP-Zuordnungen liefen mit der Android App nur # Z.B heisst die Client.conf Saturn.conf dann im Verzeichnis

# /etc/openvpn/ccd (oden beschrieben)

# Datei anlegen mit gleichem Namen wie .ovpn-Datei im Androidgerät aber ohne Extension. # z.b. Saturn

nano /etc/openvpn/ccd/Saturn # speichern.

# Jetzt die Datei /etc/openvpn/ccd/files/Saturn.ovpn vom Server auf das # Android Gerät (Saturn) schieben.

# Auf dem Android Client die OpenVPN App von Arne Schwabe öffnen (im Google Play Store) # Beim Start über das Ordnersymbol oben rechts die Jupiter.ovpn # importieren und ggf. anpassen (evtl. Port 443 einstellen)

# Jetzt die Verbindung starten. # Mit einer App wie z.B. ghost commander können dan Verbindungen aufgebaut werden z.B. # zu anderen Clients und Dateien traferiert werden. # Mit Juice SSH können SSH Verbindungen aufgebaut werden. # Die App von Arne Schwabe kann sich bei Abbrüchen oder Netztwechseln automatisch reconnecten. # Dies sollte, wenn die VPN-Verbindung steht die Ip des OpenVpn-Servers anzeigen

#––––––––––––––––––––––––––––––––––––––––––––––-

Moderiert von sebix:

Keine Supportfrage erkennbar. Thema in einen passenden Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“) in jedem Forenbereich. Danke.

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5077

Sorry, aber das ist mir zu viel Arbeit dir deinen Post ordentlich zu formatieren. Lies dir Forensyntax durch und formatier den Post.

Frank1964

(Themenstarter)

Anmeldungsdatum:
8. Januar 2017

Beiträge: 3

sebix schrieb:

Sorry, aber das ist mir zu viel Arbeit dir deinen Post ordentlich zu formatieren. Lies dir Forensyntax durch und formatier den Post.

Ah das hat mir gerade den Verstand geraubt....

geht auch der link?

https://forums.linuxmint.com/viewtopic.php?f=47&t=237172&p=1262730#p1262730

Frank1964

(Themenstarter)

Anmeldungsdatum:
8. Januar 2017

Beiträge: 3

https://forums.linuxmint.com/viewtopic.php?f=47&t=237172&p=1262730#p1262730

Moderiert von Developer92:

An bestehendes Thema angehängt. Bitte eröffne keine neuen Themen die ausschließlich einen Link enthalten, da dies gegen unsere Forenregeln verstößt!

Antworten |