Poniżej przedstawiamy instrukcję instalacji oraz konfiguracji klienta OpenVPN w formie usługi w systemie Linux Debian/Ubuntu.

Aplikację OpenVPN można zainstalować m.in. poleceniem:

#  apt-get install openvpn

Plik konfiguracji client.conf powinien znajdować się w folderze /etc/openvpn

Aby przejść do jego edycji należy skorzystać z edytora tekstu vi lub nano:

# nano /etc/openvpn/client.conf

  client
  dev tun
  proto tcp
  remote XXX.XXX.XXX.XXX 1194
  resolv-retry infinite
  nobind
  persist-key
  persist-tun
  ca /etc/openvpn/keys/ca.crt
  cert /etc/openvpn/keys/MyClient.crt
  key /etc/openvpn/keys/MyClient.key
  ns-cert-type server
  verb 0
  cipher AES-256-CBC
  auth SHA1

Jak można zauważyć plik konfiguracyjny wymaga między innymi określenia opcji takich jak:

  • remote – podania adresu IP lub nazwy hosta serwera OpenVPN, do którego klient będzie się łączył.
  • 1194 – określenie portu serwera OpenVPN, do którego klient będzie się łączył.
  • ca /etc/openvpn/keys/ca.crt – ścieżkę, w której znajduje się certyfikat ca.
  • cert /etc/openvpn/keys/MyClient.crt – ścieżkę, w której znajduje się certyfikat klienta.
  • key /etc/openvpn/keys/MyClient.key – ścieżkę, w której znajduje się klucz klienta.

W miejsce XXX.XXX.XXX.XXX należy wpisać adres IP lub nazwę hosta serwera OpenVPN. Niezbędne jest także wpisanie numeru portu.

Można teraz uruchomić skonfigurowaną aplikację klienta OpenVPN poleceniem:

 # openvpn --config /etc/openvpn/client.conf

Zostanie wyświetlony output aplikacji OpenVPN:

# OpenVPN 2.3.4 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 27 2017
 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08
 Socket Buffers: R=[163840->131072] S=[163840->131072]
 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
 UDPv4 link local: [undef]
 UDPv4 link remote: [AF_INET]XXX.XXX.XXX.XXX:1194
 TLS: Initial packet from [AF_INET]XXX.XXX.XXX.XXX:1194, sid=2fc176a5 4d3fbbfd
 VERIFY OK: depth=1, C=XX, ST=XXXXXXXX, L=XXXXXXXX, O=XXXXXXXX, OU=XX, CN=XXXXXXXX, name=EasyRSA, emailAddress=XXXXXXXX
 VERIFY OK: nsCertType=SERVER
 VERIFY OK: depth=0, C=XX, ST=XXXXXXXX, L=XXXXXXXX, O=XXXXXXXX, OU=XXXXXXXX, CN=XXXXXXXX, name=EasyRSA, emailAddress=XXXXXXXX
 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Control Channel: TLSv1, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-SHA, 2048 bit RSA
 [server] Peer Connection Initiated with [AF_INET]XXX.XXX.XXX.XXX:1194
 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
 PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.1'
 OPTIONS IMPORT: timers and/or timeouts modified
 OPTIONS IMPORT: --ifconfig/up options modified
 OPTIONS IMPORT: route options modified
 ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth0 HWADDR=XXXXXXXXXXXXXXXXXX
 TUN/TAP device tun0 opened
 TUN/TAP TX queue length set to 100
 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
 /sbin/ip link set dev tun0 up mtu 1500
 /sbin/ip addr add dev tun0 local 10.8.0.10 peer 10.8.0.1
 Fri Sep  8 09:08:44 2017 /sbin/ip route add 10.8.0.1/32 via 10.8.0.1
 GID set to nogroup
 UID set to nobody
 Initialization Sequence Completed

Aby pozwolić na automatyczne uruchamianie aplikacji OpenVPN na przykład w przypadku restartu maszyny wirtualnej, należy włączyć OpenVPN w formie usługi w Systemd. Systemd odpowiada w głównej mierze za sterownie procesami rozruchowymi oraz usługami.

Do zarządzania głównie wykorzystuje się polecenie systemctl. Polecenie systemctl wydane bez żadnych opcji wyświetli wszystkie aktywne (uruchomione) usługi.

Zatem, aby włączyć OpenVPN w formie usługi, należy wydać polecenie:

# systemctl start openvpn@client.service

gdzie „client” jest nazwą utworzonego przez nas pliku konfiguracyjnego client.conf

oraz dodać usługę OpenVPN w opcję autostartu:

#  systemctl enable openvpn@client.service