Podstawowe informacje o OpenVPN

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

OpenVPN jest bezpłatnym oprogramowaniem do tworzenia wirtualnej sieci prywatnej (VPN) za pośrednictwem szyfrowanych połączeń TLS/SSL. Jako protokół transportowy można użyć UDP lub TCP. OpenVPN oferuje obecnie jako metodę uwierzytelnienia pre-shared key lub certyfikaty.[1] OpenVPN jest licencjonowane zgodnie z GNU GPL (General Public License).[2]

Funkcje

OpenVPN oferuje następujące funkcje:

  • Możliwość stworzenia tunelu dla dowolnych podsieci, lub wirtualnych adapterów sieciowych przez pojedyncze porty TCP lub UDP.
  • Możliwość skonfigurowania skalowalnej farmy serwerów VPN dla tysięcy połączeń z klientami.
  • OpenSSL ma dostęp do wszystkich funkcji szyfrowania, uwierzytelniania i certyfikacji biblioteki OpenSSL.
  • Uwierzytelnianie odbywa się przy użyciu konwencjonalnego statycznego klucza (Pre-shared Key) lub opartego na certyfikacji szyfrowanego klucza publicznego.
  • OpenVPN oferuje bridging (tap) i routing (tun) jako tryb pracy.
  • Tunel sieciowy poprzez dynamiczne punkty końcowe (DHCP lub Dial-In), przez firewall lub sieci NAT.
  • Możliwość zarządzania z graficznego interfejsu użytkownika (GUI) dla klientów z systemem Windows i OS X.

Korzyści

Komunikacja za pośrednictwem OpenVPN ma wiele zalet:[3]

  • Obsługuje różne systemy operacyjne (np. Linux, Solaris, różne BSD, OS X, Windows oraz iOS i Android)[4]
  • Stabilność
  • Skalowalność (tysiące klientów)
  • Relatywnie łatwa instalacja
  • Dynamiczne adresy IP i NAT
  • Model zabezpieczeń OpenSSL
  • SSL/TLS oraz X509 PKI (Public Key Infrastructure) do uwierzytelniania sesji
  • Protokół IPsec ESP do bezpiecznego transportu tunelowego przez UDP[5]

Uwierzytelnianie

Jak już wspomniano na wstępie, uwierzytelnianie może odbywać się na dwa różne sposoby. Można użyć klucza statycznego (Pre-shared Key) lub certyfikatów.

Pre-shared Key

Uwierzytelnienie przy użyciu klucza Pre-shared Key (PSK) jest procedurą symetryczną. Klucz jest tworzony na serwerze OpenVPN i przekazywany klientowi. Połączenie jest nawiązywane pomiędzy serwerem a klientem. Podczas komunikacji klienta z serwerem za pomocą PSK dane są szyfrowane i odszyfrowywane. Dzięki temu procedura jest łatwa w użyciu. Istnieje jednak wada, klucz nie może ulec utracie lub dostać się w niepowołane ręce. W takim przypadku należy przekazać nowy klucz wszystkim partnerom komunikacyjnym.[6][7]

Informacje o konfiguracji można znaleźć w artykule OpenVPN z Pre-shared Key.

Certyfikaty

Uwierzytelnianie oparte na certyfikacji za pomocą protokołu TLS jest obecnie najbezpieczniejszą metodą. Opiera się na prywatnych i publicznych parach kluczy - certyfikatach X.509. Serwer OpenVPN i klienci mają po jednym publicznym i prywatnym certyfikacie. OpenVPN udostępnia pakiet "easy-rsa" - zbiór skryptów ułatwiających tworzenie niezbędnych certyfikatów. Wadą w porównaniu do metody klucza dzielonego jest większa złożoność i wysiłek związany z konfiguracją.[8]

Komunikacja

Sieć VPN z OpenVPN może łączyć klientów z serwerem (Road Warrior) lub umożliwiać połączenie pomiędzy dwoma lub wieloma lokalizacjami. Router musi mieć stały adres IP lub być dostępny poprzez dynamiczny DNS. Domyślnie OpenVPN jest konfigurowany przy wykorzystaniu protokołu UDP z domyślnym portem 1194. Można go jednak również udostępnić za pomocą protokołu TCP, jeśli UDP jest zablokowane w sieci.[9] W tym przypadku odpowiedni jest port HTTPS 443, ponieważ jest on otwarty w większości sieci.

Tryb sieci

OpenVPN oferuje obecnie dwa różne tryby pracy sieci:[10][11][12]

  • Bridging (TAP-Device)
  • Routing (TUN-Device)

Tryb routing (TUN-Device) jest zalecany jako bardziej wydajna i nowoczesna metoda.

Bridging (TAP-Device)

W trybie bridging wykonywane jest pełne tunelowanie ramek Ethernet (warstwa 2). W tym przypadku możliwe jest zastosowanie alternatywnych protokołów, takich jak IPX lub wysyłanie pakietów Wake-On-LAN. Klient jest postrzegany jako członek docelowej sieci i otrzymuje adres IP tej podsieci. Oznacza to, że broadcast jest również przekazywany, na przykład w celu umożliwienia usługi DNS przez protokół SMB.

Bridging (TAP-Device)
Korzyści Wady
  • Działa jak prawdziwa karta sieciowa
  • Wszelkie protokoły sieciowe
  • Klient w sieci docelowej
  • Broadcasts i Wake-On-LAN
  • Niewydajny
  • Wysoki broadcast overhead w tunelu VPN
  • Słaba skalowalność

Routing (TUN-Device)

W trybie routing tworzony jest zaszyfrowany tunel, przez który przesyłane są tylko pakiety IP (warstwa 3). Każdej zdalnej stacji nadawany jest wirtualny adres IP fikcyjnej podsieci. Standardowo nie jest możliwy dostęp do lokalnej sieci, może jednak zostać umożliwiony za pomocą IP forwarding i wpisów w tabeli routingu firewalla.

Routing (TUN-Device)
Korzyści Wady
  • Mały traffic overhead
  • Niższe obciążenie przepustowości
  • Dobra skalowalność
  • Tylko pakiety IP
  • Brak transmisji broadcastu

Odnośniki

  1. M 5.148 Sichere Anbindung eines externen Netzes mit OpenVPN (bsi.bund.de)
  2. OpenVPN (openvpn.net)
  3. OpenVPN (wiki.ubuntuusers.de)
  4. Why OpenVPN? (openvpn.net)
  5. IPsec Encapsulating Security Payload (de.wikipedia.org)
  6. Static Key Mini-HOWTO (openvpn.net)
  7. OpenVPN Pre-shared Key (de.wikipedia.org)
  8. OpenVPN Zertifikatsbasiert (de.wikipedia.org)
  9. Why does OpenVPN use UDP and TCP? (openvpn.net/faq)
  10. Determining whether to use a routed or bridged VPN (openvpn.net)
  11. Vergleich TUN/TAP (wiki.openvpn.eu)
  12. Bridging vs. Routing (community.openvpn.net)

Autor: Thomas Niedermeier

Powiązane artykuły

Analiza sieci w Linuksie z netstat
Informacje o Intel Data Center Manager
Synchronizacja danych w Linuksie przy pomocy rsync