OpenVPN in SMB vaja:

Naloga na hitro:


Vzpostavi VPN povezavo z pomočjo OpenVPN. Omogoči dostop do datotek prek NFS in skopiraj datoteke prek SMB.

Navodila:


1. Iz imenika s slikami virtualnih računalnikov dvakrat povlecite sliki SimpleArbiterVPN ter VPNClient.
2. Z VirtualBoxom (ali ostalim programom za virtualne računalnike) ustvarite dva virtualna računalnika in jim kot disk za shranjevanje podajte VPNCLient.vdi ter SimpleArbiterVPN.vdi.
3. Na obeh nastavite dva omrežna vmesnika (NAT in Internal) in jih zaženite.
4. Na oba VM-a se prijavite z uporabnikom root in geslom kaboom .

Prvi del naloge: Nastavi OpenVPN na SimpleArbiterVPN in VPNClient.

Nastavitve na strežniku:

1. Prenesite pakete uml-utilities -> za nastavljanje navideznih omrežnih vmesnikov in paket (openvpn). Npr: sudo apt-get install openvpn
2. Nov navidezni omrežni vmesnik kreirate z tunctl in mu podate IP z sudo ifconfig tap0 10.P.Q.R netmask 255.255.255.0
3. Nato generirate skupen ključ(ta ključ boste delili z klientom) z ukazom: openvpn --genkey --secret vpnkljuc.key
4. Na strežniku še nastavite konfiguracijsko datoteko tap0.conf, ki naj vsebuje (ločeno po vrsticah) "dev tap0","proto tcp-server", "secret vpnkljuc.key"
5. Zaženete openvpn z openvpn --config /some_directory/somewhere/tap0.conf

Nastavitve na klientu:

1., 2. koraka sta ista kot pri nastavitvah na strežniku
3. Kreirajte konfiguracijsko datoteko tap0.conf, ki naj vsebuje (ločeno po vrsticah) "remote IP_VAŠEGA_VPN_SERVERJA", "dev tap0", "proto tcp-client", "secret vpnkljuc.key"
4. Na OpenVPN strežnik se povežete z openvpn --config /some_directory/somewhere/tap0.conf

Drugi del naloge: napiši program, ki pretvori binarni zapis 32-bitnega števila v decimalnega.


Nalogo lahko rešite v Javi ali v Pythonu. Prav tako pa lahko kodo pišete v poljubnem tekstovnem urejevalniku.


JAVA------
1. Z ukazom nano bintodec3.java ustvarimo in odpremo prazen program s tekstovnim urejevalnikom nano
2. Napišemo program za pretvarjanje 24-bitnega števila z dvojiškim komplementom v decimalno obliko


3. Pritisnemo Ctrl+X, nato Y in Enter, da program zapremo in shranimo.
4. Če je še nimamo, naložimo Javo sudo apt-get install openjdk-6-jdk

5. Prevedemo program javac bintodec3.java
6. Lahko ga še zaženemo ter preizkusimo java bintodec3. Na standardni vhod vnašamo 24-bitno število v šestnajstiški obliki

PYTHON------
1. Z ukazom nano bintodec3.py ustvarimo in odpremo prazen program s tekstovnim urejevalnikom nano
2. Napišemo program za pretvarjanje 24-bitnega števila z dvojiškim komplementom v decimalno obliko

3. Pritisnemo Ctrl+X, nato Y in Enter, da program zapremo in shranimo.
4. Program zaženemo z ukazom python bintodec3.py



Testiranje

1. Lahko poženemo tester; z ukazom ./run_test.py

2. Kot "Upor. Ime" in "Geslo" napišite vaše podatke učilnice. (npr.: "pz1234@student.uni-lj.si" in "geslo123")

3. Kot ime naloge vpišite XX.predvaja.
4. Ko vas program vpraša po poti programa vnesite vašo pot do programa za pretvarjanje. (npr.: če imate program bintodec3.py v isti mapi kot program run_test.py, vnesete: ./bintodec3.py)
5. Povpraša tudi po IP naslovu SimpleArbiterja, vnesite.
6. Če je šlo vse po sreči, program vrne OK vi pa ste opravili nalogo.


howto: task_check(results, params): Metoda dobi, kot prvi argument rezultat metode task(...), kot drugi pa rezultat funkcije gen_params(). Vrne stevilo pridobljenih tock. howto: task(...): Metoda prejme naslednje argumente: - IP naslov VPN streznika - DNS naslov VPN streznika - IP naslov klienta 1 - DNS naslov klienta 1 - IP naslov klienta 2 - DNS naslov klienta 2 Vrne slovar rezultatov: results['SimpleArbiter_is_VPN_set_up'] pove ali je VPN streznik nastavljen results['SimpleArbiter_is_VPN_running'] pove ali je VPN streznik zagnan results['SimpleArbiter_ping_C1'] ping rezultati (streznik -> klient1) results['SimpleArbiter_ping_C2'] ping rezultati (streznik -> klient2) results['SimpleArbiter_nmap_results'] pove ali sta oba klienta povezana na pravi VPN streznik results['SimpleArbiter_dir_vpn_contents'] kljuc, ce se ta nahaja v ustreznem imeniku results['SimpleArbiter_nfs_access_control_list'] preveri ce NFS dovoljuje dostop do /home/test/IME_UPORABNIKA results['VPNClient1_ping_VPN_server'] ping rezultati (klient 1 -> strežnik) results['VPNClient2_ping_VPN_server'] ping rezultati (klient 2 -> strežnik)