danielcrisap.ansible_pritunl_vpn
Rola Ansible dla Pritunl VPN
Ta rola zainstaluje Pritunl VPN.
**
Czym jest Pritunl
Pritunl to serwer VPN i panel zarządzania typu open source. Umożliwia użytkownikowi korzystanie z protokołu OpenVPN w intuicyjnym interfejsie internetowym.
Wymagania
Dodanie nowych wymagań
Aplikacja ta musi działać na serwerze Linux, może być pod CentOS, Amazon Linux, Debian lub Ubuntu.
Pritunl używa MongoDB jako bazy danych, więc powinieneś mieć serwer MongoDB.
Konfiguracja bazy danych
Kiedy Pritunl uruchomi się po raz pierwszy, na serwerze webowym działającym na porcie 443 pojawi się monit o skonfigurowanie bazy danych. Wymaga to klucza konfiguracyjnego i URI MongoDB. Aby uzyskać klucz konfiguracyjny, połącz się z serwerem przez SSH i uruchom polecenie sudo pritunl setup-key
, co zwróci klucz konfiguracyjny. Domyślnie URI MongoDB będzie wypełnione URI lokalnego serwera MongoDB. Powinno to pozostać tak, jeśli serwer MongoDB działa na tym samym serwerze co instancja Pritunl. W przypadku klastrów Enterprise, zapoznaj się z dokumentacją MongoDB dla Formatu URI połączenia. Alternatywnie można to ustawić bezpośrednio w pliku /etc/pritunl.conf
lub używając polecenia CLI. Więcej informacji o poleceniach CLI można znaleźć w sekcji Polecenia. Niektóre serwery MongoDB wymagają uwierzytelnienia w bazie admin i muszą mieć opcję authSource=admin
w URI.
O subskrypcjach
Subskrypcje można zakupić na stronie głównej lub z konsoli internetowej działającego serwera Pritunl. Informacje o karcie kredytowej są bezpiecznie przesyłane z przeglądarki bezpośrednio do Stripe i nigdy nie są przechowywane ani przesyłane na inne serwery. Serwer Pritunl można aktualizować w dowolnym momencie i nie wymaga ponownej konfiguracji podczas przechodzenia na subskrypcję.
Klucz licencyjny
Po utworzeniu subskrypcji klucz licencyjny zostanie wysłany na adres e-mail użyty podczas zakupu. Klucz licencyjny nie musi być używany na tym samym serwerze, co stworzono subskrypcję. Subskrypcje premium mogą być używane tylko na jednym serwerze, a licencje Enterprise mogą być używane tylko w jednym klastrze. Klastrem jest grupa serwerów Pritunl połączonych z tą samą bazą danych MongoDB. Aby umożliwić testowanie, klucze licencyjne mogą być używane wielokrotnie, ale dalsze korzystanie z kluczy na wielu serwerach spowoduje anulowanie subskrypcji.
Faktura i subskrypcje długoterminowe
Niektóre firmy wymagają pełnych faktur i subskrypcji rocznych. Jest to dostępne tylko w przypadku subskrypcji Enterprise i nie ma zniżki na subskrypcje roczne. Aby poprosić o roczną fakturę dla subskrypcji Enterprise, wyślij informacje o odbiorcy na adres contact@pritunl.com, podając adres e-mail do otrzymania faktury i adres e-mail do otrzymania klucza licencyjnego.
Zniżka edukacyjna
Istnieje zniżka w wysokości 50% dostępna dla szkół publicznych. Można ją zastosować do istniejącej subskrypcji miesięcznej lub rocznej. Aby uzyskać zniżkę na subskrycje miesięczne, najpierw rozpocznij okres próbny, a następnie wyślij adres e-mail użyty do utworzenia subskrypcji na adres contact@pritunl.com. W przypadku subskrypcji rocznej postępuj zgodnie z powyższymi instrukcjami.
**
UWIERZYTELNIANIE
**
Uwierzytelnianie WireGuard w Pritunl wykorzystuje klucze już zawarte w profilu klienta. Umożliwia to przejście na WireGuard bez konieczności ponownego importowania profilu przez użytkowników. Wiele osób zarządzających nie konfiguruje prawidłowego certyfikatu HTTPS, a HTTPS nie jest wymagane, aby zapewnić bezpieczne uwierzytelnianie. Uwierzytelnianie odbywa się przy użyciu trzech kluczy, co zapewnia wiele warstw szyfrowania i autoryzacji.
Klucz SHA512-HMAC klienta (autoryzacja)
Klient użyje tajnego klucza SHA512-HMAC do podpisania każdego żądania połączenia. Serwer również użyje tego sekretu do podpisania odpowiedzi, co pozwala klientowi na weryfikację odpowiedzi połączenia. Jest to ten sam system uwierzytelniania używany do autoryzacji synchronizacji konfiguracji klienta, która synchronizuje zmiany konfiguracji profilu, takie jak adresy hostów i zmiany portów serwera (klucze prywatne nigdy nie są synchronizowane).Klucz asymetryczny NaCl klienta/serwera (autoryzacja + szyfrowanie)
Klient wykorzystuje publiczny klucz NaCl serwera, który jest zawarty w profilu klienta. Umożliwia to asymetryczne szyfrowanie żądania połączenia z klienta do serwera. Serwer zaszyfruje odpowiedź używając publicznego klucza NaCl klienta, co zapewnia szyfrowanie odpowiedzi. Klient również zweryfikuje odpowiedź serwera, używając publicznego klucza NaCl serwera. Jest to ten sam system uwierzytelniania używany do zapewnienia dodatkowej warstwy szyfrowania i autoryzacji dostępnej w połączeniach OpenVPN z hasłami i kodami dwuetapowymi.Asymetryczny klucz RSA-4096 klienta (autoryzacja)
Certyfikat i klucz RSA klientów są używane do podpisania każdego żądania połączenia. Serwer użyje tego do zweryfikowania żądania połączenia klienta. Jest to ten sam certyfikat używany do weryfikacji połączeń OpenVPN.
Każde połączenie WireGuard wykorzystuje nowy klucz WireGuard. Robi się to w celu zapewnienia najwyższego poziomu bezpieczeństwa, ale może opóźnić połączenie sieciowe, gdy użytkownik wraca do komputera, który był w trybie uśpienia. Prywatny klucz WireGuard jest przechowywany w pamięci usługi w tle Pritunl oraz w pliku konfiguracyjnym WireGuard. WireGuard wykorzystuje projekt bezpołączeniowy, a ten prywatny klucz mógłby być wykorzystany przez napastnika do przejęcia połączenia, nawet jeśli używa się uwierzytelniania wieloskładnikowego. W środowiskach o wysokim bezpieczeństwie ważne jest, aby wziąć pod uwagę, że połączenia OpenVPN z uwierzytelnianiem wieloskładnikowym nie mają tych słabości. Z tego powodu serwer szybko unieważnia klucze WireGuard nieaktywnych klientów, aby ograniczyć możliwość wystąpienia takich sytuacji. Serwer również upewni się, że klucze nie są ponownie używane.
Gdy klient się połączy, będzie wysyłał zapytanie ping do serwera co 10 sekund. To zapytanie pozwala klientowi szybko wykryć połączenie, które jest niedostępne, i przełączyć się na inne w ciągu około 13 sekund. Jeśli serwer nie otrzyma zapytania ping w ciągu 6 minut, rozłączy użytkownika i unieważni klucz publiczny.
Zmienne roli
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
pritunl_mongodb_uri
- URI MongoDB, aby Pritunl mógł połączyć się z bazą danych.
Przykład Playbooka
Zamieszczenie przykładu użycia roli (na przykład z przekazywaniem zmiennych jako parametrów) również jest pozytywne dla użytkowników:
- hosts: servers
vars:
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
roles:
- { role: danielcrisap.ansible-pritunl-vpn }
Licencja
MIT ©
Informacje o autorze
Ta kolekcja została stworzona w 2020 roku przez Daniela Cristian.
ansible-galaxy install danielcrisap.ansible_pritunl_vpn