Eigen server draaien

Hallo, ik ben sinds een week klant bij Freedom en ik wil graag mijn eigen server draaien. In de eerste plaats probeer ik de server te benaderen via een lokaal IP adres (die de Fritzbox heeft toegewezen) alleen krijg ik de melding in de browser ‘deze pagina is niet bereikbaar - pagina liet te lang op zich wachten’. Ik heb geprobeerd om deze via m’n iphone te bezoeken ivm firewall, ook hetzelfde verhaal.

Ik kan de server wel bereiken via SSH shell (SmarTTY).

Welke instellingen moet ik in de Fritzbox doen?

Alvast bedankt!

Wat - voor - server en diensten daarin wil je activeren ?

In de FB kan je na inloggen via menu → InternetPermit Access → op Tabblad Port Sharing , een poort(reeks) instellen die dan extern inkomend doorschakelt naar een intern IP adres waarop je server bereikbaar is.
(Ik raad je aan om het interne server-adres vast in te stellen).

Gezien je vraagstelling hier, kan het mogelijk nuttig zijn je te verdiepen in situationeel (risico) gebruik. De server moet niet alleen inkomend (via permit) maar ook uitgaand de aanvrager kunnen bereiken. Denk aan uitgaande firewalls van al of niet de FritzBox of “server” en sw vereisten van services. Bij bv plat FTP moet je dan in het FTP programma bv vaak het te gebruiken IP adres instellen on data transfer mogelijk te maken.
Met weer andere services, kan er een instelling zijn die een externe gerouteerde toegang inperkt.

Met SSH kan het verstandig zijn om sws adres (toegang)restricties te overwegen of een firewall-functie te aciveren (bv fail2ban) die voorkomt dat enthousiaste gasten in de boze wereld elders, voortdurend aan jou deur kunnen aankloppen.

Dank je wel Larry voor je snelle en uitgebreide reactie. Ik wil een Nextcloud server creëren (hobbymatig). Op dit moment zit ik nog in de installatiefase en kan ik de interne IP van de server niet bereiken bijv. http://ip:80/phpinfo.php of http://ip/phpinfo.php (geeft time out).

Ik heb de interne IP toegewezen als HTTP-server & UDP protocol.

Zit een beetje met m’n handen in het haar hoe ik die intern IP in mijn browser kan raadplegen. Heb jij hier ervaring mee?

De HTTP server gebruikt TCP en niet UDP…

Ik heb hem aangepast, maar dan nog is de server niet via de webbrowser bereikbaar.

Kan je een simpele tekening van je netwerk maken en daarin aangeven hoe je verwacht dat je browser bij je server moet komen?
Dan is het (iig voor mij) wat duidelijker wat er allemaal nog tegen kan werken.

En als je bekend bent met tcpdump, zou je die op beide systemen kunnen starten om te kijken wat of er wel netwerkverkeer van de browser naar de webserver gaat.

Jazeker. Het netwerk zie er als volgt uit:

ONT

Router

Laptop
Server
Printer

Ik verwacht dat ik door het IP adres van de server in te tikken in de browser automatisch op de server terecht kom: bijvoorbeeld door de weergave van Apache pagina o.i.d.

Ik ben zelf niet bekend met, maar ik heb hem wel even gedraaid op de server, dan krijg ik een hele lijst die doorratelt, met deze output:

18:18:50.545429 IP serve-2.fritz.box.ssh > eleven.fritz.box.58908: Flags [P.], seq 167712:168000, ack 129, win 470, length 288
18:18:50.595790 IP eleven.fritz.box.58908 > serve-2.fritz.box.ssh: Flags [.], ack 168000, win 8195, length 0
18:18:50.649420 IP serve-2.fritz.box.ssh > eleven.fritz.box.58908: Flags [P.], seq 168000:168288, ack 129, win 470, length 288
18:18:50.691353 IP eleven.fritz.box.58908 > serve-2.fritz.box.ssh: Flags [.], ack 168288, win 8194, length 0
18:18:50.753419 IP serve-2.fritz.box.ssh > eleven.fritz.box.58908: Flags [P.], seq 168288:168576, ack 129, win 470, length 288
18:18:50.799936 IP eleven.fritz.box.58908 > serve-2.fritz.box.ssh: Flags [.], ack 168576, win 8193, length 0
18:18:50.857418 IP serve-2.fritz.box.ssh > eleven.fritz.box.58908: Flags [P.], seq 168576:168864, ack 129, win 470, length 288
18:18:50.910125 IP eleven.fritz.box.58908 > serve-2.fritz.box.ssh: Flags [.], ack 168864, win 8192, length 0

Kortom voordat je extern/firtewall aan de gang gaat en die openstellen. Eerst maar zorgen dat die server intern (LAN kabel aangesloten + RTFM) operationeel bereikbaar is.

Mogelijk moet je op die server waar je de NextCloud instance hebt geïnstalleerd, nog de firewall openen zodat andere lokale IP’s, zoals je laptop, vanuit het eige netwerk zijn toegestaan.
Controleer ook op de server zelf, of wat je wilt gebruik, ter plaatse aanroepbaar is. Pas wanneer alles daar naar wens werkt, pas gaan denken om de externe toegang via FB open te gaan stellen.

Je kan bij tcpdump aangeven welke dingen hij moet laten zien. Bijvoorbeeld:

tcpdump -p -n host 192.168.178.5 and tcp port 80

De -p is om te zorgen dat de interface niet in promiscuous mode gezet wordt. En de -n zorgt ervoor dat je alleen nummers blijft niet en er dus geen vertaling naar namen gedaan wordt.

Het is handig om eerst lokaal op de server met wget of curl te kijken of je de webserver kan benaderen. Op welk IP de server dan ook heeft, dus ook localhost (::1/127.0.0.1).

@subbink, dank!
Bij tcpdump krijg ik o.a. deze te zien:
19:38:28.506563 IP 45.80.xx.xx.64990 > 192.168.178.36.80: Flags [S], seq 1232633830, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

Wat ik echter interessant vind adhv jouw tip voor de wget, dat ik kennelijk de webserver niet kan benaderen '403 forbidden (zie onderstaand).

root@fdrive:~# wget 192.168.178.36
–2024-12-08 19:38:58-- http://192.168.178.36/
Verbinding maken met 192.168.178.36:80… verbonden.
HTTP-verzoek is verzonden; wachten op antwoord… 403 Forbidden
2024-12-08 19:38:58 Fout 403: Forbidden.

Is er een oplossing om dit te fixen?

Dat ligt denk ik niet aan je Fritz.Box maar aan de beveiliging van Nextcloud. Je moet je http://ip:80/ in je /config/config.php onder ‘trusted domains’ opgeven. Zie de documentatie.

Ik draai Nextcloud thuis op een Intel NUC met Ubuntu in Docker mbv Portainer (ik ben dol op GUI’s en niet erg handig op de commandline). Nog een paar tips:

Bij Nextcloud moet je sowieso even goed aandacht besteden aan de config.php

Als je meerdere services op één server wilt draaien en die ook op domeinnaam kunnen benaderen moet je of een reverse proxy op dezelfde server hebben, of een externe reverse proxy. In dat laatste geval moet je niet poort 80 gebruiken maar een ander poortnummer dat niet bij een veelgebruikte service hoort. Ik gebruik een Synology NAS die een heel gebruiksvriendelijke reverse proxy heeft en bovendien de Letsencrypt SSL certificaten kan verzorgen. Op mijn Linux servertje draait alles HTTP, maar dus niet poort 80, maar ergens 8000+. De Synology maakt er HTTPS van.

Wat ik apart vind aan je tcpdump is dat blijkbaar je laptop met het externe IP-adres probeert te verbinden met je server. Helaas weet ik daar niet zo snel een oplossing voor.

Dank @meganerd. Op dit heb ik nog geen Nextcloud op mijn server draaien: ik bleef tijdens de installatie hangen op het feit dat localhost/phpinfo.php niet zichtbaar was.

De server is nog redelijk vers (Ubuntu 22.04.5 LTS). Goede tips vwb de poorten en het SSL certificaat, als de installatie voltooid is ga ik daar zeker mee aan de slag.

Heb je een idee waarom ik de server niet via de browser kan raadplegen? (IP 192.168.178.36 van FB).

Weet je zeker dat daar iets draait dat HTTP spreekt en in die taal antwoord kan geven op http://192.168.178.36:80 ? Je had het over een Apache pagina o.i.d. Heb je apache geïnstalleerd en geconfigureerd?

Goede vraag @meganerd ik heb Apache geinstalleerd, maar duidelijk niet geconfigureerd. Dat ga ik doen. Ik laat je morgen weten of het gelukt is. Dank voor dit inzicht.!

P.S. ik heb dat zelf eigenlijk nooit hoeven doen. Als je producten als WordPress, Nextcloud etc. installeert met de community installatiescripts dan zorgen die dat alle onderliggende benodigdheden als Apache, MySQL, PHP enz. geconfigureerd worden. Het is maar wat je wilt: zo snel mogelijk Nextcloud aan de praat hebben of zo veel mogelijk leren.

Dat is interessant. Waar kan ik die community installatie scripts vinden?

Voor Nextcloud b.v. hier. We zijn inmiddels aardig afgedwaald van de categorie waar dit topic onder hangt, dus ik laat het hierbij.

Heb je toevallig een (domme) switch liggen? Knoop dan eens je webserver, laptop en router aan elkaar via die switch. Lijkt er sterk op dat de fritzbox zich met het lokale verkeer over de poorten zit te bemoeien. (?!?)

Voordat je er aan denkt om jouw nieuwe server extern beschikbaar te maken, zou ik 'm eerst lokaal goed aan de praat zien te krijgen. Jouw Fritzbox heeft, behalve misschien het uitdelen van IP adressen) verder geen invloed op jouw server.

Om te beginnen zou ik de server een vast lokaal IP (v4) adres geven in plaats van op basis van DHCP zodat dit niet verandert. Dan kun je dat IP adres gebruiken in de configuratie van bijvoorbeeld Apache en/of Nextcloud. Anders vraag je je later af waarom het eerst wel werkte en ineens niet meer. Bovendien onthoudt het een stuk makkelijker als je er naartoe wilt met een browser.