Anleitung: OpenVPN auf der Linux Konsole

PP Stephan

Staff member
Dieser Thread bezieht sich auf die Anleitung OpenVPN auf der Linux Konsole. Bitte schreibt hier nur, wenn Ihr Fragen, Anmerkungen oder anderes Feedback zu dieser Dokumentation habt. Um diesen Thread übersichtlich und frei von veralteten Postings zu halten, wird er ab und zu vom Moderatoren-Team aufgeräumt.
 
Last edited:

gumba

Member
Kleine Idee zum Einfügen von "password.txt" in die .ovpn-Dateien.
Über die Shell hat man das in wenigen Sekunden erledigt, z.B. indem man in das Verzeichnis wechselt, in dem die Dateien liegen und
Code:
sudo find *.ovpn -type f -exec sed -i 's/auth-user-pass/auth-user-pass password.txt/g' {} \;
ausführt.

Nicht, dass jemand sich die Arbeit macht und jede Datei einzeln anpasst :eek:
 

GCommander

New Member
Bin die Anleitung Schritt für Schritt durchgegangen. Leider kommt es am Ende zu einer Fehlermeldung:

Options error: --down script fails with '/etc/openvpn/update-resolv-conf': No such file or directory
Options error: Please correct this error.
Use --help for more information.
Die update-resolf-conf befindet sich auch nicht in der .zip Datei. Weiß jemand wie ich weiter vorgehen kann?

p.s.: Eine Anleitung für den GNOME Networkmanger wäre wohl zielführender für die meisten Nutzer.
 

GCommander

New Member
Ich nutze Fedora, deshalb muss ich auch diesen Terminal Weg beschreiten. Bei Fedora gibts keine resolvconf. Würde ich Ubuntu nutzen wäre das natürlich obsolet. Deswegen auch mein Vorschlag eine Anleitung für das GNOME Standard Programm. Damit hätte man ziemlich viele Derivate mit einem Streich abgedeckt.
 

Zebedee

New Member
Ich nutze auch Fedora. Wenn ich in der .ovpn Datei die Zeilen

down /etc/openvpn/update-resolv-conf
up /etc/openvpn/update-resolv-conf

auskommentiere, dann klappt alles reibungslos.
 

panta_rhei

New Member
Hi, Ich habe eine Frage.
Ich verwende Arch Linux und würde gerne meinen Zugang zum laufen Bringen.
hab so weit alles nach Anleitung erledigt.
Leider ist auch nach der Installation von "resolvconf" keine Datei unter /etc/openvpn/update-resolv-conf vorhanden.
mit welchen Befehl erstelle ich die Datei richtig?

Beste Grüße und Danke für eure Zeit!
 

gumba

Member
Ich hab mir irgendwann mal dieses Script gespeichert, funktioniert hier problemlos.

Code:
#!/bin/bash
#
# Parses DHCP options from openvpn to update resolv.conf
# To use set as 'up' and 'down' script in your openvpn *.conf:
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
#
# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
# and Chris Hanson
# Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL.
# 07/2013 colin@daedrum.net Fixed intet name
# 05/2006 chlauber@bnc.ch
#
# Example envs set from openvpn:
# foreign_option_1='dhcp-option DNS 193.43.27.132'
# foreign_option_2='dhcp-option DNS 193.43.27.133'
# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
# foreign_option_4='dhcp-option DOMAIN-SEARCH bnc.local'

## You might need to set the path manually here, i.e.
RESOLVCONF=/usr/bin/resolvconf

case $script_type in

up)
  for optionname in ${!foreign_option_*} ; do
    option="${!optionname}"
    echo $option
    part1=$(echo "$option" | cut -d " " -f 1)
    if [ "$part1" == "dhcp-option" ] ; then
      part2=$(echo "$option" | cut -d " " -f 2)
      part3=$(echo "$option" | cut -d " " -f 3)
      if [ "$part2" == "DNS" ] ; then
        IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
      fi
      if [[ "$part2" == "DOMAIN" || "$part2" == "DOMAIN-SEARCH" ]] ; then
        IF_DNS_SEARCH="$IF_DNS_SEARCH $part3"
      fi
    fi
  done
  R=""
  if [ "$IF_DNS_SEARCH" ]; then
    R="search "
    for DS in $IF_DNS_SEARCH ; do
      R="${R} $DS"
    done
  R="${R}
"
  fi

  for NS in $IF_DNS_NAMESERVERS ; do
    R="${R}nameserver $NS
"
  done
  #echo -n "$R" | $RESOLVCONF -x -p -a "${dev}"
  echo -n "$R" | $RESOLVCONF -x -a "${dev}.inet"
  ;;
down)
  $RESOLVCONF -d "${dev}.inet"
  ;;
esac

# Workaround / jm@epiclabs.io
# force exit with no errors. Due to an apparent conflict with the Network Manager
# $RESOLVCONF sometimes exits with error code 6 even though it has performed the
# action correctly and OpenVPN shuts down.
exit 0
Alternativ kannst mal openvpn-update-resolv-conf aus dem AUR installieren, das sieht auf den ersten Blick sehr ähnlich aus ;)
 

rockweapon

New Member
Hallo zusammen,

welchen Option in der "openvpn-client".conf von euch blockt DNS-Server, die außerhalb vom VPN liegen unter Linux?
Unter Windows kann man ja die Option: "block-outside-dns" in der Konfiguration einfügen und dann wird nur euer DNS-Server genommen.
Andere DNS-Server, die dem TAP_v9 Adapter unter Windows primär und Sekundär zugewiesen sind, werden dann ignoriert.
Die DNS-Server von euch hole ich mir mithilfe der "update-resolve-conf." Die Direktiven
Code:
 script-security 2
und
Code:
 down /etc/openvpn/update-resolv-conf
Code:
 up /etc/openvpn/update-resolv-conf
befinden sich in der "openvpn"-client.conf und funktionieren auch.
Was muss ich einstellen, damit die globalen Google-DNS als zusätzliche DNS-Server für meine VPN-Verbindung zu euch hergenommen werden?

Vielen Dank im voraus!

Gruß

rockweapon
 

moejoe

Member
Hallo miteinander,

Ich wollte nachdem ich Openvpn auch auf meinem Reciever zum laufen gebracht habe, auch auf meinem Rasberry pi zum laufen kriegen.

Denke ich krieg das auch mit der linux Anleitung hin, aber wie stelle ich sicher, dass jeder traffic, der aus dem RAS über die vpn verbinung rausgeht ?

Meine Konstellation ist, dass der RAS am Router angeschlossen ist.

Muss ich dafür iptables bemühen ?

grüße moejoe
 

moejoe

Member
Btw, wenn es interessiert

Hier ne Anleitung für den Autotart :

Die Ovpn Datei, die man benutzen will in conf unbennen zb. basel.ovpn in basel.conf

Die Datei für openvpn find man hier : /etc/default/openvpn

In der Datei bei dem Eintrag
Autostart die ovpn eintragen
zB. so:

AUTOSTART="basel"

Edit: Wg. Zeilenfehler
grüsse moejoe
 
Last edited:

moejoe

Member
Debian Stretch
RASPI vers. 2
Openvpn 2.4.0

Ich habe jetzt soweit bei meinem RAS OPENVPN installiert und konfiguriert funktioniert auch soweit
aber ich brauche eine Möglichkeit dass ich den eingehenden Datenverkehr zulassen kann ohne VPN.

Wie stelle ich das an `?
 
Last edited:

moejoe

Member
Kann ich das auch über die Commandline machen ? hab keine GUI und es soll auch keine drauf

Meine Vpnverbindung funktioniert aber ich komme zb. nicht mit meinem Handy ( Mobile Verbindung ) mit meiner dynamischen Adresse per ssh auf meinen RAS wenn die VPN Verbindung auf dem RAS läuft.

grüsse moejoe
 

Fluffy

New Member
Hallo,

ich kann mich nicht mehr über das Terminal mit PP verbinden. Ich erhalte bei einem Verbindungsversuch folgende Meldung:

"Thu May 10 12:04:48 2018 us=806806 /usr/bin/ip -6 addr add fdbf:xxxxxxxxxxxxxx/112 dev tun1
RTNETLINK answers: Operation not supported
Thu May 10 12:04:48 2018 us=808753 Linux ip -6 addr add failed: external program exited with error status: 2
Thu May 10 12:04:48 2018 us=808801 Exiting due to fatal error"

Kann mir hier jemand weiterhelfen ? Wäre wirklich sehr nett. Stehe mit Arch noch am Anfang und hab keine Ahnung, wie ich das Problem beheben könnte.

edit:

Habe mir mit folgenden Einträgen in der jeweilligen .ovpn erstmal weiterhelfen können:

pull-filter ignore "dhcp-option DNS6"
pull-filter ignore "tun-ipv6"
pull-filter ignore "ifconfig-ipv6"

Nun ist eine Verbindung zu PP wieder möglich. Jedoch nicht über stunnel. Hier werden die drei Einträge bemängelt. Von daher wäre es schön, wenn mir hier jemand weiterhelfen könnte, so dass ich die Verbindung ohne Probleme über stunnel schicken kann.

Edit2:

Habe es jetzt über obfsproxy gemacht. Nun funzt alles.
 
Last edited:

mastermind

New Member
Hallo!
Kann mir bitte jemand von Euch weiterhelfen?

Frage:
Wie kann ich den Perfect-Privacy-Openvpn-Manager auf TrueOS installieren? Oder wie kann ich die .deb Datei dafür kompillieren? Weiß das jemand von Euch?
 

neik

New Member
Ich überlege meinem Server PP vorzuschalten, bin allerdings ziemlich unerfahren was VPNs angeht.

Eine Frage:
Was passiert wenn die VPN-Verbindung abbricht, der Server aber so eingestellt ist, dass dieser keine Verbindung ohne VPN aufbauen soll?
Habe ich da noch eine Möglichkeit mich via SSH mit dem Server zu verbinden?
 

remo10

New Member
Hallo zusammen.

Bezugnehmend auf diese Anleitung:
https://www.perfect-privacy.com/de/manuals/linux_openvpn_terminal

habe ich ein paar Anmerkungen.
Unter Debian 10 funktioniert das leider nicht 100%ig.
Ich habe mir tagelang die Karten gelegt.

Die initiale Verbindung nach der frischen openvpn-Installation funktioniert gut.
Aber nach dem Neustart des Debian kommen ständig Meldungen wie:
Broadcast message from xxx@xxx(Tue 2019-11-12 08:25:50 CDT):
Password entry required for 'Enter Auth Username:' (PID 1337). Please enter password with the systemd-tty-ask-password-agent tool

Problematisch ist hierbei der openvpn-Dienst, welcher einen Auto Connect beim Reboot mit der angegebenen Password.txt versucht. Der Dienst meint es gut und versucht nach dem Neustart scheinbar die erstbeste .conf automatisch verbinden zu wollen. Aber irgendwie schlägt das fehl und o.g. Meldung erscheint sporadisch auf der Konsole.

Mein Ziel:
openvpn soll nicht automatisch nach dem Neustart starten und schon gar nicht verbinden.
Ich möchte das "manuell" erledigen.
Des Weiteren möchte ich nicht die von PP heruntergeladenen .conf-Dateien verändern.

Der Weg:
Lang und beschwerlich, da sich meine Linux-Kenntnisse im Moment noch im unteren Mittelfeld befinden.

Die Lösung:
Doch recht einfach.

1. Credentials File erstellen
sudo nano /home/hans/.pp

2. mit Inhalt
PP-Username
PP-Passwort

3. Berechtigung anpassen
sudo chmod 600 /home/hans/.pp

4. .conf-Dateien gemäß Anleitung herunterladen und openvpn + resolvconf wie unter o.g. Link installieren

5. (jetzt wird's interessant) - openvpn Autostart deaktivieren
sudo nano /etc/init.d/openvpn
-> AUTOSTART="all" ändern zu AUTOSTART="none"
sudo nano /etc/default/openvpn
-> die Zeile #AUTOSTART="none" einkommentieren
sudo systemctl daemon-reload
sudo reboot

6. Voila - keine Meldungen mehr!

Manuelle Verbindung über die Konsole herstellen:

1. Variante:
sudo openvpn --config "/etc/openvpn/Basel.conf" --auth-user-pass "/home/hans/.pp"

2. Variante (als Daemon):
sudo openvpn --config "/etc/openvpn/Basel.conf" --auth-user-pass "/home/hans/.pp" --daemon





Ich hoffe das hilft dem Einen oder Anderen.

Beste Grüße
remo


 
Top