Instrukcje krok po kroku dotyczące wdrażania Hailbytes VPN z Firezone GUI znajdują się tutaj.
Administracja: Konfigurowanie instancji serwera jest bezpośrednio związane z tą częścią.
Podręczniki użytkownika: przydatne dokumenty, które mogą nauczyć Cię, jak korzystać z Firezone i rozwiązywać typowe problemy. Po pomyślnym wdrożeniu serwera zapoznaj się z tą sekcją.
Dzielone tunelowanie: używaj sieci VPN do wysyłania ruchu tylko do określonych zakresów adresów IP.
Biała lista: ustaw statyczny adres IP serwera VPN, aby korzystać z białej listy.
Odwrotne tunele: Twórz tunele między kilkoma rówieśnikami za pomocą odwrotnych tuneli.
Z przyjemnością pomożemy Ci, jeśli potrzebujesz pomocy w instalacji, dostosowaniu lub korzystaniu z Hailbytes VPN.
Zanim użytkownicy będą mogli tworzyć lub pobierać pliki konfiguracyjne urządzeń, Firezone można skonfigurować tak, aby wymagało uwierzytelnienia. Użytkownicy mogą również potrzebować okresowego ponownego uwierzytelniania w celu utrzymania aktywnego połączenia VPN.
Chociaż domyślną metodą logowania Firezone jest lokalny adres e-mail i hasło, można ją również zintegrować z dowolnym standardowym dostawcą tożsamości OpenID Connect (OIDC). Użytkownicy mogą teraz logować się do Firezone przy użyciu poświadczeń Okta, Google, Azure AD lub prywatnego dostawcy tożsamości.
Zintegruj ogólnego dostawcę OIDC
Parametry konfiguracyjne wymagane przez Firezone do umożliwienia SSO przy użyciu dostawcy OIDC są pokazane w poniższym przykładzie. W /etc/firezone/firezone.rb możesz znaleźć plik konfiguracyjny. Uruchom firezone-ctl reconfigure i firezone-ctl restart, aby zaktualizować aplikację i zastosować zmiany.
# To jest przykład wykorzystania Google i Okta jako dostawcy tożsamości SSO.
# Wiele konfiguracji OIDC można dodać do tej samej instancji Firezone.
# Firezone może wyłączyć VPN użytkownika, jeśli podczas próby zostanie wykryty jakikolwiek błąd
#, aby odświeżyć ich access_token. Potwierdzono, że działa to w przypadku Google, Okta i
# Azure SSO i służy do automatycznego odłączania sieci VPN użytkownika, jeśli zostanie on usunięty
# od dostawcy OIDC. Pozostaw tę opcję wyłączoną, jeśli Twój dostawca OIDC
# ma problemy z odświeżaniem tokenów dostępu, ponieważ może to nieoczekiwanie przerwać a
# sesja VPN użytkownika.
default['firezone']['authentication']['disable_vpn_on_oidc_error'] = false
default['firezone']['uwierzytelnianie']['oidc'] = {
Google: {
Discovery_document_uri: „https://accounts.google.com/.well-known/openid-configuration”,
Identyfikator klienta: " ”,
sekret_klienta: „ ”,
redirect_uri: „https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
typ_odpowiedzi: „kod”,
zakres: „otwarty profil e-mail”,
etykieta: „Google”
},
ok: {
odkrycie_document_uri: „https:// /.well-known/openid-configuration”,
Identyfikator klienta: " ”,
sekret_klienta: „ ”,
redirect_uri: „https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
typ_odpowiedzi: „kod”,
zakres: „openid email profile offline_access”,
etykieta: „Okta”
}
}
Do integracji wymagane są następujące ustawienia konfiguracyjne:
Dla każdego dostawcy OIDC tworzony jest odpowiedni ładny adres URL w celu przekierowania do adresu URL logowania skonfigurowanego dostawcy. W przypadku powyższej przykładowej konfiguracji OIDC adresy URL to:
Dostawcy, dla których posiadamy dokumentację:
Jeśli Twój dostawca tożsamości ma ogólny łącznik OIDC i nie jest wymieniony powyżej, przejdź do jego dokumentacji, aby uzyskać informacje o tym, jak pobrać niezbędne ustawienia konfiguracji.
Ustawienie w ustawieniach/zabezpieczeniach można zmienić tak, aby wymagało okresowego ponownego uwierzytelniania. Można to wykorzystać do wyegzekwowania wymogu regularnego wchodzenia użytkowników do Firezone w celu kontynuowania sesji VPN.
Długość sesji można skonfigurować w zakresie od jednej godziny do dziewięćdziesięciu dni. Ustawiając tę opcję na Nigdy, możesz włączyć sesje VPN w dowolnym momencie. To jest norma.
Użytkownik musi zakończyć swoją sesję VPN i zalogować się do portalu Firezone, aby ponownie uwierzytelnić wygasłą sesję VPN (adres URL określony podczas wdrażania).
Możesz ponownie uwierzytelnić swoją sesję, postępując zgodnie z dokładnymi instrukcjami klienta, które znajdziesz tutaj.
Stan połączenia VPN
Kolumna Tabela połączeń VPN na stronie Użytkownicy wyświetla stan połączenia użytkownika. Oto stany połączenia:
ENABLED – połączenie jest włączone.
WYŁĄCZONE — połączenie zostało wyłączone przez administratora lub błąd odświeżania OIDC.
EXPIRED — połączenie zostało wyłączone z powodu wygaśnięcia uwierzytelnienia lub użytkownik nie zalogował się po raz pierwszy.
Dzięki ogólnemu złączu OIDC Firezone umożliwia jednokrotne logowanie (SSO) w Google Workspace i Cloud Identity. Ten przewodnik pokaże Ci, jak uzyskać wymienione poniżej parametry konfiguracyjne, które są niezbędne do integracji:
1. Ekran konfiguracji OAuthâ € <
Jeśli po raz pierwszy tworzysz nowy identyfikator klienta OAuth, zostaniesz poproszony o skonfigurowanie ekranu zgody.
*Wybierz Wewnętrzny dla typu użytkownika. Dzięki temu tylko konta należące do użytkowników w Twojej organizacji Google Workspace mogą tworzyć konfiguracje urządzeń. NIE wybieraj opcji Zewnętrzny, chyba że chcesz umożliwić każdemu, kto ma ważne konto Google, tworzenie konfiguracji urządzeń.
Na ekranie informacji o aplikacji:
2. Utwórz identyfikatory klienta OAuthâ € <
Ta sekcja jest oparta na własnej dokumentacji Google nt konfigurowanie OAuth 2.0.
Odwiedź Google Cloud Console Strona poświadczeń kliknij + Utwórz poświadczenia i wybierz Identyfikator klienta OAuth.
Na ekranie tworzenia identyfikatora klienta OAuth:
Po utworzeniu identyfikatora klienta OAuth otrzymasz identyfikator klienta i klucz tajny klienta. Zostaną one użyte razem z identyfikatorem URI przekierowania w następnym kroku.
Edytuj /etc/strefa ognia/strefa ognia.rb aby uwzględnić poniższe opcje:
# Korzystanie z Google jako dostawcy tożsamości SSO
default['firezone']['uwierzytelnianie']['oidc'] = {
Google: {
Discovery_document_uri: „https://accounts.google.com/.well-known/openid-configuration”,
Identyfikator klienta: " ”,
sekret_klienta: „ ”,
redirect_uri: „https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
typ_odpowiedzi: „kod”,
zakres: „otwarty profil e-mail”,
etykieta: „Google”
}
}
Uruchom firezone-ctl reconfigure i firezone-ctl restart, aby zaktualizować aplikację. Powinieneś teraz zobaczyć przycisk Zaloguj się przez Google pod głównym adresem URL Firezone.
Firezone wykorzystuje ogólne złącze OIDC, aby ułatwić jednokrotne logowanie (SSO) w Okcie. Ten samouczek pokaże Ci, jak uzyskać wymienione poniżej parametry konfiguracyjne, które są niezbędne do integracji:
Ta część poradnika oparta jest na Dokumentacja firmy Okta.
W konsoli administracyjnej przejdź do opcji Aplikacje > Aplikacje i kliknij opcję Utwórz integrację aplikacji. Ustaw metodę logowania na OICD – OpenID Connect i typ aplikacji na aplikację internetową.
Skonfiguruj te ustawienia:
Po zapisaniu ustawień otrzymasz identyfikator klienta, klucz tajny klienta i domenę Okta. Te 3 wartości zostaną użyte w kroku 2 do skonfigurowania Firezone.
Edytuj /etc/strefa ognia/strefa ognia.rb aby uwzględnić poniższe opcje. Twój adres URL_dokumentu_odkrycia będzie /.well-known/openid-configuration dołączone na końcu twojego okta_domena.
# Korzystanie z Okta jako dostawcy tożsamości SSO
default['firezone']['uwierzytelnianie']['oidc'] = {
ok: {
odkrycie_document_uri: „https:// /.well-known/openid-configuration”,
Identyfikator klienta: " ”,
sekret_klienta: „ ”,
redirect_uri: „https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
typ_odpowiedzi: „kod”,
zakres: „openid email profile offline_access”,
etykieta: „Okta”
}
}
Uruchom firezone-ctl reconfigure i firezone-ctl restart, aby zaktualizować aplikację. Powinieneś teraz zobaczyć przycisk Zaloguj się za pomocą Okta pod głównym adresem URL Firezone.
Użytkownicy, którzy mają dostęp do aplikacji Firezone, mogą zostać ograniczeni przez Okta. Aby to zrobić, przejdź do strony Zadania integracji aplikacji Firezone w Okta Admin Console.
Za pośrednictwem ogólnego łącznika OIDC Firezone umożliwia jednokrotne logowanie (SSO) z usługą Azure Active Directory. Ta instrukcja pokaże Ci, jak uzyskać wymienione poniżej parametry konfiguracyjne, które są niezbędne do integracji:
Ten przewodnik jest zaczerpnięty z Dokumenty usługi Azure Active Directory.
Przejdź do strony Azure Active Directory portalu Azure. Wybierz opcję menu Zarządzaj, wybierz opcję Nowa rejestracja, a następnie zarejestruj się, podając poniższe informacje:
Po rejestracji otwórz widok szczegółów aplikacji i skopiuj plik Identyfikator aplikacji (klienta). Będzie to wartość client_id. Następnie otwórz menu punktów końcowych, aby pobrać plik Dokument metadanych OpenID Connect. Będzie to wartość Discovery_document_uri.
Utwórz nowy klucz tajny klienta, klikając opcję Certyfikaty i klucze tajne w menu Zarządzaj. Skopiuj klucz tajny klienta; tajna wartość klienta będzie taka.
Na koniec wybierz łącze uprawnień API w menu Zarządzaj i kliknij Dodaj uprawnieniai wybierz Microsoft Graph. Dodaj E-mail, otwórzid, dostęp_offline i profil do wymaganych uprawnień.
Edytuj /etc/strefa ognia/strefa ognia.rb aby uwzględnić poniższe opcje:
# Korzystanie z Azure Active Directory jako dostawcy tożsamości SSO
default['firezone']['uwierzytelnianie']['oidc'] = {
lazur: {
Discovery_document_uri: „https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration”,
Identyfikator klienta: " ”,
sekret_klienta: „ ”,
redirect_uri: „https://instance-id.yourfirezone.com/auth/oidc/azure/callback/”,
typ_odpowiedzi: „kod”,
zakres: „openid email profile offline_access”,
etykieta: „Lazur”
}
}
Uruchom firezone-ctl reconfigure i firezone-ctl restart, aby zaktualizować aplikację. Powinieneś teraz zobaczyć przycisk Zaloguj się za pomocą platformy Azure pod głównym adresem URL Firezone.
Usługa Azure AD umożliwia administratorom ograniczenie dostępu do aplikacji do określonej grupy użytkowników w firmie. Więcej informacji o tym, jak to zrobić, można znaleźć w dokumentacji firmy Microsoft.
Chef Omnibus jest używany przez Firezone do zarządzania zadaniami, w tym pakowaniem, nadzorowaniem procesu, zarządzaniem logami i nie tylko.
Kod Ruby tworzy główny plik konfiguracyjny, który znajduje się w /etc/firezone/firezone.rb. Ponowne uruchomienie sudo firezone-ctl reconfigure po dokonaniu modyfikacji w tym pliku powoduje, że Chef rozpozna zmiany i zastosuje je w bieżącym systemie operacyjnym.
Zobacz odwołanie do pliku konfiguracyjnego, aby uzyskać pełną listę zmiennych konfiguracyjnych i ich opisy.
Twoja instancja Firezone może być zarządzana przez Firezone-ctl polecenie, jak pokazano poniżej. Większość podpoleceń wymaga poprzedzenia ich przedrostkiem sudo.
root@demo:~# firezone-ctl
omnibus-ctl: polecenie (podkomenda)
Komendy ogólne:
oczyścić
Usuń *wszystkie* dane strefy pożarowej i zacznij od zera.
utwórz lub zresetuj administratora
Resetuje hasło administratora z adresem e-mail określonym domyślnie ['firezone']['admin_email'] lub tworzy nowego administratora, jeśli ten adres e-mail nie istnieje.
pomoc
Wydrukuj tę wiadomość pomocy.
zmienić konfigurację
Ponownie skonfiguruj aplikację.
zresetuj sieć
Resetuje nftables, interfejs WireGuard i tablicę routingu z powrotem do ustawień domyślnych Firezone.
pokaż konfigurację
Pokaż konfigurację, która zostałaby wygenerowana przez reconfigure.
zerwana sieć
Usuwa interfejs WireGuard i tabelę nftables firezone.
wymuś odnowienie certyfikatu
Wymuś odnowienie certyfikatu teraz, nawet jeśli jeszcze nie wygasł.
stop-odnowienie-certyfikatu
Usuwa cronjob, który odnawia certyfikaty.
Odinstaluj
Zabij wszystkie procesy i odinstaluj nadzorcę procesów (dane zostaną zachowane).
wersja
Wyświetl aktualną wersję Firezone
Polecenia zarządzania usługami:
wdzięczne zabójstwo
Spróbuj wdzięcznie zatrzymać, a następnie SIGKILL całą grupę procesów.
Hup
Wyślij serwisowi HUP.
int
Wyślij służbom wiadomość INT.
zabić
Wyślij służbom KILL.
pewnego razu
Uruchom usługi, jeśli nie działają. Nie uruchamiaj ich ponownie, jeśli się zatrzymają.
restart
Zatrzymaj usługi, jeśli są uruchomione, a następnie uruchom je ponownie.
lista usług
Wyświetl listę wszystkich usług (włączone usługi są oznaczone *.)
początek
Uruchom usługi, jeśli nie działają, i uruchom je ponownie, jeśli się zatrzymają.
status
Pokaż stan wszystkich usług.
Zatrzymaj się
Zatrzymaj usługi i nie uruchamiaj ich ponownie.
ogon
Obejrzyj dzienniki usług wszystkich włączonych usług.
semestr
Wyślij do usług TERM.
usr1
Wyślij do usług USR1.
usr2
Wyślij do usług USR2.
Wszystkie sesje VPN muszą zostać zakończone przed aktualizacją Firezone, co wymaga również wyłączenia interfejsu internetowego. Jeśli coś pójdzie nie tak podczas aktualizacji, zalecamy zarezerwowanie godziny na konserwację.
Aby ulepszyć Firezone, wykonaj następujące czynności:
Jeśli pojawią się jakiekolwiek problemy, daj nam znać przez wysłanie zgłoszenia do pomocy technicznej.
Istnieje kilka istotnych zmian i modyfikacji konfiguracji w wersji 0.5.0, którymi należy się zająć. Dowiedz się więcej poniżej.
Od wersji 0.5.0 Nginx nie obsługuje już wymuszania parametrów portu SSL i innych niż SSL. Ponieważ Firezone wymaga SSL do działania, zalecamy usunięcie pakietu usługi Nginx poprzez ustawienie default['firezone']['nginx']['enabled'] = false i zamiast tego przekierowanie odwrotnego proxy do aplikacji Phoenix na porcie 13000 (domyślnie ).
0.5.0 wprowadza obsługę protokołu ACME do automatycznego odnawiania certyfikatów SSL z dołączoną usługą Nginx. Umożliwić,
Możliwość dodawania reguł ze zduplikowanymi miejscami docelowymi zniknęła w Firezone 0.5.0. Nasz skrypt migracji automatycznie rozpozna te sytuacje podczas aktualizacji do wersji 0.5.0 i zachowa tylko te reguły, których miejsce docelowe obejmuje inną regułę. Nie musisz nic robić, jeśli wszystko jest w porządku.
W przeciwnym razie przed aktualizacją radzimy zmienić zestaw reguł, aby pozbyć się takich sytuacji.
Firezone 0.5.0 usuwa obsługę starej konfiguracji Okta i Google SSO na rzecz nowej, bardziej elastycznej konfiguracji opartej na OIDC.
Jeśli masz jakąkolwiek konfigurację pod kluczami default['firezone']['authentication']['okta'] lub default['firezone']['authentication']['google'], musisz przenieść je do naszego OIDC konfiguracji opartej na poniższym przewodniku.
Istniejąca konfiguracja Google OAuth
Usuń te wiersze zawierające stare konfiguracje Google OAuth z pliku konfiguracyjnego znajdującego się pod adresem /etc/firezone/firezone.rb
default['firezone']['uwierzytelnianie']['google']['włączone']
default['firezone']['uwierzytelnianie']['google']['client_id']
default['firezone']['uwierzytelnianie']['google']['client_secret']
default['firezone']['uwierzytelnianie']['google']['redirect_uri']
Następnie skonfiguruj Google jako dostawcę OIDC, postępując zgodnie z procedurami tutaj.
(Podaj instrukcje łącza)<<<<<<<<<<<<<<<<
Skonfiguruj istniejącą autoryzację Google OAuth
Usuń te wiersze zawierające stare konfiguracje Okta OAuth z pliku konfiguracyjnego znajdującego się pod adresem /etc/strefa ognia/strefa ognia.rb
default['firezone']['uwierzytelnianie']['okta']['włączone']
default['firezone']['uwierzytelnianie']['okta']['client_id']
default['firezone']['uwierzytelnianie']['okta']['client_secret']
Domyślnie['firezone']['uwierzytelnianie']['okta']['witryna']
Następnie skonfiguruj Okta jako dostawcę OIDC, postępując zgodnie z procedurami tutaj.
W zależności od bieżącej konfiguracji i wersji postępuj zgodnie z poniższymi wskazówkami:
Jeśli masz już integrację z OIDC:
W przypadku niektórych dostawców OIDC uaktualnienie do wersji >= 0.3.16 wymaga uzyskania tokenu odświeżania dla zakresu dostępu w trybie offline. W ten sposób zapewnia się, że Firezone aktualizuje się u dostawcy tożsamości, a połączenie VPN jest wyłączane po usunięciu użytkownika. We wcześniejszych iteracjach Firezone brakowało tej funkcji. W niektórych przypadkach użytkownicy usunięci z dostawcy tożsamości mogą nadal być połączeni z siecią VPN.
Konieczne jest uwzględnienie dostępu w trybie offline w parametrze zakresu konfiguracji OIDC dla dostawców OIDC, którzy obsługują zakres dostępu w trybie offline. Rekonfiguracja Firezone-ctl musi zostać wykonana, aby zastosować zmiany w pliku konfiguracyjnym Firezone, który znajduje się w /etc/firezone/firezone.rb.
W przypadku użytkowników, którzy zostali uwierzytelnieni przez dostawcę OIDC, zobaczysz nagłówek Połączenia OIDC na stronie szczegółów użytkownika w internetowym interfejsie użytkownika, jeśli Firezone pomyślnie odzyska token odświeżania.
Jeśli to nie zadziała, musisz usunąć istniejącą aplikację OAuth i powtórzyć kroki konfiguracji OIDC, aby utwórz nową integrację aplikacji .
Mam istniejącą integrację OAuth
Przed wersją 0.3.11 Firezone używał wstępnie skonfigurowanych dostawców OAuth2.
Postępuj zgodnie z instrukcją tutaj migrować do OIDC.
Nie zintegrowałem dostawcy tożsamości
Nie wymaga działań.
Możesz postępować zgodnie z instrukcjami tutaj aby umożliwić logowanie jednokrotne za pośrednictwem dostawcy OIDC.
W jej miejsce default['firezone']['external url'] zastąpiło opcję konfiguracyjną default['firezone']['fqdn'].
Ustaw to na adres URL swojego portalu internetowego Firezone, który jest dostępny dla ogółu społeczeństwa. Domyślnie będzie to https:// plus nazwa FQDN twojego serwera, jeśli pozostanie niezdefiniowana.
Plik konfiguracyjny znajduje się w /etc/firezone/firezone.rb. Zobacz odwołanie do pliku konfiguracyjnego, aby uzyskać pełną listę zmiennych konfiguracyjnych i ich opisy.
Firezone nie przechowuje już prywatnych kluczy urządzenia na serwerze Firezone od wersji 0.3.0.
Interfejs sieciowy Firezone nie pozwoli na ponowne pobranie ani wyświetlenie tych konfiguracji, ale wszelkie istniejące urządzenia powinny nadal działać tak, jak są.
Jeśli przeprowadzasz aktualizację z Firezone 0.1.x, jest kilka zmian w plikach konfiguracyjnych, które należy wprowadzić ręcznie.
Aby dokonać niezbędnych modyfikacji w pliku /etc/firezone/firezone.rb, uruchom poniższe polecenia jako root.
cp /etc/firezone/firezone.rb /etc/firezone/firezone.rb.bak
sed -i „s/\['włącz'\]/\['włącz'\]/” /etc/firezone/firezone.rb
echo „default['firezone']['connectivity_checks']['enabled'] = true” >> /etc/firezone/firezone.rb
echo „default['firezone']['connectivity_checks']['interval'] = 3_600” >> /etc/firezone/firezone.rb
rekonfiguracja firezone-ctl
ponowne uruchomienie firezone-ctl
Sprawdzenie dzienników Firezone to mądry pierwszy krok w przypadku wszelkich problemów, które mogą wystąpić.
Uruchom sudo firezone-ctl tail, aby wyświetlić dzienniki Firezone.
Większość problemów z łącznością w Firezone wynika z niekompatybilnych reguł iptables lub nftables. Musisz upewnić się, że obowiązujące zasady nie kolidują z zasadami Firezone.
Upewnij się, że łańcuch FORWARD zezwala na pakiety od klientów WireGuard do lokalizacji, które chcesz przepuścić przez Firezone, jeśli połączenie internetowe pogarsza się za każdym razem, gdy aktywujesz tunel WireGuard.
Można to osiągnąć, jeśli używasz ufw, upewniając się, że domyślna polityka routingu to Zezwól:
ubuntu@fz: ~$ sudo ufw domyślnie zezwala na kierowanie
Domyślna zasada kierowania zmieniona na „zezwól”
(pamiętaj, aby odpowiednio zaktualizować swoje zasady)
A ufw status dla typowego serwera Firezone może wyglądać tak:
ubuntu@fz:~$ sudo ufw status pełny
Stan: aktywny
Logowanie: włączone (niskie)
Domyślnie: odmów (przychodzący), zezwól (wychodzący), zezwól (routowany)
Nowe profile: pomiń
Do działania od
— — — —-
22/tcp ZEZWÓL NA WEJŚCIE Gdziekolwiek
80/tcp ZEZWÓL NA WEJŚCIE Gdziekolwiek
443/tcp ZEZWÓL NA WEJŚCIE Gdziekolwiek
51820/udp ZEZWÓL NA WEJŚCIE Gdziekolwiek
22/tcp (v6) ZEZWÓL WSZYSTKO (v6)
80/tcp (v6) ZEZWÓL WSZYSTKO (v6)
443/tcp (v6) ZEZWALAJ W DOWOLNYM MIEJSCU (v6)
51820/udp (v6) ZEZWALAJ W DOWOLNYM MIEJSCU (v6)
Zalecamy ograniczenie dostępu do interfejsu internetowego w przypadku bardzo wrażliwych i krytycznych wdrożeń produkcyjnych, jak wyjaśniono poniżej.
Usługi | Port domyślny | Odsłuchaj adres | Opis Projektu |
nginx | 80, 443 | cała kolekcja | Publiczny port HTTP(S) do administrowania Firezone i ułatwiania uwierzytelniania. |
Wireguard | 51820 | cała kolekcja | Publiczny port WireGuard używany do sesji VPN. (UDP) |
postgresql | 15432 | 127.0.0.1 | Port tylko lokalny używany przez dołączony serwer Postgresql. |
feniks | 13000 | 127.0.0.1 | Port tylko lokalny używany przez nadrzędny serwer aplikacji elixir. |
Radzimy pomyśleć o ograniczeniu dostępu do publicznie dostępnego interfejsu sieciowego Firezone (domyślnie porty 443/tcp i 80/tcp) i zamiast tego użyć tunelu WireGuard do zarządzania Firezone na potrzeby wdrożeń produkcyjnych i publicznych, w których odpowiedzialny będzie jeden administrator tworzenia i dystrybucji konfiguracji urządzeń do użytkowników końcowych.
Na przykład, jeśli administrator utworzył konfigurację urządzenia i utworzył tunel z lokalnym adresem WireGuard 10.3.2.2, następująca konfiguracja ufw umożliwiłaby administratorowi dostęp do interfejsu sieciowego Firezone w interfejsie wg-firezone serwera przy użyciu domyślnego adresu 10.3.2.1 adres tunelu:
root@demo: ~# ufw pełny status
Stan: aktywny
Logowanie: włączone (niskie)
Domyślnie: odmów (przychodzący), zezwól (wychodzący), zezwól (routowany)
Nowe profile: pomiń
Do działania od
— — — —-
22/tcp ZEZWÓL NA WEJŚCIE Gdziekolwiek
51820/udp ZEZWÓL NA WEJŚCIE Gdziekolwiek
Gdziekolwiek ZEZWÓL WEJŚĆ 10.3.2.2
22/tcp (v6) ZEZWÓL WSZYSTKO (v6)
51820/udp (v6) ZEZWALAJ W DOWOLNYM MIEJSCU (v6)
To pozostawiłoby tylko 22/tcp wystawiony na dostęp SSH w celu zarządzania serwerem (opcjonalnie) oraz 51820/ok odsłonięte w celu ustanowienia tuneli WireGuard.
Firezone łączy serwer Postgresql i dopasowuje Psql narzędzie, którego można użyć z lokalnej powłoki w następujący sposób:
/opt/firezone/embedded/bin/psql \
-U strefa pożarowa \
-d strefa pożaru \
-h host lokalny \
-p 15432 \
-c „SQL_STATEMENT”
Może to być przydatne do celów debugowania.
Zwykłe zadania:
Lista wszystkich użytkowników:
/opt/firezone/embedded/bin/psql \
-U strefa pożarowa \
-d strefa pożaru \
-h host lokalny \
-p 15432 \
-c „WYBIERZ * OD użytkowników;”
Lista wszystkich urządzeń:
/opt/firezone/embedded/bin/psql \
-U strefa pożarowa \
-d strefa pożaru \
-h host lokalny \
-p 15432 \
-c „WYBIERZ * Z urządzeń;”
Zmień rolę użytkownika:
Ustaw rolę na „admin” lub „nieuprzywilejowany”:
/opt/firezone/embedded/bin/psql \
-U strefa pożarowa \
-d strefa pożaru \
-h host lokalny \
-p 15432 \
-c „AKTUALIZUJ użytkowników USTAW rolę = 'admin' GDZIE e-mail = '[email chroniony]';”
Tworzenie kopii zapasowej bazy danych:
Ponadto dołączony jest program pg dump, który może służyć do wykonywania regularnych kopii zapasowych bazy danych. Wykonaj poniższy kod, aby zrzucić kopię bazy danych w typowym formacie zapytań SQL (zastąp /path/to/backup.sql lokalizacją, w której powinien zostać utworzony plik SQL):
/opt/firezone/embedded/bin/pg_dump \
-U strefa pożarowa \
-d strefa pożaru \
-h host lokalny \
-p 15432 > /ścieżka/do/backup.sql
Po pomyślnym wdrożeniu Firezone musisz dodać użytkowników, aby zapewnić im dostęp do Twojej sieci. Służy do tego interfejs sieciowy.
Wybierając przycisk „Dodaj użytkownika” w obszarze /users, możesz dodać użytkownika. Będziesz musiał podać użytkownikowi adres e-mail i hasło. Aby automatycznie umożliwić dostęp użytkownikom w Twojej organizacji, Firezone może również łączyć się i synchronizować z dostawcą tożsamości. Więcej szczegółów znajduje się w Uwierzytelniać. < Dodaj link do Uwierzytelniania
Zalecamy poproszenie użytkowników o utworzenie własnych konfiguracji urządzeń, tak aby klucz prywatny był widoczny tylko dla nich. Użytkownicy mogą generować własne konfiguracje urządzeń, postępując zgodnie ze wskazówkami na stronie Instrukcje dla klientów strona.
Wszystkie konfiguracje urządzeń użytkowników mogą być tworzone przez administratorów Firezone. Aby to zrobić, na stronie profilu użytkownika znajdującej się w katalogu /users wybierz opcję „Dodaj urządzenie”.
[Wstaw zrzut ekranu]
Po utworzeniu profilu urządzenia możesz wysłać użytkownikowi wiadomość e-mail z plikiem konfiguracyjnym WireGuard.
Użytkownicy i urządzenia są połączone. Aby uzyskać więcej informacji na temat dodawania użytkownika, zobacz Dodaj użytkowników.
Dzięki zastosowaniu systemu netfilter jądra, Firezone umożliwia filtrowanie ruchu wychodzącego w celu określenia pakietów DROP lub ACCEPT. Cały ruch jest normalnie dozwolony.
Identyfikatory CIDR i adresy IP IPv4 i IPv6 są obsługiwane odpowiednio za pośrednictwem listy dozwolonych i listy odrzuconych. Podczas dodawania możesz określić zakres reguły dla użytkownika, co spowoduje zastosowanie reguły do wszystkich urządzeń tego użytkownika.
Zainstaluj i skonfiguruj
Aby nawiązać połączenie VPN przy użyciu natywnego klienta WireGuard, zapoznaj się z tym przewodnikiem.
Znajdujący się tutaj oficjalni klienci WireGuard są kompatybilni z Firezone:
Odwiedź oficjalną stronę WireGuard pod adresem https://www.wireguard.com/install/ dla systemów operacyjnych niewymienionych powyżej.
Twój administrator Firezone lub Ty możesz wygenerować plik konfiguracyjny urządzenia za pomocą portalu Firezone.
Odwiedź adres URL podany przez administratora Firezone, aby samodzielnie wygenerować plik konfiguracyjny urządzenia. Twoja firma będzie miała do tego unikalny adres URL; w tym przypadku jest to https://instance-id.yourfirezone.com.
Zaloguj się do Firezone Okta SSO
[Wstaw zrzut ekranu]
Zaimportuj plik .conf do klienta WireGuard, otwierając go. Przełączając przełącznik Aktywuj, możesz rozpocząć sesję VPN.
[Wstaw zrzut ekranu]
Postępuj zgodnie z poniższymi instrukcjami, jeśli administrator sieci zezwolił na cykliczne uwierzytelnianie w celu utrzymania aktywnego połączenia VPN.
Potrzebujesz:
Adres URL portalu Firezone: Zapytaj administratora sieci o połączenie.
Twój administrator sieci powinien być w stanie zaoferować twój login i hasło. Witryna Firezone wyświetli monit o zalogowanie się za pomocą usługi pojedynczego logowania, z której korzysta Twój pracodawca (takiej jak Google lub Okta).
[Wstaw zrzut ekranu]
Przejdź do adresu URL portalu Firezone i zaloguj się przy użyciu poświadczeń dostarczonych przez administratora sieci. Jeśli jesteś już zalogowany, kliknij przycisk Uwierzytelnij ponownie przed ponownym zalogowaniem.
[Wstaw zrzut ekranu]
[Wstaw zrzut ekranu]
Aby zaimportować profil konfiguracyjny WireGuard za pomocą Network Manager CLI na urządzeniach z systemem Linux, postępuj zgodnie z tymi instrukcjami (nmcli).
Jeśli profil ma włączoną obsługę protokołu IPv6, próba zaimportowania pliku konfiguracyjnego za pomocą interfejsu GUI programu Network Manager może zakończyć się niepowodzeniem z powodu następującego błędu:
ipv6.method: metoda „auto” nie jest obsługiwana przez WireGuard
Konieczne jest zainstalowanie narzędzi przestrzeni użytkownika WireGuard. Będzie to pakiet o nazwie wireguard lub wireguard-tools dla dystrybucji Linuksa.
Dla Ubuntu/Debiana:
sudo apt zainstaluj wireguard
Aby użyć Fedory:
sudo dnf zainstaluj narzędzia wireguard
Arch Linux:
sudo pacman -S narzędzia wireguard
Odwiedź oficjalną stronę WireGuard pod adresem https://www.wireguard.com/install/, aby zapoznać się z dystrybucjami, które nie zostały wymienione powyżej.
Twój administrator Firezone lub samogenerator mogą wygenerować plik konfiguracyjny urządzenia za pomocą portalu Firezone.
Odwiedź adres URL podany przez administratora Firezone, aby samodzielnie wygenerować plik konfiguracyjny urządzenia. Twoja firma będzie miała do tego unikalny adres URL; w tym przypadku jest to https://instance-id.yourfirezone.com.
[Wstaw zrzut ekranu]
Zaimportuj dostarczony plik konfiguracyjny za pomocą nmcli:
sudo import połączenia nmcli plik wireguard /path/to/configuration.conf
Nazwa pliku konfiguracyjnego będzie odpowiadać połączeniu/interfejsowi WireGuard. Po zaimportowaniu nazwę połączenia można w razie potrzeby zmienić:
nmcli modyfikacja połączenia [stara nazwa] connection.id [nowa nazwa]
Za pomocą wiersza poleceń połącz się z VPN w następujący sposób:
nawiązanie połączenia nmcli [nazwa vpn]
Rozłączyć:
przerwane połączenie nmcli [nazwa vpn]
Odpowiedni aplet Network Manager może również służyć do zarządzania połączeniem, jeśli używany jest graficzny interfejs użytkownika.
Wybierając „tak” dla opcji automatycznego łączenia, połączenie VPN można skonfigurować tak, aby łączyło się automatycznie:
połączenie nmcli zmodyfikuj połączenie [nazwa vpn]. <<<<<<<<<<<<<<<<<<<<<<<
automatyczne łączenie tak
Aby wyłączyć automatyczne połączenie, ustaw je z powrotem na nie:
połączenie nmcli zmodyfikuj połączenie [nazwa vpn].
automatyczne łączenie nr
Aby aktywować MFA Przejdź do strony /user account/register MFA portalu Firezone. Użyj aplikacji uwierzytelniającej, aby zeskanować kod QR po jego wygenerowaniu, a następnie wprowadź sześciocyfrowy kod.
Skontaktuj się z administratorem, aby zresetować informacje dostępowe do konta, jeśli zgubisz aplikację uwierzytelniającą.
Ten samouczek przeprowadzi Cię przez proces konfigurowania funkcji dzielonego tunelowania WireGuard w Firezone, tak aby tylko ruch do określonych zakresów adresów IP był przekazywany przez serwer VPN.
Zakresy adresów IP, dla których klient będzie kierował ruch sieciowy, są określone w polu Dozwolone adresy IP znajdującym się na stronie /settings/default. Tylko nowo utworzone konfiguracje tuneli WireGuard produkowane przez Firezone będą miały wpływ na zmiany w tym polu.
[Wstaw zrzut ekranu]
Wartość domyślna to 0.0.0.0/0, ::/0, która kieruje cały ruch sieciowy od klienta do serwera VPN.
Przykładowe wartości w tym polu obejmują:
0.0.0.0/0, ::/0 – cały ruch sieciowy będzie kierowany do serwera VPN.
192.0.2.3/32 – do serwera VPN kierowany będzie tylko ruch do jednego adresu IP.
3.5.140.0/22 – tylko ruch do adresów IP z zakresu 3.5.140.1 – 3.5.143.254 będzie kierowany do serwera VPN. W tym przykładzie użyto zakresu CIDR dla regionu AWS ap-northeast-2.
Firezone najpierw wybiera interfejs wyjściowy powiązany z najdokładniejszą trasą podczas określania, dokąd skierować pakiet.
Użytkownicy muszą ponownie wygenerować pliki konfiguracyjne i dodać je do swojego natywnego klienta WireGuard, aby zaktualizować istniejące urządzenia użytkownika o nową konfigurację podzielonego tunelu.
Aby uzyskać instrukcje, zobacz Dodaj urządzenie. <<<<<<<<<<< Dodaj łącze
Ta instrukcja pokaże, jak połączyć dwa urządzenia za pomocą Firezone jako przekaźnika. Jednym z typowych przypadków użycia jest umożliwienie administratorowi dostępu do serwera, kontenera lub maszyny chronionej przez NAT lub zaporę.
Ta ilustracja przedstawia prosty scenariusz, w którym urządzenia A i B budują tunel.
[Wstaw rysunek architektoniczny strefy pożaru]
Zacznij od utworzenia urządzenia A i urządzenia B, przechodząc do /users/[identyfikator_użytkownika]/new_device. W ustawieniach każdego urządzenia upewnij się, że następujące parametry są ustawione na wartości wymienione poniżej. Ustawienia urządzenia można ustawić podczas tworzenia konfiguracji urządzenia (patrz Dodawanie urządzeń). Jeśli chcesz zaktualizować ustawienia na istniejącym urządzeniu, możesz to zrobić, generując nową konfigurację urządzenia.
Pamiętaj, że wszystkie urządzenia mają stronę /settings/defaults, na której można skonfigurować funkcję PersistentKeepalive.
Dozwolone IP = 10.3.2.2/32
To jest adres IP lub zakres adresów IP urządzenia B
TrwałeKeepalive = 25
Jeśli urządzenie znajduje się za NAT, zapewnia to, że urządzenie jest w stanie utrzymać tunel przy życiu i nadal odbierać pakiety z interfejsu WireGuard. Zwykle wystarczająca jest wartość 25, ale może być konieczne zmniejszenie tej wartości w zależności od środowiska.
Dozwolone IP = 10.3.2.3/32
To jest adres IP lub zakres adresów IP urządzenia A
TrwałeKeepalive = 25
Ten przykład pokazuje sytuację, w której Urządzenie A może komunikować się z Urządzeniami B przez D w obu kierunkach. Ta konfiguracja może reprezentować inżyniera lub administratora uzyskującego dostęp do wielu zasobów (serwerów, kontenerów lub maszyn) w różnych sieciach.
[Schemat architektoniczny]<<<<<<<<<<<<<<<<<<<<<<<
Upewnij się, że w ustawieniach każdego urządzenia dokonano następujących ustawień z odpowiednimi wartościami. Podczas tworzenia konfiguracji urządzenia możesz określić ustawienia urządzenia (patrz Dodawanie urządzeń). Można utworzyć nową konfigurację urządzenia, jeśli ustawienia na istniejącym urządzeniu wymagają aktualizacji.
Dozwolone adresy IP = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32
To jest adres IP urządzeń od B do D. Adresy IP urządzeń od B do D muszą należeć do dowolnego ustawionego zakresu adresów IP.
TrwałeKeepalive = 25
Gwarantuje to, że urządzenie może utrzymywać tunel i nadal odbierać pakiety z interfejsu WireGuard, nawet jeśli jest chronione przez NAT. W większości przypadków odpowiednia jest wartość 25, jednak w zależności od otoczenia może być konieczne obniżenie tej liczby.
Aby zaoferować pojedynczy, statyczny wychodzący adres IP dla całego ruchu Twojego zespołu, Firezone może być wykorzystany jako brama NAT. Sytuacje te wiążą się z jego częstym używaniem:
Konsultacje: Poproś klienta o umieszczenie na białej liście pojedynczego statycznego adresu IP zamiast unikalnego adresu IP urządzenia każdego pracownika.
Korzystanie z serwera proxy lub maskowanie źródłowego adresu IP ze względów bezpieczeństwa lub prywatności.
W tym poście zostanie zademonstrowany prosty przykład ograniczenia dostępu do samoobsługowej aplikacji internetowej do pojedynczego statycznego adresu IP z białej listy, na którym działa Firezone. Na tej ilustracji Firezone i chroniony zasób znajdują się w różnych obszarach VPC.
Rozwiązanie to jest często stosowane zamiast zarządzania białą listą adresów IP dla wielu użytkowników końcowych, co może być czasochłonne w miarę rozszerzania się listy dostępu.
Naszym celem jest skonfigurowanie serwera Firezone na instancji EC2 w celu przekierowania ruchu VPN do ograniczonego zasobu. W tym przypadku Firezone służy jako sieciowy serwer proxy lub brama NAT, aby nadać każdemu podłączonemu urządzeniu unikalny publiczny wychodzący adres IP.
W tym przypadku instancja EC2 o nazwie tc2.micro ma zainstalowaną instancję Firezone. Aby uzyskać informacje na temat wdrażania Firezone, przejdź do Przewodnika wdrażania. W odniesieniu do AWS upewnij się, że:
Grupa zabezpieczeń instancji Firezone EC2 zezwala na ruch wychodzący do adresu IP chronionego zasobu.
Instancja Firezone ma elastyczny adres IP. Ruch przekazywany przez instancję Firezone do zewnętrznych miejsc docelowych będzie miał ten źródłowy adres IP. Wspomniany adres IP to 52.202.88.54.
[Wstaw zrzut ekranu]<<<<<<<<<<<<<<<<<<<<<<<<<
W tym przypadku samoobsługowa aplikacja internetowa służy jako chroniony zasób. Dostęp do aplikacji internetowej można uzyskać tylko za pomocą żądań pochodzących z adresu IP 52.202.88.54. W zależności od zasobu może być konieczne zezwolenie na ruch przychodzący na różnych portach i typach ruchu. Nie jest to omówione w tej instrukcji.
[Wstaw zrzut ekranu]<<<<<<<<<<<<<<<<<<<<<<<<<
Poinformuj osobę trzecią odpowiedzialną za chroniony zasób, że ruch ze statycznego adresu IP zdefiniowanego w kroku 1 musi być dozwolony (w tym przypadku 52.202.88.54).
Domyślnie cały ruch użytkowników przechodzi przez serwer VPN i pochodzi ze statycznego adresu IP skonfigurowanego w kroku 1 (w tym przypadku 52.202.88.54). Jeśli jednak włączono dzielone tunelowanie, konieczne mogą być ustawienia, aby upewnić się, że docelowy adres IP chronionego zasobu znajduje się na liście dozwolonych adresów IP.
Poniżej przedstawiono pełną listę opcji konfiguracyjnych dostępnych w programie /etc/strefa ognia/strefa ognia.rb.
opcja | opis | domyślna wartość |
default['firezone']['external_url'] | Adres URL używany do uzyskiwania dostępu do portalu internetowego tej instancji Firezone. | „https://#{węzeł['fqdn'] || węzeł ['nazwa hosta']}” |
default['firezone']['config_directory'] | Katalog najwyższego poziomu do konfiguracji Firezone. | /etc/strefa ognia' |
default['firezone']['install_directory'] | Katalog najwyższego poziomu, w którym ma zostać zainstalowana Firezone. | /opt/strefa ognia' |
default['firezone']['app_directory'] | Katalog najwyższego poziomu do instalacji aplikacji internetowej Firezone. | „#{node['firezone']['install_directory']}/embedded/service/firezone” |
default['firezone']['log_directory'] | Katalog najwyższego poziomu dla dzienników Firezone. | /var/log/strefa ognia' |
default['firezone']['var_directory'] | Katalog najwyższego poziomu dla plików wykonawczych Firezone. | /var/opt/strefa ognia' |
default['firezone']['user'] | Nazwa nieuprzywilejowanego użytkownika Linuksa, do którego będzie należeć większość usług i plików. | Strefa ognia' |
domyślnie['strefa ognia']['grupa'] | Nazwa grupy Linuksa, do której będzie należeć większość usług i plików. | Strefa ognia' |
default['firezone']['admin_email'] | Adres e-mail dla pierwszego użytkownika Firezone. | „strefa ognia @ host lokalny” |
default['firezone']['max_devices_per_user'] | Maksymalna liczba urządzeń, jakie może mieć użytkownik. | 10 |
default['firezone']['allow_unprivileged_device_management'] | Zezwala użytkownikom niebędącym administratorami na tworzenie i usuwanie urządzeń. | TRUE |
default['firezone']['allow_unprivileged_device_configuration'] | Zezwala użytkownikom niebędącym administratorami na modyfikowanie konfiguracji urządzeń. Po wyłączeniu uniemożliwia nieuprzywilejowanym użytkownikom zmianę wszystkich pól urządzenia z wyjątkiem nazwy i opisu. | TRUE |
default['firezone']['egress_interface'] | Nazwa interfejsu, z którego ruch tunelowany zostanie zakończony. Jeśli zero, zostanie użyty domyślny interfejs trasy. | zero |
default['firezone']['fips_enabled'] | Włącz lub wyłącz tryb OpenSSL FIPs. | zero |
default['firezone']['logowanie']['włączone'] | Włącz lub wyłącz logowanie w Firezone. Ustaw wartość false, aby całkowicie wyłączyć rejestrowanie. | TRUE |
default['firma']['nazwa'] | Nazwa używana przez „przedsiębiorczą” książkę kucharską szefa kuchni. | Strefa ognia' |
default['firezone']['install_path'] | Ścieżka instalacji używana przez książkę kucharską Chef „enterprise”. Powinien być ustawiony tak samo, jak katalog_instalacyjny powyżej. | węzeł ['firezone']['install_directory'] |
default['firezone']['sysvinit_id'] | Identyfikator używany w /etc/inittab. Musi być unikalną sekwencją 1-4 znaków. | PIĆ MAŁYMI ŁYKAMI' |
default['firezone']['uwierzytelnianie']['lokalne']['włączone'] | Włącz lub wyłącz uwierzytelnianie lokalnego adresu e-mail/hasła. | TRUE |
default['firezone']['uwierzytelnianie']['auto_create_oidc_users'] | Automatycznie twórz użytkowników logujących się z OIDC po raz pierwszy. Wyłącz, aby zezwolić tylko istniejącym użytkownikom na logowanie się przez OIDC. | TRUE |
default['firezone']['uwierzytelnianie']['disable_vpn_on_oidc_error'] | Wyłącz VPN użytkownika, jeśli podczas próby odświeżenia jego tokena OIDC zostanie wykryty błąd. | FAŁSZYWY |
default['firezone']['uwierzytelnianie']['oidc'] | Konfiguracja OpenID Connect, w formacie {“provider” => [config…]} – Zobacz Dokumentacja OpenIDConnect dla przykładów konfiguracji. | {} |
default['firezone']['nginx']['włączone'] | Włącz lub wyłącz dołączony serwer nginx. | TRUE |
default['firezone']['nginx']['ssl_port'] | Port nasłuchiwania HTTPS. | 443 |
default['firezone']['nginx']['katalog'] | Katalog do przechowywania konfiguracji wirtualnego hosta nginx związanego z Firezone. | „#{węzeł ['firezone']['var_directory']}/nginx/etc” |
default['firezone']['nginx']['log_directory'] | Katalog do przechowywania plików dziennika nginx związanych z Firezone. | „#{węzeł ['firezone']['log_directory']}/nginx” |
default['firezone']['nginx']['log_rotation']['file_maxbytes'] | Rozmiar pliku, przy którym należy obracać pliki dziennika Nginx. | 104857600 |
default['firezone']['nginx']['log_rotation']['num_to_keep'] | Liczba plików dziennika Firezone nginx, które należy zachować przed odrzuceniem. | 10 |
default['firezone']['nginx']['log_x_forwarded_for'] | Czy logować nagłówek Firezone nginx x-forwarded-for. | TRUE |
default['firezone']['nginx']['hsts_header']['enabled'] | TRUE | |
default['firezone']['nginx']['hsts_header']['include_subdomains'] | Włącz lub wyłącz includeSubDomains dla nagłówka HSTS. | TRUE |
default['firezone']['nginx']['hsts_header']['max_age'] | Maksymalny wiek nagłówka HSTS. | 31536000 |
default['firezone']['nginx']['redirect_to_canonical'] | Czy przekierowywać adresy URL do kanonicznej nazwy FQDN określonej powyżej | FAŁSZYWY |
default['firezone']['nginx']['cache']['enabled'] | Włącz lub wyłącz pamięć podręczną Firezone nginx. | FAŁSZYWY |
default['firezone']['nginx']['cache']['katalog'] | Katalog pamięci podręcznej Firezone nginx. | „#{węzeł ['firezone']['var_directory']}/nginx/cache” |
default['firezone']['nginx']['user'] | Użytkownik Firezone nginx. | węzeł ['strefa ognia']['użytkownik'] |
default['firezone']['nginx']['grupa'] | Grupa Firezone nginx. | węzeł ['strefa ognia']['grupa'] |
default['firezone']['nginx']['dir'] | Katalog konfiguracyjny nginx najwyższego poziomu. | node['firezone']['nginx']['katalog'] |
default['firezone']['nginx']['log_dir'] | Katalog dziennika nginx najwyższego poziomu. | węzeł ['firezone']['nginx']['log_directory'] |
default['firezone']['nginx']['pid'] | Lokalizacja pliku pid nginx. | „#{węzeł ['firezone']['nginx']['katalog']}/nginx.pid” |
default['firezone']['nginx']['daemon_disable'] | Wyłącz tryb demona nginx, abyśmy mogli zamiast tego go monitorować. | TRUE |
default['firezone']['nginx']['gzip'] | Włącz lub wyłącz kompresję nginx gzip. | na' |
default['firezone']['nginx']['gzip_static'] | Włącz lub wyłącz kompresję nginx gzip dla plików statycznych. | wyłączony' |
default['firezone']['nginx']['gzip_http_version'] | Wersja HTTP używana do udostępniania plików statycznych. | 1.0 ' |
default['firezone']['nginx']['gzip_comp_level'] | Poziom kompresji nginx gzip. | 2 ' |
default['firezone']['nginx']['gzip_proxied'] | Włącza lub wyłącza kompresowanie gzip odpowiedzi na żądania proxy w zależności od żądania i odpowiedzi. | każdy' |
default['firezone']['nginx']['gzip_vary'] | Włącza lub wyłącza wstawianie nagłówka odpowiedzi „Vary: Accept-Encoding”. | wyłączony' |
default['firezone']['nginx']['gzip_buffers'] | Ustawia liczbę i rozmiar buforów używanych do kompresji odpowiedzi. Jeśli nil, używana jest domyślna wartość nginx. | zero |
default['firezone']['nginx']['gzip_types'] | Typy MIME, dla których należy włączyć kompresję gzip. | ['text/plain', 'text/css','application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', ' tekst/javascript”, „aplikacja/javascript”, „aplikacja/json”] |
default['firezone']['nginx']['gzip_min_length'] | Minimalna długość pliku, dla którego można włączyć kompresję plików gzip. | 1000 |
default['firezone']['nginx']['gzip_disable'] | Narzędzie dopasowujące agenta użytkownika, aby wyłączyć kompresję gzip dla. | MSIE [1-6]\.' |
default['firezone']['nginx']['keepalive'] | Aktywuje pamięć podręczną dla połączenia z serwerami nadrzędnymi. | na' |
default['firezone']['nginx']['keepalive_timeout'] | Limit czasu w sekundach dla utrzymywania aktywnego połączenia z serwerami nadrzędnymi. | 65 |
default['firezone']['nginx']['worker_processes'] | Liczba procesów roboczych nginx. | węzeł['procesor'] && węzeł['procesor']['całkowity'] ? węzeł['procesor']['całkowity'] : 1 |
default['firezone']['nginx']['worker_connections'] | Maksymalna liczba jednoczesnych połączeń, które może otworzyć proces roboczy. | 1024 |
default['firezone']['nginx']['worker_rlimit_nofile'] | Zmienia limit maksymalnej liczby otwartych plików dla procesów roboczych. Używa wartości domyślnej nginx, jeśli zero. | zero |
default['firezone']['nginx']['multi_accept'] | Czy pracownicy powinni akceptować jedno połączenie naraz, czy wiele. | TRUE |
default['firezone']['nginx']['wydarzenie'] | Określa metodę przetwarzania połączenia, która ma być używana w kontekście zdarzeń nginx. | epoll' |
default['firezone']['nginx']['server_tokens'] | Włącza lub wyłącza emisję wersji nginx na stronach błędów oraz w polu nagłówka odpowiedzi „Serwer”. | zero |
default['firezone']['nginx']['server_names_hash_bucket_size'] | Ustawia rozmiar zasobnika dla tabel skrótów nazw serwerów. | 64 |
default['firezone']['nginx']['sendfile'] | Włącza lub wyłącza użycie sendfile() nginx. | na' |
default['firezone']['nginx']['access_log_options'] | Ustawia opcje dziennika dostępu nginx. | zero |
default['firezone']['nginx']['error_log_options'] | Ustawia opcje dziennika błędów nginx. | zero |
default['firezone']['nginx']['disable_access_log'] | Wyłącza dziennik dostępu nginx. | FAŁSZYWY |
default['firezone']['nginx']['types_hash_max_size'] | Typy nginx mieszają maksymalny rozmiar. | 2048 |
default['firezone']['nginx']['types_hash_bucket_size'] | Typy nginx mieszają rozmiar wiadra. | 64 |
default['firezone']['nginx']['proxy_read_timeout'] | Upłynął limit czasu odczytu proxy nginx. Ustaw na nil, aby użyć domyślnej wartości nginx. | zero |
default['firezone']['nginx']['client_body_buffer_size'] | Rozmiar bufora ciała klienta nginx. Ustaw na nil, aby użyć domyślnej wartości nginx. | zero |
default['firezone']['nginx']['client_max_body_size'] | Maksymalny rozmiar ciała klienta nginx. | 250m' |
default['firezone']['nginx']['default']['moduły'] | Określ dodatkowe moduły nginx. | [] |
default['firezone']['nginx']['enable_rate_limiting'] | Włącz lub wyłącz ograniczenie szybkości nginx. | TRUE |
default['firezone']['nginx']['rate_limiting_zone_name'] | Nazwa strefy ograniczającej szybkość Nginx. | Strefa ognia' |
default['firezone']['nginx']['rate_limiting_backoff'] | Wycofanie ograniczające szybkość Nginx. | 10m' |
default['firezone']['nginx']['rate_limit'] | Limit szybkości Nginx. | 10r/s' |
default['firezone']['nginx']['ipv6'] | Pozwól nginx nasłuchiwać żądań HTTP dla IPv6 oprócz IPv4. | TRUE |
default['firezone']['postgresql']['enabled'] | Włącz lub wyłącz pakiet Postgresql. Ustaw wartość false i wypełnij poniższe opcje bazy danych, aby użyć własnej instancji Postgresql. | TRUE |
default['firezone']['postgresql']['nazwa użytkownika'] | Nazwa użytkownika dla Postgresql. | węzeł ['strefa ognia']['użytkownik'] |
default['firezone']['postgresql']['data_directory'] | Katalog danych Postgresql. | „#{węzeł ['firezone']['var_directory']}/postgresql/13.3/data” |
default['firezone']['postgresql']['log_directory'] | Katalog dziennika Postgresql. | „#{węzeł ['firezone']['log_directory']}/postgresql” |
default['firezone']['postgresql']['log_rotation']['file_maxbytes'] | Maksymalny rozmiar pliku dziennika Postgresql przed obróceniem. | 104857600 |
default['firezone']['postgresql']['log_rotation']['num_to_keep'] | Liczba przechowywanych plików dziennika Postgresql. | 10 |
default['firezone']['postgresql']['checkpoint_completion_target'] | Cel ukończenia punktu kontrolnego Postgresql. | 0.5 |
default['firezone']['postgresql']['checkpoint_segments'] | Liczba segmentów punktów kontrolnych Postgresql. | 3 |
default['firezone']['postgresql']['checkpoint_timeout'] | Limit czasu punktu kontrolnego Postgresql. | 5 minut' |
default['firezone']['postgresql']['checkpoint_warning'] | Czas ostrzeżenia punktu kontrolnego Postgresql w sekundach. | lata 30. |
default['firezone']['postgresql']['efektywna_rozmiar pamięci podręcznej'] | Efektywny rozmiar pamięci podręcznej Postgresql. | 128 MB' |
default['firezone']['postgresql']['listen_address'] | Adres nasłuchiwania Postgresql. | 127.0.0.1 ' |
default['firezone']['postgresql']['max_connections'] | Maksymalne połączenia Postgresql. | 350 |
default['firezone']['postgresql']['md5_auth_cidr_addresses'] | CIDR Postgresql, aby umożliwić autoryzację md5. | ['127.0.0.1/32', '::1/128'] |
default['firezone']['postgresql']['port'] | Port nasłuchiwania Postgresql. | 15432 |
default['firezone']['postgresql']['shared_buffers'] | Rozmiar współdzielonych buforów Postgresql. | „#{(węzeł ['pamięć']['suma'].to_i / 4) / 1024} MB” |
default['firezone']['postgresql']['shmmax'] | Postgresql shmmax w bajtach. | 17179869184 |
default['firezone']['postgresql']['shmall'] | Postgresql shmall w bajtach. | 4194304 |
default['firezone']['postgresql']['work_mem'] | Rozmiar pamięci roboczej Postgresql. | 8 MB' |
default['firezone']['baza danych']['użytkownik'] | Określa nazwę użytkownika, której Firezone będzie używać do łączenia się z bazą danych. | węzeł ['firezone']['postgresql']['nazwa użytkownika'] |
default['firezone']['baza danych']['hasło'] | W przypadku korzystania z zewnętrznej bazy danych określa hasło, którego Firezone będzie używać do łączenia się z bazą danych. | Zmień mnie' |
default['firezone']['baza danych']['nazwa'] | Baza danych, z której będzie korzystać Firezone. Zostanie utworzony, jeśli nie istnieje. | Strefa ognia' |
default['firezone']['baza danych']['host'] | Host bazy danych, z którym Firezone będzie się łączyć. | węzeł ['firezone']['postgresql']['listen_address'] |
default['firezone']['baza danych']['port'] | Port bazy danych, z którym Firezone będzie się łączyć. | węzeł ['firezone']['postgresql']['port'] |
default['firezone']['baza danych']['pool'] | Rozmiar puli bazy danych, której będzie używać Firezone. | [10, itp.nprocesory].maks |
default['firezone']['baza danych']['ssl'] | Czy połączyć się z bazą danych przez SSL. | FAŁSZYWY |
default['firezone']['baza danych']['ssl_opts'] | {} | |
default['firezone']['baza danych']['parametry'] | {} | |
default['firezone']['baza danych']['rozszerzenia'] | Rozszerzenia bazy danych do włączenia. | { 'plpgsql' => prawda, 'pg_trgm' => prawda } |
default['firezone']['phoenix']['enabled'] | Włącz lub wyłącz aplikację internetową Firezone. | TRUE |
default['firezone']['phoenix']['listen_address'] | Adres nasłuchiwania aplikacji internetowej Firezone. Będzie to adres nasłuchiwania w górę, który jest używany przez serwery proxy nginx. | 127.0.0.1 ' |
default['firezone']['phoenix']['port'] | Port nasłuchiwania aplikacji internetowej Firezone. Będzie to port nadrzędny, który obsługuje serwery proxy nginx. | 13000 |
default['firezone']['phoenix']['log_directory'] | Katalog dziennika aplikacji internetowej Firezone. | „#{node['firezone']['log_directory']}/phoenix” |
default['firezone']['phoenix']['log_rotation']['file_maxbytes'] | Rozmiar pliku dziennika aplikacji internetowej Firezone. | 104857600 |
default['firezone']['phoenix']['log_rotation']['num_to_keep'] | Liczba przechowywanych plików dziennika aplikacji internetowej Firezone. | 10 |
default['firezone']['phoenix']['crash_detection']['enabled'] | Włącz lub wyłącz wyłączanie aplikacji internetowej Firezone po wykryciu awarii. | TRUE |
default['firezone']['phoenix']['external_trusted_proxy'] | Lista zaufanych odwrotnych serwerów proxy sformatowana jako tablica adresów IP i/lub CIDR. | [] |
default['firezone']['phoenix']['private_clients'] | Lista klientów HTTP sieci prywatnej, sformatowana jako tablica adresów IP i/lub CIDR. | [] |
default['firezone']['wireguard']['enabled'] | Włącz lub wyłącz dołączone zarządzanie WireGuard. | TRUE |
default['firezone']['wireguard']['log_directory'] | Katalog dziennika dla dołączonego zarządzania WireGuard. | „#{node['firezone']['log_directory']}/wireguard” |
default['firezone']['wireguard']['log_rotation']['file_maxbytes'] | Maksymalny rozmiar pliku dziennika WireGuard. | 104857600 |
default['firezone']['wireguard']['log_rotation']['num_to_keep'] | Liczba plików dziennika WireGuard do zachowania. | 10 |
default['firezone']['wireguard']['interface_name'] | Nazwa interfejsu WireGuard. Zmiana tego parametru może spowodować tymczasową utratę łączności VPN. | wg-firezone' |
default['firezone']['wireguard']['port'] | Port nasłuchu WireGuard. | 51820 |
default['firezone']['wireguard']['mtu'] | Interfejs WireGuard MTU dla tego serwera i konfiguracji urządzeń. | 1280 |
default['firezone']['wireguard']['endpoint'] | Punkt końcowy WireGuard używany do generowania konfiguracji urządzeń. Jeśli zero, domyślnie jest to publiczny adres IP serwera. | zero |
default['firezone']['wireguard']['dns'] | WireGuard DNS do wykorzystania w generowanych konfiguracjach urządzeń. | 1.1.1.1, 1.0.0.1′ |
default['firezone']['wireguard']['allowed_ips'] | Dozwolone adresy IP WireGuard do wykorzystania w generowanych konfiguracjach urządzeń. | 0.0.0.0/0, ::/0′ |
default['firezone']['wireguard']['persistent_keepalive'] | Domyślne ustawienie PersistentKeepalive dla wygenerowanych konfiguracji urządzeń. Wartość 0 wyłącza. | 0 |
default['firezone']['wireguard']['ipv4']['enabled'] | Włącz lub wyłącz IPv4 dla sieci WireGuard. | TRUE |
default['firezone']['wireguard']['ipv4']['masquerade'] | Włącz lub wyłącz maskaradę dla pakietów opuszczających tunel IPv4. | TRUE |
default['firezone']['wireguard']['ipv4']['sieć'] | Pula adresów IPv4 sieci WireGuard. | 10.3.2.0 / 24 ′ |
default['firezone']['wireguard']['ipv4']['adres'] | Adres IPv4 interfejsu WireGuard. Musi znajdować się w puli adresów WireGuard. | 10.3.2.1 ' |
default['firezone']['wireguard']['ipv6']['enabled'] | Włącz lub wyłącz IPv6 dla sieci WireGuard. | TRUE |
default['firezone']['wireguard']['ipv6']['masquerade'] | Włącz lub wyłącz maskaradę dla pakietów opuszczających tunel IPv6. | TRUE |
default['firezone']['wireguard']['ipv6']['sieć'] | Pula adresów IPv6 sieci WireGuard. | fd00::3:2:0/120′ |
default['firezone']['wireguard']['ipv6']['adres'] | Adres IPv6 interfejsu WireGuard. Musi znajdować się w puli adresów IPv6. | fd00::3:2:1′ |
default['firezone']['runit']['svlogd_bin'] | Lokalizacja pliku Runit svlogd. | „#{node['firezone']['install_directory']}/embedded/bin/svlogd” |
default['firezone']['ssl']['katalog'] | Katalog SSL do przechowywania wygenerowanych certyfikatów. | /var/opt/firezone/ssl' |
default['firezone']['ssl']['email_address'] | Adres e-mail używany do wysyłania samopodpisanych certyfikatów i powiadomień o odnowieniu protokołu ACME. | |
default['firezone']['ssl']['acme']['enabled'] | Włącz ACME do automatycznego udostępniania certyfikatów SSL. Wyłącz to, aby uniemożliwić Nginx nasłuchiwanie na porcie 80. Zobacz tutaj aby uzyskać więcej instrukcji. | FAŁSZYWY |
default['firezone']['ssl']['acme']['serwer'] | Serwer ACME używany do wydawania/odnawiania certyfikatów. Może być dowolny prawidłowy serwer acme.sh | letsencrypt |
default['firezone']['ssl']['acme']['keylength'] | Określ typ i długość klucza dla certyfikatów SSL. Widzieć tutaj | we-256 |
default['firezone']['ssl']['certyfikat'] | Ścieżka do pliku certyfikatu dla Twojej nazwy FQDN. Zastępuje powyższe ustawienie ACME, jeśli zostało określone. Jeśli zarówno ACME, jak i to są zerowe, zostanie wygenerowany certyfikat z podpisem własnym. | zero |
default['firezone']['ssl']['certificate_key'] | Ścieżka do pliku certyfikatu. | zero |
default['firezone']['ssl']['ssl_dhparam'] | nginx ssl dh_param. | zero |
default['firezone']['ssl']['country_name'] | Nazwa kraju dla certyfikatu z podpisem własnym. | NAS' |
default['firezone']['ssl']['state_name'] | Podaj nazwę certyfikatu z podpisem własnym. | CA ” |
default['firezone']['ssl']['nazwa_lokalizacji'] | Nazwa lokalizacji dla certyfikatu z podpisem własnym. | San Francisco' |
default['firezone']['ssl']['nazwa_firmy'] | Certyfikat z podpisem własnym firmy. | Moja firma' |
default['firezone']['ssl']['organizational_unit_name'] | Nazwa jednostki organizacyjnej dla certyfikatu z podpisem własnym. | Operacje |
default['firezone']['ssl']['ciphers'] | Szyfry SSL do użycia przez nginx. | ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA’ |
default['firezone']['ssl']['fips_ciphers'] | Szyfry SSL dla trybu FIP. | FIPS@STRENGTH:!aNULL:!eNULL' |
default['firezone']['ssl']['protokoły'] | Protokoły TLS do użycia. | TLSv1 TLSv1.1 TLSv1.2′ |
default['firezone']['ssl']['session_cache'] | Pamięć podręczna sesji SSL. | udostępnione:SSL:4m' |
default['firezone']['ssl']['session_timeout'] | Limit czasu sesji SSL. | 5m' |
default['firezone']['robots_allow'] | pozwalają roboty nginx. | /' |
default['firezone']['robots_disallow'] | roboty nginx nie zezwalają. | zero |
default['firezone']['outbound_email']['from'] | Wychodzący e-mail z adresu. | zero |
default['firezone']['outbound_email']['dostawca'] | Dostawca usług poczty wychodzącej. | zero |
default['firezone']['outbound_email']['configs'] | Konfiguracje dostawcy poczty wychodzącej. | zobacz omnibus/książki kucharskie/firezone/attributes/default.rb |
default['firezone']['telemetry']['enabled'] | Włącz lub wyłącz anonimową telemetrię produktu. | TRUE |
default['firezone']['connectivity_checks']['enabled'] | Włącz lub wyłącz usługę sprawdzania łączności Firezone. | TRUE |
default['firezone']['connectivity_checks']['interval'] | Odstęp między sprawdzaniem łączności w sekundach. | 3_600 |
________________________________________________________________
Tutaj znajdziesz listę plików i katalogów związanych z typową instalacją Firezone. Mogą się one zmieniać w zależności od zmian w pliku konfiguracyjnym.
ścieżka | opis |
/var/opt/strefa ognia | Katalog najwyższego poziomu zawierający dane i wygenerowaną konfigurację usług pakietu Firezone. |
/opt/strefa ognia | Katalog najwyższego poziomu zawierający wbudowane biblioteki, pliki binarne i pliki uruchomieniowe potrzebne Firezone. |
/usr/bin/firezone-ctl | narzędzie firezone-ctl do zarządzania instalacją Firezone. |
/etc/systemd/system/firezone-runsvdir-start.service | systemd plik jednostki do uruchamiania procesu nadzorcy Firezone runningvdir. |
/etc/strefa ognia | Pliki konfiguracyjne Firezone. |
__________________________________________________________
Ta strona była pusta w dokumentach
_____________________________________________________________
Poniższy szablon zapory sieciowej nftables może służyć do zabezpieczenia serwera, na którym działa Firezone. Szablon zawiera pewne założenia; może być konieczne dostosowanie reguł do przypadku użycia:
Firezone konfiguruje własne reguły nftables, aby zezwalać/odrzucać ruch do miejsc docelowych skonfigurowanych w interfejsie sieciowym oraz obsługiwać wychodzący NAT dla ruchu klienckiego.
Zastosowanie poniższego szablonu zapory na już działającym serwerze (nie podczas uruchamiania) spowoduje wyczyszczenie reguł Firezone. Może to mieć wpływ na bezpieczeństwo.
Aby obejść ten problem, uruchom ponownie usługę Phoenix:
firezone-ctl uruchom ponownie phoenix
#!/usr/sbin/nft -f
## Wyczyść/opróżnij wszystkie istniejące reguły
zestaw reguł spłukiwania
################################ ZMIENNE ################# ###############
## Nazwa interfejsu internetowego/WAN
zdefiniuj DEV_WAN = eth0
## Nazwa interfejsu WireGuard
zdefiniuj DEV_WIREGUARD = wg-firezone
## Port nasłuchu WireGuard
zdefiniuj WIREGUARD_PORT = 51820
############################## ZMIENNE KONIEC ################## ############
# Główna tabela filtrowania rodziny inet
filtr sieciowy tabeli {
# Reguły dla przekazywanego ruchu
# Ten łańcuch jest przetwarzany przed łańcuchem przekazywania Firezone
łańcuch do przodu {
typ filtra zaczep do przodu filtr priorytetowy – 5; Zaakceptuj politykę
}
# Reguły ruchu wejściowego
wejście łańcuchowe {
typ filtra zaczep filtra priorytetu wejścia; spadek polityki
## Zezwalaj na ruch przychodzący do interfejsu sprzężenia zwrotnego
jeśli lo \
zaakceptować \
komentarz „Zezwalaj na cały ruch z interfejsu sprzężenia zwrotnego”
## Zezwól na ustanowione i powiązane połączenia
ustalony stan ct, powiązane \
zaakceptować \
komentarz „Zezwalaj na ustanowione/powiązane połączenia”
## Zezwól na przychodzący ruch WireGuard
iif $DEV_WAN port udp $WIREGUARD_PORT \
lada \
zaakceptować \
komentarz „Zezwalaj na przychodzący ruch WireGuard”
## Rejestruj i upuszczaj nowe pakiety TCP inne niż SYN
flagi tcp != syn ct stan nowy \
stawka graniczna 100/minuta wybuchu 150 pakiety \
przedrostek dziennika „IN – Nowy !SYN:” \
komentarz „Rejestrowanie limitu szybkości dla nowych połączeń, które nie mają ustawionej flagi SYN TCP”
flagi tcp != syn ct stan nowy \
lada \
upuszczać \
komentarz „Porzuć nowe połączenia, które nie mają ustawionej flagi SYN TCP”
## Rejestruj i odrzucaj pakiety TCP z ustawioną nieprawidłową flagą fin/syn
flagi tcp & (fin|syn) == (fin|syn) \
stawka graniczna 100/minuta wybuchu 150 pakiety \
przedrostek dziennika „IN – TCP FIN|SIN:” \
komentarz „Rejestrowanie limitu szybkości dla pakietów TCP z ustawioną nieprawidłową flagą fin/syn”
flagi tcp & (fin|syn) == (fin|syn) \
lada \
upuszczać \
komentarz „Upuść pakiety TCP z nieprawidłową ustawioną flagą fin/syn”
## Rejestruj i odrzucaj pakiety TCP z ustawioną nieprawidłową flagą syn/rst
flagi tcp & (syn|rst) == (syn|rst) \
stawka graniczna 100/minuta wybuchu 150 pakiety \
przedrostek dziennika „IN – TCP SYN|RST:” \
komentarz „Rejestrowanie limitu szybkości dla pakietów TCP z nieprawidłową ustawioną flagą syn/rst”
flagi tcp & (syn|rst) == (syn|rst) \
lada \
upuszczać \
komentarz „Upuść pakiety TCP z nieprawidłową ustawioną flagą syn/rst”
## Rejestruj i usuwaj nieprawidłowe flagi TCP
flagi tcp & (fin|syn|rst|psh|ack|urg) < (fin) \
stawka graniczna 100/minuta wybuchu 150 pakiety \
przedrostek dziennika „IN – FIN:” \
komentarz „Rejestrowanie limitu szybkości dla nieprawidłowych flag TCP (fin|syn|rst|psh|ack|urg) < (fin)”
flagi tcp & (fin|syn|rst|psh|ack|urg) < (fin) \
lada \
upuszczać \
komentarz „Upuść pakiety TCP z flagami (fin|syn|rst|psh|ack|urg) < (fin)”
## Rejestruj i usuwaj nieprawidłowe flagi TCP
flagi tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
stawka graniczna 100/minuta wybuchu 150 pakiety \
przedrostek dziennika „IN – FIN|PSH|URG:” \
komentarz „Rejestrowanie limitu szybkości dla nieprawidłowych flag TCP (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
flagi tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
lada \
upuszczać \
komentarz „Upuść pakiety TCP z flagami (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
## Upuść ruch z nieprawidłowym stanem połączenia
stan ct niepoprawny \
stawka graniczna 100/minuta wybuchu 150 pakiety \
log oznacza wszystkie prefiksy „IN – Niepoprawny:” \
komentarz „Rejestrowanie limitu szybkości dla ruchu z nieprawidłowym stanem połączenia”
stan ct niepoprawny \
lada \
upuszczać \
komentarz „Upuszczanie ruchu z nieprawidłowym stanem połączenia”
## Zezwól na odpowiedzi ping/ping IPv4, ale z ograniczeniem szybkości do 2000 PPS
ip protokół icmp typ icmp { echo-odpowiedź, echo-żądanie } \
stawka graniczna 2000/drugi \
lada \
zaakceptować \
komentarz „Zezwalaj na przychodzące echo IPv4 (ping) ograniczone do 2000 PPS”
## Zezwalaj na wszystkie inne przychodzące połączenia ICMP IPv4
ip protokół icmp \
lada \
zaakceptować \
komentarz „Zezwalaj na wszystkie inne ICMP IPv4”
## Zezwól na odpowiedzi ping/ping IPv6, ale z ograniczeniem szybkości do 2000 PPS
icmpv6 wpisz { echo-odpowiedź, echo-żądanie} \
stawka graniczna 2000/drugi \
lada \
zaakceptować \
komentarz „Zezwalaj na przychodzące echo IPv6 (ping) ograniczone do 2000 PPS”
## Zezwalaj na wszystkie inne przychodzące połączenia ICMP IPv6
meta l4proto {icmpv6} \
lada \
zaakceptować \
komentarz „Zezwalaj na wszystkie inne ICMP IPv6”
## Zezwól na przychodzące porty traceroute UDP, ale ogranicz do 500 PPS
port udp 33434-33524 \
stawka graniczna 500/drugi \
lada \
zaakceptować \
komentarz „Zezwalaj na przychodzące traceroute UDP ograniczone do 500 PPS”
## Zezwalaj na przychodzące połączenia SSH
port tcp ssh ct stan nowy \
lada \
zaakceptować \
komentarz „Zezwalaj na przychodzące połączenia SSH”
## Zezwalaj na przychodzące HTTP i HTTPS
tcp dport { http, https } ct stan nowy \
lada \
zaakceptować \
komentarz „Zezwalaj na przychodzące połączenia HTTP i HTTPS”
## Rejestruj niedopasowany ruch, ale rejestruj limit szybkości do maksymalnie 60 komunikatów na minutę
## Zasady domyślne zostaną zastosowane do niedopasowanego ruchu
stawka graniczna 60/minuta wybuchu 100 pakiety \
przedrostek dziennika „IN – Upuść:” \
komentarz „Zarejestruj niezrównany ruch”
## Policz niedopasowany ruch
lada \
komentarz „Policz niezrównany ruch”
}
# Reguły ruchu wyjściowego
wyjście łańcuchowe {
typ filtra filtr priorytetu wyjścia haka; spadek polityki
## Zezwalaj na ruch wychodzący do interfejsu sprzężenia zwrotnego
jeśli lo \
zaakceptować \
komentarz „Zezwalaj na cały ruch do interfejsu sprzężenia zwrotnego”
## Zezwól na ustanowione i powiązane połączenia
ustalony stan ct, powiązane \
lada \
zaakceptować \
komentarz „Zezwalaj na ustanowione/powiązane połączenia”
## Zezwól na wychodzący ruch WireGuard przed zerwaniem połączeń ze złym stanem
ojf $DEV_WAN udp sport $WIREGUARD_PORT \
lada \
zaakceptować \
komentarz „Zezwalaj na ruch wychodzący WireGuard”
## Upuść ruch z nieprawidłowym stanem połączenia
stan ct niepoprawny \
stawka graniczna 100/minuta wybuchu 150 pakiety \
log oznacza wszystkie prefiksy „OUT – Nieprawidłowy:” \
komentarz „Rejestrowanie limitu szybkości dla ruchu z nieprawidłowym stanem połączenia”
stan ct niepoprawny \
lada \
upuszczać \
komentarz „Upuszczanie ruchu z nieprawidłowym stanem połączenia”
## Zezwalaj na wszystkie inne wychodzące ICMP IPv4
ip protokół icmp \
lada \
zaakceptować \
komentarz „Zezwalaj na wszystkie typy ICMP IPv4”
## Zezwalaj na wszystkie inne wychodzące ICMP IPv6
meta l4proto {icmpv6} \
lada \
zaakceptować \
komentarz „Zezwalaj na wszystkie typy ICMP IPv6”
## Zezwól na wychodzące porty traceroute UDP, ale ogranicz do 500 PPS
port udp 33434-33524 \
stawka graniczna 500/drugi \
lada \
zaakceptować \
komentarz „Zezwalaj na wychodzące traceroute UDP ograniczone do 500 PPS”
## Zezwalaj na wychodzące połączenia HTTP i HTTPS
tcp dport { http, https } ct stan nowy \
lada \
zaakceptować \
komentarz „Zezwalaj na wychodzące połączenia HTTP i HTTPS”
## Zezwól na wychodzące przesyłanie SMTP
tcp dport przedłożenie ct stan nowy \
lada \
zaakceptować \
komentarz „Zezwalaj na wychodzące przesyłanie SMTP”
## Zezwalaj na wychodzące żądania DNS
port udp 53 \
lada \
zaakceptować \
komentarz „Zezwalaj na wychodzące żądania UDP DNS”
port tcp 53 \
lada \
zaakceptować \
komentarz „Zezwalaj na wychodzące żądania TCP DNS”
## Zezwalaj na wychodzące żądania NTP
port udp 123 \
lada \
zaakceptować \
komentarz „Zezwalaj na wychodzące żądania NTP”
## Rejestruj niedopasowany ruch, ale rejestruj limit szybkości do maksymalnie 60 komunikatów na minutę
## Zasady domyślne zostaną zastosowane do niedopasowanego ruchu
stawka graniczna 60/minuta wybuchu 100 pakiety \
przedrostek dziennika „OUT – Drop:” \
komentarz „Zarejestruj niezrównany ruch”
## Policz niedopasowany ruch
lada \
komentarz „Policz niezrównany ruch”
}
}
# Główna tabela filtrowania NAT
tabela inet nat {
# Zasady wstępnego trasowania ruchu NAT
wstępne trasowanie łańcucha {
wpisz nat hook prerouting priorytet dstnat; Zaakceptuj politykę
}
# Reguły post-routingu ruchu NAT
# Ta tabela jest przetwarzana przed łańcuchem post-routingu Firezone
wysyłanie łańcuchowe {
wpisz nat hook postouting priorytet srcnat – 5; Zaakceptuj politykę
}
}
Zapora powinna być przechowywana w odpowiedniej lokalizacji dla uruchomionej dystrybucji Linuksa. Dla Debian/Ubuntu jest to /etc/nftables.conf, a dla RHEL jest to /etc/sysconfig/nftables.conf.
nftables.service będzie musiał zostać skonfigurowany, aby uruchamiał się podczas rozruchu (jeśli jeszcze nie został):
systemctl włącz nftables.service
Jeśli dokonujesz jakichkolwiek zmian w szablonie zapory, składnię można sprawdzić, uruchamiając polecenie check:
nft -f /ścieżka/do/nftables.conf -c
Upewnij się, że zapora działa zgodnie z oczekiwaniami, ponieważ niektóre funkcje nftables mogą nie być dostępne w zależności od wersji uruchomionej na serwerze.
_______________________________________________________________
Ten dokument zawiera przegląd danych telemetrycznych, które Firezone zbiera z Twojej własnej instancji, oraz sposób ich wyłączenia.
Strefa pożarowa opiera się w zakresie telemetrii, aby nadać priorytet naszej mapie drogowej i zoptymalizować zasoby inżynieryjne, którymi dysponujemy, aby Firezone było lepsze dla wszystkich.
Dane telemetryczne, które zbieramy, mają na celu udzielenie odpowiedzi na następujące pytania:
Istnieją trzy główne miejsca gromadzenia danych telemetrycznych w Firezone:
W każdym z tych trzech kontekstów gromadzimy minimalną ilość danych niezbędnych do udzielenia odpowiedzi na pytania z powyższej sekcji.
E-maile administratora są zbierane tylko wtedy, gdy wyraźnie zgodzisz się na aktualizacje produktów. W przeciwnym razie informacje umożliwiające identyfikację użytkownika są nigdy Zebrane.
Firezone przechowuje dane telemetryczne we własnej instancji PostHog działającej w prywatnym klastrze Kubernetes, dostępnym tylko dla zespołu Firezone. Oto przykład zdarzenia telemetrycznego wysyłanego z Twojej instancji Firezone do naszego serwera telemetrycznego:
{
"ID": “0182272d-0b88-0000-d419-7b9a413713f1”,
"znak czasu": “2022-07-22T18:30:39.748000+00:00”,
"wydarzenie": „fz_http_rozpoczęty”,
„identyfikator_odrębny”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"nieruchomości"{
„$geoip_city_name”: „Ashburn”,
„$geoip_continent_code”: „Nie dotyczy”,
„$geoip_continent_name”: "Ameryka północna",
„$geoip_country_code”: "NAS",
„$geoip_country_name”: "Stany Zjednoczone",
„$geoip_latitude”: 39.0469,
„$geoip_longitude”: -77.4903,
„$geoip_postal_code”: "20149",
„$geoip_subdivision_1_code”: „VA”,
„$geoip_subdivision_1_name”: „Wirginia”,
„$geoip_time_zone”: „Ameryka/Nowy_Jork”,
„$ ip”: "52.200.241.107",
„$plugins_deferred”: []
„$plugins_failed”: []
„$plugins_succeeded”: [
„GeoIP (3)”
],
„identyfikator_odrębny”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,
„fqdn”: „awsdemo.firezone.dev”,
„wersja_jądra”: „linux 5.13.0”,
"wersja": "0.4.6"
},
„łańcuch_elementów”: ""
}
UWAGA
Zespół programistów Firezone opiera się w zakresie analityki produktów, aby Firezone było lepsze dla wszystkich. Pozostawienie włączonej telemetrii to najcenniejszy wkład, jaki możesz wnieść w rozwój Firezone. To powiedziawszy, rozumiemy, że niektórzy użytkownicy mają wyższe wymagania dotyczące prywatności lub bezpieczeństwa i woleliby całkowicie wyłączyć telemetrię. Jeśli to ty, czytaj dalej.
Telemetria jest domyślnie włączona. Aby całkowicie wyłączyć telemetrię produktu, ustaw następującą opcję konfiguracji na false w /etc/firezone/firezone.rb i uruchom sudo firezone-ctl reconfigure, aby pobrać zmiany.
domyślny['Strefa ognia'][„telemetria”]['włączony'] = fałszywy
Spowoduje to całkowite wyłączenie całej telemetrii produktu.