Jak skonfigurować router klienta OpenVPN

13

Próbuję skonfigurować router OpenVPN, aby móc podłączyć mój tablet (bezprzewodowy) i Blu-Ray (przewodowy) do płatnej usługi VPN w innym kraju na Ubuntu 12.10. Udało mi się to za pomocą DD-WRT (zbyt wolna) i wirtualnej instancji PFSense (zbyt ograniczona).

Jestem nowy w Linuksie, ale mam 90% tego projektu. Sprzęt to 2 przewodowe porty Ethernet, z których jeden jest podłączony do tradycyjnego routera domowego i karta bezprzewodowa.

Do tej pory mam ...

  1. Skonfiguruj moją sieć bezprzewodową, aby działała jako prawdziwy główny punkt dostępu za pomocą hostapd
  2. Utworzono pomost (chyba) między bezprzewodową a lokalną siecią LAN
  3. Skonfiguruj serwer DHCP, który pomyślnie przypisuje adresy do mostu - zarówno bezprzewodowy, jak i przewodowy.
  4. Skonfiguruj OpenVPN, tak aby z powodzeniem tworzył połączenie tunelowane podczas rozruchu.

Obecne zachowanie kieruje cały ruch z mojego komputera Ubuntu do serwera VPN. Inne urządzenia NIE mają żadnej łączności i to jest problem.

Moje pytanie / cel:

Jak skonfigurować routing, aby OpenVPN kierował ruchem z mojego mostu (urządzeń pod 192.168.10.x) przez tunel VPN, a NIE ruchem z rzeczywistego komputera Ubuntu?

OpenVPN automatycznie konfiguruje niektóre trasy, ale wydaje się, że ignoruje ustawiony przeze mnie most.

Czytałem dużo na dokumentacji iptablesi routeale to sprawia, że bardzo mało dla mnie sens. Pomimo wielu samouczków nadal nie rozumiem, jak odczytać wyniki routepolecenia. Podejrzewam też, że można to osiągnąć za pomocą route-noexeciw route-uppliku konfiguracyjnym OpenVPN, ale nic się nie udało.

Moja wiedza na temat plików konfiguracyjnych i ustawień jest ograniczona. Powyższe zadania zajęły mi co najmniej 30 godzin majsterkowania, więc spokojnie.

Dzięki!

Edytować

Poniżej zamieściłem rozwiązanie, które kieruje ruchem mostu, ale nie zapobiega to ruchowi na komputerze Ubuntu przed VPN.

jbrookover
źródło

Odpowiedzi:

1

Nie jestem pewien, czy to jest idealne, ale przynajmniej działa. W idealnym świecie ruch na komputerze Ubuntu nie przebiegałby przez VPN - tylko te urządzenia podłączone do komputera Ubuntu. Tak czy inaczej, oto rozwiązanie ..

W openvpn.confpliku

script-security 2
up "/path/to/external/script.sh"

W /path/to/external/script.shpliku

iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Powyżej tun0jest tunel utworzony przez OpenVPN, br0most pomiędzy moją lokalną siecią bezprzewodową i lokalną siecią LAN, i 192.168.10.0/24jest pulą podsieci / DHCP dla mojej lokalnej sieci LAN.

Nie mam pojęcia, co robi ten skrypt, ale połączyłem go z kilku witryn w usłudze Udostępnianie połączenia internetowego.

Pozostawię tę odpowiedź niezaznaczoną na wypadek, gdyby ktokolwiek chciał podać lepszą odpowiedź lub wyjaśnić, w jaki sposób uniemożliwić ruch na komputerze Ubuntu przed VPN.

jbrookover
źródło
0

Łatwiej jest skonfigurować sam router, aby łączył się z serwerem VPN, dzięki czemu wszystkie urządzenia w sieci będą przez niego przechodzić. Możesz to zrobić z interfejsu internetowego oprogramowania routera.

Aby umożliwić urządzeniom podłączonym do komputera dostęp do Internetu, musisz udostępniać połączenie internetowe z tego komputera innym osobom.

islam
źródło
Łatwiej, tak. Ale już to zrobiłem i było to zbyt wolne.
jbrookover