warbyrd
Goto Top

Raspberry Pi - Alle angeschlossenen DHCP Clients in VPN Tunnel leiten (iptables ?)

Hallo zusammen,

ich habe einen Raspberry Pi 2, der einerseits als DHCP Client fungiert (an dem Ethernet Port) und andererseits als OpenVPN Client.

Nun wird die OpenVPN Verbindung erfolgreich zum entfernten Server aufgebaut und ich habe auf dem Raspberry die IP des Servers usw. - wie es gewünscht ist.

Auch bekommen angeschlossene Geräte die entsprechende IP aus dem IP Nummernkreis zugewiesen (hier das Netz: 192.168.123.0/24).

Hier das "Diagramm" des Aufbaus.

PC -> ethernet -> Raspberry -> OpenVPN -> wlan -> router

Mein Problem besteht momentan darin, dass ich auf dem PC kein Internet habe, jedoch aber auf dem Raspberry.

Wie sämtliche Daten vom angeschlossenen Wlan Stick an den Ethernet Anschluss (und damit auch alle angeschlossenen Clients über ein Switch usw.) weiterleiten?

Ich gehe davon aus, dass ein entsprechender Eintrag in den iptables fehlt, kenne mich damit aber nicht so aus.

Kann mir da wer weiterhelfen?

Vielen Dank.

Content-Key: 278543

Url: https://administrator.de/contentid/278543

Printed on: April 18, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Jul 28, 2015 updated at 10:31:18 (UTC)
Goto Top
Moin,
IP Forwarding auf dem Raspi aktivieren
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Und auf dem PC der am Raspi angeschlossen ist als Default GW die IP des Raspi eintragen.

Bei Bedarf noch alles NATen was über den VPN-Tunnel geht:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Gruß jodel32
Member: aqui
aqui Jul 28, 2015, updated at Jan 30, 2022 at 13:47:03 (UTC)
Goto Top
Eine "Silbertablet Anleitung" findest du, wie immer, hier im Forum:
IKEv2 VPN Server für Windows und Apple Clients mit Raspberry Pi

Kann er ansonsten auch nachlesen wenn er dieses Tutorial einmal sorgfältig liest:
Netzwerk Management Server mit Raspberry Pi
Die Grundlagen des Routing Designs mit Open VPN findest du hier:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
und das kann auch nicht schaden:
Routing von 2 und mehr IP Netzen mit Windows, Linux und Router
Damit solltest du es dann auf Anhieb zum Fliegen bringen !

Immer dran denken: Traceroute und Pathping sind hier deine besten Freunde zum Troubleshooting !!!
Member: warbyrd
warbyrd Jul 29, 2015 updated at 15:28:53 (UTC)
Goto Top
das hat leider nicht geklappt.

darf ich eigentlich

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

und

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

gleichzeitig in den iptables stehen haben?

wenn ich meinen laptop per lan an den raspberry hänge, bekomme ich zwar eine ip zugewiesen, jedoch bleibt "kein Internetzugriff" dort stehen. (ip_forwarding ist eingerichtet. in den iptables steht ausser den beiden o.g. Einträgen nichts drin. - eine Internetverbindung hat der Raspberry über den VPN Tunnel aufgebaut. Aber der laptop bekommt da über den dhcp server nichts von ab.

vielleicht noch einmal kurz meine dhcp.conf und die network/interfaces datei:

DHCP.CONF
authoritative;
subnet 192.168.123.0 netmask 255.255.255.0 {
range 192.168.123.10 192.168.123.150;
option routers 192.168.123.10;
option broadcast-address 192.168.123.255;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
}

interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.123.10
netmask 255.255.255.0
network 192.168.123.0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "die_neue_grosse"
wpa_psk "xRGnXFUnROeFD"
iface default inet dhcp


hier meine gesicherte iptables datei

  1. Generated by iptables-save v1.4.14 on Wed Jul 29 15:23:04 2015
*filter
:INPUT ACCEPT [103:10120]
:FORWARD ACCEPT [26:1942]
:OUTPUT ACCEPT [87:11136]
COMMIT
    1. Completed on Wed Jul 29 15:23:04 2015
    2. Generated by iptables-save v1.4.14 on Wed Jul 29 15:23:04 2015
*nat
:PREROUTING ACCEPT [192:27436]
:INPUT ACCEPT [47:7960]
:OUTPUT ACCEPT [4:540]
:POSTROUTING ACCEPT [6:398]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
    1. Completed on Wed Jul 29 15:23:04 2015
Mitglied: 114757
114757 Jul 29, 2015 updated at 16:02:00 (UTC)
Goto Top
Sicher kann man ...aber ...
NATen tut man überall dort an wo man nicht mehr routen kann, oder wenn man eben mehrere Rechner hinter einer IP betreibt.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Das ist Schwachsinn, sorry man NATet nicht im internen LAN, oder nur in wenigen Ausnahmen aber in deinem Fall vollkommen überflüssig und falsch.

Essentiell für einen Internetzugang sind DefaultGW und DNS Server Einträge auf den Clients.

Und bei der Masquerading Regel musst du natürlich den Namen des Tunnelinterface anpassen !

Wir haben dir hier nun schon öfter gesagt das du mal eine Explosionszeichnung deines Netzwerkaufbaus hier Posten sollst, wenn man dir effektiv helfen soll !!

DANKE!
Member: warbyrd
warbyrd Jul 29, 2015, updated at Jul 30, 2015 at 11:59:47 (UTC)
Goto Top
Hallo,
es tut mir leid, wenn ich euch etwas auf die Nerven gehe,

ich habe nun ein Diagramm erstellt, welches den Aufbau demonstrieren soll:

http://i.imgur.com/zmaebiv.png

Hier sind die jeweiligen Schnittstellen mit ihren IPs aufgezeigt.
Zu sehen ist, dass ich zwei Methoden brauche um an den VPN Server verbinden zu können.
Einmal per OpenVPN Client (was ohne Weiters funktioniert) und zweitens indem ich Geräte an den RaspberryPi Client (Links) anschließe ohne etwas am Gerät einstellen zu müssen.

Dabei sollen sich die Geräte (ob PCs oder andere Netzwerkfähige Geräte) welche über den Raspberry Client und Geräte die über den OpenVPN Client am VPN Server (Rechter Raspberry Pi) verbunden sind gegenseitig sehen/anpingen können.


Jetzt stellt sich mir die Frage, ob es überhaupt sinnvoll ist, einen DHCP Server auf dem Client laufen zu lassen oder ob nicht sogar der VPNServer die Vergabe der IPs direkt vornehmen kann, damit ich die Geräte welche am Client angeschlossen sind auch direkt ansprechen kann - momentan hätten alle Geräte, die am Raspberry Client hängen, die selbe VPN-IP und ich kann sie somit nicht einzeln ansprechen aus dem VPN heraus, oder?

Es fehlt derzeit noch die Weiterleitung der Internetverbindung für die Geräte die am DHCP des Raspberry Client hängen. Also tun0 <-> eth0.

Der Vollständigkeit halber sind hier die notwendigen Dateien:

iptables
  1. Generated by iptables-save v1.4.14 on Wed Jul 29 21:08:42 2015
*filter
:INPUT ACCEPT [8709:948274]
:FORWARD ACCEPT [962:144132]
:OUTPUT ACCEPT [3850:431513]
COMMIT
  1. Completed on Wed Jul 29 21:08:42 2015
  2. Generated by iptables-save v1.4.14 on Wed Jul 29 21:08:42 2015
*nat
:PREROUTING ACCEPT [11223:2089663]
:INPUT ACCEPT [1123:203446]
:OUTPUT ACCEPT [37:2962]
:POSTROUTING ACCEPT [35:2574]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
  1. Completed on Wed Jul 29 21:08:42 2015
###############################################


dhcpd.conf
authoritative;
subnet 192.168.123.0 netmask 255.255.255.0 {
range 192.168.123.10 192.168.123.150;
option routers 192.168.123.10;
option broadcast-address 192.168.123.255;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
}


interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.123.10
netmask 255.255.255.0
network 192.168.123.0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "meineSSID"
wpa_psk "meinPCW"
iface default inet dhcp


openvpn client konfiguration
dev tun0
client
proto udp
remote SERVERIP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert bs_muenchen_0.crt
key bs_muenchen_0.key
comp-lzo
verb 3
auth-user-pass /etc/openvpn/auth.data
log-append /etc/openvpn/openvpn.log
redirect-gateway


openvpn server konfiguration
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1 bypass-dhcp"
#set the dns servers
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
route 192.168.123.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.123.0 255.255.255.0"
log-append /var/log/openvpn
comp-lzo
duplicate-cn
keepalive 10 120

ipv4 forwarding ist aktiviert.


Vielen Dank für eure Hilfe bis hier her überhaupt schonmal!

#Edit:
Wäre es vielleicht sinnvoller, dass der VPN Server die DHCP Funktion auf den entfernten Clients übernimmt? - Wäre das einfacher einzurichten? - Dann hätte man keine verschiedenen IP-Netze die man verbinden muss, oder?