1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Absichern OpenVPN

Dieses Thema im Forum "OpenBSD - Installation, Pakete und Anwendungen" wurde erstellt von mogbo, 11 April 2017.

  1. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    349
    Hallo,
    Ausschnitt *.ovpn
    Code:
    user _openvpn
    group _openvpn
    chroot /var/empty
    up /etc/openvpn/up.conf
    
    Damit mein up.conf Script funktioniert habe ich natürlich die entsprechenden Ordner in /var/empty hinterlegt und die Config darin platziert. Da das Ausführen der *.ovpn Datei noch im root geschieht habe ich:
    Code:
    chown root:wheel /var/empty/etc
    chown root:wheel /var/empty/etc/*
    chown root:wheel /var/empty/etc/openvpn
    chown root:wheel /var/empty/etc/openvpn/*
    chmod 700 /var/empty/etc
    chmod 700 /var/empty/etc/*
    chmod 700 /var/empty/etc/openvpn
    chmod 700 /var/empty/etc/openvpn/*
    
    Gehe ich mit einer leeren chroot einen "sichereren" Weg, bzw. einen saubereren? Der Inhalt der up.conf ist lediglich eine pf.conf die mit pfctl -f /var/empty/etc/pf.conf ausgeführt wird. Notfalls könnte ich mir auch ein Script basteln, was das ganze außerhalb der chroot ausführt, wäre dann natürlich nicht innerhalb der *.ovpn Datei ausführbar und somit ein klein wenig unübersichtlicher.

    EDIT: Glaube mir fällt grad selber auf wie dämlich es ist eine pfctl innerhalb einer chroot auszuführen... :ugly:


    Weiterhin habe ich ein DNS-leak Problem, was lustigerweise beim ersten Start von OpenVPN (direkt nach dem Boot) bisher nie aufgetreten ist.
    Meine DNS wird von unbound an 127.0.0.1@5353 weitergegeben und fragt dann über einen dnscrypt-Server an, diesen sehe ich dann als Leak.

    Meine resolv.conf enthält (was ich nur sehr ungerne ändern würde)
    Code:
    127.0.0.1
    
    Der Hauptgrund warum ich nur ungerne die resolv.conf ändere ist der Fortbestand des Inhalts nach jedem Neustart und ein
    Code:
    echo '/pfad/zu/echo "nameserver 127.0.0.1" > /etc/resolv.conf' >> /etc/rc.local
    
    gleicht nach meinem Erachten einem Alptraum :)


    Ich denke mit einer Anpassung via Script könnte ich diesen Leak umgehen (ständiges Ändern auf den DNS-Server des VPNs), da er jedoch nach dem Boot nicht leaked sollte es auch anders möglich sein?
    Könnte ich dieses Problem evtl mit dem vollständigen Schließen der Firewall erreichen, sodass Traffic nurnoch über das VPN-Port rausgeht? Reicht ein Schließen von Port 53 auf dem Ausgangsinterface bzw. dem Blocken von Port 5353 auf lo? Habe bisher mehrere Linux-Guides auf meine Situation angepasst, musste jedoch ständig feststellen, dass ich das eigentliche Problem nicht verstehe und mehr oder weniger blind scrpiten möchte...


    Bin denke ich nicht zu doof zum Googeln, das Thema DNS-Leak wird jedoch komischerweise fast überall ignoriert oder mit sehr komischen Workarounds gelöst, zB.:
    Füge in die resolv.conf:
    Code:
    nameserver 8.8.8.8
    
    ein, dann klappts. Ging auch lustigerweise, finde ich jedoch ziemlich dämlich, weil naja, braucht man denke ich nichts zu sagen...
     
  2. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    349
    Dieser Teil hat sich vollständig erledigt, die down.conf wird innerhalb der chroot und die up.conf außerhalb gestartet, somit finde ich keinen wirklich Sinn für die Scripte in der chroot.
     
  3. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    349
    Also habe weiter durchprobiert:
    /etc/resolv.conf
    Code:
    nameserver 208.67.222.222
    nameserver 208.67.220.220
    
    OpenDNS

    /etc/resolv.conf
    Code:
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
    Google

    Anscheinend (oder offensichtlich) haben die DNS Anfragen hier für OpenVPN etwas besonderes, sodass der DNS-Leak nicht entsteht, wenn ich versuche den Unsinn zu googeln erhalte ich zwar die Bestätigung, aber nirgends eine Erklärung warum das so ist. Hat hier keiner eine Idee an was das liegen könnte?

    (eventuell hab ich mich oben umständlich ausgedrückt, dass keiner mein Problem versteht?)
     
  4. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    349
    Habe mein Problem gefunden, ich sende meine DNS Anfragen mit dnscrypt am VPN-Tunnel vorbei. Feste IPs in der resolv.conf, die außerhalb meines Lokalen Netzwerkes liegen laufen alle ohne Probleme.
    Naja jetzt ist mir wenigstens klar, dass die Verwendung von dnscrypt-proxy serverseitig für einen OpenVPN-Server Sinn macht, clientseitig jedoch nicht.
     
  5. raiding

    raiding Member

    Registriert seit:
    9 April 2011
    Beiträge:
    64
    Hast du dieses Projekt auf OpenBSD oder FreeBSD umgesetzt?
     
  6. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    349
    OpenBSD, müsste aber in FreeBSD fast bzw. mit Ausnahme der pf.conf gleich aussehen. Die Konfiguration ist eigentlich ohnehin extrem simpel, sobald man versteht wie OpenVPN routet

    EDIT: Hast du ein ähnliches Problem?
     
  7. raiding

    raiding Member

    Registriert seit:
    9 April 2011
    Beiträge:
    64
    Ich habe mir deine Posts durchgelesen und die einzelnen Schritte kamen mir bekannt vor ;)

    Das Tut habe ich via FreeBSD auf nem RPI1b+ erfolgreich umgesetzt, bin aber mit OpenBSD kläglich gescheitert. Ich kann allerdings monentan nicht sagen auf welcher Hardware das Problem vorhanden war, kann mir aber ungefähr denken, woran es lag.

    Demnächst wollte ich mir wahrscheinlich nochmal mit OpenBSD einen OpenVPN-Router bauen und deshalb dachte ich mir, dass ich dich einfach vorher mal frage.

    Ist immer gut zu wissen, dass das Problem lösbar ist und nicht am OS, Code oder sonstigem liegt.

    Ich hoffe, ich kann dich ggf. anhauen, falls ich mich damit nochmals auf die Nase leg. Es wirkt ein bisschen so, als hättest du dich etwas mehr mit OpenBSD beschäftigt, als ich.
     
  8. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    349
    Klar, kannst immer fragen wenn du was hast, bin aber auch noch ein Anfänger was Unix angeht, hab mit *BSD erst seit nem Jahr zu tun und mit OpenBSD seit 6 Monaten. Alles nur hobbytechnisch