Tunelem przez sieć

OpenVPN to otwarta programowa implementacja rozwiązania SSL VPN, która umożliwia tworzenie wirtualnych sieci prywatnych w konfiguracji punkt-punkt (site-to-site) oraz zdalny dostęp (remote access VPN). OpenVPN jest prostą we wdrożeniu, efektywną kosztowo, alternatywą dla innych technologii VPN przeznaczonych dla rynku MŚP i korporacji, takich jak IPsec, L2TP i PPTP.

Wirtualne sieci prywatne (VPN) to powszechnie stosowana technika łączenia dwóch lub większej liczby sieci korporacyjnych bezpiecznym tunelem, w którym dane wymieniane są za pośrednictwem publicznej sieci, takiej jak internet. VPN umożliwia uzyskiwanie dostępu do zasobów sieci prywatnej użytkownikom mobilnym i współpracownikom. W artykule zaprezentujemy metodę wdrażania mechanizmów zdalnego dostępu VPN do sieci lokalnej przedsiębiorstwa na przykładzie otwartego oprogramowania OpenVPN oraz jego komercyjnej implementacji OpenVPN Access Server.

OpenVPN może być używany do zabezpieczania komunikacji Wi-Fi. W rozwiązaniach klasy korporacyjnej wdraża się klastry serwerów VPN realizujące funkcje równoważenia obciążenia (load balancing) oraz zapewniania wysokiej dostępności (failover).

Model bezpieczeństwa OpenVPN

OpenVPN implementuje zestaw rozszerzeń sieciowych warstwy 2. i 3. modelu OSI z wykorzystaniem protokołu TLS/SSL w warstwie uwierzytelniania oraz wymiany kluczy szyfrowania.

Oprogramowanie zapewnia wsparcie dla wielu różnych metod uwierzytelniania punktów końcowych tunelu VPN, w tym klucz współdzielony, parę nazwa i hasło, certyfikaty cyfrowe oraz karty inteligentne (smart cards).

OpenVPN nie działa jak proxy aplikacyjne, które umożliwia dostęp do aplikacji i zasobów sieci lokalnej przez przeglądarkę internetową. Oprogramowanie tworzy tunel między dwoma punktami VPN w warstwie łącza danych (warstwa 2. modelu OSI) lub w trzeciej warstwie sieciowej (warstwa 3. modelu OSI).

Bridging vs. routing

OpenVPN obsługuje dwie metody tunelowania ruchu w sieciach komputerowych. W trybie mostu (warstwa 2. modelu OSI) tunel VPN łączy w sposób przezroczysty dwie odległe sieci, a ruch sieciowy między hostami odbywa się tak, jakby były one w jednej sieci LAN. W tym trybie między podsieciami przekazywane są komunikaty typu broadcast, co zapewnia funkcjonowanie takich protokołów i usług sieciowych, jak IPX, AppleTalk czy Netbios. Adresacja klientów VPN może być przyznawana z jednego centralnego serwera DHCP.

Tunelem przez sieć

Konfiguracja OpenVPN przechowywana jest w pliku /etc/openvpn/server.conf

W trybie routingu (warstwa 3. modelu OSI) dla każdego klienta tworzona jest oddzielna podsieć, pomiędzy którymi ruch przekazywany jest na zasadach routingu. W tym trybie nie są przesyłane komunikaty rozgłoszeniowe, co ogranicza stopnień obciążenia łączy internetowych. Podejście to daje nowe możliwości kształtowania ruchu na zaporze sieciowej. Konfiguracja sieci dostarczana jest klientom przez mechanizm push; nie ma potrzeby w przypadku remote access konfigurowania dodatkowego serwera DHCP dla każdej z podsieci.

OpenVPN wykorzystuje sterowniki wirtualnych kart sieciowych TAP dla tuneli w trybie mostu oraz TUN dla tuneli w trybie routingu.

Konfiguracja serwera OpenVPN

W dalszej części artykułu pokażemy praktyczną implementację OpenVPN w trybie zdalny dostęp z uwierzytelnianiem klientów z wykorzystaniem infrastruktury klucza publicznego i certyfikatów cyfrowych. Oprogramowanie serwera zainstalujemy w systemie Debian 7.2 „wheezy”, natomiast użytkownicy końcowi będą uzyskiwali dostęp do lokalnej sieci przedsiębiorstwa z komputerów z systemem Windows.

Zaczynamy od instalacji oprogramowania OpenVPN i wymaganych bibliotek:

# apt-get install openvpn libpkcs11-helper1 liblzo2-2 resolvconf


TOP 200