Tunelem przez sieć

Konfiguracja serwera przechowywana jest w katalogu /etc/openvpn. Przykładowy plik ustawień serwera znajdziemy w katalogu /usr/share/doc/openvpn/examples/sample-config-files. Zapisujemy go pod nazwą /etc/openvpn/server.conf, a następnie poddajemy go modyfikacjom.

Zawartość tego pliku wymaga krótkiego omówienia. Zwróćmy uwagę na numer używanego portu (zmienna port, domyślnie jest to 1194) oraz typ protokołu transportowego (proto, zalecane udp). Zmienna dev pozwala określić, czy tunel ma być zestawiony w trybie mostu (dev tap) lub trybie routingu (dev tun). Tryb ten powinien być tożsamy po obu stronach tunelu VPN. Zmienne ca, cert oraz key pozwalają określić certyfikat CA oraz certyfikat i klucz prywatny serwera.

W pliku server.conf definiujemy zmienną crl-verify, która wskazuje ścieżkę do pliku zawierającego listę unieważnionych certyfikatów (CRL):

crl-verify /etc/openvpn/easy-rsa/keys/crl.pem

Dzięki zmiennej client-to-client klienci przyłączeni do sieci VPN będą mogli komunikować się między sobą.

Trzy kolejne wiersze definiują zasady konfiguracji podsieci dla klientów VPN oraz tworzenia tablicy routingu. W poniższym przykładzie klientom przyznawane będą adresy IP z puli 10.8.0.0. Po przyłączeniu klienta, na jego komputerze utworzona zostanie nowa reguła przekazywania pakietów do sieci przedsiębiorstwa 192.168.1.0.

server 10.8.0.0 255.255.255.0

ifconfig-pool-persistent ipp.txt

push „route 192.168.1.0 255.255.255.0”

Zapisujemy zmiany, po czym poleceniem /etc/init.d/openvpn start uruchamiamy serwer VPN.

Scenariusze wdrożenia

OpenVPN może być wdrażany na bramie internetowej, która pełni funkcje routera i zapory sieciowej, ale również na wydzielonym serwerze VPN wewnątrz sieci lokalnej przedsiębiorstwa lub DMZ. Podejście to wymusza przekierowanie na zaporze portu UDP/1194 na serwer VPN uruchomiony w sieci LAN. Konieczne jest również zdefiniowanie statycznej tablicy routingu, tak aby cały ruch VPN kierowany był na adres serwera OpenVPN. Dzięki temu pakiety w sieci będą „wiedzieć”, jaką drogą wracać do zdalnego klienta połączonego z siecią lokalną tunelem VPN. Innym sposobem jest uruchomienie mechanizmów translacji adresów (NAT) na serwerze OpenVPN.

SSL VPN w praktyce

Implementacja mechanizmów uwierzytelniania klientów OpenVPN z wykorzystaniem certyfikatów cyfrowych wymaga wdrożenia lokalnej infrastruktury klucza publicznego (PKI). W tym celu posłużymy się OpenSSL – otwartą implementacją protokołu TLS/SLL oraz bibliotek kryptograficznych dostępnych dla systemów Linux/UNIX, Windows oraz Mac.

Tunelem przez sieć

Instalacja OpenVPN Access Server na serwerze Linux

W tym miejscu odsyłamy do artykułu Deploying a VPN with PKI (http://www.oreillynet.com/pub/a/security/2004/10/21/vpns_and_pki.html), który w praktyczny sposób omawia zasady wdrażania lokalnej PKI z wykorzystaniem biblioteki OpenSSL na potrzeby tworzenia tuneli VPN SSL.

Wraz z oprogramowaniem OpenVPN rozpowszechniany jest zestaw skryptów RSA key management (easy-rsa), będących nakładką na polecenia openssl/pkitool. Skrypty te istotnie upraszczają proces tworzenia i zarządzania centrum autoryzacji (CA), w tym generowanie i unieważnianie certyfikatów dla klientów.

Wdrożenie PKI na potrzeby implementacji mechanizmów zdalnego dostępu za pomocą tuneli SSL VPN wymaga wygenerowania certyfikatów cyfrowych oraz kluczy prywatnych dla lokalnego centrum autoryzacji (CA), serwera OpenVPN oraz klientów (użytkowników) usługi.

Szczegółowe informacje na temat sposobów użycia skryptów easy-rsa wraz z przykładowymi plikami konfiguracyjnymi znajdziesz w dokumentacji projektu pod adresemhttp://openvpn.net/index.php/open-source/documentation/miscellaneous/77-rsa-key-management.html.


TOP 200