Jak skonfigurować Hailbytes VPN dla swojego środowiska AWS

Wprowadzenie

W tym artykule omówimy, jak skonfigurować HailBytes VPN w Twojej sieci, prostą i bezpieczną sieć VPN oraz zaporę ogniową dla Twojej sieci. Dalsze szczegóły i konkretne specyfikacje można znaleźć w naszej dokumentacji dla programistów, do której prowadzi link tutaj.

Przygotowanie

   1. Wymagania dotyczące zasobów:

  • Zalecamy rozpoczęcie od 1 procesora wirtualnego i 1 GB pamięci RAM przed skalowaniem w górę.
  • W przypadku wdrożeń opartych na Omnibus na serwerach z mniej niż 1 GB pamięci należy włączyć wymianę, aby uniknąć nieoczekiwanego zabicia procesów Firezone przez jądro Linuksa.
  • 1 vCPU powinien wystarczyć do nasycenia łącza 1 Gb/s dla VPN.
 

   2.  Utwórz rekord DNS: Firezone wymaga odpowiedniej nazwy domeny do użytku produkcyjnego, np. firezone.company.com. Wymagane będzie utworzenie odpowiedniego rekordu DNS, takiego jak rekord A, CNAME lub AAAA.

   3.  Skonfiguruj SSL: Aby używać Firezone w produkcji, będziesz potrzebować ważnego certyfikatu SSL. Firezone obsługuje ACME do automatycznego udostępniania certyfikatów SSL dla instalacji opartych na Docker i Omnibus.

   4.  Otwarte porty zapory ogniowej: Firezone używa portów 51820/udp i 443/tcp odpowiednio dla ruchu HTTPS i WireGuard. Porty te można później zmienić w pliku konfiguracyjnym.

Wdróż w Dockerze (zalecane)

   1. Wymagania wstępne:

  • Upewnij się, że korzystasz z obsługiwanej platformy z zainstalowanym narzędziem docker-compose w wersji 2 lub nowszej.

 

  • Upewnij się, że w zaporze włączone jest przekierowanie portów. Domyślnie wymagane są otwarte następujące porty:

         o 80/tcp (opcjonalnie): Automatyczne wystawianie certyfikatów SSL

         o 443/tcp: Dostęp do internetowego interfejsu użytkownika

         o 51820/udp: Port nasłuchiwania ruchu VPN

  2.  Zainstaluj opcję serwera I: instalacja automatyczna (zalecane)

  • Run installation script: bash <(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh) 1889d1a18e090c-0ec2bae288f1e2-26031d51-144000-1889d1a18e11c6c

 

  • Zada ci kilka pytań dotyczących wstępnej konfiguracji przed pobraniem przykładowego pliku docker-compose.yml. Będziesz chciał skonfigurować go za pomocą swoich odpowiedzi i wydrukować instrukcje dotyczące dostępu do interfejsu internetowego.

 

  • Domyślny adres Firezone: $HOME/.firezone.
 

  2.  Zainstaluj serwer Opcja II: Instalacja ręczna

  • Pobierz szablon redagowania platformy Docker do lokalnego katalogu roboczego

          – Linux: curl -fsSL https://raw.githubusercontent.com/firezone/firezone/master/docker-compose.prod.yml -o docker-compose.yml

          – macOS lub Windows: curl -fsSL https://raw.githubusercontent.com/firezone/firezone/master/docker-compose.desktop.yml -o docker-compose.yml

  • Wygeneruj wymagane sekrety: docker run –rm firezone/firezone bin/gen-env > .env

 

  • Zmień zmienne DEFAULT_ADMIN_EMAIL i EXTERNAL_URL. W razie potrzeby zmodyfikuj inne wpisy tajne.

 

  • Przeprowadź migrację bazy danych: docker compose run –rm firezone bin/migrate

 

  • Utwórz konto administratora: docker compose run –rm firezone bin/create-or-reset-admin

 

  • Uruchom usługi: docker compose up -d

 

  • Powinieneś mieć dostęp do interfejsu użytkownika Firezome poprzez zmienną EXTERNAL_URL zdefiniowaną powyżej.
 

   3. Włącz przy starcie (opcjonalnie):

  • Upewnij się, że Docker jest włączony podczas uruchamiania: sudo systemctl enable docker

 

  • Usługi Firezone powinny mieć opcję restart: always lub restart: without-stopped określoną w pliku docker-compose.yml.

   4. Włącz rutowanie publiczne IPv6 (opcjonalnie):

  • Dodaj następujące elementy do pliku /etc/docker/daemon.json, aby włączyć NAT IPv6 i skonfigurować przekazywanie IPv6 dla kontenerów platformy Docker.

 

  • Włącz powiadomienia routera podczas uruchamiania dla domyślnego interfejsu wyjściowego: egress=`ip route show default 0.0.0.0/0 | grep -oP '(?<=dev).*' | cięcie -f1 -d' ' | tr -d '\n'` sudo bash -c „echo net.ipv6.conf.${egress}.accept_ra=2 >> /etc/sysctl.conf”

 

  • Uruchom ponownie i przetestuj, wysyłając polecenie ping do Google z kontenera dokera: docker run –rm -t busybox ping6 -c 4 google.com

 

  • Nie ma potrzeby dodawania żadnych reguł iptables, aby włączyć IPv6 SNAT/masquerading dla ruchu tunelowanego. Firezone sobie z tym poradzi.
 

   5. Zainstaluj aplikacje klienckie

        Możesz teraz dodawać użytkowników do swojej sieci i konfigurować instrukcje ustanawiania sesji VPN.

Konfiguracja posta

Gratulacje, konfiguracja została zakończona! Możesz sprawdzić naszą dokumentację dla programistów pod kątem dodatkowych konfiguracji, kwestii bezpieczeństwa i zaawansowanych funkcji: https://www.firezone.dev/docs/