Skydda din Minecraft-hemserver från DDOS-attacker med AWS

Vill du köra en Minecraft-server hemifrån utan att avslöja din IP-adress? Du kan! Ställ bara in en gratis proxy med Amazon Web Services för att skydda din server från överbelastningsattacker. Vi visar dig hur.

Den här guiden fungerar för alla spelservrar, inte bara Minecraft. Allt det gör är proxytrafik på en specifik port. Du behöver bara ändra Minecrafts port 25565 till vilken port din spelserver körs på.

Hur fungerar detta?

Låt oss säga att du vill vara värd för en Minecraft-server och ha den öppen mot internet. Det är inte så svårt att köra en. De är enkla att installera, använder bara en bearbetningstråd, och även de kraftigt modderade servrarna tar inte mer än 2 till 3 GB RAM med några få spelare online. Du kan enkelt köra en server på en gammal bärbar dator eller i bakgrunden på din stationära dator istället för att betala någon annan för att vara värd för den åt dig.

Men för att folk ska kunna ansluta till det måste du lämna ut din IP-adress. Detta ger några problem. Det är en stor säkerhetsrisk, särskilt om din router fortfarande har standardadministratörslösenordet. Det lämnar dig också öppen för distribuerade denial-of-service (DDOS)-attacker, som inte bara skulle stoppa din Minecraft-server utan också kan stänga av ditt internet tills attacken avtar.

Du behöver inte tillåta andra att ansluta direkt till din router. Istället kan du hyra en liten Linux-box från Amazon Web Services, Google Cloud Platform, eller Microsoft Azure – som alla har gratis nivåer. Den här servern behöver inte vara tillräckligt stark för att vara värd för Minecraft-servern – den vidarebefordrar bara anslutningen åt dig. Detta gör att du kan ge ut IP-adressen till proxyservern istället för din egen.

Säg att någon vill ansluta till din server, så hon skriver in IP-adressen för din AWS-proxy i sin Minecraft-klient. Ett paket skickas till proxyn på port 25565 (Minecrafts standardport). Proxyn är konfigurerad att matcha port 25565-trafik och vidarebefordra den till din hemrouter. Detta händer bakom kulisserna – personen som ansluter vet inte ens.

Din hemrouter måste sedan portforwardas för att vidarebefordra anslutningen till din faktiska PC. Din PC kör servern och svarar på klientens paket. Den vidarebefordrar det tillbaka till proxyn och sedan skriver proxyn om paketet så att det ser ut som om proxyn är den som svarar. Klienten har ingen aning om att detta händer och tror helt enkelt att proxyn är systemet som kör servern.

Det är som att lägga till en annan router framför servern på samma sätt som din hemrouter skyddar din dator. Den här nya routern körs dock på Amazon Web Services och får den fullständiga transportskiktets DDOS-reducering som kommer gratis med varje AWS-tjänst (kallas AWS Shield). Om en attack upptäcks, mildras den automatiskt utan att störa din server. Om den inte stoppas av någon anledning kan du alltid stänga av instansen och bryta anslutningen till ditt hus.

För att hantera proxyn använder du ett verktyg som heter sslh. Den är avsedd för protokollmultiplexering; om du ville köra SSH (vanligtvis port 22) och HTTPS (port 443) på samma port, skulle du stöta på problem. sslh sitter framför och omdirigerar portar till de avsedda programmen, vilket löser detta problem. Men det gör det på transportlagernivå, precis som en router. Det betyder att vi kan matcha Minecraft-trafik och vidarebefordra den till din hemmaserver. sslh är som standard icke-transparent, vilket betyder att den skriver om paket för att dölja din hemadress. Detta gör det omöjligt för någon att nosa upp det med något liknande Wireshark.

Skapa och anslut till en ny VPS

För att komma igång har du konfigurerat proxyservern. Detta är definitivt lättare att göra om du har lite Linux-erfarenhet, men det är inte nödvändigt.

Bege dig till Amazon webbtjänster och skapa ett konto. Du måste ange din betal- eller kreditkortsinformation, men detta är bara för att förhindra att människor gör dubbletter av konton; du debiteras inte för den instans du skapar. Gratisnivån går ut efter ett år, så se till att du stänger av den när du är klar med den. Google Cloud Platform har en f1-micro-instans tillgänglig gratis hela tiden om du hellre vill använda den. Google erbjuder också en kredit på 300 $ för ett år, som du faktiskt kan använda för att köra en riktig molnserver.

AWS tar lite betalt för bandbredd. Du får 1 GB gratis, men du beskattas 0,09 USD per GB för allt utöver det. Realistiskt sett kommer du förmodligen inte att gå över detta, men håll ett öga på det om du ser en avgift på 20 cent på din faktura.

När du har skapat ditt konto, sök efter ”EC2.” Detta är AWS virtuella serverplattform. Du kanske måste vänta lite på att AWS ska aktivera EC2 för ditt nya konto.

Från fliken ”Instanser”, välj ”Launch Instance” för att få upp startguiden.

Klick

Du kan välja standard ”Amazon Linux 2 AMI” eller ”Ubuntu Server 18.04 LTS” som operativsystem. Klicka på nästa och du blir ombedd att välja instanstyp. Välj t2.micro, som är den kostnadsfria instansen. Du kan köra den här instansen 24/7 under AWS:s gratisnivå.

Välj

Välj ”Granska och starta.” På nästa sida väljer du ”Starta” och du ser dialogrutan nedan. Klicka på ”Skapa ett nytt nyckelpar” och klicka sedan på ”Ladda ner nyckelpar.” Det här är din åtkomstnyckel till instansen, så tappa den inte – placera den i mappen Dokument för förvaring. När den har laddats ner klickar du på ”Starta instanser.”

  Klick

Du kommer tillbaka till instanssidan. Leta efter din instanss IPv4 Public IP, som är adressen till servern. Om du vill kan du ställa in en AWS Elastic IP (som inte ändras vid omstarter), eller till och med ett gratis domännamn med dot.tkom du inte vill fortsätta komma tillbaka till den här sidan för att hitta adressen.

Spara adressen för senare. Först måste du redigera instansens brandvägg för att öppna port 25565. Från fliken Säkerhetsgrupper väljer du gruppen som din instans använder (förmodligen launch-wizard-1), och klicka sedan på ”Redigera”.

Klicka på

Lägg till en ny anpassad TCP-regel och ställ in portintervallet till 25565. Källan bör ställas in på ”Var som helst” eller 0.0.0.0/0.

Lägg till en ny anpassad TCP-regel och ställ in portintervallet till 25565. Källan ska vara inställd på 0.0.0.0/0 (eller

Spara ändringarna och brandväggen uppdateras.

Vi går nu till SSH till servern för att ställa in proxyn; om du använder macOS/Linux kan du öppna din terminal. Om du använder Windows måste du använda en SSH-klient, som Spackel eller installera Windows Subsystem för Linux. Vi rekommenderar det senare, eftersom det är mer konsekvent.

Det första du bör göra är att cd till din dokumentmapp där nyckelfilen är:

cd ~/Documents/

Om du använder Windows Subsystem för Linux finns din C-enhet på /mnt/c/, och du måste cd ner till din dokumentmapp:

cd /mnt/c/Users/username/Documents/

Använd flaggan -i för att tala om för SSH att du vill använda nyckelfilen för att ansluta. Filen har filtillägget .pem, så du bör inkludera följande:

ssh -i keyfile.pem [email protected]

Ersätt ”0.0.0.0” med din IP-adress. Om du skapade en Ubuntu-server istället för AWS Linux, anslut som användare ”ubuntu.”

Du bör beviljas åtkomst och se din kommandotolk ändras till serverns prompt.

Konfigurera SSLH

Du vill installera sslh från pakethanteraren. För AWS Linux skulle det vara yum, för Ubuntu använder du apt-get. Du kanske måste lägga till EPEL-förvaret på AWS Linux:

sudo yum install epel-release
sudo yum install sslh

När den är installerad öppnar du konfigurationsfilen med nano:

nano /etc/default/sslh

Ändra parametern RUN= till ”yes”:

A

Under den sista DAEMON-raden skriver du följande:

DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid

Ersätt ”din_ip_adress” med din hem-IP-adress. Om du inte känner till din IP, sök ”Vad är min IP-adress?” på Google – ja, seriöst.

Denna konfiguration gör att sslh-proxyn lyssnar på alla nätverksenheter på port 25565. Ersätt detta med ett annat portnummer om din Minecraft-klient använder något annat, eller om du spelar ett annat spel. Vanligtvis, med sslh, matchar du olika protokoll och dirigerar dem till olika platser. För våra syften vill vi dock helt enkelt matcha all möjlig trafik och vidarebefordra den till din_ip_adress:25565.

Tryck på Ctrl+X och sedan på Y för att spara filen. Skriv följande för att aktivera sslh:

sudo systemctl enable sslh
sudo systemctl start sslh

Om systemctl inte är tillgängligt på ditt system kan du behöva använda servicekommandot istället.

sslh bör nu köras. Se till att din hemrouter vidarebefordrar portar och skickar 25565-trafik till din dator. Du kanske vill ge din dator en statisk IP-adress så att detta inte ändras.

För att se om folk kan komma åt din server, skriv proxyns IP-adress i en onlinestatuskontroll. Du kan också skriva in din proxys IP i din Minecraft-klient och försöka gå med. Om det inte fungerar, se till att portarna är öppna i din instanss säkerhetsgrupper.