VPN, który się łączy, ale do niczego nie dociera, bywa opisywany jako problem zapory sieciowej, a rozwiązaniem, po które sięgają ludzie, jest umieszczenie interfejsu tunelu w strefie zaufanej. To działa w tym sensie, że ruch zaczyna płynąć, ale przepuszcza też znacznie więcej niż zamierzona usługa. Obie zaangażowane polityki są różne: jedna wpuszcza transport zewnętrzny do nasłuchującego gniazda, druga upoważnia odszyfrowany ruch do dotarcia do konkretnego zasobu. To właśnie traktowanie ich jako jednego ustawienia zamienia wąskie zezwolenie w szerokie. Obie są rozstrzygane w różnych miejscach, dlatego ten błąd jest tak łatwy.

Dwie polityki, jeden tunel

Polityka zewnętrzna odpowiada na proste pytanie: czy pakiet z tego źródła może dotrzeć do UDP 1194 na tym hoście? Polityka wewnętrzna odpowiada na inne: czy uwierzytelniony klient za tym tunelem może dotrzeć do tego celu, tym protokołem, na tym porcie? Pierwsza dotyczy gniazda, druga ścieżki, a firewalld modeluje je różnymi obiektami, ponieważ są rozstrzygane w różnych punktach. Jedna jest właściwością gniazda na tym hoście, druga właściwością przechodzącej przez niego ścieżki.

Praktyczną konsekwencją jest to, że działający tunel nie mówi nic o drugiej polityce, a poprawna druga polityka nie czyni pierwszej zbędnej.

Wpuść rzeczywisty zewnętrzny nasłuch

Zacznij od sprawdzenia, co już jest przypisane, zamiast zakładać. Odczytaj aktywne strefy, wylistuj strefę, która faktycznie niesie ruch przychodzący, i sprawdź zainstalowaną definicję usługi, ponieważ nazwa usługi opisuje zbiór portów i nie mówi nic o tym, czy nasłuch tego serwera jej odpowiada.

firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-all
firewall-cmd --info-service=openvpn

Jeśli nasłuch rzeczywiście jest UDP 1194 w tej strefie, otwórz dokładnie ten port i transport, a następnie po przetestowaniu uczyń tę samą konkretną regułę trwałą. Sprawdź też przypisania oparte na źródle, ponieważ strefa powiązana z zakresem źródeł może przechwycić ruch, zanim strefa interfejsu go w ogóle zobaczy.

Autoryzuj odszyfrowany cel osobno

Połączenie z usługą działającą na samym serwerze VPN to polityka wejścia lokalnego. Połączenie przekazywane do innego hosta w sieci LAN wymaga polityki przekazywania, przekazywania włączonego w jądrze i trasy powrotnej — trzy odrębne wymagania, które ludzie często sprowadzają do jednego. Nowoczesne obiekty polityk firewalld opisują ruch kierowany między strefą wejściową a wyjściową, i to jest właściwe miejsce, by wyrazić, które źródła VPN mogą docierać do których usług prywatnych.

Wyraźnie zdefiniuj dozwolone źródła, a wszystko inne niech spadnie do odmowy. Zezwolenie dla usługi zewnętrznej nie jest tą polityką, niezależnie od tego, jak wygląda układ stref.

Dlaczego zaufanie interfejsowi to niewłaściwy skrót

Umieszczenie interfejsu tunelu w strefie, której cel akceptuje wszystko, przepuszcza cały odszyfrowany ruch do każdej usługi wystawianej przez hosta, w tym do tych, których nie przejrzałeś. Przekierowanie strefy zaufanej na restrykcyjną na działającej maszynie jest gorsze, ponieważ inne interfejsy i zakresy źródeł mogą już zależeć od jej znaczenia i zmienią zachowanie, gdy ją edytujesz. Jeśli potrzebujesz wąskiej polityki, utwórz ją; nie wykorzystuj ponownie współdzielonej strefy.

Utrzymuj też stabilne przypisanie strefy tunelu przez dowolny komponent, który posiada tę konfigurację. Utrata przypisania przy restarcie daje awarię, która wygląda jak problem reguły zapory, a w rzeczywistości jest problemem trwałości.

Zweryfikuj trzy rzeczy, w tym jedno odrzucenie

Przetestuj połączenie zewnętrzne z zewnątrz, przetestuj jedną autoryzowaną usługę wewnętrzną z podłączonego klienta i przetestuj jedną usługę, która powinna pozostać nieosiągalna. Trzeci test jest tym, który odróżnia politykę od efektu ubocznego, i to jego ludzie pomijają, bo wszystko wydaje się działać. Jeśli odrzucona usługa odpowiada, wpuściłeś strefę, a nie usługę.

Zapisz strefę, port, transport i obiekt polityki w notatkach serwera. Inaczej następna zmiana na tym hoście zacznie się od tego samego założenia.

Powiązane artykuły