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! Po prostu skonfiguruj 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 robi, to 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 otwarty na Internet. Nie jest trudno go uruchomić. 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.

Ale 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 nie tylko zatrzymałyby Twój serwer Minecraft, ale także mogłyby 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 Cloudlub Microsoft Azure – z których wszystkie mają 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 następnie zostać przekierowany, aby przekierować 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, która jest dostępna bezpłatnie z każdą usługą AWS (zwany 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 przeznaczony 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. Ale robi to 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 Wireshark.

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

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

Zmierzać do Amazon Web Services i załóż konto. Musisz podać dane swojej karty debetowej lub kredytowej, ale ma to na celu tylko uniemożliwić ludziom tworzenie 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 trochę opłat za przepustowość. Otrzymujesz 1 GB za darmo, ale za cokolwiek powyżej tej kwoty podatek 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ł trochę poczekać, aż AWS włączy EC2 dla twojego nowego konta.

Rodzaj

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

Kliknij

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

Wybierz

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”.

  Kliknij

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.

Poszukaj publicznego adresu IP IPv4 swojej instancji.

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”.

Kliknij

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.

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

Zapisz zmiany i aktualizacje zapory.

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

Pierwszą rzeczą, którą powinieneś zrobić, to cd 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ć, że:

ssh -i keyfile.pem [email protected]

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 mniam, 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”:

ZA

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 za pomocą 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 sprawdzanie 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.