Wilt u vanuit huis een Minecraft-server runnen zonder uw IP-adres prijs te geven? Jij kan! Stel gewoon een gratis proxy in met Amazon Web Services om uw server te beschermen tegen denial-of-service-aanvallen. We laten je zien hoe.
Deze handleiding werkt voor elke gameserver, niet alleen voor Minecraft. Het enige dat het doet is proxyverkeer op een specifieke poort. Je hoeft alleen maar Minecraft’s poort 25565 te veranderen in de poort waarop je gameserver draait.
Hoe werkt dit?
Stel dat u een Minecraft-server wilt hosten en deze open wilt stellen voor internet. Het is niet zo moeilijk om er een uit te voeren. Ze zijn eenvoudig te installeren, gebruiken slechts één verwerkingsdraad en zelfs de zwaar gemodificeerde servers nemen niet meer dan 2 tot 3 GB RAM in beslag met een paar spelers online. U zou gemakkelijk een server op een oude laptop of op de achtergrond op uw desktopcomputer kunnen draaien in plaats van iemand anders te betalen om het voor u te hosten.
Maar om mensen er verbinding mee te laten maken, moet u uw IP-adres opgeven. Dit levert een aantal problemen op. Het is een groot beveiligingsrisico, vooral als uw router nog steeds het standaard beheerderswachtwoord heeft. Het laat je ook openstaan voor gedistribueerde denial-of-service (DDOS) -aanvallen, die niet alleen je Minecraft-server zouden stoppen, maar ook je internet zouden kunnen afsluiten totdat de aanval afneemt.
U hoeft mensen niet toe te staan rechtstreeks verbinding te maken met uw router. In plaats daarvan kunt u een kleine Linux-box huren bij Amazon Web Services, Google Cloud Platform of Microsoft Azure, die allemaal gratis niveaus hebben. Deze server hoeft niet sterk genoeg te zijn om de Minecraft-server te hosten – hij stuurt alleen de verbinding voor je door. Hierdoor kunt u het IP-adres van de proxyserver opgeven in plaats van uw eigen IP-adres.
Stel dat iemand verbinding wil maken met uw server, dus zij typt het IP-adres van uw AWS-proxy in haar Minecraft-client. Er wordt een pakket verzonden naar de proxy op poort 25565 (de standaardpoort van Minecraft). De proxy is geconfigureerd om poort 25565-verkeer af te stemmen en door te sturen naar uw thuisrouter. Dit gebeurt achter de schermen – de persoon die verbinding maakt, weet het niet eens.
Uw thuisrouter moet dan worden port-forwarded om de verbinding verder naar uw daadwerkelijke pc door te sturen. Uw pc draait de server en reageert op het pakket van de client. Het stuurt het terug naar de proxy, en dan herschrijft de proxy het pakket zodat het lijkt alsof de proxy reageert. De klant heeft geen idee dat dit gebeurt en denkt gewoon dat de proxy het systeem is waarop de server draait.
Het is alsof u een andere router voor de server plaatst, op dezelfde manier waarop uw thuisrouter uw computer beschermt. Deze nieuwe router draait echter op Amazon Web Services en krijgt de volledige DDOS-beperking op de transportlaag die gratis wordt geleverd bij elke AWS-service (genaamd AWS Shield). Als er een aanval wordt gedetecteerd, wordt deze automatisch beperkt zonder uw server te storen. Als het niet gestopt om de een of andere reden, kunt u de instantie altijd uitschakelen en de verbinding met uw huis verbreken.
Om de proxy af te handelen, gebruikt u een hulpprogramma genaamd sslh
. Het is bedoeld voor protocol-multiplexing; als je SSH (meestal poort 22) en HTTPS (poort 443) op dezelfde poort wilde draaien, zou je problemen tegenkomen. sslh
zit vooraan en leidt poorten om naar de beoogde applicaties, waardoor dit probleem wordt opgelost. Maar het doet dit op het niveau van de transportlaag, net als een router. Dit betekent dat we Minecraft-verkeer kunnen matchen en doorsturen naar uw thuisserver. sslh
is standaard niet-transparant, wat betekent dat het pakketten herschrijft om uw IP-adres thuis te verbergen. Dit maakt het voor niemand onmogelijk om het op te snuiven met zoiets als Wireshark.
Creëer en maak verbinding met een nieuwe VPS
Om te beginnen, heeft u de proxyserver ingesteld. Dit is zeker gemakkelijker te doen als je wat Linux-ervaring hebt, maar het is niet vereist.
Ga naar Amazon Web Services en maak een account aan. U moet uw debet- of creditcardgegevens opgeven, maar dit is alleen om te voorkomen dat mensen dubbele accounts maken; er worden geen kosten in rekening gebracht voor de instantie die u maakt. De gratis laag verloopt na een jaar, dus zorg ervoor dat u deze uitschakelt nadat u ermee klaar bent. Google Cloud Platform heeft een f1-micro
instantie altijd gratis beschikbaar als u dat liever gebruikt. Google biedt ook een tegoed van $ 300 voor een jaar, dat u daadwerkelijk kunt gebruiken om een goede cloudserver te draaien.
AWS rekent wel wat bandbreedte aan. Je krijgt 1 GB gratis, maar daarboven wordt $ 0,09 per GB belast. Realistisch gezien zult u dit waarschijnlijk niet bespreken, maar houd het in de gaten als u een afschrijving van 20 cent op uw factuur ziet.
Nadat u uw account heeft gemaakt, zoekt u naar ‘EC2’. Dit is het virtuele serverplatform van AWS. Mogelijk moet u even wachten totdat AWS EC2 heeft ingeschakeld voor uw nieuwe account.
Selecteer op het tabblad “Instances” de optie “Launch Instance” om de opstartwizard te openen.
U kunt de standaard “Amazon Linux 2 AMI” of “Ubuntu Server 18.04 LTS” als besturingssysteem selecteren. Klik op Volgende en u wordt gevraagd om het instantietype te selecteren. Selecteer t2.micro
, dat is de gratis tier-instantie. U kunt deze instantie 24/7 uitvoeren onder de gratis laag van AWS.
Selecteer ‘Controleren en starten’. Selecteer op de volgende pagina “Starten” en u ziet het onderstaande dialoogvenster. Klik op ‘Een nieuw sleutelpaar maken’ en vervolgens op ‘Sleutelpaar downloaden’. Dit is uw toegangssleutel tot de instantie, dus verlies deze niet – plaats deze in uw map Documenten om hem veilig te bewaren. Nadat het is gedownload, klikt u op ‘Instanties starten’.
U wordt teruggebracht naar de instances-pagina. Zoek het openbare IPv4-IP-adres van uw instantie, het adres van de server. Als je wilt, kun je een AWS Elastic IP instellen (die niet verandert bij het opnieuw opstarten), of zelfs een gratis domeinnaam met dot.tk, als je niet steeds terug wilt komen naar deze pagina om te zoeken het adres.
Bewaar het adres voor later. Eerst moet u de firewall van de instantie bewerken om poort 25565 te openen. Selecteer op het tabblad Beveiligingsgroepen de groep die uw instantie gebruikt (waarschijnlijk launch-wizard-1) en klik vervolgens op ‘Bewerken’.
Voeg een nieuwe aangepaste TCP-regel toe en stel het poortbereik in op 25565. De bron moet worden ingesteld op “Anywhere” of 0.0.0.0/0
.
Sla de wijzigingen op en de firewall-updates.
We gaan nu naar SSH in de server om de proxy in te stellen; als je macOS / Linux gebruikt, kun je je terminal openen. Als u Windows gebruikt, moet u een SSH-client gebruiken, zoals PuTTY, of het Windows-subsysteem voor Linux installeren. We raden het laatste aan, omdat het consistenter is.
Het eerste dat u moet doen, is cd
naar uw documentenmap waar het keyfile is:
cd ~/Documents/
Als u Windows Subsystem voor Linux gebruikt, bevindt uw C-schijf zich op /mnt/c/
, en je moet naar je documentenmap gaan:
cd /mnt/c/Users/username/Documents/
Gebruik de -i
vlag om SSH te vertellen dat u de keyfile wilt gebruiken om verbinding te maken. Het bestand heeft een .pem
extensie, dus u moet het volgende opnemen:
ssh -i keyfile.pem ec2-user@0.0.0.0
Vervangen “0.0.0.0
”Met uw IP-adres. Als je een Ubuntu-server hebt gemaakt in plaats van AWS Linux, maak dan verbinding als gebruiker “ubuntu”.
U zou toegang moeten krijgen en uw opdrachtprompt moeten zien veranderen in de serverprompt.
Configureer SSLH
U wilt installeren sslh
van de pakketbeheerder. Voor AWS Linux zou dat zijn yum
, voor Ubuntu gebruikt u apt-get
. Mogelijk moet u de EPEL-repository toevoegen op AWS Linux:
sudo yum install epel-release
sudo yum install sslh
Zodra het is geïnstalleerd, opent u het configuratiebestand met nano
:
nano /etc/default/sslh
Verander de RUN=
parameter op “ja”:
Hieronder de finale DAEMON
regel, typ het volgende:
DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid
Vervangen “your_ip_address
”Met uw IP-adres thuis. Als u uw IP niet weet, zoek dan naar “wat is mijn IP-adres?” op Google – ja, serieus.
Deze configuratie maakt het sslh
proxy luisteren op alle netwerkapparaten op poort 25565. Vervang dit door een ander poortnummer als je Minecraft-client iets anders gebruikt of als je een ander spel speelt. Meestal met sslh
, pas je verschillende protocollen aan en stuur je ze naar verschillende plaatsen. Voor onze doeleinden willen we echter eenvoudig al het mogelijke verkeer matchen en doorsturen naar your_ip_address:25565
.
Druk op Control + X en vervolgens op Y om het bestand op te slaan. Typ het volgende om in te schakelen sslh
:
sudo systemctl enable sslh
sudo systemctl start sslh
Als systemctl
niet beschikbaar is op uw systeem, moet u mogelijk de service
commando in plaats daarvan.
sslh
zou nu moeten draaien. Zorg ervoor dat uw thuisrouter port forwarding is en 25565 verkeer naar uw computer verzendt. Misschien wilt u uw computer een statisch IP-adres geven, zodat dit niet verandert.
Om te zien of mensen toegang hebben tot uw server, typt u het IP-adres van de proxy in een online statuschecker. U kunt ook het IP-adres van uw proxy in uw Minecraft-client typen en proberen deel te nemen. Als het niet werkt, zorg er dan voor dat de poorten open zijn in de beveiligingsgroepen van uw instantie.