VPN, most, router lub firewall?

1

Pomóż mi dowiedzieć się, którą ścieżkę implementacji wykonać dla następującego zadania:

Mam urządzenie Blackbox, które działa jako serwer WWW (mogę połączyć się z nim lokalnie, wpisując jego adres IP w polu adresu przeglądarki.) To pole nie implementuje żadnych zabezpieczeń poza prostą nazwą użytkownika i hasłem. Jest to z pewnością dobre rozwiązanie, gdy serwer jest w odizolowanej sieci, ale chcę mieć do niego dostęp z Internetu - czyli z dowolnego miejsca na świecie. Dzięki temu chcę użyć zabezpieczenia TLS do szyfrowania danych.

Mając dostęp do Rasbperry PI (i oprogramowanie openVPN), pomyślałem, że pasuje do tej aplikacji. Istnieje wiele różnych samouczków na temat implementacji VPN, mostu, routera i zapory ogniowej za pomocą Raspberry PI, ale nie mogę stwierdzić, która z czterech funkcji jest odpowiednia dla mojej aplikacji. Schemat pojęciowy pokazano poniżej:

wprowadź tutaj opis obrazu

Raspberry Pi będzie miał dwa interfejsy sieciowe do dostępu do Internetu: jeden za pośrednictwem naziemnej sieci Ethernet (eth0), drugi - za pomocą komórkowego Internetu (eth1) - który kiedykolwiek jest dostępny, faworyzując połączenie internetowe. Adresy IP obu interfejsów będą znane. Trzeci interfejs ethernetowy (eth2) zostanie podłączony do sieci lokalnej za pośrednictwem przełącznika. Serwer będzie również połączony z przełącznikiem. Nie mam kontroli nad serwerem (to czarna skrzynka) - znam tylko jego adres IP.

Chodzi o to, aby Raspberry PI działał jako pośrednik między mną a serwerem, dzięki czemu mógłbym bezpiecznie łączyć się z jego aplikacją internetową za pomocą mojej przeglądarki internetowej. Ale która funkcjonalność Raspberry Pi musi implementować: VPN, router, most lub firewall?

EDYTOWAĆ:

Zadanie, które stwierdziłem powyżej, było dla mnie zbyt strome (brak kompetencji) i postanowiłem uprościć instalację. Nie chciałem usuwać górnej części pytania na wypadek, gdyby ktoś znalazł je i odpowiadające mu odpowiedzi były przydatne. Zamiast tego moja nowa (uproszczona) konfiguracja wyglądałaby następująco:

wprowadź tutaj opis obrazu

RP byłby połączony z internetem komórkowym przez interfejs ppp0 i kierował cały ruch do interfejsu eth0 , który byłby bezpośrednio połączony z serwerem:

  1. dynamic ppp0 IP address (given by cell service provider)
  2. static eth0 IP address (assigned by me)
  3. non-secure internet connection
  4. RP is connected to the server directly (no switch needed)

Znalazłem kilka rozwiązań takich jak to i to , ale nie dokładnie wyjaśnić, dlaczego rzeczy są zrobione w taki sposób. Zapewniają także dyrektywy wiersza poleceń, których nie będę wiedział, jak cofnąć . Zamiast tego chciałbym, aby ktoś odwoływał się do rzeczywistych plików systemowych / konfiguracyjnych, które mógłbym edytować i przywracać w razie potrzeby.

Obecnie, kiedy podłączam RPi do serwera, mogę przeglądać go z przeglądarki internetowej. Celem jest uzyskanie dostępu do serwera z Internetu za pośrednictwem RPi. Czy ktoś mógłby dostarczyć samouczek edukacyjny na temat prawidłowego ustawienia routingu, biorąc pod uwagę, że interfejs ppp0 byłby UP i DOWN w zależności od łączności komórkowej, a jego adres IP byłby inny i nieznany za każdym razem.

Nazar
źródło
Jaki jest przypadek użycia? Jak widzisz siebie łączącego się zdalnie z serwerem WWW? Jakie jest urządzenie „komórkowe”? Jakie są jego możliwości?
Robear

Odpowiedzi:

3

TLDR;

Potrzebujesz zapory ogniowej, aby zabezpieczyć serwer WWW, a router prawdopodobnie zapewnia już tę funkcjonalność.

DETALE

Wszystko, czego naprawdę potrzebujesz, to firewall i SSL, aby zabezpieczyć serwer WWW. Jeśli Twój router domowy już to zapewnia, Raspberry Pi nie zapewni Ci większego bezpieczeństwa.

Należy użyć SSL do zabezpieczenia komunikacji z serwerem sieciowym. Możesz potencjalnie użyć Raspberry Pi jako odwrotnego proxy, aby zapewnić funkcjonalność SSL, ale istnieją odwrotne serwery proxy, ponieważ szyfrowanie SSL jest ciężkie pod względem obliczeniowym i proxy pobiera obciążenie SSL z serwera WWW. Pi prawdopodobnie ma znacznie mniejszą moc obliczeniową niż serwer WWW. Ale jeśli szukasz projektu Pi, to może być świetna zabawa.

Powszechnym błędem jest to, że VPN jest „bezpieczniejsza” niż bez. VPN to po prostu szyfrowanie + tunelowanie. Tunelowanie pozwala obu sieciom wierzyć, że są w tej samej sieci. Jeśli nie próbujesz „poślubić” dwóch sieci, nie potrzebujesz VPN. Zapora SSL + powinna być w porządku.

wprowadź tutaj opis obrazu

Robear
źródło
1
„Idealny scenariusz” nie zadziała, ponieważ, jak powiedział Nazar, serwer internetowy jest czarną skrzynką, nie ma nad nim kontroli. I ... VPN może być bezpieczniejsze (IMHO), jeśli router i „sieć komórkowa” są zamknięte z Internetu, z wyjątkiem portu VPN. Myślę, że ponieważ VPN może uwierzytelniać użytkowników za pomocą certyfikatów, podczas gdy serwer WWW może używać tylko nazwy użytkownika / hasła ... Co o tym sądzisz?
Dzięki, to bardzo dobry punkt - przeoczyłem komentarz „czarna skrzynka”. SSL poza serwerem internetowym nie jest wtedy opcją. VPN lub SSL są pojedynczymi portami i oba wymagają uwierzytelnienia, więc widzę je jako tę samą powierzchnię. Widzę, że VPN jest mniej bezpieczna, tak jak sądzę, ponieważ zaatakowana sieć VPN zapewnia dostęp do całej sieci szkieletowej, gdzie SSL zapewnia dostęp do serwera WWW. VPN zwiększa także złożoność i koszty obliczeniowe. Jeśli Pi obsługuje VPN, router / komórka musiałaby zostać skonfigurowana jako mostek LUB mieć naprawdę dobry NAT (tani NAT nie gra dobrze z VPN).
Robear
Mając to na uwadze, jeśli most router / komórka może lub NAT dla obu ma dobrą obsługę VPN, VPN jest równie opłacalna. Jednak osobiście chciałbym skorzystać z odwrotnego proxy. Po prostu czuję, że jest to prostsze (np. Nie potrzebujesz połączenia VPN klienta, aby zdalnie dotrzeć do serwera WWW. Po prostu wpisz adres i idź).
Robear
Dziękuję za szczegółową odpowiedź. Próbowałem skonfigurować openVPN, ale nigdy nie działało - muszę poświęcić więcej czasu na badania i naukę. Nie mogę sobie na to pozwolić. Czy masz sugestię implementacyjną dotyczącą drugiej części mojego pytania? Może powinienem zrobić z tego osobne pytanie?
Nazar
@Nazar Uczyniłbym to kolejnym pytaniem. Zasadniczo musisz skonfigurować routing. Jeśli utworzysz nowy post z przypadkiem użycia ORAZ konkretne, dokładne adresy IP w Inżynierii sieci , założę się, że ktoś dostarczy Ci dokładne rozwiązanie.
Robear
1

Najprostszym rozwiązaniem byłoby skonfigurowanie Pi jako urządzenia router / firewall - tzn. Chciałbyś, aby zapory były wysyłane do serwera WWW, tak aby przechodził on przez PI, jeśli przejdą przez interfejs VPN, który się na nim kończy, ale nie będzie odizoluj Pi od innych urządzeń w sieci LAN. Oznacza to, że będzie działać tylko dla wszystkich połączeń internetowych, które są wymuszane przez Pi zgodnie ze schematem. Jeśli inne urządzenie w sieci LAN zostanie naruszone, można uzyskać do niego dostęp do serwera WWW.

(Jeśli szukasz prostego rozwiązania i umiarkowanie bezpieczne rozwiązanie, możesz zignorować wszystko poniżej)

Istnieją bardziej złożone i kosztowne scenariusze, których można użyć zamiast tego. Zamiast używać zwykłego przełącznika, można użyć przełącznika zarządzanego i skonfigurować serwer WWW na własnej sieci VLAN, która jest widoczna tylko dla Pi (tj. Pi będzie rozmawiać na wielu VLANACH). Możesz także umieścić serwer WWW na swoim własnym adresie IP, dzięki czemu inne urządzenia w sieci LAN będą mogły z nim rozmawiać, ale tylko przez Pi.

Możesz dalej rozwinąć powyższy pomysł przełączania, poprzez zaporę sieci VLAN, na której znajduje się serwer WWW, tak że tylko pakiety pochodzące z interfejsu VLAN PI mogą rozmawiać przez port 80. Następnie możesz dodać odwrotne proxy (na przykład przy użyciu Apache ) do Pi, która może odpowiadać na porcie 443, a następnie pobierać żądania z serwera WWW na porcie 80. Korzystając ze strony klienta i zwykłego certyfikatu, można zapewnić, że tylko ludzie, którzy mogą uzyskać dostęp do routera, i osoby z certyfikatem klienta będą być w stanie się połączyć.

davidgo
źródło
Edytowałem moją odpowiedź. Czy nadal muszę korzystać z VPN przy mojej obecnej konfiguracji?
Nazar
To zależy od adresu IP dostarczonego do Pi przez łącze PPP. Jeśli jest to zwykły, routowany adres IP, nie, nie potrzebujesz VPN. Jest to jednak duży IF, ponieważ większość połączeń komórkowych znajduje się za NATem Carrier Grade. Jakie są pierwsze 2 oktety adresu IP skojarzonego z PPP0?
davidgo
Przyjrzę się temu, co daje mi IP Ting, ale konfiguracja ma być używana w Europie i nie wiem jeszcze, co to będzie.
Nazar
W razie wątpliwości użyj VPN
davidgo