Kako da podesite OpenVPN na klijentskoj strani
U našem prethodnom tekstu smo objasnili kako da podesite Open VPN na Ubuntu serveru. Nadamo se da niste imali problema u podešavanju. U ovom članku ćemo objasniti kako da izvršite podešavanja i na klijentskoj strani. Tačnije, podesićemo OpenVPN za Windows, MacOS i Linux klijente.
Nakon što ste startovali i omogućili OpenVPN servis, možemo da pređemo na podešavanje klijenta.
Kreiranje konfiguracione infrastrukture za klijentsku stranu
Pošto svaki klijent mora imati svoj konfiguracioni fajl koji je potrebno poklopiti sa onim na serverskoj strani, neophodno je da klijentsku stranu podesimo tako da se svaki novi klijent može u hodu podesiti. Bilo bi veoma nezgodno i nepraktično da se ovo podešavanje vrši uvek iznova za svakog novog klijenta. Zato ćemo prvo kreirati konfiguracionu infrastrukturu koja sadrži bazični konfiguracioni fajl, a zatim kreirati skript koji će omogućiti da lako generišete jedinstvene kofiguracione fajlove za klijente, sertifikate a po potrebi i ključeve.
Započećemo sa kreiranjem novog direktorijuma gde ćemo čuvati konfiguracioone fajlove klijenta u okviru client-configs direktorijuma koji ste već ranije kreirali:
mkdir -p ~/client-configs/files
Zatim kopirajte jedan konfiguracioni fajl za klijenta u ovaj folder. Pomenuto fajl će poslužiti kao konfiguracija za vaš bazični fajl.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
Otvorite ovaj novi fajl u vašem odabranom tekst editoru:
nano ~/client-configs/base.conf
Unutar fajla pronađite direktivu remote. Ona upućuje klijenta ka javnoj IP adresi vašeg Open VPN servera. Ukoliko ste kojim slučajem promenili port po kojem vaš OpenVPN očekuje saobraćaj, takođe ćete morati da promenite 1194 za port koji ste izabrali:
~/client-configs/base.conf
. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote your_server_ip 1194
. . .
Proverite samo da protokol odgovara vrednosti koju koristite na serveru:
~/client-configs/base.conf
proto udp
Uklonite komentare na user and group direktivama tako što ćete ukloniti “;” na početku sveke linije:
~/client-configs/base.conf
user nobody
group nogroup
Pronađite direktive koje kreiraju ca, cert, and key i uklonite komentare sa njih:
~/client-configs/base.conf
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
#ca ca.crt
#cert client.crt
#key client.key
Isto to uradite sa tls-auth direktivom, s obzirom da će vam ta.key trebati za konfiguracioni fajl:
~/client-configs/base.conf
# If a tls-auth key is used on the server
# then every client must also have the key.
#tls-auth ta.key 1
Uradite mirror za cipher i auth podešavanja u /etc/openvpn/server.conf fajlu:
~/client-configs/base.conf
cipher AES-256-CBC
auth SHA256
Zatim podesite key-direction direktivu negde u fajlu. Imajte u vidu da je obavezno podesite na vrednost 1, kako bi VPN funkcionisao na klijentskom računaru:
~/client-configs/base.conf
key-direction 1
Skript ispod koristi resolvconf alat da ažurira DNS informacije za Linux klijente.
~/client-configs/base.conf
# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
Ako vaš klijent koristi Linux i ima /etc/openvpn/update-resolv-conf fajl, uklonite komentare iz ovog fajla čim on bude generisan.
Sačuvajte i zatvorite fajl.
Sada je potrebno da kreirate jednostavan skrip koji će kompajlirati vaš bazični fajl sa odgovarajućim sertifikatom, ključem i enkripcionim fajlovima i zatim smestiti generisani fajl u direktorijum ~/client-configs/files Otvorite novi fajl pod nazivom make_config.sh u direktorijumu ~/client-configs:
nano ~/client-configs/make_config.sh
Unutar fajla dodajte sledeći sadržaj:
~/client-configs/make_config.sh
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/client-configs/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG}
<(echo -e '<ca>')
${KEY_DIR}/ca.crt
<(echo -e '</ca>n<cert>')
${KEY_DIR}/${1}.crt
<(echo -e '</cert>n<key>')
${KEY_DIR}/${1}.key
<(echo -e '</key>n<tls-auth>')
${KEY_DIR}/ta.key
<(echo -e '</tls-auth>')
> ${OUTPUT_DIR}/${1}.ovpn
Sačuvajte i zatvorite fajl.
Pre nego što nastavite, pobrinite se da ovaj fajl učinite izvršnim:
chmod 700 ~/client-configs/make_config.sh
Ovaj skript će napraviti kopiju vašeg base.conf fajla koji ste napravili, sakupiti sve setrifikate i ključeve koje ste kreirali za vašeg klijenta, ektraktovati njihov sadržaj, i dodati ga uz kopiju bazičnog konfiguracionog fajla i ujedno eksportovati sav sadržaj u novi konfiguracioni fajl. Na taj način ste obezbedili da svaki put kreira novi konfiguracionu fajl u hodu, bez potrebe da za svakog klijenta podešavate sve ispočetka.
Generisanje klijentskih konfiguracija
Ako ste pažljivo pratili naše upustvo, kreirali ste klijentski sertifikat i ključ pod nazivom client1.crt i client1.key. Sada možete gerisati konfiguracioni fajl za ove kredencijale tako što ćete ih smestiti u direktorijum ~/client-configs i pokrenuti skript koji ste nedavno napravili:
cd ~/client-configs· sudo ./make_config.sh client1·
Ovo će kreirati fajl client1.ovpn u vašem direktorijumu
~/client-configs/files:
~/client-configs/files Outputclient1.ovpn
Sada treba da prebacite ovaj fajl na uređaj koji planirate da koristite sa VPM serverom. To može biti lokalni desktop računar ili mobilni uređaj.
Za ovu akciju preporučujemo da koristite recimo SFTP. Na taj način će transportovani podaci biti zaštićeni enkripcijom.
Evo jednostavne SFTP komande koje možete pokrenuti sa vašeg računara (macOS ili Linux). Ona smešta .ovpn fajl u vaš Home direktorijum:
sftp sammy@your_server_ip:client-configs/files/client1.ovpn ~/
Instaliranje klijentske konfiguracije
U ovom delu ćemo objasniti kako da instalirate VPN profil na Windows, macOS i Linux klijentima.
Windows
Instalacija
Preuzmite klijentsku aplikaciju OpenVPN za Windows sa OpenVPN sajta. Izaberite odgovarajuću verziju fajla za vašu verziju Windows-a. Imajte u vidu da je potrebno da imate administatorske privilegije da biste obavili instalaciju.
Nakon što instalirate OpenVPN, kopirajte fajl .ovpn na navedenu lokaciju
C:Program FilesOpenVPNconfig
Kada pokrenete OpenVPN, on če automatski detektovati profil i omogućiti ga.
Imajte u vidu da ćete OpenVPN svaku put morati da pokrenete sa admistratorskim pravima jer u suprotnom neće moći da se poveže sa serverom. Ovo je važno da znate kada su u pitanju dodeljivanja prava pristupa. Ovo je najlakše ako podesite OpenVPN da se svaki put startuje kao admistrator.
Da biste ovo podesili kliknite desnim tasterom miša na ikonicu OpenVPN-a i odaberite opciju Properties. Izaberite opciju Change settings for all users. U novom prozoru čekirajte Run this program as an administrator.
Povezivanje
Svaki put kada pokrenete OpenVPN GUI, Windows će vas pitati da li želite da dozvolite ovom programu da napravi izmene na vašem računaru. Kliknite Yes. Pokretanje OpenVPN klijentske aplikacije ne kreira VPN konekciju, već će samo aktivirati aplet u system tray-u uz pomoć kojeg ćete uvek moći da uključite i isključite VPN servis.
Jednom kada ste pokrenuli OpenVPN, možete da inicirate povezivanje tako što ćete kliknuiti desnim klikom na aplet u sistem tray-u. Ovo će otvoriti poseban meni. Izaberite opciju client1
na vrhu menija (to je zapravo vaš client1.ovpn
profil) i izaberite Connect
.
Otvoriće se statusni prozor koji će pokazati log dok se konekcija uspostavlja established, a zatim će se po povezivanju pojaviti poruka da se konekcija uspostavljena.
Na isti način se možete i diskonektovati sa servisa: Desni klik na ionicu u system tray-u i odaberite opciju Disconnect.
macOS
Instalacija
Za instaliranje na macOS sistemu potrebno je da prethodni instaliramo Tunnelblick. U pitanju je besplatni OpenVPN klijent otvorenog koda za macOS. Možete da preuzmete najnoviju verziju ISO fajla sa Tunnelblick veb-sajta Kliknite dva puta na .dmg
fajl i pratite uputstva za instalaciju.
Na kraju proces instalacije Tunnelblick će vas pitati da li imate konfiguracione fajlove. Izaberite I have configuration files i pustite da se završi proces instalacije. Otvorite Finder i dva puta kliknite na client1.ovpn. Tunnelblick će potom instalirati klijentski profil. Kao i kod Windows-a i ovde je neophodno da imate administratorske privilegije.
Povezivanje
Pokrenite Tunnelblick tako što ćete dva puta klikuti na Tunnelblick ikonicu u folderu Applications. Kada se pokrene, pojaviće se Tunnelblick ikonica u menu bar-u u gornjem desnom delu ekrana. Kliknite na ikonicu, a zatim iz menija izaberite Connect client1 kako biste inicirali konekciju.
Linux
Instalacija
Ukoliko koristite Linux, onda već znate da postoji veliki broj alata koje možete korisiti u zavisnosti od distribucije Linux-a koju koristite.
Najbolji način jeste da upravo koristite OpenVPN.
Na Ubuntu ili Debian-u, možete ga instalirati koristeći komande:
sudo apt update sudo apt install openvpn
Na CentOS-u možete omogućiti EPEL repozitorije i zatim kucati:
sudo yum install epel-release sudo yum install openvpn
Konfigurisanje
Pre svega proverite da li vaša distribucija koristi skript an /etc/openvpn/update-resolv-conf:
ls /etc/openvpn Outputupdate-resolv-conf
Zatim editujte OpenVPN konfiguracioni fajl koji ste prebacili:
nano client1.ovpn
Ako ste u mogućnosti da pronađete fajl update-resolv-conf uklonite komentare sa tri linije koje ste dodali za podešavanje DNS-a:
client1.ovpn
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
Ako koristite CentOS, izmenite group direktivu iz nogroup u nobody da biste ga prilagodili dostupnim grupama u okviru distribucije:
client1.ovpn
group nobody
Sačuvajte i zatvorite fajl.
Sada se možete konektovati na VPN usmeravanjem openvpn komande ka klijentskom konfiguracionom fajlu:
sudo openvpn --config client1.ovpn
Na ovaj način ćete se povezati na VPN.
Nadamo se da vam je ovo uputstvo bilo od koristi. Ukoliko vas zanima kako da isto ovo izvedete recimo na iOS-u ili Androidu, pišite nam u komentarima i mi ćemo vam dostaviti uputstvo.