Protejați-vă serverul Minecraft de acasă de atacurile DDOS cu AWS

Vrei să gestionezi un server Minecraft de acasă, fără a-ți expune adresa IP? Ei bine, este posibil! Prin configurarea unui proxy gratuit folosind Amazon Web Services, poți proteja serverul tău împotriva atacurilor de tip refuz de serviciu (DoS). În continuare, îți vom explica cum să faci acest lucru.

Acest ghid este aplicabil pentru orice server de jocuri, nu doar pentru Minecraft. Practic, se realizează o redirecționare a traficului printr-un anumit port. Astfel, trebuie doar să înlocuiești portul 25565, specific Minecraft, cu portul pe care rulează serverul tău de joc.

Cum funcționează acest mecanism?

Să presupunem că dorești să găzduiești un server Minecraft și să-l faci accesibil online. Nu este dificil să configurezi unul. Instalarea este simplă, consumă resurse minime de procesare și chiar și serverele modificate nu necesită mai mult de 2-3 GB de RAM pentru câțiva jucători. Poți rula cu ușurință un server pe un laptop vechi sau în fundal pe computerul tău, în loc să plătești pentru găzduire.

Însă, pentru ca alți jucători să se poată conecta, trebuie să le oferi adresa ta IP. Aici apar câteva probleme. În primul rând, este un risc major de securitate, mai ales dacă routerul are încă parola implicită de administrator. În al doilea rând, devii vulnerabil la atacuri DDoS (Distributed Denial of Service), care nu doar că ar opri serverul tău Minecraft, dar ar putea întrerupe și conexiunea ta la internet, până când atacul încetează.

Soluția este să nu permiți conexiuni directe la routerul tău. În schimb, poți utiliza un server Linux virtual de la Amazon Web Services, Google Cloud Platform sau Microsoft Azure, toate oferind planuri gratuite. Acest server nu trebuie să fie foarte performant, ci doar să redirecționeze conexiunile. În acest fel, oferi adresa IP a serverului proxy în loc de adresa ta reală.

Să luăm exemplul unui jucător care dorește să se conecteze la serverul tău. Acesta introduce adresa IP a serverului proxy AWS în clientul său Minecraft. Un pachet de date este trimis către proxy pe portul 25565 (portul standard Minecraft). Serverul proxy este configurat să intercepteze traficul de pe acest port și să-l redirecționeze către routerul tău de acasă. Toate acestea se întâmplă în fundal, jucătorul nefiind conștient de redirecționare.

Routerul tău de acasă trebuie, la rândul său, să redirecționeze conexiunea către computerul care găzduiește serverul Minecraft. Calculatorul tău răspunde la pachetul de date primit. Acesta trimite răspunsul înapoi către proxy, care reformatează pachetul astfel încât să pară că el este cel care răspunde. Jucătorul nu își dă seama de complexitatea operațiunii și crede că se conectează direct la serverul proxy.

Este ca și cum ai adăuga un router suplimentar în fața serverului, similar modului în care routerul de acasă îți protejează computerul. Acest router nou, însă, funcționează pe Amazon Web Services și beneficiază de protecție DDOS la nivelul transportului, oferită gratuit de AWS (numită AWS Shield). În cazul unui atac, acesta este atenuat automat, fără a afecta funcționarea serverului. Dacă atacul nu este oprit, poți oricând să închizi instanța și să întrerupi conexiunea către rețeaua ta de acasă.

Pentru a administra proxy-ul, se folosește utilitarul sslh. Acesta este proiectat pentru multiplexarea protocolului. De exemplu, dacă dorești să rulezi SSH (portul 22) și HTTPS (portul 443) pe același port, ar apărea conflicte. sslh acționează ca intermediar, redirecționând porturile către aplicațiile potrivite, eliminând astfel problema. Funcționând la nivelul transportului, similar unui router, sslh poate redirecționa traficul Minecraft către serverul tău de acasă. În plus, sslh este în mod implicit netransparent, adică rescrie pachetele pentru a ascunde adresa ta IP de acasă, făcând imposibilă interceptarea acesteia cu instrumente precum Wireshark.

Crearea și conectarea la un VPS nou

Primul pas este să configurezi serverul proxy. Această operațiune este mai simplă dacă ai experiență cu Linux, dar nu este obligatoriu.

Accesează site-ul Amazon Web Services și creează un cont. Vei avea nevoie de datele cardului de debit sau credit, dar această informație este cerută doar pentru a preveni crearea de conturi multiple. Nu vei fi taxat pentru instanța virtuală creată, cel puțin în perioada de probă. Nivelul gratuit expiră după un an, așa că asigură-te că dezactivezi instanța când nu mai ai nevoie de ea. Google Cloud Platform oferă o instanță f1-micro gratuită pe termen nelimitat. De asemenea, Google oferă un credit de 300 USD valabil un an, pe care îl poți folosi pentru a rula un server cloud mai performant.

AWS percepe o taxă mică pentru lățimea de bandă utilizată, oferind 1 GB gratuit, dar taxând 0,09 USD per GB pentru consumul suplimentar. De obicei, nu vei depăși această limită, dar monitorizează-ți factura pentru a evita surprizele.

După ce ai creat contul, caută serviciul „EC2”. Aceasta este platforma de servere virtuale de la AWS. Este posibil să fie nevoie să aștepți puțin pentru ca EC2 să fie activat pentru noul tău cont.

În secțiunea „Instanțe”, alege „Lansare instanță” pentru a iniția procesul de creare.

Poți selecta ca sistem de operare „Amazon Linux 2 AMI” sau „Ubuntu Server 18.04 LTS”. Alege „Următorul” și vei fi solicitat să selectezi tipul instanței. Alege t2.micro, care este instanța disponibilă în cadrul nivelului gratuit. Poți rula această instanță 24/7 în condițiile nivelului gratuit AWS.

Alege „Revizuire și lansare”. Pe pagina următoare, selectează „Lansare” și vei vedea un dialog. Alege „Creează o nouă pereche de chei”, apoi „Descarcă pereche de chei”. Aceasta este cheia ta de acces la instanță, așa că păstreaz-o în siguranță, de preferință în folderul Documente. După descărcare, selectează „Lansare instanțe”.

Vei fi redirecționat la pagina de instanțe. Localizează adresa IP publică IPv4 a instanței tale, care reprezintă adresa serverului tău. Opțional, poți configura un IP AWS Elastic (care nu se va schimba la reporniri) sau un nume de domeniu gratuit de la dot.tk, pentru a evita să revii la această pagină de fiecare dată pentru a afla adresa.

Salvează adresa pentru a o folosi mai târziu. Următorul pas este să modifici firewall-ul instanței, deschizând portul 25565. În secțiunea „Grupuri de securitate”, selectează grupul folosit de instanța ta (probabil launch-wizard-1) și alege „Editare”.

Adaugă o nouă regulă TCP personalizată și setează intervalul de porturi la 25565. Sursa ar trebui setată la „Oriunde” sau 0.0.0.0/0.

Salvează modificările și actualizează firewall-ul.

Acum vom accesa serverul prin SSH pentru a configura proxy-ul. Dacă folosești macOS sau Linux, poți deschide terminalul. Dacă folosești Windows, ai nevoie de un client SSH, cum ar fi PuTTY, sau poți instala Subsistemul Windows pentru Linux. Recomandăm ultima opțiune, fiind mai stabilă.

Primul pas este să accesezi folderul Documente, unde se află fișierul cheie:

cd ~/Documents/

Dacă folosești Subsistemul Windows pentru Linux, unitatea C se află la /mnt/c/, deci trebuie să accesezi folderul Documente în modul următor:

cd /mnt/c/Users/numele_tau_de_utilizator/Documents/

Folosește parametrul -i pentru a indica SSH că vrei să folosești fișierul cheie pentru conectare. Fișierul are extensia .pem, așadar ar trebui să introduci următorul cod:

ssh -i fisierul_cheie.pem [email protected]

Înlocuiește „0.0.0.0” cu adresa ta IP. Dacă ai creat un server Ubuntu, în loc de AWS Linux, conectează-te ca utilizator „ubuntu”.

Dacă totul este în regulă, ar trebui să obții acces și să vezi că promptul de comandă se schimbă în promptul serverului.

Configurarea SSLH

Trebuie să instalezi sslh din managerul de pachete. Pentru AWS Linux, se folosește yum, iar pentru Ubuntu, apt-get. Este posibil să trebuiască să adaugi depozitul EPEL pe AWS Linux:

sudo yum install epel-release
sudo yum install sslh

După instalare, deschide fișierul de configurare cu nano:

nano /etc/default/sslh

Modifică parametrul RUN= în „yes”:

Sub linia DAEMON final, introdu următoarea linie:

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

Înlocuiește „adresa_ta_ip” cu adresa IP a rețelei tale de acasă. Dacă nu îți cunoști adresa IP, caută pe Google „Care este adresa mea IP?”.

Această configurare face ca proxy-ul sslh să monitorizeze toate interfețele de rețea pe portul 25565. Înlocuiește acest port cu un alt număr, dacă clientul tău Minecraft folosește alt port, sau dacă rulezi alt joc. De obicei, sslh permite direcționarea diferitelor protocoale către locații diferite. În cazul nostru, vrem să redirecționăm tot traficul posibil către adresa_ta_ip:25565.

Apasă Control+X, apoi Y, pentru a salva fișierul. Introdu următoarele comenzi pentru a activa sslh:

sudo systemctl enable sslh
sudo systemctl start sslh

Dacă systemctl nu este disponibil pe sistemul tău, este posibil să trebuiască să folosești comanda service.

sslh ar trebui să funcționeze acum. Asigură-te că routerul tău de acasă redirecționează porturile, trimițând traficul de pe portul 25565 către computerul tău. Poate fi util să oferi computerului o adresă IP statică, astfel încât să nu se schimbe.

Pentru a verifica dacă serverul tău este accesibil, introdu adresa IP a proxy-ului într-un verificator de stare online. De asemenea, poți introduce adresa IP a proxy-ului în clientul tău Minecraft și să încerci să te conectezi. Dacă nu funcționează, asigură-te că porturile sunt deschise în grupurile de securitate ale instanței tale.