OpenVPN bridge/router přes klienta

Pesand

OpenVPN bridge/router přes klienta
« kdy: 21. 02. 2013, 09:09:10 »
Prosím o radu. Ve firmě máme bránu, na které běží OpenVPN server, ke kterému se připojují zaměstnanci s notebooky. Potřeboval bych nyní pomocí jednoho routeru (mám na něm DD-WRT) připojit jako klienta celou síť, která bude připojena přes wifi na tom routeru. Povedlo se mi nastavit openvpn tak, že router do firemní sítě vidí, ale počítače za routerem ne. Potřeboval bych udělat buď bridge, nebo routu tak, aby vše co je na eth1 toho wrta šlo přes tap0 rozhraní. Poradíte?
« Poslední změna: 21. 02. 2013, 10:14:32 od Petr Krčmář »


adam

Re:OpenVPN bridge/router přes klienta
« Odpověď #1 kdy: 21. 02. 2013, 12:42:42 »
Pokud si pamatuji, je potřeba nastavit routování (a firewall, aby pracně přesunuté pakety z druhé sítě nezahazoval).

alfi

  • ****
  • 324
    • Zobrazit profil
    • E-mail
Re:OpenVPN bridge/router přes klienta
« Odpověď #2 kdy: 21. 02. 2013, 16:47:42 »
na dd-wrt nastavit routu, kde najde serverovou síť (to nejspíš je), ale na serveru taky nastavit routu, kde najde síť za dd-wrt. jinak se pakety nevrátí :-) druhá varianta je na dd-wrt nastavit NAT a ten už server zpátky najde.
+ teda zkontrolovat pravidla na firewallech.
+ v případě problémů pohrát si s tcpdumpem na obou koncích vpn, různých interfacech a různých odchozích strojích. může to být i na dlouho :-)

adam

Re:OpenVPN bridge/router přes klienta
« Odpověď #3 kdy: 21. 02. 2013, 21:49:15 »
Opsáno z funkční konfigurace:
Není to DD-WRT, ale předpokládám, že tohle bude v podstatě stejné. Beru to v rychlosti, tak mne snad někdo neukamenuje, že to není bezpečné nebo v tom jsou boty - při přepisu IP adres (nemusí každý vědět moje sítě ;-) se udělá chyba snadno...

192.168.1.x = síť "domácí",
192.168.2.x = síť "vzdálená",
192.168.9.x síť OpenVPN (na routeru 192.168.1.1).

192.168.1.1 = "domácí"
  + firewall:
Kód: [Vybrat]
iptables -I INPUT   -s 192.168.0.0/21 -i tun0 -d 192.168.0.0/21 -j ACCEPT
iptables -I FORWARD -s 192.168.0.0/21 -o tun0 -d 192.168.0.0/21 -j ACCEPT
iptables -I FORWARD -d 192.168.0.0/21 -o eth0 -j ACCEPT
# Allow TUN interface connections to OpenVPN server
iptables -A INPUT -i tun+ -j ACCEPT
# Allow TUN interface connections to be forwarded through other interfaces
iptables -A FORWARD -i tun+ -j ACCEPT
  + routing (co patří do "vzdálené sítě", pošli do tunelu):
Kód: [Vybrat]
route add -net 192.168.2.0/24 gw 192.168.9.1 dev tun0  + v .../openvpn/    (tohle tam bude, jinak by nechodily ani klienti):
Kód: [Vybrat]
# Push the 'server subnet route' to the clients
push "route 192.168.1.0 255.255.255.0"
  + v .../openvpn/ccd/othernet    (kde "othernet" je jméno vzdáleného stroje z certifikátu):
Kód: [Vybrat]
iroute 192.168.2.0 255.255.255.0
192.168.2.1 = "vzdálený"
  + firewall:
Kód: [Vybrat]
# Allow TUN interface connections to OpenVPN server
iptables -A INPUT -i tun+ -j ACCEPT
# Allow TUN interface connections to be forwarded through other interfaces
iptables -A FORWARD -i tun+ -j ACCEPT
  + routing by nemělo být potřeba nastavovat, protože to obvykle zařídí OpenVPN během přihlašování, ale jinak by to bylo:
Kód: [Vybrat]
route add -net 192.168.1.0/24 gw 192.168.9.aa dev tun0kde "192.168.9.aa" je IP adresa brány v OpenVPN.

Doufám, že jsem v tom nenasekal moc chyb a že to pomůže. Hlavně: je to určeno ke studiu a k zamyšlení, nikoliv ke slepému kopírování. (Ostatně soudím, že clipboard má vinu na snižování inteligence.)