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