iptables -t nat -L -n

iptables -t nat -L -n

Ich habe eine Debian Jessie-Box unter 192.168.1.5, die mit dem Router (unter 192.168.1.1) verbunden ist und auf der ein OpenVPN-Client läuft (es ist eigentlich ein Pi, derdieses Setup. Der einzige Unterschied besteht darin, dass die eth0-IP des Pi aufgrund des Routers statisch ist (d. h. der Pi verwendet das DHCP des Routers).

Wenn LAN-Clients so eingestellt sind, dass sie 192.168.1.5 als Gateway verwenden, befinden sie sich wie vorgesehen im VPN.

Ich möchte, dass der gesamte Datenverkehr von LAN-Clients innerhalb von 192.168.1.128/25 auf 192.168.1.5 umgeleitet wird, selbstwenn ihre IP vom DHCP des Routers festgelegt wirdund ihr Gateway wird 192.168.1.1. Mit anderen Worten,Clients innerhalb von 192.168.1.128/25 sollten funktionieren, als wäre ihr Gateway 192.168.1.5.

Welche iptablesKonfiguration route addmuss der Router dafür haben?(der Router läuft mit Tomato 3.4-138)? Dies sind die Router-Einstellungen:

iptables -t nat -L -n

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
WANPREROUTING  all  --  0.0.0.0/0            wan_ip
upnp       all  --  0.0.0.0/0            wan_ip

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0
SNAT       all  --  192.168.1.0/24       192.168.1.0/24       to:192.168.1.1
SNAT       all  --  172.16.1.0/24        172.16.1.0/24        to:172.16.1.1

Chain WANPREROUTING (1 references)
target     prot opt source               destination
DNAT       icmp --  0.0.0.0/0            0.0.0.0/0            to:192.168.1.1
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443 to:192.168.1.1:443
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2222 to:192.168.1.5:22
DNAT       all  --  0.0.0.0/0            0.0.0.0/0            to:192.168.1.4

Chain pupnp (0 references)
target     prot opt source               destination

Chain upnp (1 references)
target     prot opt source               destination
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:55355 to:192.168.1.130:55355
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:55355 to:192.168.1.130:55355
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:5353 to:192.168.1.48:5353
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:4500 to:192.168.1.48:4500

iptables -L

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             state INVALID
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
shlimit    tcp  --  anywhere             anywhere             tcp dpt:ssh state NEW
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

Chain FORWARD (policy DROP)
target     prot opt source               destination
           all  --  anywhere             anywhere            account: network/netmask: 192.168.1.0/255.255.255.0 name: lan
           all  --  anywhere             anywhere            account: network/netmask: 172.16.1.0/255.255.255.0 name: lan1
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             state INVALID
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere
wanin      all  --  anywhere             anywhere
wanout     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
upnp       all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             SIP-Device

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain shlimit (1 references)
target     prot opt source               destination
           all  --  anywhere             anywhere             recent: SET name: shlimit side: source
DROP       all  --  anywhere             anywhere             recent: UPDATE seconds: 60 hit_count: 4 name: shlimit side: source

Chain upnp (1 references)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             client-1                udp dpt:55355
ACCEPT     tcp  --  anywhere             client-1                tcp dpt:55355
ACCEPT     udp  --  anywhere             client-2          udp dpt:mdns
ACCEPT     udp  --  anywhere             client-2          udp dpt:4500

Chain wanin (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             *Pi*               tcp dpt:ssh

Chain wanout (1 references)
target     prot opt source               destination

Route

(Router sitzt hinter WAN-Modem)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
modem.ip.0.1    *               255.255.255.255 UH    0      0        0 vlan2
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
172.16.1.0      *               255.255.255.0   U     0      0        0 br1
modem.ip.0.0    *               255.255.224.0   U     0      0        0 vlan2
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         modem.ip.0.1    0.0.0.0         UG    0      0        0 vlan2

Antwort1

Sie können nicht einfach einen Router und den RaspPi an dasselbe LAN-Segment anschließen und erwarten, dass der RaspPi Pakete umschreibt, die andere Clients an das LAN senden. Das scheint eine FAQ zu sein, die Leute versuchen es mit ARP-Spoofing und so weiter. Aber Netzwerke sind nicht dafür gedacht, auf diese Weise zu funktionieren.

Die saubere Lösung besteht darin, alleshinterder RaspPi:

Router --- [eth0] RaspPi [eth1] --- Switch +--- Client1
                                           +--- Client2
                                           +--- Client3

Grundsätzlich möchtest du deinen RaspPi als zweiten Router einsetzen. Das bedeutet, dass er eine zweite LAN-Schnittstelle benötigt. Installiere einen DHCP-Server auf deinem Router, aktiviere ggf. NAT auf dem RaspPi, falls das VPN kein Subnetz verwalten kann, und schon bist du fertig.

Eine Alternative besteht darin, VPN zu aktivierenAnder Router selbst, ob Sie Root-Zugriff erhalten oder OpenWRT usw. flashen können.

Eine weitere Alternative besteht darin, den DHCP-Server auf Ihrem Router zu deaktivieren. Dann können Sie den RaspPi und den Router an dasselbe LAN-Segment anschließen und benötigen nur eine LAN-Schnittstelle auf dem RaspPi.

verwandte Informationen