Vaje: VPN - preprost
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