Virtuele Machine: funproxy
Wat
Om members een publiek endpoint te geven is een vm opgezet die poort 80,443 en 51820 exposed naar een publiek IP-adres. Deze VM, vernoemd naar member Fun, is net als de andere vm's te benaderen met LDAP.
Gebruik volgende commandos om in te loggen en om vervolgens wachtwoordloos in te loggen. Verander de username "fun" naar je eigen username.
ssh -o ForwardAgent=yes -J fun@space.nurdspace.nl fun@funproxy.vm.nurd.space
ssh-copy-id -o ProxyJump=fun@space.nurdspace.nl fun@funproxy.vm.nurd.space
Software stack
De software stack voor deze service bestaat uit een drietal containers, die dmv een compose file opgestart worden. Het hart van deze applicatie is Pangolin, een service die het mogelijk maakt om services die in jouw eigen netwerk draaien te verbergen achter het ip adres van de funproxy. HTTP richting de clients word afgehandeld door Traefik, terwijl Gebril een wireguard tunnel manager is. Het starten en stoppen van deze software stack word gedaan dmv een systemd unit file genaamt `funproxy`. De unit file roept onderwater `podman` aan met de `compose` plugin. Ook is de unit file geconfigureerd om de service te starten tijdens het booten, en de service zal automatisch herstart worden als deze crashed.
Om de service te starten:
sudo systemctl start funproxy
Om de service te stoppen:
sudo systemctl stop funproxy
Om de logging te bekijken
sudo journalctl -fu funproxy
DNS
Een eigen domeinnaam is een voorwaarde om je eigen services benaderen. Met DuckDNS of CloudFlare tunnels hoeft dat niet, want dan gebruik je hun domein. De auteur van dit artikel gebruikt porkbun.com en is daar erg tevreden mee. Om gebruik te maken van de NurdSpace, dan moet je de DNS Records van je domein instellen en verwijzen naar het IP van de NurdSpace. Let op dat de NurdSpace meerdere IP's heeft op dezelfde aansluiting, alleen het IP hieronder beland uit bij de funproxy vm.
A *.example.org 185.31.228.86
A example.org 185.31.228.86
Pangolin
Is een applicatie die draait op de VM waardoor je eenvoudig tunnels en port-forwards naar lokaal-draaiende services kunt opzetten en configureren. Er draait één enkele Pangolin instantie die te benaderen is op pangolin.rammelkruid.nl. Een inlog kan je kan krijgen via Fun of Eis-T, die maakt dan ook een organisatie aan voor je.
Newt
De publiek benaderbare instantie van Pangolin maakt door middel van een WireGuard tunnel verbinding met jouw eigen server. Je kunt een bestaand WireGuard netwerk gebruiken maar het is gemakkelijker om Newt te draaien. Dit is een reverse-proxy en WireGuard tunnel in een eenvoudige Docker Image.