Konfiguracja OpenVPN w OpenSense dla Road Warrior
Firewall open source OPNsense umożliwia konfigurację połączeń VPN (Virtual Private Network) w kilku krokach. W tym przykładzie pokazujemy jak podłączyć komputer kliencki (np. Windows 10, Ubuntu 18.04 lub smartfon z Androidem lub iOS) do sieci firmowej przez internet za pomocą [OpenVPN].
Konfiguracja OpenVPN Road Warrior
Aby skonfigurować połączenia klienckie OpenVPN (konfiguracja Road Warrior), należy wykonać następujące kroki:
- Utworzyć Certificate Authority
- Utworzyć certyfikat serwera
- Utworzyć użytkownika VPN z certyfikatem klienta
- Utworzyć serwer OpenVPN
- Utworzyć reguły firewalla dla OpenVPN)
- Eksportować konfigurację klienta
- Skonfigurować klienta (np. Windows 10)
Tworzenie Certificate Authority
- W menu należy wybrać System -> Trust -> Authorities i kliknąć na Add or import CA.
- Tutaj należy wybrać następujące ustawienia:
- Descriptive name: OpenVPN CA
- Method: Create an internal Certificate Authority
- Key length: 4096
- Digest Algorithm: SHA512
- Common Name: internal-sslvpn-ca
- I kliknąć na Save.
Tworzenie certyfikatu serwera
- W menu należy wybrać System -> Trust -> Certificates i kliknąć na Add or import Certificate.
- Tutaj należy wybrać następujące ustawienia:
- Method: Create an internal Certificate
- Certificate authority: OpenVPN CA
- Type: Server Certificate
- Key length: 4096
- Digest Algorithm: SHA512
- Common Name: OpenVPN Server Zertifikat
- I kliknąć na Save.
Tworzenie użytkownika VPN z certyfikatem klienta
- W menu należy wybrać System -> Access -> Users i kliknąć na znak plusa.
- Tutaj należy wybrać następujące ustawienia:
- Username: (wprowadzić wybraną nazwę użytkownika)
- Password: (podać hasło użytkownika)
- Certificate: zaznaczyć pole wyboru, aby w następnym kroku można było bezpośrednio utworzyć certyfikat dla użytkownika
- Kliknąć na Save. Zostanie wyświetlony formularz tworzenia certyfikatu klienta
- Tutaj należy wybrać następujące ustawienia:
- Method: Create an internal Certificate
- Certificate authority: OpenVPN CA
- Type: Client Certificate
- Key length: 4096
- Digest Algorithm: SHA512
- I kliknąć na Save.
Tworzenie serwera OpenVPN
- W menu należy wybrać VPN -> OpenVPN -> Servers i kliknąć na Add Server.
- Tutaj należy wybrać następujące ustawienia:
- Server Mode: Remote Access (SSL/TLS + User Auth) (W tym przykładzie wykorzystujemy ten tryb, aby osiągnąć najwyższy poziom bezpieczeństwa. Informacje na temat innych opcji znajdują się w rozdziale Tryb serwera OpenVPN)
- Protocol: UDP
- Device Mode: tun
- Interface: WAN
- Local port: 1194
- Server Certificate:
- DH Parameters Length: 4096
- Encryption algorithm: AES-256-CBC (256-bit)
- Auth Digest Algorithm: SHA512 (512-bit)
- IPv4 Tunnel Network: z.B. 10.10.0.0/24
- IPv4 Local Network: 192.168.1.0/24
- Compression: Enabled with Adaptive Compression
- Disable IPv6: (aktywować)
Tworzenie reguł firewalla dla OpenVPN
Tworzenie następujących reguł zapory sieciowej w obszarze "WAN" i w obszarze "OpenVPN".
WAN
W menu należy wybrać Firewall -> Rules -> WAN i zezwolić na przychodzący ruch OpenVPN, tak aby usługa OpenVPN była dostępna z zewnątrz:
OpenVPN
W menu należy wybrać Firewall -> Rules -> OpenVPN i zezwolić na dostęp z sieci OpenVPN do sieci lokalnej:
Eksportowanie konfiguracji klienta
Niezbędna konfiguracja zapory OPNsense została zakończona. Teraz trzeba wyeksportować konfiguracje dla urządzeń klienckich. Menu Client Export można znaleźć jako podmenu "OpenVPN" w lewym drzewie menu.
- Gdy skonfigurowane jest kilka sieci VPN: należy sprawdzić, czy wybrano właściwą sieć VPN, aby wyeksportować pliki konfiguracyjne danej sieci VPN.
- Dział Client Export Option:
- Należy zaznaczyć pole wyboru przy Use a password to protect the pkcs12 file contents or key in Viscosity bundle
- Dla wyeksportowania pliku z certyfikatem PKCS12 należy wprowadzić bezpieczne hasło.
- Zwiększa to bezpieczeństwo podczas wymiany pliku z certyfikatem.
- Dział Client Install Packages:
- W rozwijanym menu po prawej stronie można wybrać jeden z wielu pakietów konfiguracyjnych dla wybranego użytkownika.
- Wybór archiwów jest przeznaczony dla desktopowych systemów operacyjnych. Po kliknięciu na odpowiedni wpis na liście automatycznie rozpocznie się pobieranie konfiguracji.
- Pozycje w dziale "Inline Configuration" dotyczą urządzeń mobilnych. Utworzony zostanie jeden plik *.ovpn z wszystkimi niezbędnymi informacjami i certyfikatami.
Konfiguracja klienta
Informacje na temat konfiguracji poszczególnych klientów VPN można znaleźć w poniższych artykułach:
- Konfiguracja systemu Windows 10 jako klienta OpenVPN
- Konfiguracja systemu Ubuntu 18.04 jako klienta OpenVPN
- Konfiguracja systemu Android 8.1 jako klienta OpenVPN
- Konfiguracja systemu iOS 11 jako klienta OpenVPN
Tryb serwera OpenVPN
- Remote Access (SSL/TLS):
- Używa wyłącznie certyfikatów.
- Każdy użytkownik ma indywidualną konfigurację klienta z osobistym certyfikatem i kluczem.
- Przydatne, jeśli użytkownik nie powinien być pytany o nazwę użytkownika/hasło.
- Ograniczone bezpieczeństwo, gdyż posiadanie certyfikatu i klucza jest wystarczające, bez dodatkowych danych dostępu.
- Remote Access (User Auth):
- Używa wyłącznie uwierzytelniania (bez certyfikatów).
- Przydatne, jeśli użytkownicy nie powinni mieć indywidualnych certyfikatów.
- Często używane w przypadku uwierzytelniania zdalnego (RADIUS, LDAP).
- Wszyscy użytkownicy mogą korzystać z tej samej konfiguracji klienta.
- Ograniczone bezpieczeństwo z powodu korzystania tylko z jednego klucza pre-shared TLS Key i nazwy użytkownika/hasła.
- Remote Access (SSL/TLS + User Auth) (tryb ten jest stosowany w powyższym przykładzie):
- Wymaga zarówno certyfikatów, jak i nazwy użytkownika/hasła.
- Każdy użytkownik ma indywidualną konfigurację klienta z osobistym certyfikatem i kluczem.
- Podwyższony poziom bezpieczeństwa.
Dodatkowe informacje
- Setup SSL VPN Road Warrior (docs.opnsense.org)
- Road warrior (computing) (en.wikipedia.org)
Autor: Thomas Niedermeier
Autor: Werner Fischer