PI jako router VPN dla maszyn lokalnych

18

Chciałbym umożliwić kilku moim komputerom dostęp do Internetu za pośrednictwem połączenia VPN. Moim pomysłem jest to, że PI może po prostu nawiązać połączenie, a następnie kierować przez niego żądania z innych komputerów.

Myślę, że ustawienie domyślnego routera urządzenia na adres IP PI.

Chociaż masz jakieś doświadczenie w konfigurowaniu wielu poleceń w wierszu poleceń, czy mógłbyś wskazać mi wskazówki, jakich pakietów / usług potrzebuję?

Podsumowanie konfiguracji:

  • PI łączy się z Internetem bezpośrednio przez domyślny router
  • PI tworzy połączenie VPN (OpenVPN) i nasłuchuje na lokalnym interfejsie ruchu
  • PI ponownie ustanawia połączenie w przypadku awarii
  • inne urządzenia sieciowe mają domyślną bramę ustawioną na adres IP PI, a cały ich ruch przechodzi przez VPN, pod warunkiem, że jest włączony (i nie ma połączenia z Internetem, jeśli VPN jest wyłączony).

Nie potrzebuję usług NAT ani DHCP (DNS może również przejść przez VPN).

petr
źródło
jaki jest sens? jeśli używasz swojego Pi w sieci lokalnej do utworzenia połączenia wychodzącego, dlaczego nie użyjesz innych komputerów do bezpośredniego utworzenia podobnego połączenia wychodzącego, oszczędzając Ci kosztów Pi i kłopotów z instalacją i konfiguracją oprogramowania? konwencjonalna konfiguracja VPN to komputer w sieci lokalnej, który nasłuchuje połączeń przychodzących i sprawdza hasła, a następnie pozwala komputerowi zdalnemu na bezpośrednie korzystanie z sieci lokalnej, a nie odwrotnie.
lenik
1
@lenik chodzi o to, że mam wiele komputerów, które używają tego samego połączenia VPN. Ponadto znacznie łatwiej jest skonfigurować jedną maszynę niż zmieniać konfigurację wielu komputerów, upewniając się, że ponownie wybierają numer itd. I masz rację - to nie jest standardowa konfiguracja, gdyby tak było, prawdopodobnie szukałbym samouczka i nie pytałbym
petr
1
Nie wspominając już o tym, że użycie innego urządzenia do routingu sprawia, że ​​CAŁY ruch przechodzi przez VPN o wiele łatwiej
petr
3
Niektóre urządzenia nie są również w stanie połączyć się z VPN. Urządzenia te obejmują wiele konsol do gier i inne urządzenia, na których nie działają standardowe systemy operacyjne, które można łatwo skonfigurować do połączenia z VPN.
Kibbee
@lenik Ta konfiguracja jest powszechna w urządzeniach sieciowych na poziomie przedsiębiorstwa. Wbudowane routery zaczynają się od około 300 USD w górę. OP szuka rozwiązania za około 10-tą cenę ... tak jak ja.
Philip Couling,

Odpowiedzi:

15

Mam taką samą konfigurację jak ty:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

Najpierw zmieniłem ustawienia sieciowe ( /etc/network/interfaces) na RPi na adres statyczny

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Następnie musisz skonfigurować OpenVPN na RPi:

sudo apt-get install openvpn

Następnie musisz ustawić plik konfiguracyjny dla VPN /etc/openvpn/server.conf. Kiedyś próbki dostarczone przez mojego usługa VPN (Witopia) i zmiany dev tunna dev tun0i dodany redirect-gatewayna końcu.

W następnym kroku zmodyfikuj iptables, aby umożliwić NAT

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

Aby było trwałe, zapisz go w ten sposób

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

Dodaj to do nowego pliku:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

Zapisz i zrób to za pomocą chmod +x /etc/network/if-pre-up.d/iptables. Teraz musisz włączyć przekazywanie adresów IP, edytując /etc/sysctl.confi usuwając komentarz z liniinet.ipv4.ip_forward = 1

Uruchom ponownie i RPi powinno łączyć się z Twoją siecią VPN i być gotowe do przyjmowania ruchu przychodzącego. Dodałem nową opcję do mojej usługi dhcp na moim routerze (z uruchomionym OpenWrt), aby określić bramę wysyłaną do klienta. Dodałem linię list 'dhcp_option' '3,192.168.1.11'do pliku /etc/config/dhcpi zrestartowałem router. Mój iPad, PC i AppleTV łączą się teraz przez RPi, aby uzyskać dostęp do zewnętrznych adresów URL.

Źródła:

StebQC
źródło
1
Właśnie skończyłem konfigurować podobną konfigurację w zeszły weekend. Musiałem także dodać „net.ipv4.tcp_ecn = 0” do pliku /etc/sysctl.conf. Nie jestem pewien, co robi, ale bez niego brama nie działałaby poprawnie.
Kibbee
To zadziałało dla mnie, z jedną modyfikacją: reguła NAT powinna byćiptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh
0

Próbować

https://help.ubuntu.com/community/OpenVPN

Raspbian powinien być wystarczająco blisko Ubuntu, aby instalacja była taka sama, a ja właśnie sprawdziłem, czy pakiet OpenVPN jest dostępny w repozytorium Raspbian.

Należy jednak pamiętać, że większość instrukcji VPN powie ci, jak stworzyć serwer do otwierania sieci LAN dla klientów VPN w Internecie, a nie odwrotnie, więc może być konieczne trochę eksperymentowania z ustawieniami routingu.

Matt Thomason
źródło
Dzięki, ten kawałek rozumiem trochę lepiej - nie jestem pewien, jak sprawić, by PI nasłuchiwał połączeń i przekazywał je przez VPN?
petr
1
@petr Wystarczy uruchomić sysctl -w net.ipv4.ip_forward = 1, a pozostałe maszyny będą używać RPI jako domyślnej bramy, a RPI z przyjemnością trasuje.
nos
0

Nie wiem, czy to jest przydatne, ale używam VPN na Raspberry Pi od dostawcy VPN, kiedy wyjeżdżam z USA do Chin , mają oni skrypt dd-wrt, który zainstalowałem i działał od pierwszego razu. Być może możesz zaoszczędzić sobie wiele kłopotów, jeśli szukasz dostawcy z już wykonanym skryptem dd-wrt. Jeśli ktoś jest ciekawy skryptu, mogę go opublikować tutaj.

Michael Donnahew
źródło
0

Oto moja konfiguracja, która jest bardzo podobna do twoich potrzeb; jedyne, czego potrzebujesz, instalując klienta OpenVPN i wykonując kilka konfiguracji na Raspbian. wprowadź opis zdjęcia tutaj

Opisałem to na moim blogu; Konfigurowanie bramy VPN za pomocą Raspberry PI

afelaho
źródło
Cześć i witaj! W tej chwili nie sądzę, aby pytanie „czy mógłbyś proszę wskazać mi wskazówki na temat tego, jakich pakietów / usług potrzebuję? Czy mógłbyś wskazać mi wskazówki na temat jakich pakietów / usług potrzebuję?” znajduje się w odpowiedzi. Czy mógłbyś rozwinąć nieco więcej, nie wymagając od ludzi, aby podążali za linkiem (który w rzeczywistości jest tylko cyfrą)?
Ghanima
@Ghanima, dzięki za komentarz. Zmieniłem odpowiedź.
afelaho