Chroń swój domowy serwer Minecraft przed atakami DDoS za pomocą AWS

Chcesz uruchomić serwer Minecraft z domu bez ujawniania swojego adresu IP? Możesz! Wystarczy skonfigurować bezpłatne proxy z Amazon Web Services, aby chronić swój serwer przed atakami typu „odmowa usługi”. Pokażemy Ci, jak to zrobić.

Ten przewodnik będzie działał na każdym serwerze gier, nie tylko na Minecrafcie. Wszystko, co musisz zrobić, to skonfigurować ruch proxy na określonym porcie. Musisz tylko zmienić port 25565 Minecrafta na dowolny port, na którym działa Twój serwer gier.

Jak to działa?

Powiedzmy, że chcesz hostować serwer Minecraft i mieć go otwartego na Internet. Nie jest trudno go uruchomić. Serwery są łatwe w instalacji, używają tylko jednego wątku przetwarzania, a nawet silnie zmodyfikowane serwery nie zajmują więcej niż 2 do 3 GB pamięci RAM z kilkoma graczami online. Możesz łatwo uruchomić serwer na starym laptopie lub w tle na komputerze stacjonarnym, zamiast płacić komuś innemu za hostowanie go za Ciebie.

Aby ludzie mogli się z nim połączyć, musisz podać swój adres IP. To stwarza kilka problemów. Jest to poważne zagrożenie bezpieczeństwa, zwłaszcza jeśli router nadal ma domyślne hasło administratora. Pozostawia Cię również otwartym na rozproszone ataki typu „odmowa usługi” (DDoS), które mogłyby zatrzymać Twój serwer Minecraft oraz odciąć Twój Internet, dopóki atak nie ustąpi.

Nie musisz pozwalać ludziom łączyć się bezpośrednio z routerem. Zamiast tego możesz wypożyczyć małe pudełko z systemem Linux od Amazon Web Services, Platforma Google Cloud lub Microsoft Azure – wszystkie te usługi oferują warstwy bezpłatne. Ten serwer nie musi być wystarczająco silny, aby hostować serwer Minecraft – po prostu przekazuje połączenie za Ciebie. Dzięki temu możesz podać adres IP serwera proxy zamiast własnego.

Powiedzmy, że ktoś chce połączyć się z Twoim serwerem, więc wpisuje adres IP Twojego serwera proxy AWS do swojego klienta Minecraft. Pakiet jest wysyłany do serwera proxy na porcie 25565 (domyślny port Minecrafta). Serwer proxy jest skonfigurowany tak, aby dopasować ruch na porcie 25565 i przekierować go do routera domowego. Dzieje się to za kulisami – osoba, która się łączy, nawet nie wie.

Twój domowy router musi zostać przekierowany, aby przesłać połączenie dalej do Twojego rzeczywistego komputera. Twój komputer uruchamia serwer i odpowiada na pakiet klienta. Przekazuje go z powrotem do proxy, a następnie proxy przepisuje pakiet, aby wyglądało na to, że proxy odpowiada. Klient nie ma pojęcia, że to się dzieje i po prostu myśli, że proxy to system, na którym działa serwer.

To tak, jakby dodać kolejny router przed serwerem, w taki sam sposób, w jaki router domowy chroni komputer. Ten nowy router działa jednak w Amazon Web Services i otrzymuje pełną ochronę przed atakami DDoS warstwy transportowej, dostępnej bezpłatnie z każdą usługą AWS (AWS Shield). W przypadku wykrycia ataku jest on automatycznie ograniczany, bez przeszkadzania serwerowi. Jeśli z jakiegoś powodu nie zostanie zatrzymany, zawsze możesz wyłączyć instancję i przerwać połączenie z domem.

Do obsługi proxy służy narzędzie o nazwie sslh. Jest przeznaczone do multipleksowania protokołów; jeśli chcesz uruchomić SSH (zwykle port 22) i HTTPS (port 443) na tym samym porcie, napotkasz problemy. sslh znajduje się z przodu i przekierowuje porty do zamierzonych aplikacji, rozwiązując ten problem. Działa na poziomie warstwy transportowej, tak jak router. Oznacza to, że możemy dopasować ruch z Minecrafta i przekazać go na Twój serwer domowy. sslh jest domyślnie nieprzezroczysty, co oznacza, że przepisuje pakiety, aby ukryć Twój domowy adres IP. To sprawia, że nikt nie może go wywęszyć za pomocą czegoś takiego jak Wireshark.

Utwórz i połącz się z nowym VPS

Aby rozpocząć, skonfiguruj serwer proxy. Jest to zdecydowanie łatwiejsze, jeśli masz pewne doświadczenie w Linuksie, ale nie jest to wymagane.

Przejdź do Amazon Web Services i załóż konto. Musisz podać dane swojej karty debetowej lub kredytowej, ale ma to na celu tylko uniemożliwienie tworzenia duplikatów kont; nie płacisz za instancję, którą tworzysz. Poziom bezpłatny wygasa po roku, więc pamiętaj, aby go wyłączyć, gdy skończysz. Platforma Google Cloud ma instancję f1-micro dostępną za darmo przez cały czas, jeśli wolisz z niej korzystać. Google oferuje również kredyt w wysokości 300 USD na rok, który możesz wykorzystać do uruchomienia odpowiedniego serwera w chmurze.

AWS pobiera pewne opłaty za przepustowość. Otrzymujesz 1 GB za darmo, ale za cokolwiek powyżej tej kwoty opłata wynosi 0,09 USD za GB. Realistycznie rzecz biorąc, prawdopodobnie nie przejdziesz przez to, ale miej oko na to, jeśli zobaczysz 20-centową opłatę na rachunku.

Po utworzeniu konta wyszukaj „EC2”. To wirtualna platforma serwerowa AWS. Być może będziesz musiał poczekać, aż AWS włączy EC2 dla Twojego nowego konta.

Z zakładki „Instances” wybierz „Launch Instance”, aby wywołać kreatora uruchamiania.

Jako system operacyjny możesz wybrać domyślny „Amazon Linux 2 AMI” lub „Ubuntu Server 18.04 LTS”. Kliknij dalej, a następnie wybierz typ instancji. Wybierz t2.micro, czyli wolną instancję warstwy. Możesz uruchomić tę instancję 24/7 w ramach bezpłatnej warstwy AWS.

Wybierz „Przejrzyj i uruchom”. Na następnej stronie wybierz „Uruchom”, a poniżej pojawi się okno dialogowe. Kliknij „Utwórz nową parę kluczy”, a następnie kliknij „Pobierz parę kluczy”. To jest Twój klucz dostępu do instancji, więc nie zgub go – umieść go w folderze Dokumenty w celu bezpiecznego przechowywania. Po pobraniu kliknij „Uruchom instancje”.

Wrócisz na stronę instancji. Poszukaj publicznego adresu IP IPv4 swojej instancji, który jest adresem serwera. Jeśli chcesz, możesz ustawić AWS Elastic IP (który nie zmieni się po ponownym uruchomieniu) lub nawet bezpłatną nazwę domeny z dot.tk, jeśli nie chcesz wracać do tej strony w celu znalezienia adresu.

Zapisz adres na później. Najpierw musisz zmodyfikować zaporę sieciową instancji, aby otworzyć port 25565. Na karcie Grupy zabezpieczeń wybierz grupę, z której korzysta Twoja instancja (prawdopodobnie uruchom kreator-1), a następnie kliknij „Edytuj”.

Dodaj nową niestandardową regułę TCP i ustaw zakres portów na 25565. Źródło powinno być ustawione na „Anywhere” lub 0.0.0.0/0.

Zapisz zmiany i aktualizacje zapory.

Teraz przechodzimy do SSH na serwer, aby skonfigurować proxy. Jeśli korzystasz z macOS lub Linux, możesz otworzyć terminal. Jeśli korzystasz z systemu Windows, musisz użyć klienta SSH, na przykład PuTTY lub zainstalować podsystem Windows dla systemu Linux. Zalecamy to drugie, ponieważ jest bardziej spójne.

Pierwszą rzeczą, którą powinieneś zrobić, to przejść do folderu z dokumentami, w którym znajduje się plik klucza:

cd ~/Documents/

Jeśli używasz podsystemu Windows dla systemu Linux, Twój dysk C znajduje się w /mnt/c/ i musisz przejść do folderu dokumentów:

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

Użyj flagi -i, aby poinformować SSH, że chcesz użyć pliku klucza do połączenia. Plik ma rozszerzenie .pem, więc należy dodać jego nazwę:

ssh -i keyfile.pem ec2-user@0.0.0.0

Zastąp „0.0.0.0” swoim adresem IP. Jeśli masz serwer Ubuntu zamiast AWS Linux, połącz się jako użytkownik „ubuntu”.

Powinieneś otrzymać dostęp i zobaczyć, jak wiersz poleceń zmienia się w monit serwera.

Skonfiguruj SSLH

Chcesz zainstalować sslh z menedżera pakietów. W przypadku AWS Linux byłoby to yum, w przypadku Ubuntu używasz apt-get. Może być konieczne dodanie repozytorium EPEL w systemie AWS Linux:

sudo yum install epel-release
sudo yum install sslh

Po zainstalowaniu otwórz plik konfiguracyjny za pomocą nano:

nano /etc/default/sslh

Zmień parametr RUN= na „tak”:

Pod ostatnią linią DAEMON wpisz:

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

Zastąp „your_ip_address” swoim domowym adresem IP. Jeśli nie znasz swojego adresu IP, wyszukaj „Jaki jest mój adres IP?” w Google – tak, poważnie.

Ta konfiguracja sprawia, że proxy sslh nasłuchuje na wszystkich urządzeniach sieciowych na porcie 25565. Zastąp to innym numerem portu, jeśli Twój klient Minecraft używa czegoś innego lub grasz w inną grę. Zwykle w przypadku sslh dopasowujesz różne protokoły i kierujesz je do różnych miejsc. Jednak dla naszych celów chcemy po prostu dopasować cały możliwy ruch i przekazać go na Twój adres IP: 25565.

Naciśnij klawisze Control + X, a następnie Y, aby zapisać plik. Wpisz następujące polecenie, aby włączyć sslh:

sudo systemctl enable sslh
sudo systemctl start sslh

Jeśli systemctl nie jest dostępny w Twoim systemie, możesz zamiast tego użyć polecenia service.

sslh powinien teraz działać. Upewnij się, że router domowy przekierowuje port i wysyła 25565 ruch do komputera. Możesz chcieć nadać swojemu komputerowi statyczny adres IP, aby to się nie zmieniło.

Aby sprawdzić, czy ludzie mogą uzyskać dostęp do Twojego serwera, wpisz adres IP serwera proxy w pliku sprawdzania statusu online. Możesz także wpisać adres IP swojego serwera proxy w swoim kliencie Minecraft i spróbować dołączyć. Jeśli to nie zadziała, upewnij się, że porty są otwarte w grupach zabezpieczeń Twojej instancji.


newsblog.pl