SchlagwortOpenVPN

Docker OpenVPN Client Container für jDownloader, Torrent usw.

Um Dockercontainer über einen VPN Container zu routen muss man nicht viel konfigurieren. Am Beispiel von NordVPN erkläre ich wie ihr andere Container, beispielsweise jDownloader über ein VPN Netzwerk routen könnt.

docker run -ti --cap-add=NET_ADMIN --device /dev/net/tun --name vpn -e RECREATE_VPN_CRON="5 */3 * * *" -e RANDOM_TOP=10 -e USER=<username> -e PASS=<password> -d azinchen/nordvpn

Bei dem obigen aufruf ist es wichtig den Name des Containers zu setzen. In meinem Beispiel “vpn”.

Im Anschluss kann man nun jeden belibigen Container and den VPN Client binden. Im folgenden Beispiel verknüpfe ich einen Debian Container mit dem VPN Client. Hier ist es wichtig –net=container:vpn anzugeben.

docker run -it --net=container:vpn -d debian

Startet man ein traceroute im Debian Container sieht man nun, dass Pakete über den VPN tunnel geroutet werden. Jeder Container kann so über den Tunnel geroutet werden.

DDWRT und anonyme OpenVPN Provider

Ab und zu ist es notwendig seine Herkunft zu verschleiern 😉 Es gibt verschiedene bezahl und auch kostenlose VPN Dienstleister. Über die Sicherheit kann man hier auch diskutieren, aber ich denke, dass man selber das Produkt bei kostenlosen Providern ist und ich somit eher zu einem Paid Service raten würde. Ich persönlich nutze den Service von BOXPN.

Falls man sich für einen kostenlosen Dienst entscheidet, muss man pro-aktiv etwas für die Sicherheit der heimischen Netzes tun. Mit einer personal Firewall auf Windows, wird man das Ganze nicht absichern können.

In meinem Aufbau nutze ich ein DDWRT geflashten Cisco E3200 als VPN Router und Accesspoint.

Hier nun ein Howto, wie Ihr DDWRT konfiguren müsst. Eure Firmware muss zunächst OpenVPN unterstützen. Ich habe mich für das mega build entschieden.

ddwrt1

 

Unter Services –> VPN muss zunächst OpenVPN aktiviert werden. und wie gezeigt konfiguriert werden.

Teil 1:
ddwrt2

Teil 2:
ddwrt3

Wichtig ist hier der Punkt Firewall Protection!

Bein Additional Options muss folgendes eingefügt werden:

persist-key
pull
route-delay 2
redirect-gateway
ns-cert-type server
cipher BF-CBC

Wobei einige Konfigurationen zwischen den Providern differieren.

Hier gehts noch zu VPNBook & FreeVPN.

 

 

 

[HowTo] – Portsharing für ssl, ssh und openvpn

Wer kennt es nicht, das leidige Thema um IP und Ports, gewürzt mit restriktiven Proxy-Servern die nur Port 80 und 443 durchlassen? Häufig steht man ja vor dem Problem, dass man ein VPN betreiben will, welches “selbstverständlich” durch alle Firewalls durchgeht, aber nicht einen dedizierten VPN Gateway betreiben möchte. Oder aber Ihr wollt in Eurem Heimnetzwerk eine “Cloud” betreiben mittels https, brauch aber auch VPN access. Das sind die typischen Probleme wo der ssl-Multiplexer sslh unter Linux oder genauer unter Debian zu Einsatz kommt. Wie Ihr sicherlich mitbekommen habt, bin sich sehr Debian lastig, aber das es funktioniert genau so unter CentOS, RedHat, SuSE …. Natürlich funktioniert das HowTo auch mit OpenMediaVault, ist ja schließlich Debian 😉

Der Einfachheit halber installier ich heute das Paket aus den Quellen und kompiliere es NICHT neu 🙂

Los gehts!

Zuerst updaten wir unsere Paketlisten und installieren dann aus dem Repository das sslh package.

apt-get update 
apt-get install sslh

Du bekommst wahrscheinlich eine ähnliche Meldung, einfach mit “Y” bestätigen und Pakete installieren.

root@server2.tschoerner.eu:~# apt-get install sslh
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libconfig9 libfile-copy-recursive-perl update-inetd
Suggested packages:
  openbsd-inetd inet-superserver
The following NEW packages will be installed:
  libconfig9 libfile-copy-recursive-perl sslh update-inetd
0 upgraded, 4 newly installed, 0 to remove and 40 not upgraded.
Need to get 124 kB of archives.
After this operation, 425 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y

Bei der Installation wird man gefragt, ob der Service via ineid gestartet werden soll oder aber als standalone Dienst, Ich habe mich für die Standalone Konfiguration entschieden.

sslh

Nach der Installation wirst du wahrscheinlich eine ähnliche Meldung bekommen, das der Dienst nicht gestartet wurde. Dies passiert, da bei der Initial-Konfiguration, des Flag auf “unkonfiguerte=Yes” eingestellt ist.

sslh_install

Vor der Konfiguration stellen wir noch sicher, dass kein Dienst auf 443 mehr läuft, typischerweise SSL (Apache, Nginx, Lighttpd) oder aber ssh und OpenVPN. Diese Dienste müssen auf einen der ungelich 443 konfigueriert werden. das interne Mapping auf 443 übernimmt dann der SSL Multiplexer sslh.

sslh_sym

Zurück zur sslh Konfiguration. Unter Debian und Ubuntu liegt die Konfiguration unter “/etc/default/”.

nano /etc/default/sslh

In Zeile 12 muss der Dienst aktiviert werden, indem das RUN=no in RUN=Yes geändert wird.

Innerhalb der Daemon option können nun die Ziele der verschiedenen Dienste definiert werden, aber ACHTUNG, die Reihenfolge ist wichtig!!

Meine sslh sieht so aus:

# Default options for sslh initscript
# sourced by /etc/init.d/sslh

# Disabled by default, to force yourself
# to read the configuration:
# - /usr/share/doc/sslh/README.Debian (quick start)
# - /usr/share/doc/sslh/README, at "Configuration" section
# - sslh(8) via "man sslh" for more configuration details.
# Once configuration ready, you *must* set RUN to yes here
# and try to start sslh (standalone mode only)

RUN=yes

# binary to use: forked (sslh) or single-thread (sslh-select) version
DAEMON=/usr/sbin/sslh

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --openvpn 127.0.0.1:1194 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

Nach getaner Arbeit, muss der SSLH noch einmal neu gestartet werden und wir sind fertig.

/etc/init.d/sslh restart