Usługa VPN jest osiągalna z każdego miejsca, w którym jej gniazdo jest powiązane i gdzie zapora na to pozwala. To dwie osobne decyzje, a ludzie zwykle podejmują tylko jedną z nich. Odczytanie rzeczywistego odbiornika zajmuje dziesięć sekund i rozstrzyga kwestię, której zgadywanie nie rozstrzygnie. Zacznij tam, a potem zmieniaj po jednym mechanizmie kontroli.

Wszystko poniżej zakłada, że możesz uruchamiać polecenia na hoście z rootem lub przez sudo.

Odczytaj gniazda, zanim cokolwiek zmienisz

W systemie Linux ss -lunp wyświetla odbiorniki UDP wraz z adresem lokalnym, portem i procesem, a ss -ltnp robi to samo dla TCP. Znajdź port VPN i uważnie przeczytaj kolumnę adresu. 0.0.0.0:51820 i [::]:51820 oznaczają każdy interfejs, natomiast 10.0.0.5:51820 oznacza jeden adres na jednym interfejsie. Podręcznik ss opisuje kolumny, jeśli wynik jest nieznany. Jeśli brakuje nazwy procesu, uruchom to samo polecenie z sudo, ponieważ kolumna właściciela wymaga uprawnień.

Zapisz adres. To fakt, od którego zależy reszta tego przewodnika.

Przywiąż się do adresu, nie do życzenia

OpenVPN wiąże odbiornik z konkretnym adresem za pomocą dyrektywy local, i to jest obsługiwany sposób ograniczenia go na poziomie procesu. Nie każda implementacja oferuje odpowiednik, a protokołu bez opcji powiązania nie można w ten sposób zawęzić. Jeśli twój nie ma żadnej, zapora jest jedynym mechanizmem kontroli, a notatki wdrożeniowe powinny to jasno powiedzieć. Na hoście z kilkoma adresami przywiąż się do tego, który patrzy w stronę tunelu; wiązanie z adresem pływającym zwykle jest błędem.

Usługa, która musi przetrwać zmianę adresu, potrzebuje planu dla nieaktualnego powiązania, a nie tylko wiersza konfiguracji.

Sprawdź rodzinę adresów osobno

IPv4 i IPv6 to osobne gniazda. Proces powiązany z 0.0.0.0 nadal może przyjmować IPv6 przez gniazdo podwójnego stosu albo nie, zależnie od opcji gniazda i domyślnego zachowania platformy. Czytanie tylko wiersza IPv4 zmyliło niejedną ocenę wdrożenia. Wypisz obie rodziny, zanim stwierdzisz, że odbiornik jest wąski.

Jeśli IPv6 nie jest częścią projektu, wyłączenie go na poziomie gniazda jest czystsze niż liczenie na to, że zapora je obejmie. To decyzja polityczna, więc zapisz ją razem z pozostałymi wyborami interfejsów.

Nałóż zaporę na powiązanie

Wąskie powiązanie nie zastępuje reguły zapory, a reguła zapory nie zawęża powiązania wildcard. Używaj obu: wiąż tam, gdzie implementacja to obsługuje, a potem zezwalaj na port tylko ze źródeł, które powinny do niego dotrzeć. Grupy zabezpieczeń w chmurze stoją przed zaporą hosta, więc sprawdzaj oba, gdy ścieżka przekracza granicę VPC. Skuteczna reguła to przecięcie obu, a każda warstwa może tylko odejmować osiągalność.

Testuj z dozwolonego źródła i z celowo wykluczonego. Połączenie z localhost niczego nie dowodzi o granicy publicznej.

Zapisz, co wybrałeś

Zapisz powiązany adres, interfejs, który go posiada, regułę zapory i jej cel. Wymieniona karta NIC lub przydzielony ponownie adres w chmurze mogą zmienić ekspozycję, nawet jeśli nikt nie edytuje profilu. Opatrz notatkę datą, ponieważ adresy w chmurze przemieszczają się między przeglądami częściej, niż ludzie się spodziewają.

To ta notatka czyni następny przegląd porównaniem, a nie projektem archeologicznym.

Powiązane artykuły