From 8081a5520a441b43a8a7a73f3a90c7aacfaa8e10 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Sun, 24 Feb 2019 21:05:27 +0100 Subject: Move everything one level up --- kpov_judge/tasks/nat_vlc/howtos/en/index.html | 72 --------------- kpov_judge/tasks/nat_vlc/howtos/images/1.jpg | Bin 35092 -> 0 bytes kpov_judge/tasks/nat_vlc/howtos/images/2.jpg | Bin 40962 -> 0 bytes kpov_judge/tasks/nat_vlc/howtos/si/index.html | 80 ---------------- kpov_judge/tasks/nat_vlc/task.py | 126 -------------------------- kpov_judge/tasks/nat_vlc/video.py | 37 -------- 6 files changed, 315 deletions(-) delete mode 100644 kpov_judge/tasks/nat_vlc/howtos/en/index.html delete mode 100644 kpov_judge/tasks/nat_vlc/howtos/images/1.jpg delete mode 100644 kpov_judge/tasks/nat_vlc/howtos/images/2.jpg delete mode 100644 kpov_judge/tasks/nat_vlc/howtos/si/index.html delete mode 100644 kpov_judge/tasks/nat_vlc/task.py delete mode 100644 kpov_judge/tasks/nat_vlc/video.py (limited to 'kpov_judge/tasks/nat_vlc') diff --git a/kpov_judge/tasks/nat_vlc/howtos/en/index.html b/kpov_judge/tasks/nat_vlc/howtos/en/index.html deleted file mode 100644 index 6048647..0000000 --- a/kpov_judge/tasks/nat_vlc/howtos/en/index.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - -

NAT VLC:

-

Explanation:


- Set up a computer so that it forwards all packets meant for a certain address, to another computer.

-

Instructions:

-

1. Create two VMs. SimpleArbiter using the disk simpleArbiter and NATServer.

- You can get the disks at polz.si/media/uploads/kpov/virtualke. As for the NATServer VM, you can use any disk you want like base-student-desktop-2014. -
-

2. NATServer should have two network interfaces, one should connect to the simpleArbiter VM and the other to the internet.

- Adapter 1 should be NAT and adapter 2 should be Internal Network.
- Simple Arbiter must be connected to the Internal Network. -
- slika-1 -

3.On NATServer use ifconfig or /etc/network/interfaces to configure the network interfaces you created in virtualbox.

- - -vim /etc/network/interfaces
- -Set it up like this:
- auto eth1
- iface eth1 inet static
- NETMASK 255.255.0.0 # Specify based on your requirement
- IPADDR 192.168.2.1 # Gateway of the LAN
- NETWORK 192.168.0.0 # Optional
- ADDRESS 192.168.0.0
- -ifdown eth1
- -ifup eth1 -
-slika-2 -

4. Configure SimpleArbiter so that it uses NATServer as the default gateway.

- -

5. Set up DNS (etc/resolv.conf) on NATServer.

- vim /etc/resolv.conf - nameserver 203.145.184.13 # Primary DNS Server provided by the ISP
- nameserver 202.56.250.5 # Secondary DNS Server provided by the ISP
- Than we set up the host:
- vim /etc/hosts
- Replace the first line with:
- 127.0.0.1 nat localhost.localdomain localhost
- -

6. Enable IP forwarding on NATServerju (should be run as root).

- echo 1 > /proc/sys/net/ipv4/ip_forward - -

7. Set up NAT on NATServer using iptables.

- - apt-get install iptables
- iptables -F
- ptables -t nat -F
- iptables -t mangle -F
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- iptables -A FORWARD -i eth1 -j ACCEPT

- - service iptables restart - -

8. Use vlc on simpleArbiter to watch the video over your network.


- - -

8. Additional resources


--https://www.howtoforge.com/nat_iptables
--http://www.bctes.com/nat-linux-iptables.html
- - - - - - - - diff --git a/kpov_judge/tasks/nat_vlc/howtos/images/1.jpg b/kpov_judge/tasks/nat_vlc/howtos/images/1.jpg deleted file mode 100644 index adee258..0000000 Binary files a/kpov_judge/tasks/nat_vlc/howtos/images/1.jpg and /dev/null differ diff --git a/kpov_judge/tasks/nat_vlc/howtos/images/2.jpg b/kpov_judge/tasks/nat_vlc/howtos/images/2.jpg deleted file mode 100644 index f7868df..0000000 Binary files a/kpov_judge/tasks/nat_vlc/howtos/images/2.jpg and /dev/null differ diff --git a/kpov_judge/tasks/nat_vlc/howtos/si/index.html b/kpov_judge/tasks/nat_vlc/howtos/si/index.html deleted file mode 100644 index 779cd54..0000000 --- a/kpov_judge/tasks/nat_vlc/howtos/si/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -

NAT VLC:

-

Naloga na hitro:


- Nastavi računalnik tako, da bo vse pakete za določene naslove prepošiljal na drug računalnik, vzpostavi NAT.

-

Navodila:

-

1. Postavi dva navidezna računalnika. SimpleArbiter z diskom simpleArbiter ter NATServer.

- Virtualke dobiš na (polz.si/media/uploads/kpov/virtualke). Za NATServer lahko uporabiš base-student-desktop-2014. -
-

2. Postavi NAT server tako, da ima dva omrežna vmesnika. Z enim naj bo povezan na simpleArbiter, z drugim pa na internet.

- (settings-Network) Adapter 1 nastavimo na NAT (omrežje), adapter 2 pa na InternalNetwork (lokalno).
- Simple Arbiter nastavimo na InternalNetwork(lokalno). -
- slika-1 -

3.Na NATServer z ukazom ifconfig in z datoteko /etc/network/interfaces skonfiguriraj omrežne vmesnike
- tako, da bo en povezan v WAN (internet) in en vmesnik na LAN (simpleArbiter).

- - -vim /etc/network/interfaces
- -dopišemo:
- auto eth1
- iface eth1 inet static
- NETMASK 255.255.0.0 # Specify based on your requirement
- IPADDR 192.168.2.1 # Gateway of the LAN
- NETWORK 192.168.0.0 # Optional
- ADDRESS 192.168.0.0
- -ifdown eth1
- -ifup eth1 -
-slika-2 -

4. SimpleArbiter skofiguriraj tako, da bo privzeti prehod uporabljal NATServer.

- Nastavi gateway, da ima IP od NATServerja.
- route add -net IP netmask MASK default gw IP dev eth0
- -

5. Nastavi DNS (etc/resolv.conf) na NATServerju.

- vim /etc/resolv.conf - nameserver 203.145.184.13 # Primary DNS Server provided by the ISP
- nameserver 202.56.250.5 # Secondary DNS Server provided by the ISP
- Nato nastavimo še host:
- vim /etc/hosts
- Prvo vrstico zamenjamo z:
- 127.0.0.1 nat localhost.localdomain localhost
- -

6. Omogoči posredovanje IP naslovov na NATServerju.

- echo 1 > /proc/sys/net/ipv4/ip_forward - -

7. Nastavi NAT z uporabo paketa iptables na NATServerju.

- - apt-get install iptables
- iptables -F
- ptables -t nat -F
- iptables -t mangle -F
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- iptables -A FORWARD -i eth1 -j ACCEPT

- - service iptables restart - -

8. Na simpleArbiter z vlc preberi naslov, na katerem si lahko ogledaš kratek filmček.

- - apt-get install vlc-nox
- Nastavitev naslova:
- Open Media > OpenNetwork ....
- - - -

8. Dodatni viri


--https://www.howtoforge.com/nat_iptables
--http://www.bctes.com/nat-linux-iptables.html
- - - - - - - - diff --git a/kpov_judge/tasks/nat_vlc/task.py b/kpov_judge/tasks/nat_vlc/task.py deleted file mode 100644 index 5224495..0000000 --- a/kpov_judge/tasks/nat_vlc/task.py +++ /dev/null @@ -1,126 +0,0 @@ -# kpov_util should be imported by add_assignment.py - -# Poglej nek film na nekem določenem URL. -# (?md5 vsota filma?) - -# Nastavi nek računalnik tako, da bo izvajal NAT. -#TODO: finish this - -instructions = { - 'si': '''\ -

-Postavi dva navidezna računalnika: SimpleArbiter in NATServer. NATServer naj ima dva omrežna vmesnika - z enim naj bo povezan na lokalno omrežje, na katerem naj bo tudi simpleArbiter, z drugim pa na Internet. - -

-Na NATServer skonfiguriraj omrežne vmesnike tako, da bo imel dostop do Interneta in da bo imel na lokalnem omrežju {{IP_NAT}}. Na NATServer ustvarite še uporabnika {{IP_NAT_user}}. - -

-Poskrbi, da bo SimpleArbiter prek DHCP dobil naslov {{IP_simple}}. Poskrbi, da bo NATServer deloval kot prehod za SimpleArbiter in izvajal NAT. -''', - 'en': '''\ -

-Set up two virtual machines: SimpleArbiter and -NATServer. NATServer should have two network -adapters. Connect the first adapter to SimpleArbiter and the -second adapter to the Internet. - -

-Configure the network in NATServer so that one interface is connected to the Internet while the other is connected to SimpleArbiter and has the address {{IP_NAT}}. Create a user called {{IP_NAT_user}} on NATServer. - -

-Configure a DHCP server on NATServer so that SimpleArbiter gets the IP {{IP_simple}}. Also, set up NAT on NATServer and set it as the gateway for SimpleArbiter. -''', -} - -computers = { - 'NATServer': { - 'disks': [ - { 'name': 'student-NATServer', - }, - ], - 'network_interfaces': [{'network': 'net1'}, {'network': 'test-net'}], - 'flavor': 'm1.tiny', - 'config_drive': False - }, - 'SimpleArbiter': { - 'disks': [ - { 'name': 'simpleArbiter', - }, - ], - 'network_interfaces': [{'network': 'net1'}], - 'flavor': 'm1.tiny', - 'config_drive': False - }, -} - -networks = { 'net1': {'public': False}, 'test-net': {'public': True} } - -#ne potrebujemo dnsjev in ip za malibreznewtork manager? -params_meta = { - 'IP_simple': {'descriptions': {'si': 'Naslov SimpleArbiter', 'en': 'SimpleArbiter address'}, 'w': False, 'public': True, 'type': 'IP', 'generated': True}, - 'IP_NAT': {'descriptions': {'si': 'Naslov NATServer', 'en': 'NATServer address'}, 'w': False, 'public': True, 'type': 'IP', 'generated': True }, - 'IP_NAT_user': {'descriptions': {'si': 'Username na NATServer', 'en': 'Username on NATServer'}, 'w': False, 'public' : True, 'type' : 'username', 'generated' : True}, - 'IP_NAT_passwd': {'descriptions': {'si': 'Password na NATServer', 'en': 'Password on NATServer'}, 'w': True,'public' : True, 'type' : 'passwd', 'generated' : False}, -} - -def task(IP_simple, IP_NAT, IP_NAT_user, IP_NAT_passwd): - import pexpect - - results = kpov_util.ssh_test(IP_NAT, IP_NAT_user, IP_NAT_passwd, ( - ('IP_NAT_ip_forward', 'cat /proc/sys/net/ipv4/ip_forward'), - )) - - # Check if If IP_simple is connected to NAT - results['IP_simple_ping_to_NAT'] = pexpect.run('ping -c 5 {}'.format(IP_NAT), encoding='utf-8') - # Check routing table on IP_simple - results['IP_simple_routing_table'] = pexpect.run('route -n', encoding='utf-8', env={'PATH': '/bin:/sbin'}) - # Tracert Check if IP_simple is connected to internet - results['IP_simple_to_internet'] = pexpect.run('traceroute 8.8.8.8', encoding='utf-8') - - return results - -def gen_params(user_id, params_meta): - params = dict() - r = random.Random(user_id) - # IP_NM, DNS_NM, IP_static, DNS_static) - # dns_servers = ['193.2.1.66', '193.2.1.72', '8.8.8.8', '8.8.4.4', '208.67.222.222', '208.67.220.220'] - net = kpov_util.IPv4_net_gen(r, 253, True, False) - # params['DNS_NM'] = r.choice(dns_servers) - params['IP_NAT'], params['IP_simple'] = kpov_util.IPv4_addr_gen(r, net, 2) - params['IP_NAT_user'] = kpov_util.default_generators['username'](r) - # params['IP_NM'] - # params['IP_simple'] = kpov_util.IPv4_addr_gen(r, net, 1) - # params['DNS_static'] = r.choice(dns_servers) - return params - -def task_check(results, params): - import re - score = 0 - hints = [] - if re.search( - "PING.*\r\n64 bytes from {}: icmp_seq=[0-9]+ ttl=64 time=[0-9.]* ms".format( - params['IP_NAT']), results['IP_simple_ping_to_NAT']): - score += 3 - else: - hints.append("Ping to NAT incorrect") - if results['IP_NAT_ip_forward'].strip() == "1": - score += 2 - else: - hints.append("ip_forward not set on NAT?") - rs = r"1 +{0} +\({0}\)".format(params['IP_NAT']) - if re.search(rs, - results['IP_simple_to_internet']): - score += 3 - else: - hints.append("traceroute not OK") - gateway=r'0\.0\.0\.0 +{} +0\.0\.0\.0 +UG'.format(params['IP_NAT'].replace('.', '\.')) - if re.search(gateway,results['IP_simple_routing_table']) and \ - re.search("Kernel IP routing table\r\nDestination", results['IP_simple_routing_table']): - score += 2 - else: - hints.append("route not OK") - return score, hints - -def prepare_disks(templates, task_params, global_params): - write_default_config(templates['simpleArbiter'], global_params) - diff --git a/kpov_judge/tasks/nat_vlc/video.py b/kpov_judge/tasks/nat_vlc/video.py deleted file mode 100644 index 3c21c82..0000000 --- a/kpov_judge/tasks/nat_vlc/video.py +++ /dev/null @@ -1,37 +0,0 @@ -import string, random, os -#You need to find PIL library on the internet. Just GOOGLE it!!! Other imports are standard. -from PIL import Image, ImageDraw, ImageFont - -#Method for generating random string -def randomString(): - return ''.join(random.choice(string.lowercase) for i in range(30)) - - -image = Image.new("RGBA", (600,150), (255,255,255)) -draw = ImageDraw.Draw(image) - -#Font option is optional. If you don't want to use it figure out how to increase font size, because default is veeeeery small. - -font = ImageFont.truetype("georgia.ttf", 36) -txt = randomString() - -draw.text((20,50), txt, (20,100,0), font) -img_resized = image.resize((600,80), Image.ANTIALIAS) -img_resized.save("out.png") - -#Creates .mp4 video from image out.png. Video is 1 second long. -bashCommand = "avconv -r 1/5 -i out.png -b:v 1000k video.mp4" -os.system(bashCommand) - -# Converts .mp4 video to .avi format. Still 1 second long. ( 2x ) -bashCommand = "avconv -i video.mp4 -c:a copy video.avi" -os.system(bashCommand) - -bashCommand = "avconv -i video.mp4 -c:a copy video1.avi" -os.system(bashCommand) - -# This loop will increas videos length by adding more picesec of the original video. -last = int(input("Set video length in seconds: ")) -bashCommand = "avconv -i concat:video.avi\|video1.avi -c copy video.avi" -for i in range(0, last-2): - os.system(bashCommand) -- cgit v1.2.1