Postavili bomo navidezno zasebno omrežje.

Predpriprava

  • Preberite, kaj so openswan, openvpn in wireguard ter njihove prednosti in slabosti.
  • Če na svojem računalniku uporabljate Microsoft Windows in na njih virtualke, se naučite, kako Okna prepričate, da bodo promet na določena vrata preposlala neki virtualki (angl. port forwarding).
  • Rešite nalogo 10-preparation-openvpn_simple_smb na KPOV Judge.

Naloga

Razdelite se v skupine po tri. V vsaki skupini opravite naslednje naloge.

  • Postavi nek GNU/Linux računalnik na mrežo tako, da bosta soseda lahko do njega dostopala.
  • Na računalnike namestite OpenVPN. Dogovorite se, kdo od vas bo strežnik; ostala člana skupine sta odjemalca.
  • Nastavi OpenVPN tako, da se povežete s preostalimi člani skupine. Preveri, da povezava deluje (da paketi pridejo od enega računalnika do obeh drugih po navideznem omrežju, ne več direktno).

Navodila

Navidezna zasebna omrežja (angl. Virtual Private Network oz. VPN) uporabljamo takrat, kadar hočemo uporabnikom, ki jim zaupamo, omogočiti dostop do storitev na nekem zaprtem omrežju, čeprav se omenjeni uporabniki nahajajo nekje na Internetu v omrežju, nad katerim nimamo nadzora.

Primer take storitve je samba (windows file sharing). Podjetje naprimer hoče omogočiti delavcem dostop do datotečnih strežnikov, čeprav je delavec doma.

Z uporabo VPN lahko zagotovimo nek osnoven nivo varnosti. Vseeno je pri vsakem omrežju pametno smatrati, da je nanj nekdo že vdrl. Tako se recimo ameriška služba NSA obnaša, kot da so v omrežje in računalniške sisteme službe že vdrli nepridipravi.

Da bi VPN lahko preizkusili, boste najprej postavili navidezno mrežo, ki bo obstajala samo znotraj vašega računalnika in ne bo povezana z nobenim fizičnim omrežnim vmesnikom. Takemu omrežnemu vmesniku pod linuxom rečemo TAP (network tap), če gre za emulacijo ethernet vmesnika, ali pa TUN (virtual tunnel). Če boste iskali dokumentacijo, torej poiščite TUN/TAP.

Strežnik

Najprej namestimo paket, ki vsebuje tunctl, program za nadzor nad virtualnimi napravami:

# apt install uml-utilities

Nato ustvarimo napravo:

# tunctl

Tako ustvarjena naprava se imenuje tap0. Lahko jo tudi pobrišemo:

# tunctl -d tap0

Lahko ustvarimo tudi več navideznih omrežnih naprav:

# tunctl
# tunctl
# ip address

Tako ste ustvarili napravi tap0 in tap1. Druge ne boste potrebovali in jo lahko odstranite, prvi pa nastavite IP:

# tunctl -d tap1
# ip address add 10.?.?.?/24 dev tap0
# ip link set tap0 up

Sedaj namestite paket openvpn:

# apt install openvpn

Ustvariti boste morali nek skupen ključ, ki si jo bosta strežnik in klient delila:

$ openvpn --genkey --secret mojvpn.key

Ključ potem skopirajte v imenik /etc/openvpn/server na strežniku ter v imenik /etc/openvpn/client na klientu (to bo verjetno računalnik vašega soseda).

Sledi konfiguracija strežnika VPN. Ustvarite novo datoteko /etc/openvpn/server/mojvpn.conf in vanjo zapišite

dev tap0
proto tcp-server # no need for this if you use UDP
secret /etc/openvpn/server/mojvpn.key

Nato zaženite openvpn:

# openvpn --config /etc/openvpn/server/mojvpn.conf

Odjemalec

Da bi se povezali na ustvarjeno navidezno omrežje, morate skonfigurirati še klienta. Najprej ustvarite navidezni omrežni vmesnik tap0 na enak način kot na strežniku (seveda z drugim naslovom IP). Nato ustvarite konfiguracijsko datoteko /etc/openvpn/client/mojvpn.conf z vsebino:

remote PUBLIC_IP_OF_YOUR_NEIGHBOR
dev tap0
proto tcp-client # you can leave this out if you use UDP
secret /etc/openvpn/client/mojvpn.key

Nato seveda poženete openvpn, podobno, kot ste to storili na strežniku.

Lahko pa nastavitve odklikate, pri čemer morate prej namestiti modul za VPN za NetworkManager:

# apt install network-manager-opevpn-gnome

Na koncu lahko delovanje navideznega omrežja preverite z uporabo ping, lahko pa tudi postavite kak servis na enem od računalnikov.

Usmerjanje

Pot do omrežja 10.S.T.U preko računalnika 10.V.W.Z dodate takole:

# route add -net 10.S.T.U/24 gw 10.V.W.Z

oziroma tako:

# ip route add 10.S.T.U/24 via 10.V.W.Z
Zadnja sprememba: torek, 18. december 2018, 14.03