Natrag na blog

Postavljanje OpenVPN-a na Ubuntu 18.04

Postavljanje OpenVPN-a na Ubuntu 18.04

Uvod

Želite li sigurno pristupati internetu sa svog pametnog telefona ili prijenosnog računala kada se povezujete na nepouzdanu mrežu (npr. WiFi u hotelu ili kafiću)? Srećom, postoji način da vam se želje ostvare. Možete se sigurno povezati na nepouzdanu mrežu kao da ste na privatnoj mreži koristeći Virtualnu privatnu mrežu (VPN).

Što je VPN?

VPN je skraćenica za Virtualnu privatnu mrežu (Virtual Private Network). Nudi mogućnost otvaranja sigurnog tunela do pouzdanog poslužitelja. Svi se zahtjevi tada šalju i primaju putem tog poslužitelja. Prednost je osiguravanje vašeg pristupa i transakcija pri korištenju javnih mreža kao što je besplatni WiFi u hotelu.

Putem VPN-a svi se podaci šifriraju i obrađuju putem poslužitelja. Uređaji koji se nalaze između, poput usmjerivača trećih strana i slično, nemaju načina za preusmjeravanje prometa na neželjena odredišta. Također, nakon što se veza uspješno uspostavi, postajete dio mreže poslužitelja. Drugi poslužitelji, računala ili uređaji poput pisača koji bi inače bili dostupni samo u lokalnoj mreži poslužitelja sada se također mogu dohvatiti putem VPN tunela. Međutim, budući da se svi podaci ne moraju slati kroz šifrirani tunel, moguće je konfigurirati VPN klijent tako da se samo definirani dio zahtjeva šalje kroz VPN tunel. Ostatak prometa obrađuje se normalno putem interneta.

U ovom vodiču provest ćemo vas kroz korake postavljanja OpenVPN poslužitelja na Ubuntu 18.04.

Zahtjevi

Morate imati pristup Ubuntu 18.04 poslužitelju kako biste ugostili svoju OpenVPN uslugu kako biste dovršili ovaj vodič. Prije početka ovog vodiča, također trebate konfigurirati ne-root korisnika sa sudo ovlastima. Svoj poslužitelj možete jednostavno instalirati prateći naš vodič za postavljanje Ubuntu poslužitelja.

Osim toga, trebat će vam zasebno računalo koje će služiti kao certifikacijsko tijelo (CA). Tehnički, možete koristiti svoj OpenVPN poslužitelj ili svoje lokalno računalo kao certifikacijsko tijelo. Međutim, to ne preporučujemo jer će izložiti vaš VPN sigurnosnim propustima. Prema službenoj OpenVPN dokumentaciji, certifikacijsko tijelo trebali biste smjestiti na zasebno računalo namijenjeno uvozu i potpisivanju zahtjeva za certifikate. Dakle, pretpostavljamo da se vaše certifikacijsko tijelo nalazi na zasebnom Ubuntu 18.04 poslužitelju koji također ima ne-root korisnika sa sudo ovlastima i osnovni vatrozid. Kroz ovaj vodič, svi koraci instalacije i konfiguracije bit će što jednostavniji za svaku od instalacija. Također možete pogledati naš vodič o tome kako postaviti Open VPN poslužitelj pod Dockerom.

Korak 1 – Instalirajte OpenVPN i EasyRSA

Najprije ažurirajte indeks paketa vašeg VPN poslužitelja i instalirajte OpenVPN. OpenVPN možete instalirati pomoću apt-a jer je dostupan u zadanim repozitorijima Ubuntua:

Korak 2: Stvorite certifikacijsko tijelo

Stvorite jednostavno certifikacijsko tijelo (CA) za izdavanje pouzdanih certifikata za OpenVPN poslužitelj. Da biste to učinili, preuzmite najnoviju verziju EasyRSA na svoje CA računalo i OpenVPN poslužitelj pomoću wget-a. Da biste dobiti najnoviju verziju, idite na stranicu Releases službenog EasyRSA GitHub projekta, kopirajte poveznicu za preuzimanje datoteke koja završava na .tgz i zalijepite je u sljedeću naredbu:

Zatim raspakirajte tarball:

 OpenVPN EasyRSA software

U ovom trenutku, sav potreban softver uspješno je instaliran na vaše CA računalo i poslužitelj.

Korak 3 – Konfigurirajte EasyRSA varijable i izgradite CA

EasyRSA dolazi s konfiguracijskom datotekom koju možete urediti kako biste definirali niz varijabli za svoj CA pomoću ove naredbe:

U direktoriju se nalazi datoteka pod nazivom vars.example. Napravite kopiju ove datoteke i nazovite kopiju vars bez ekstenzije datoteke:

Upotrijebite svoj omiljeni uređivač teksta da biste otvorili ovu novu datoteku:

Zatim pronađite postavke koje postavljaju zadane vrijednosti polja za nove certifikate. To će izgledati slično ovome:

Ažurirajte ove varijable na ono što želite kao što je prikazano u nastavku:

Spremite i zatvorite datoteku kada budete spremni. Sljedeći korak je pozivanje skripte easyrsa i njezino pokretanje s opcijom init-pki kako biste pokrenuli infrastrukturu javnog ključa na CA poslužitelju:

easyrsa init-pki

Zatim pokrenite naredbu build-ca s opcijom nopass kako se od vas ne bi tražila lozinka svaki put kada komunicirate sa svojim CA:

U izlazu će se od vas tražiti da potvrdite uobičajeni naziv za svoj CA:

 OpenVPN build-ca

Time je vaš CA postavljen i spreman za početak potpisivanja zahtjeva za certifikate.

Korak 4 – Generiranje certifikata poslužitelja, ključa i datoteka za šifriranje

Nakon što je CA spreman, možete generirati privatni ključ i zahtjev za certifikat s poslužitelja, a zatim ga poslati CA-u na potpisivanje stvaranjem potrebnog certifikata. Prvo idite u direktorij EasyRSA na OpenVPN poslužitelju:

Odande pokrenite skriptu easyrsa s opcijom init-pki. Iako ste već pokrenuli ovu naredbu na CA računalu, ova se naredba mora pokrenuti i ovdje. To je zato što su PKI direktoriji poslužitelja i CA različiti:

Zatim ponovno pozovite skriptu easyrsa, ovaj put s opcijom gen-req, nakon čega slijedi generički naziv računala:

To će stvoriti privatni ključ za poslužitelj i datoteku zahtjeva za certifikat pod nazivom server.req. Kopirajte ključ poslužitelja u direktorij /etc/openvpn/:

Prenesite datoteku server.req na svoje CA računalo koristeći sigurnu metodu (kao što je SCP u sljedećem primjeru):

Zatim idite u direktorij EasyRSA na svom CA računalu:

Ponovno upotrijebite skriptu easyrsa za uvoz datoteke server.req i dodajte njezin uobičajeni naziv nakon putanje datoteke:

Zatim potpišite zahtjev pokretanjem skripte easyrsa s opcijom sign-req, nakon čega slijede vrsta zahtjeva i uobičajeni naziv. Za zahtjev za certifikat OpenVPN poslužitelja, provjerite koristite li vrstu zahtjeva server:

Izlaz od vas traži da potvrdite da je zahtjev iz pouzdanog izvora. Upišite yes i pritisnite Enter za potvrdu. Provjerite pojedinosti prikazane u nastavku kako biste osigurali točnost. Napominjemo da ovaj zahtjev još nije potvrđen lozinkom.

Zatražite subjekt i potpišite ga kao certifikat poslužitelja na 3650 dana:

 OpenVPN sign certificate for server

Ako ste šifrirali CA ključ, u ovom trenutku bit ćete upitani za lozinku. Zatim upotrijebite sigurnu metodu za prijenos potpisanog certifikata natrag na vaš VPN poslužitelj:

Prenesite datoteku ca.rt na poslužitelj prije nego što se odjavite s CA računala:

Zatim se ponovno prijavite na svoj OpenVPN poslužitelj i kopirajte datoteke server.crt i ca.crt u svoj direktorij /etc/openvpn/

Zatim idite u svoj EasyRSA direktorij:

Unesite sljedeći kod kako biste stvorili jaki Diffie-Hellman ključ koji možete koristiti tijekom razmjene ključeva:

Kada završite, generirajte HMAC potpis kako biste poboljšali funkcionalnost TLS provjere ispravnosti poslužitelja:

Kada naredba završi, kopirajte dvije nove datoteke u direktorij / etc / openvpn /:

Na taj način generiraju se svi certifikati i datoteke ključeva koje poslužitelj zahtijeva. Sada možete stvoriti odgovarajući certifikat i ključ koji će klijentsko računalo koristiti za pristup OpenVPN poslužitelju.

Korak 4 – Generiranje klijentskog certifikata i para ključeva

Zatim ćemo stvoriti klijentski ključ i nekoliko certifikata. Ako imate više klijenata, možete ponoviti ovaj postupak za svakog klijenta. Imajte na umu, međutim, da skripti morate proslijediti jedinstvenu vrijednost naziva za svakog klijenta. U ovom vodiču, prvi par certifikata/ključa nazvat ćemo client1. Najprije stvorite strukturu direktorija u svom matičnom direktoriju za pohranu klijentskih certifikata i datoteka ključeva:

Budući da iz sigurnosnih razloga u ovaj direktorij spremate par certifikata/ključa i klijentovu konfiguracijsku datoteku, sada biste trebali opozvati dopuštenja:

Zatim se vratite u EasyRSA direktorij i pokrenite easyrsa skriptu s opcijama gen-req i nopass, kao i generičkim nazivom klijenta:

Pritisnite Enter za potvrdu uobičajenog naziva. Nakon toga kopirajte datoteku client1.key u prethodno stvoreni direktorij / client-configs / keys /:

Zatim upotrijebite sigurnu metodu za prijenos datoteke client1.req na svoje CA računalo:

Prijavite se na svoje CA računalo, idite u EasyRSA direktorij i uvezite zahtjev za certifikat:

import client.req

Zatim, kao i u prethodnom koraku, potpišite zahtjev na poslužitelju. Ali ovaj put morate navesti vrstu zahtjeva klijenta:

Na upit upišite yes kako biste potvrdili da želite potpisati zahtjev za certifikat i da je zahtjev za certifikat iz pouzdanog izvora. Unesite riječ “yes” za nastavak ili unesite bilo što drugo za odbacivanje:

sign certificate

Ako ste šifrirali CA ključ, ovdje će se od vas također tražiti da unesete lozinku. To će stvoriti datoteku klijentskog certifikata pod nazivom client1.crt. Prenesite ovu datoteku natrag na poslužitelj:

Povežite se ponovno putem SSH-a na svoj OpenVPN poslužitelj i kopirajte klijentski certifikat u direktorij / client-configs / keys /:

Zatim kopirajte datoteke ca.crt i ta.key u direktorij / client-configs / keys /:

Ujedno su svi certifikati i ključevi poslužitelja i klijenta generirani i spremljeni u odgovarajuće direktorije na poslužitelju. Sada možete nastaviti s postavljanjem OpenVPN-a na poslužitelju.

 Korak 5 – Konfiguriranje OpenVPN usluge

Nakon generiranja klijentskih i poslužiteljskih certifikata, možete konfigurirati OpenVPN uslugu za korištenje ovih vjerodajnica. Prvo kopirajte oglednu konfiguracijsku datoteku OpenVPN-a u svoj konfiguracijski direktorij, a zatim je raspakirajte kako biste je koristili kao osnovu za postavljanje:

Otvorite konfiguracijsku datoteku poslužitelja u svom željenom uređivaču teksta:

Zatim pronađite HMAC dio tražeći naredbu tls-auth:

Pronađite dio za šifriranje tražeći komentiranu liniju za šifriranje. Šifriranje AES-256-CBC nudi dobru razinu šifriranja i dobro je podržano. Linija ne bi trebala biti komentirana, ali ako jest, obrišite “;” ispred nje:

Ispod toga dodajte naredbu Auth za odabir HMAC algoritma sažetka poruke. SHA256 je dobar izbor za to:

Zatim pronađite liniju s izjavom dh koja definira Diffie-Hellmanove parametre. Zbog nekih nedavnih promjena u EasyRSA-u, naziv datoteke Diffie-Hellmanovog ključa može se razlikovati od naziva datoteke navedenog u oglednoj konfiguracijskoj datoteci poslužitelja. Ako je potrebno, promijenite ovdje navedeni naziv datoteke brisanjem 2048 kako biste ga uskladili s ključem iz prethodnog koraka:

Na kraju, pronađite postavke za korisnika (user) i grupu (group) i obrišite “;” na početku svakog retka:

Do sada bi promjene koje ste unijeli u oglednu datoteku server.conf trebale omogućiti rad OpenVPN-a.

Step 6 – Mrežna konfiguracija poslužitelja

Konfigurirajte prosljeđivanje IP-a kako biste ispravno usmjeravali promet kroz VPN. To je ključno za VPN funkcionalnost koju pruža vaš poslužitelj:

Potražite komentiranu liniju koja postavlja net.ipv4.ip_forward. Uklonite znak “#” s početka linije kako biste dekomentirali ovu postavku:

Spremite datoteku i zatvorite je kada završite. Kako biste pročitali datoteku i prilagodili vrijednosti za trenutnu sesiju, upišite:

sysctl -p

Zatim dodajte javno mrežno sučelje svog računala:

Vaše javno sučelje je niz unutar izlaza ove naredbe koji slijedi nakon riječi “dev”. Na primjer, ovaj rezultat prikazuje sučelje pod nazivom ens3.

default ip route

Otvorite datoteku /etc/ufw/before.rules kako biste dodali odgovarajuću konfiguraciju:

Pri vrhu datoteke dodajte istaknute retke u nastavku kako biste postavili zadano pravilo za lanac POSTROUTING u tablici nat i maskirali sav promet koji dolazi s VPN-a. Zamijenite ens3 u retku -A POSTROUTING u nastavku sa sučeljem koje ste pronašli u gornjoj naredbi:

Spremite datoteku i zatvorite je nakon što završite. Zatim trebate reći UFW-u da prema zadanim postavkama dopusti i prosljeđivanje paketa. Da biste to učinili, otvorite datoteku /etc/default/ufw:

Unutar datoteke pronađite direktivu DEFAULT_FORWARD_POLICY i promijenite vrijednost iz DROP u ACCEPT:

Spremite i zatvorite datoteku kada završite. Zatim prilagodite vatrozid kako biste omogućili promet prema OpenVPN-u. Ako niste promijenili port i protokol u datoteci /etc/openvpn/server.conf, morat ćete otvoriti UDP promet prema portu 1194. Ako ste izmijenili port i/ili protokol, ovdje zamijenite vrijednosti onima koje ste odabrali. U slučaju da ste zaboravili dodati SSH port prilikom praćenja preduvjetnog vodiča, dodajte ga i ovdje:

Nakon dodavanja tih pravila, onemogućite i ponovno omogućite UFW kako biste ga ponovno pokrenuli i učitali promjene iz svih datoteka koje ste izmijenili:

ufw commands

Čestitamo, vaš je poslužitelj sada konfiguriran za ispravno rukovanje OpenVPN prometom!

Zaključak

Ako ste pratili ovaj vodič do kraja, sada možete sigurno pregledavati internet. Moći ćete sačuvati svoj identitet, lokaciju i promet od znatiželjnih pogleda.

Sretno s radom!

 

 

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.