Alle Verbindungen bzw. ganzer Traffic über OpenVPN tunneln (weiterleiten)

Hinweis: Wir haben in diesem Artikel möglicherweise Provisions-Links verwendet und sie durch (*) gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält maffert.net eine Provision. Es entstehen für Sie keine Nachteile beim Kauf oder Preis.

Hier zeige ich euch, wie man den kompletten Traffic bzw. alle Verbindungen über den OpenVPN Server leitet.

Folgender Parameter muss aktiviert werden, um den ganzen Traffic über den OpenVPN Server zu schicken:

Datei: /etc/openvpn/server.conf

push "redirect-gateway def1"

Um sicherzustellen das der ganze IPv4-Datenverkehr weitergeleitet wird, muss folgendes auskommentiert/hinzugefügt werden:

Datei: /etc/sysctl.conf

net.ipv4.ip_forward=1

Um die Einstellungen direkt zu setzen, am besten direkt noch folgendes ausführen:

echo 1 > /proc/sys/net/ipv4/ip_forward

Um den ganzen Traffic weiterzuleiten, muss noch via iptables folgendes eingerichtet werden:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Bei einem OpenVZ Server muss ggf. von oben der letzte Befehel so lauten:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source hierdieexterneipvomserver

Um beim nächsten Systemstart nicht wieder diese iptables Befehle ausführen zu müssen, kann man diese in „/etc/rc.local“ schreiben:

Datei: /etc/rc.local

#!/bin/sh -e
#
# [...]
#

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

exit 0

Somit wird der ganze Datenverkehr außer die DNS-Abfragen über den OpenVPN Server geleitet.

Möchte man dass die DNS-Abfragen auch über den OpenVPN Server gehen, muss noch folgendes gemacht werden:

Das Programm „dnsmasq“ installieren:

apt-get install dnsmasq

Dnsmasq so bearbeiten, dass dieser nicht nur auf 127.0.0.1 lauscht, sondern auch auf den gateway vom OpenVPN tun device:

Datei: /etc/dnsmasq.conf

listen-address=127.0.0.1,10.8.0.1

bind-interfaces

Wenn der Debian Server neu gestartet wird, versucht dnsmasq den OpenVPN tun device als erster zu starten. Da dieser aber schon von OpenVPN selber gestartet wird, muss folgendes in die „/etc/rc.local“ (unter die iptables Befehle) eingetragen werden:

Datei: /etc/rc.local

/etc/init.d/dnsmasq restart

exit 0

Nochmals die server.conf Datei bearbeiten und folgendes eintragen:

Datei: /etc/openvpn/server.conf

push "dhcp-option DNS 10.8.0.1"

Zum Schluss müssen noch die Dienste neugestartet werden:

/etc/init.d/openvpn restart
/etc/init.d/dnsmasq restart

Ein Kommentar zu “Alle Verbindungen bzw. ganzer Traffic über OpenVPN tunneln (weiterleiten)”

  1. Hey, deine Tutorial sind echt cool. Hab schon ne Menge von Dir gelesen, oft hab ich hier die Lösung für ein Problem gefunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert