Czy można mieć jednocześnie 2 różne połączenia VPN na tym samym komputerze? może na różnych interfejsach sieciowych?

5

Tworzę nowy klaster w moim nowym miejscu pracy i nadal administruję innym klastrem w moim ostatnim miejscu pracy. Zasadniczo „kopiuję” konfigurację pierwszego, aby skonfigurować nową.

Teraz jestem w domu i chciałbym używać obu połączeń VPN jednocześnie zamiast jednego po drugim, aby uzyskać dostęp do obu klastrów jednocześnie. Moim zdaniem nie jest to możliwe, ale może ktoś ma pomysł?

Jedno połączenie VPN wykorzystuje OpenVPN, a drugie korzysta z klienta CISCO VPN. A może w tym celu można grać według zasad trasy? Nie mam dużego doświadczenia w tworzeniu sieci.

Próbuję użyć, route -naby spróbować ponownie zdefiniować reguły dla różnych interfejsów podrzędnych. Oto, co otrzymuję, gdy żadna sieć VPN nie jest aktywna:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

Teraz, jeśli włączę cisco VPN (VPN1):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

Jeśli przełączy się na openVPN (VPN2):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1      0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     192.168.2.17    255.255.255.0   UG    0      0        0 tun0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
zzz.zzz.zz.zz   10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

A teraz, jeśli włączę oba (najpierw VPN, a następnie VPN 1):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Idealnie byłoby, gdyby wszystkie żądania dotyczące xxx.xxx.xxx.0 działały tak, jak tylko VPN1 jest aktywny (cscotun0), a wszystkie żądania dotyczące 192.168.2.0 powinny przechodzić przez 192.168.2.17 (tun0), a pozostałe przez eth0 ...

Nie jestem przyzwyczajony do routingu i byłbym wdzięczny za wszelką pomoc.

EDYCJA: zainspirowany odpowiedziami Próbuję grać routepoleceniem, aby spróbować poprawnie skonfigurować moją konfigurację.

dla jasności edytowałem powyższe tabele tras, aby odzwierciedlić wynik route -npolecenia, które jest bardziej pouczające. Zmodyfikowałem również router domowy, aby 10.1.0.0 nm 255.255.255.0w domu miałem adresy IP.

Jeśli dobrze rozumiem, gdy tylko VPN2 (tun0) jest aktywny, wykorzystuje bramę defalut mojego domu (10.1.0.1) i definiuje kilka nowych tras, powiedz mi, jeśli źle rozumiem:

192.168.1.0   192.168.2.17 -> this says "everything for 192.162.1.0 network (vpn2 network), then pass through official gateway 192.168.2.17 "
192.168.2.17  0.0.0.0 -> this says "everything for host 192.168.2.17, goes to default gateway  (0.0.0.0) " , which is currently pointing to my home rooter"
zzz.zzz.zz.zz 10.1.0.1 -> this says "everything for zzz.zzz.zz.zz . pass through my home router (10.1.0.1)

Kiedy włączam sam VPN1, zastępuje on domyślną bramę własną (xxx.xxx.xxx.53) i wszystko zostaje przekierowane do tego. Dlatego też nie widzę mojej domowej sieci btw (jeśli mam rację).

Teraz widzę, że po włączeniu obu sieci VPN brama domyślna jest przekierowywana do bramy VPN1 (xxx.xxx.xxx.53), a pytam o to: w jaki sposób mogę skonfigurować reguły, aby:

  • wszystko dla 198.162.1.0 przechodzi przez 198.162.2.17
  • rzeczy dla 198.162.2.17 przechodzą przez 10.1.0.1
  • rzeczy dla xxx.xxx.xxx.0 przechodzą przez xxx.xxx.xxx.117
  • rzeczy dla 10.1.0.0 przechodzą do 10.1.0.1

Starałem się grać zz route adda route delale jestem mniej lub bardziej staramy się robić rzeczy metodą prób i błędów, a ja lepiej understant co mam robić, a jeśli przepisy Chcę zastosować tu są poprawne, czy po prostu głupi ...

EDYCJA 2: Zgodnie z sugestią MariusMatutiae dołączam tutaj wynik ifconfig, gdy oba VPN są włączone:

cscotun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:xxx.xxx.xxx.117  P-t-P:xxx.xxx.xxx.117  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1380  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:4007 (4.0 KB)  TX bytes:3789 (3.7 KB)

eth0      Link encap:Ethernet  HWaddr 00:21:cc:6b:3e:ae  
          inet addr:10.1.0.226  Bcast:10.1.0.255  Mask:255.255.255.0
          inet6 addr: fe80::221:ccff:fe6b:3eae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29039 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14287030 (14.2 MB)  TX bytes:5521200 (5.5 MB)
          Interrupt:20 Memory:f3a00000-f3a20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9928 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9928 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4962141 (4.9 MB)  TX bytes:4962141 (4.9 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.18  P-t-P:192.168.2.17  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:719 errors:0 dropped:0 overruns:0 frame:0
          TX packets:764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:103523 (103.5 KB)  TX bytes:56000 (56.0 KB)

EDYCJA 3:

opis tego, co nie działa: po włączeniu obu VPN nie mogę połączyć się z VPN tun0; a jeśli spróbuję zrobić pingcoś poza xxx.xxx.xxx.0, dostanę ping: sendmsg: Operation not permitted.

Idealnie chciałbym uzyskać dostęp do obu sieci VPN (jeśli DNS dla sieci VNP nie działa, mogę zarządzać nim za pomocą bezpośredniego adresu IP, bez problemu), a także idealnie do mojego lokalnego LAN ...

Niestety nie jestem wystarczającym ekspertem od iptables, aby zrozumieć, co mam robić.

Z góry dziękuję

Danduk82
źródło
Mam 5 VPN połączonych w tym samym czasie na jednym z moich systemów, który kieruje / zapory ogniowe między różnymi VPN. Prawidłowe skonfigurowanie polega na prawidłowym zrozumieniu i skonfigurowaniu tras.
Zoredache
Robię to cały czas. Korzystam z dwóch płatnych usług. Oba obsługują OpenVPN
Ramhound
Dzięki, czy możesz dodać odpowiedź, aby pokazać mi kilka routepoleceń, aby to zrobić, proszę? Dzięki
Danduk82,
1
Co dokładnie jest teraz nie tak z twoją konfiguracją? Do której z dwóch podsieci nie możesz dotrzeć? Czy możesz połączyć się z Internetem? Czy sprawdziłeś, że wszystkie trzy podsieci są różne? Czy sprawdziłeś, że pliki konfiguracyjne klienta i serwera OpenVPn nie zawierają satysfakcji, w tym def1 ?
MariusMatutiae
po włączeniu cscotun0 nie mogę osiągnąć VPN tun0. Sprawdziłem, brak def1 w obu konfiguracjach. Zobacz moją trzecią edycję.
Danduk82

Odpowiedzi:

6

Z pewnością możesz korzystać z kilku sieci VPN jednocześnie. Podstawowym problemem przy ustalaniu tego jest upewnienie się, że tabela routingu jest poprawna, ponieważ wszystkie sieci VPN spróbują to zmienić, nie zakładając, że więcej sieci VPN robi to samo.

Twój scenariusz jest bardzo prosty, ponieważ zasadniczo używasz sieci VPN do uzyskiwania dostępu do zdalnych sieci LAN, a nie do przekierowywania całego ruchu. Ostatnia konfiguracja wymagałaby bardziej złożonej konfiguracji, ale w twoim przypadku możemy uniknąć znacznie mniej pracy.

Warunkiem wstępnym dla tej pracy jest to, że wszystkie podsieci są różne: w domu, a twoje dwa miejsca pracy.

Załóżmy, że już to założyłeś, a następnie upewnij się, że plik konfiguracyjny klienta dla OpenVPN nie zawiera następującej instrukcji

    redirect-gateway def1

oraz że plik konfiguracyjny serwera nie zawiera następującej instrukcji:

   push "redirect-gateway def1 bypass-dhcp"

Ponieważ jesteś zainteresowany pracą tylko z dwiema sieciami VPN, to już rozwiązuje Twój problem, ponieważ nawet jeśli druga sieć VPN pobierze domyślną trasę, w tabeli routingu pojawi się jedna domyślna trasa i gotowe.

Jednak Cisco VPN domyślnie nie pobiera domyślnej trasy. Więc powinieneś być w porządku. Aby to sprawdzić, upewnij się, że wyjście trasy -n zawiera kilka wierszy, takich jak następujące,

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.73.1    0.0.0.0         UG    0      0        0 eth0

gdzie 192.168.73.1 jest domyślnym routerem domowym (zmień w razie potrzeby, jeśli router nie ma 192.168.73.1)

Ten problem byłby o wiele fajniejszy, gdybyś chciał przekierować cały ruch przez obie sieci VPN jednocześnie (tak, można to zrobić).

Edytować:

Możesz także z pewnością korzystać z OpenVPN na różnych interfejsach sieciowych, jeśli chcesz. Na przykład możesz wywołać interfejs wirtualny oparty na karcie Ethernet w następujący sposób:

   ip link add link eth0 mac0 address 56:61:4f:7c:77:db type macvlan
   ip link set mac0 up
   dhclient mac0

i teraz sprawdź adres IP wirtualnego interfejsu mac0 za pomocą

   ip addr show

Następnie w pliku konfiguracyjnym klienta openvpn możesz wprowadzić instrukcję

   local IP_address_of_mac0

a kiedy połączysz się z serwerem OpenVPN, połączenie będzie powiązane tylko z interfejsem mac0 . Następnie, aby uzyskać dostęp do zdalnej sieci LAN, należy pamiętać o powiązaniu wszystkich aplikacji z tym samym interfejsem mac0 i jego adresem IP. Na przykład, aby uzyskać dostęp do komputera przez ssh w ten sposób, będziesz musiał powiedzieć:

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

i tak dalej. Do pingowania należy użyć

   ping -i IP_address_of_mac0 remote_LAN_pc
MariusMatutiae
źródło
kiedy próbuję pingować maszyny poza zasięgiem VPN1, pojawia się błąd: ping: sendmsg: Operation not permitted co to znaczy? (nawet jeśli używasz składni -I ip_of_other_network_interface)
Danduk82
@ Danduk82 prześlij ifconfig i tablicę routingu. Dodaj go do swojego posta, znacznie ułatwia czytanie.
MariusMatutiae
1

Możliwe jest jednoczesne uruchamianie wielu sieci VPN.

Widzę kilka problemów z konfiguracją -

W zależności od tego, co próbujesz zrobić, upewnij się, że serwer VPN nie publikuje (lub ignorujesz lub używasz niższej wartości dla prawidłowej) domyślnej trasy. W przeciwnym razie VPN próbuje trasować się między sobą i się zepsuć. Oczywiście oznacza to, że używasz VPN, aby dotrzeć tylko do określonych sieci / tras

Drugi problem, jaki możesz mieć (zwróć uwagę na zduplikowane sieci 192.168.1.0 z maską sieci 255.255.255.0), polega na tym, że obie sieci, do których próbujesz się dostać, to 192.168.1.x. Jest to problem, ponieważ jądro nie wie, do którego polecasz. Prawidłowe rozwiązanie polega na zmianie numeracji jednej z sieci, tak aby znajdowała się ona w innym bloku sieci. (Mogą istnieć okropne, okropne, okropne włamania, które możesz zrobić z plikami iptables i hostów oraz innymi sztuczkami, aby naśladować to w twoim systemie, ale jest wysoce specjalistyczny, delikatny i niezalecany).

BTW, przy tworzeniu tablic tras, ogólnie lepiej jest używać przełącznika „-n”, aby wyświetlały adresy IP, zamiast próbować rozwiązać nazwy maszyn - nazwy maszyn nic dla nas nie znaczą !!!

Davidgo
źródło
Co rozumiesz przez zmianę numeracji jednej z sieci, aby znajdowała się ona w innym bloku sieci ? Nie mogę nic zmodyfikować w konfiguracji cisco VPN, ale może mógłbym coś zmienić w pliku konfiguracyjnym openvpn dla drugiego połączenia.
Danduk82,
Jestem teraz w pracy i widzę, że adres firewalllocal to także 192.168.1.1. Czy to źle?
Danduk82
1
Tak - to źle. Każde urządzenie potrzebuje unikalnego adresu IP, w przeciwnym razie jego niezwykle trudno sprawić, by działało (nie jest to próba bez silnego zrozumienia protokołu TCP / IP.
davidgo
0

Co powiesz na proste skonfigurowanie maszyny wirtualnej W7 w VirtualBox i korzystanie z drugiej VPN przez nią, a następnie korzystanie z dwukierunkowego udostępniania folderów między hostem a gościem? Prostota. :)

OxygenIT
źródło