Online gaan op het grote internet?
Facilitator
Nadat we de relatie tussen client en server hebben begrepen, duiken we in het grotere internet.
Hoewel een lokaal netwerk al potentieel heeft, is het uiteindelijke (althans het oorspronkelijke) doel van het internet om afgelegen plaatsen met elkaar te verbinden en gebruikers toegang te geven tot informatie over de hele wereld.
Er zijn verschillende manieren om een lokale server via het internet open te stellen voor het publiek. In wezen komt het erop neer dat je aan andere servers uitlegt op welk openbaar IP-adres je website te vinden is, zodat bezoekers daar naartoe kunnen worden geleid.
Protip
We kennen het openbare IP-adres van onze router al van eerder. Om veiligheidsredenen houden de meeste internetproviders echter geen vast IP-adres aan voor elk huisnetwerk en het openstellen van ons privénetwerk voor het internet stelt ons bloot aan veiligheidsrisico’s. Er zijn echter veel online tutorials beschikbaar over hoe je dat kunt doen, afhankelijk van je internetprovider/router.
Hoe zit het met de naam van mijn website?
Wacht even! Als ik online ga, gebruik ik nooit een IP-adres. Ik typ gewoon een adres in de zoekbalk of zoek het op met een zoekmachine. Omdat IP-adressen moeilijk te onthouden en te wijzigen zijn (om veiligheidsredenen of omdat een site van de ene server naar de andere verhuist), gebruiken we domeinnamen in webadressen.
Een domeinnaam bestaat uit ten minste twee delen: de domeinnaam, zoals Wikipedia, en de extensie, zoals .org, of (.com, .net, .nl, .fr, enz.). Soms is er ook een subdomein, zoals in
www-subdomein
De meeste websites gebruiken de standaard “www” als subdomein, zoals in www.w3schools.com

Facilitator
De afbeelding hierboven legt uit hoe we een webpagina via internet kunnen ophalen. Eerst gaat ons verzoek via wifi naar onze router. De router moet uitzoeken welk IP-adres overeenkomt met de domeinnaam. Hij stuurt een zoekopdracht via een DNS, Domain Name Server: deze server kan IP-adressen koppelen aan domeinnamen en stuurt het IP-adres van de server terug. De router kan vervolgens de bestanden opvragen bij de server, die ze levert (terugstuurt). Meer informatie hierover vind je in dit leuke stripboek: Hoe DNS werkt.
Facilitator
De 2 onderstaande oefeningen zijn optioneel, afhankelijk van de groep/het niveau/de timing. Het idee is om IP-adressen te koppelen aan domeinnamen.
Oefening: IP-adres van bekende websites
In de terminal (Termux) kunnen we een eenvoudig commando gebruiken om het IP-adres van een website (de server) te achterhalen. We gebruiken het commando ping om de bereikbaarheid van een server te testen.
- Typ en druk op Enter:
ping wikipedia.org
-
Als we online zijn, zouden we nu binnen enkele milliseconden informatie terug moeten krijgen! We zien ook het IP-adres van wikipedia.org, dus
185.15.58.224(de laatste keer dat we dit controleerden). Als je dit IP-adres in je browser invoert, kom je ook op Wikipedia terecht: http://185.15.58.224 -
Om
pingaf te sluiten, druk je opCTRLencop het toetsenbord.

Oefening: Waar staat Wikipedia?
Met behulp van een dienst als IP-location kunnen we een IP-adres koppelen aan een locatie en zien waar bekende websites hun servers hebben staan.
- Ga naar IP-location
- Typ een IP-adres in (zoals 185.15.58.224 voor Wikipedia)
- Kijk op de kaart waar het zich bevindt :)
URL - Het volledige adres van een webpagina
Een url is de naam van het volledige webadres. Het bestaat uit 3 delen. We hebben bijvoorbeeld https://en.wikipedia.org/wiki/Internet/index.html
- https:// is het communicatieprotocol van het web (webpagina’s op websites, op webservers)
- en.wikipedia.org is het domein en subdomein
- /wiki/Internet/ is het pad, de mappen en submappen die we moeten doorlopen om bij de locatie te komen waar ons bestand zich bevindt.
- index.html is het bestand dat we opvragen, het bestand dat de inhoud van deze pagina bevat en de lijst met alle bronnen die nodig zijn om deze pagina weer te geven (lettertypen, afbeeldingen, stylesheets, databases, enz.). Standaard is dit index.html, dus je hoeft dit niet te schrijven.
!!! opmerking “http VS http’s protocol” http:// staat voor het communicatieprotocol dat we gebruiken. http of (https) is het protocol voor het browsen op websites, terwijl SMTP bedoeld is voor het verzenden van e-mails, enz. :8080 is onze poort, de “plaats” die we proberen te bereiken op onze server. Als ons IP-adres het adres van ons servergebouw was, zou de poort de verdieping zijn waar “NGINX” zijn kantoor heeft.
Er zijn verschillende manieren om “openbaar” te gaan: door een vast openbaar IP-adres te gebruiken en de poorten open te stellen voor het publiek (poortdoorsturing), door een dynamische DNS-tool te gebruiken of door een reverse proxyserver te gebruiken.
We gaan een reverse proxy gebruiken. Een reverse proxy is een tussenliggende server die al openbaar is en fungeert als tussenpersoon tussen onze lokale webserver en potentiële klanten (andere apparaten).
In deze tutorial gebruiken we de reverse proxyserver van comphost.club , die in Nederland is gevestigd, zodat we dit enigszins lokaal kunnen houden.
Proxyconfiguratie
Comphost.club draait de reverse-proxy-software SirTunnel, die werkt met het communicatieprotocol SSH.
!!! protip “SSH-protocol” Het Secure Shell Protocol (SSH) wordt doorgaans gebruikt om veilig in te loggen op de opdrachtregelinterface (CLI) van een externe computer en om opdrachten uit te voeren op een externe server. We kunnen ssh ook gebruiken om onze telefoon op afstand te bedienen via een laptop, zodat we gemakkelijker kunnen typen.
- We installeren SSH-software op onze telefoon: OpenSSH:
pkg install openssh -y
- We passen onze eigen SirTunnel-opdracht aan op basis van het volgende:
ssh -tR XXXX:localhost:8080 comphost@comphost.club ./sirtunnel.py xx-my-subdomain-name-xx.comphost.club XXXX
-
We vervangen
XXXXdoor een uniek poortnummer (elke deelnemer moet zijn eigen nummer hebben), bijvoorbeeld4567 -
We vervangen
xx-mijn-subdomeinnaam-xxdoor een origineel subdomeinadres, bijvoorbeeldbrokensamsung -
Typ + voer de aangepaste opdracht in Termux in:
ssh -tR 4567:localhost:8080 comphost@comphost.club ./sirtunnel.py brokensamsung.comphost.club 4567


-
Als je voor het eerst verbinding maakt, bevestig je de authenticiteit van de host door “yes” te typen en op Enter te drukken.
-
Voer het wachtwoord in en druk op Enter.
Facilitator
wachtwoord is workshopbymarieandrein:)
Protip
Wanneer je een wachtwoord in een CLI typt, kun je dit niet zien. Als je zich zorgen maakt over spelfouten, typ het dan in een ander programma (uw Notitie-app) en kopieer en plak het.
- Andere apparaten kunnen nu je webpagina bezoeken op brokensamsung.comphost.club
Alle mobiele servers die momenteel actief zijn, staan vermeld op de indexpagina van comphost.club.
Troubleshooting
Toegang geweigerd? Probeer een andere poort (deze is mogelijk bezet)


Facilitator
Met de bovenstaande afbeelding kunnen we uitleggen hoe onze reverse proxy werkt. 1. We maken een “tunnel”-verbinding tussen onze server-telefoon en de proxyserver. 2. Een client probeert een verbinding te maken en wordt via de DNS (3-4) doorgestuurd naar het IP-adres van de proxyserver. 5. De proxyserver stuurt de verbinding door naar de server en stuurt vervolgens het antwoord door naar de client (6). Dit is vergelijkbaar met hoe een VPN werkt, maar dan zonder de versleuteling.