Бажаєте запустити власний сервер Minecraft вдома, не показуючи свою справжню IP-адресу? Це цілком можливо! Ви можете легко налаштувати безкоштовний проксі-сервер за допомогою Amazon Web Services, що гарантуватиме захист вашого сервера від DDoS-атак. Давайте розглянемо, як це зробити.
Цей посібник є універсальним і підходить не тільки для Minecraft, а й для будь-яких інших ігрових серверів. Фактично, він просто перенаправляє трафік, що надходить на певний порт. Вам потрібно буде лише змінити стандартний порт Minecraft 25565 на порт, який використовує ваш ігровий сервер.
Як це працює?
Уявіть, що ви хочете створити власний сервер Minecraft та зробити його доступним для гравців в інтернеті. Запустити його не так вже й складно. Встановлення сервера – це проста процедура, він використовує лише одне ядро процесора, а навіть модифіковані сервери не потребують більше 2-3 ГБ оперативної пам’яті при кількох гравцях онлайн. Ви з легкістю можете розмістити сервер на старому ноутбуці або запустити його у фоновому режимі на своєму настільному комп’ютері, замість того, щоб платити за хостинг.
Проте, щоб інші могли приєднатися до вашого сервера, ви повинні надати їм свою IP-адресу. Це може спричинити деякі проблеми. Перш за все, це питання безпеки, особливо якщо ваш роутер досі має стандартний пароль адміністратора. Крім того, ви стаєте вразливими до DDoS-атак, які можуть не тільки вимкнути ваш сервер Minecraft, але й взагалі відключити ваш інтернет до закінчення атаки.
Замість того, щоб дозволяти гравцям підключатися безпосередньо до вашого роутера, ви можете скористатися невеликим сервером Linux в Amazon Web Services, Google Cloud Platform або Microsoft Azure – всі вони пропонують безкоштовні тарифні плани. Цей сервер не повинен бути потужним, щоб запускати Minecraft, він просто перенаправлятиме з’єднання. Таким чином, ви зможете надавати IP-адресу проксі-сервера, а не свою власну.
Наприклад, гравець хоче підключитися до вашого сервера, тому вводить IP-адресу вашого проксі-сервера AWS у клієнт Minecraft. Пакет даних відправляється на проксі-сервер через порт 25565 (стандартний порт Minecraft). Проксі налаштований на перенаправлення вхідного трафіку з порту 25565 на ваш домашній роутер. Все це відбувається у фоновому режимі, і гравець навіть не здогадується про наявність проксі.
Далі ваш роутер перенаправляє з’єднання на ваш справжній комп’ютер. Комп’ютер запускає сервер та відповідає на пакет клієнта. Потім він відправляє його назад на проксі-сервер, а проксі переписує пакет так, щоб він виглядав, ніби відповідає сам проксі-сервер. Клієнт не помічає підміни і вважає, що проксі-сервер і є сервером гри.
Це нагадує встановлення ще одного роутера перед вашим сервером, подібно до того, як ваш домашній роутер захищає ваш комп’ютер. Але цей додатковий роутер працює на серверах Amazon Web Services та має вбудований захист від DDoS атак на транспортному рівні, який є безкоштовним для кожного сервісу AWS (AWS Shield). Якщо буде виявлена атака, вона автоматично пом’якшиться, не зачіпаючи ваш сервер. Якщо з якихось причин атака не буде зупинена, ви завжди зможете вимкнути екземпляр та розірвати з’єднання зі своїм домом.
Для обробки проксі-сервера ви скористаєтесь утилітою sslh. Вона призначена для мультиплексування протоколів. Наприклад, якщо ви хочете запустити SSH (порт 22) і HTTPS (порт 443) на одному порту, можуть виникнути складнощі. sslh розміщується попереду та перенаправляє порти на відповідні програми, вирішуючи цю проблему. Проте, вона працює на транспортному рівні, як і роутер. Це означає, що ми можемо перенаправляти трафік Minecraft на ваш домашній сервер. За замовчуванням sslh є непрозорим, тобто він переписує пакети, щоб приховати вашу домашню IP-адресу. Це унеможливлює її виявлення за допомогою таких інструментів як Wireshark.
Створення та підключення до нового VPS
Для початку вам потрібно налаштувати проксі-сервер. Це буде простіше зробити, якщо у вас є досвід роботи з Linux, але це не є обов’язковою вимогою.
Перейдіть на сайт Amazon Web Services та створіть обліковий запис. Вам потрібно буде вказати дані своєї дебетової або кредитної картки, але це лише для того, щоб запобігти створенню кількох облікових записів. За використання створеного екземпляру плата стягуватися не буде. Безкоштовний тарифний план діє протягом року, тож після закінчення роботи обов’язково вимкніть екземпляр. Google Cloud Platform має екземпляр f1-micro, який є безкоштовним постійно, якщо ви бажаєте скористатися ним. Google також пропонує бонус у розмірі 300 доларів США на рік, який ви можете витратити на використання хмарних серверів.
AWS стягує невелику плату за використання пропускної здатності. Вам надається 1 ГБ безкоштовно, а все, що понад це, оплачується за тарифом 0.09 доларів за ГБ. З високою ймовірністю ви не перевищите цей ліміт, але все ж таки слідкуйте за цим показником.
Після створення облікового запису знайдіть “EC2”. Це платформа AWS для віртуальних серверів. Можливо, вам доведеться трохи почекати, поки AWS активує EC2 для вашого нового облікового запису.
На вкладці “Інстанції” виберіть “Запустити інстанцію”, щоб відкрити майстер запуску.
Ви можете обрати “Amazon Linux 2 AMI” або “Ubuntu Server 18.04 LTS” як операційну систему. Натисніть “Далі” і вам буде запропоновано обрати тип інстанції. Оберіть t2.micro, який є безкоштовним інстансом. Ви можете використовувати цей інстанс цілодобово за безкоштовним планом AWS.
Виберіть “Переглянути та запустити”. На наступній сторінці натисніть “Запустити” і побачите діалогове вікно. Натисніть “Створити нову пару ключів”, а потім “Завантажити пару ключів”. Це ваш ключ доступу до інстансу, тому не втрачайте його – помістіть його до папки “Документи” для безпечного зберігання. Після завантаження натисніть “Запустити інстанції”.
Ви повернетесь на сторінку інстанцій. Знайдіть публічну IP-адресу IPv4 вашого інстанса – це буде адреса вашого сервера. При бажанні, ви можете налаштувати AWS Elastic IP (який не змінюватиметься при перезавантаженні) або навіть отримати безкоштовне доменне ім’я від dot.tk, якщо ви не хочете повертатися на цю сторінку щоразу для пошуку адреси.
Запам’ятайте цю адресу. Далі вам потрібно відредагувати брандмауер екземпляра, щоб відкрити порт 25565. На вкладці “Групи безпеки” оберіть групу, яку використовує ваш інстанс (зазвичай launch-wizard-1) та натисніть “Редагувати”.
Додайте нове користувацьке TCP-правило та встановіть діапазон портів на 25565. Джерело має бути встановлено на “Усюди” або 0.0.0.0/0.
Збережіть зміни та оновіть брандмауер.
Тепер потрібно підключитися до сервера через SSH, щоб налаштувати проксі. Якщо ви використовуєте macOS/Linux, ви можете відкрити свій термінал. Якщо ви використовуєте Windows, вам необхідно скористатися SSH клієнтом, таким як PuTTY або встановити Підсистему Windows для Linux. Ми рекомендуємо останній варіант, оскільки він більш надійний.
Перше, що потрібно зробити, це перейти до папки Documents, де знаходиться ваш ключовий файл:
cd ~/Documents/
Якщо ви використовуєте Підсистему Windows для Linux, ваш диск C знаходиться за адресою /mnt/c/, і вам потрібно перейти до папки Documents:
cd /mnt/c/Users/username/Documents/
Використовуйте флаг -i, щоб повідомити SSH, що ви хочете використовувати ключовий файл для підключення. Файл має розширення .pem, тому вам потрібно включити це:
ssh -i keyfile.pem [email protected]
Замініть “0.0.0.0” на IP-адресу вашого сервера. Якщо ви створили сервер Ubuntu замість AWS Linux, підключайтеся як користувач “ubuntu”.
Вам має бути наданий доступ, і ви побачите, що командний рядок зміниться на підказку сервера.
Налаштування SSLH
Вам потрібно встановити sslh через менеджер пакетів. Для AWS Linux використовується yum, для Ubuntu – apt-get. Можливо, вам доведеться додати репозиторій EPEL до AWS Linux:
sudo yum install epel-release
sudo yum install sslh
Після встановлення відкрийте файл конфігурації за допомогою nano:
nano /etc/default/sslh
Змініть параметр RUN= на “yes”:
Під останнім рядком DAEMON введіть наступне:
DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid
Замініть “your_ip_address” на вашу домашню IP-адресу. Якщо ви не знаєте її, введіть запит “яка моя IP адреса?” в Google.
З цією конфігурацією проксі-сервер sslh буде прослуховувати всі мережеві пристрої на порту 25565. Замініть його на інший номер порту, якщо ваш клієнт Minecraft використовує щось інше, або ви граєте в іншу гру. Зазвичай, sslh дозволяє перенаправляти різні протоколи у різні місця. Але у нашому випадку, ми просто хочемо перенаправляти весь трафік на your_ip_address:25565.
Натисніть Control+X, а потім Y, щоб зберегти файл. Введіть наступне, щоб увімкнути sslh:
sudo systemctl enable sslh
sudo systemctl start sslh
Якщо systemctl недоступний у вашій системі, можливо, потрібно використати команду service.
sslh тепер має працювати. Переконайтеся, що ваш домашній роутер перенаправляє порти, а трафік з порту 25565 надходить на ваш комп’ютер. Ви можете призначити своєму комп’ютеру статичну IP-адресу, щоб вона не змінювалась.
Щоб перевірити, чи доступний ваш сервер, введіть IP-адресу проксі-сервера в поле онлайн перевірки статусу. Ви також можете ввести IP-адресу вашого проксі-сервера у клієнт Minecraft та спробувати підключитися. Якщо це не працює, переконайтеся, що необхідні порти відкриті в групах безпеки вашого інстанса.