Konfiguracja DialUp VPN w usłudze IaaS
Proponowane rozwiązanie jest jednym z wielu możliwych aby zagwarantować użytkownikom zdalnym bezpieczny dostęp do zasobów chmury obliczeniowej. Rozwiązanie bazuje na o oprogramowaniu WireGuard i jest powszechnie wykorzystywane w środowiskach produkcyjnych. Alternatywą może być zastosowanie dowolnego firewalla z funkcją dialup VPN w formie maszyny wirtualnej lub połączenie do chmury stałym tunelem IPSec z własnej lokalizacji i podłączanie użytkowników zdalnych do chmury poprzez rozwiązanie VPN z firewalla wykorzystywanego w we własnej lokalizacji.
1. Instalacja maszyny wirtualnej z oprogramowaniem WireGuard.
Dla naszych klientów przygotowaliśmy gotowy pre-konfigurowany obraz, który po wdrożeniu wymaga tylko minimalnej konfiguracji.
Logujemy się do Portalu Zarządzania Usługami IaaS i przechodzimy do VDC w ramach którego chcemy dokonać konfiguracji. Przechodzimy do sekcji Virtual Machines i klikamy New VM.
W nowym oknie wypełniamy pola dotyczące nazwy maszyny wirtualnej w polu Type wybieramy From Template a następnie wyszukujemy obraz o nazwie vpn-appliance_template dostepny w katalogu TEMPLATES.
Pre-konfigurowane zasoby CPU i RAM są wystarczające do obsługi kilkudziesięciu użytkowników VPN. Obraz bazuje na systemie Linux Ubuntu Server.
Przewijając okno w części NICs wybieramy Network, do którego ma być przypięta nasza maszyna wirtualna. W najprostszym wariancie może to być ta sama podsieć w której znajdują się nasze maszyny wirtualne. W wariancie o wyższym poziomie bezpieczeństwa możemy w tym celu utworzyć osobny network DMZ z oddzielną adresacją IP.
W polu IP Mode wybieramy Static-Manual a w polu IP Address wpisujemy wolny adres IP który zostanie przypisany do naszej maszyny wirtualnej z serwerem VPN.
Klikamy OK. System utworzy nam nową maszynę wirtualną z obrazu. Po zakończeniu będziemy mogli przejść do konfiguracji.
2. Dodanie DNAT i reguły firewall
Aby móc korzystać z połączenia VPN niezbędne jest opublikowanie serwera w Internecie na porcie UDP 51820. W tym celu musimy skonfigurować odpowiednie przekierowanie Destination NAT (DNAT) oraz regułę firewall.
W tym celu w Portalu zarządzania IaaS przechodzimy do zakładki Networking a następnie Edge Gateways. Wybieramy właściwy Edge Gateway (klikając w jego nazwę) i przechodzimy do sekcji Services-NAT i tworzymy nową regułą DNAT klikając New. W polu External IP podajemy przypisany nam publiczny adres IP, w polu Internal IP podajemy prywatny adres serwera VPN, który przypisaliśmy podczas tworzenia maszyny wirtualnej, w polu External Port wpisujemy 51820. Istotne jest aby pole Firewall Matach ustawione było na Match External Address. Na koniec klikamy Save.
Następnie musimy dodać regułę Firewall. W tym celu przechodzimy do sekcji Services-Firewall klikamy Edit Rules a następnie NEW ON TOP i dodajmy regułę odblokowującą ruch z sieci Internet, do publicznego adresu IP podanego podczas konfiguracji DNAT.
Zalecamy aby reguła odblokowywała jedynie ruch na wskazanym porcie.
Name: nazwa dla reguły, przykładowo VPN_DIALUP
Source: Any Source
Destination: Publiczny adres IP
Application: WIREGUARD_SERVER
Protocol: IPv4,
Action: Allow
Dla ułatwienia tworzenia reguły sugerujemy wcześniejsze dodanie odpowiednich obiektów np. dla publiczengo IP w sekcji Security-IP Sets.
3. Konfiguracja serwera VPN
Uruchamiamy konsolę nowej maszyny klikając w VM Console obok jej nazwy w sekcji Virtual Machines i logujemy się do systemu.
Domyślny użytkownik to administrator a hasło "securepassword". Sugerujemy zmianę hasła na nowe o dużej złożoności po pierwszym zalogowaniu poprzez wydanie następującej komendy.
passwd
Po zalogowaniu i zmianie hasła, przechodzimy do konfiguracji serwera WireGuard. W tym celu przełączamy się na konto root i przechodzimy do katalogu wireguard poprzez wydanie komend:
sudo su
cd /etc/wireguard
Następnie musimy wygenerować klucze szyfrujące dla serwera. Dokonujemy tego poprzez wydanie komend:
wg genkey | sudo tee /etc/wireguard/private.key
cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
Powyższe komendy tworzą klucz prywatny a następnie przypisany mu klucz publiczny i zapisują je do plików private.key i public.key
Następnie wygenerowany klucz prywatny zapisujemy do pliku konfiguracyjnego WireGuard poprzez komendy:
key="$(cat /etc/wireguard/private.key)"
echo "PrivateKey = $key" >> /etc/wireguard/wg0.conf
Na koniec restartujemy usługę WireGuard:
Na tym etapie konfiguracja serwera została zakończona możemy przejść do dodawania użytkowników i konfiguracji klientów VPN na stacjach roboczych.
4. Zarządzanie użytkownikami
Dodawanie nowego użytkownika
Logujemy się do serwera VPN poprzez SSH. Konfigurację użytkowników zaczynamy sprawdzenie kolejnego wolnego adresu IP, który możemy przypisać użytkownikowi. Pamiętajmy o wykonywaniu komend z wykorzystaniem sudo lub jako root poprzez wydanie komendy:
sudo su
W domyślnej konfiguracji pre-konfigurowany obraz serwera WireGuard przypisuje adresy IP z podsieci 17.29.29.0/24 z wyłączeniem adresu 172.29.29.1 przypisanego do samego serwera na interfejsie wg0. W razie potrzeby adresację można zmienić edytując plik /etc/wireguard/wg0.conf i zmieniając wpis Address w sekcji [Interface]. Każdemu użytkownikowi przypisywany jest statyczny adres IP, nie zmienny przy każdym połączeniu.
Aby sprawdzić jakie adresy są już wykorzystane wydajemy komendę:
wg show
Adresy IP wskazane są dla każdego użytkownika (peer) w linii opisanej jako allowed ips. Wybieramy kolejny wolny adres IP (dla przykładu przyjmijmy 172.29.29.2) i wydajemy następujące komendy:
cd /etc/wireguard
ip="172.29.29.2/32"
key=$(wg genkey)
pubkey=$(echo $key | wg pubkey)
configPubKey="PublicKey = "$pubkey
configIp="AllowedIPs = "$ip
desc="Opis użytkownika"
echo "[Peer]" >>wg0.conf
echo "#"$desc >>wg0.conf
echo $configPubKey >>wg0.conf
echo $configIp >>wg0.conf
echo "Klucz prywatny użytkownika: "$key
wg syncconf wg0 <(wg-quick strip wg0)
W miejsce ip="" pomiędzy cudzysłowami podstawiamy ustalone wcześniej kolejny wolny adres IP zakończony maską /32.
W miejsce desc="" pomiędzy cudzysłowami podstawiamy opis użytkownika do jego łatwiejszej identyfikacji w konfiguracji.
W ten sposób utworzymy nowego użytkownika. Przedostatnia komenda wyświetli nam utworzony klucz prywatny użytkownika, zapisujemy go gdyż będzie używany do konfoguracji stacji roboczej razem z kluczem publicznym serwera zapisanym w pliku /etc/wireguard/public.key (utworzony w kroku 3).
Po utworzeniu użytkownika możemy przejść do konfiguracji stacji roboczej.
Konfiguracja klienta (stacji roboczej)
Instalację rozpoczynamy od pobrania klienta właściwego dla systemu operacyjnego na stacji roboczej. Klienta pobieramy ze strony https://www.wireguard.com/install/ . Po pobraniu instalujemy zgodnie z instrukcją wskazaną na stronie pobierania. Następnie uruchamiamy oprogramowanie i w lewym dolnym rozwijamy listę obok Add Tunnel i wybieramy Add empty tunnel
W wyświetlonym oknie podajmy nazwę tunelu (dowolna wybrana nazwa np. VPN) a w polu tekstowym wklejamy następującą konfigurację:
[Interface]
PrivateKey = Klucz prywatny użytkownika
Address =Adres IP użytkownika przypisany na serwerze/24
[Peer]
PublicKey = Klucz publiczny serwera
AllowedIPs = Podsieć w chmurze/24
Endpoint = Publiczne IP serwera:51820
PersistentKeepalive = 25
Przykładową konfigurację wskazuje poniższy screen.
Zapisujemy konfigurację klikając Save po czym może połączyć się z VPN klikając Activate. Usługa będzie uruchamiać się wraz z startem komputera zwinięta do paska obok zegara.
Usuwanie użytkownika
Aby usunąć użytkownika analogicznie jak przy tworzeniu logujemy się do serwera po ssh. Z wykorzystaniem edytora plików vim edytujemy konfiguracją:
cd /etc/wireguard
vim wg0.conf
W edytorze vim odnajdujemy wpis odpowiedzialny za użytkownika którego chcemy usunąć ustawiamy kursor na kolejnych linijkach od sekcji [Peer] aż do sekcji AllowedIPs i przy każdej linijce wciskamy dwukrotnie literę d.
Zapisujemy zmiany poprzez wpisania :wq i zatwierdzenie klawiszem Enter.
Related Articles
Konfiguracja SAAS-VPN
Instalacja Klienta (dowolny system) Instalacja i konfiguracja muszą być wykonywane z konta posiadającego pełne uprawnienia administracyjne do stacji roboczej. Instalację rozpoczynamy od pobrania klienta właściwego dla systemu operacyjnego na stacji ...
Tworzenie sieci w usłudze IAAS
Logujemy się do Portalu Zarządzania Usługami IaaS i przechodzimy do sekcji Networking -> Networks i wybieramy opcję New. W wyświetlonym oknie należy wybrać jedną z dwóch opcji: - Organization Virtual Data Cetner - dla sieci, które wykorzystywane będą ...
Dodanie reguł NAT w usłudze IAAS
Aby umożliwić dostęp do Internetu systemom uruchomionym w ramach usługi IAAS wymagana jest minimum jedna domyślna reguła SNAT. 1. Dodanie reguły SNAT Logujemy się do Portalu Zarządzania Usługami IaaS i przechodzimy do sekcji Networking -> Edge ...
Wgrywanie własnego obrazu .iso lub .ovf w usłudze IAAS
Logujemy się do Portalu Zarządzania Usługami IaaS i przechodzimy do sekcji Content Hub -> Catalogs i wybieramy opcję New. W wyświetlonym oknie w polu Name wpisujemy nazwę naszego nowego katalogu i zatwierdzamy przyciskiem Ok. Po utworzeniu katalogu ...
Rejestracja użytkownika w usłudze IaaS
Przed rejestracją konieczne jest utworzenie przez administratora Twojej firmy właściwego konta użytkownika w Portalu Zarządzania IaaS zgodnie z procedurą opisaną a artykule: Dodawanie nowego użytkownika w portalu zarządzania IaaS 1. Pierwsze ...