Захистіть свій домашній сервер Minecraft від DDOS-атак за допомогою AWS

Хочете запустити сервер Minecraft з дому, не розкриваючи свою IP-адресу? Ти можеш! Просто налаштуйте безкоштовний проксі-сервер із Amazon Web Services, щоб захистити свій сервер від атак відмови в обслуговуванні. Ми покажемо вам, як.

Цей посібник підійде для будь-якого ігрового сервера, а не тільки для Minecraft. Все, що він робить, це проксі-трафік на певному порту. Вам просто потрібно змінити порт 25565 Minecraft на порт, на якому працює ваш ігровий сервер.

Як це працює?

Скажімо, ви хочете розмістити сервер Minecraft і відкрити його для доступу до Інтернету. Запустити його не так вже й важко. Їх легко встановити, вони використовують лише один потік обробки, і навіть сервери із серйозними модифікаціями не займають більше 2–3 ГБ оперативної пам’яті з кількома гравцями в мережі. Ви можете легко запустити сервер на старому ноутбуці або у фоновому режимі на настільному комп’ютері, а не платити комусь іншому за його розміщення.

Але для того, щоб люди могли підключитися до нього, ви повинні надати свою IP-адресу. Це створює кілька проблем. Це серйозна загроза безпеці, особливо якщо ваш маршрутизатор все ще має пароль адміністратора за замовчуванням. Це також залишає вас відкритими для розподілених атак відмови в обслуговуванні (DDOS), які не тільки зупинять ваш сервер Minecraft, але також можуть відключити ваш Інтернет, поки атака не вщухне.

Вам не потрібно дозволяти людям підключатися безпосередньо до вашого маршрутизатора. Замість цього ви можете орендувати невеликий ящик Linux у Amazon Web Services, Хмарна платформа Googleабо Microsoft Azure — усі вони мають безкоштовні рівні. Цей сервер не повинен бути достатньо потужним для розміщення сервера Minecraft — він просто пересилає з’єднання для вас. Це дозволяє видавати IP-адресу проксі-сервера замість вашої.

Скажімо, хтось хоче підключитися до вашого сервера, щоб вона ввела IP-адресу вашого проксі-сервера AWS у свій клієнт Minecraft. Пакет надсилається на проксі через порт 25565 (порт за замовчуванням Minecraft). Проксі-сервер налаштований на відповідність трафіку порту 25565 і пересилання його на домашній маршрутизатор. Це відбувається за лаштунками — людина, яка з’єднується, навіть не знає.

  Як грати у версію Minecraft Bedrock офлайн на Windows 10

Тоді ваш домашній маршрутизатор має бути перенаправлений портом, щоб переадресувати з’єднання далі на ваш справжній ПК. Ваш ПК запускає сервер і відповідає на пакет клієнта. Він пересилає його назад на проксі-сервер, а потім проксі-сервер переписує пакет, щоб він виглядав так, ніби проксі-сервер відповідає. Клієнт не підозрює, що це відбувається, і просто думає, що проксі є системою, на якій працює сервер.

Це як додати інший маршрутизатор перед сервером так само, як домашній маршрутизатор захищає ваш комп’ютер. Однак цей новий маршрутизатор працює на веб-сервісах Amazon і отримує повне пом’якшення DDOS на транспортному рівні, яке безкоштовно постачається з кожним сервісом AWS (називається AWS Shield). Якщо атака буде виявлена, вона пом’якшується автоматично, не заважаючи вашому серверу. Якщо з якоїсь причини його не зупинити, ви завжди можете вимкнути екземпляр і розірвати підключення до вашого будинку.

Для обробки проксі-сервера ви використовуєте утиліту sslh. Він призначений для мультиплексування протоколів; якщо ви хочете запустити SSH (зазвичай порт 22) і HTTPS (порт 443) на одному порту, у вас виникнуть проблеми. sslh розташовується попереду і перенаправляє порти на призначені програми, вирішуючи цю проблему. Але він робить це на рівні транспортного рівня, як і маршрутизатор. Це означає, що ми можемо зіставити трафік Minecraft і переслати його на ваш домашній сервер. sslh за замовчуванням є непрозорим, що означає, що він переписує пакети, щоб приховати вашу домашню IP-адресу. Це робить неможливим для когось понюхати це чимось подібним Wireshark.

Створіть і підключіться до нового VPS

Щоб почати, ви налаштували проксі-сервер. Це, безумовно, легше зробити, якщо у вас є досвід роботи з Linux, але це не обов’язково.

Направлятися до Веб-сервіси Amazon і створити обліковий запис. Ви повинні надати дані своєї дебетової або кредитної картки, але це лише для того, щоб люди не створювали дублікати рахунків; з вас не стягується плата за екземпляр, який ви створюєте. Термін дії безкоштовного рівня закінчується через рік, тому обов’язково вимкніть його після завершення роботи. Хмарна платформа Google має екземпляр f1-micro, доступний безкоштовно весь час, якщо ви хочете ним користуватися. Google також пропонує кредит у розмірі 300 доларів США на рік, який ви можете використати для запуску належного хмарного сервера.

  Як знайти і використовувати мідь в Minecraft

AWS трохи стягує плату за пропускну здатність. Ви отримуєте 1 ГБ безкоштовно, але ви платите податком 0,09 долара за ГБ за будь-що, що перевищує це. Насправді, ви, ймовірно, не переглянете це, але стежте за цим, якщо побачите на рахунку 20 центів.

Після створення облікового запису знайдіть «EC2». Це віртуальна серверна платформа AWS. Можливо, вам доведеться трохи почекати, поки AWS увімкнуть EC2 для вашого нового облікового запису.

На вкладці «Примірники» виберіть «Запустити екземпляр», щоб відкрити майстер запуску.

Натисніть

Ви можете вибрати за замовчуванням «Amazon Linux 2 AMI» або «Ubuntu Server 18.04 LTS» як ОС. Натисніть «Далі», і вам буде запропоновано вибрати тип екземпляра. Виберіть t2.micro, який є безкоштовним екземпляром рівня. Ви можете запускати цей екземпляр 24/7 на рівні безкоштовного AWS.

Виберіть

Виберіть «Переглянути та запустити». На наступній сторінці виберіть «Запуск», і ви побачите діалогове вікно нижче. Натисніть «Створити нову пару ключів», а потім натисніть «Завантажити пару ключів». Це ваш ключ доступу до екземпляра, тому не втрачайте його — помістіть його у папку «Документи» для збереження. Після завантаження натисніть «Запустити екземпляри».

  Натисніть

Ви повернетесь на сторінку екземплярів. Знайдіть публічну IP-адресу IPv4 вашого примірника, яка є адресою сервера. Якщо ви хочете, ви можете налаштувати AWS Elastic IP (який не змінюватиметься під час перезавантаження) або навіть безкоштовне доменне ім’я з dot.tk, якщо ви не хочете повертатися на цю сторінку, щоб знайти адресу.

Збережіть адресу на потім. Спочатку вам потрібно відредагувати брандмауер екземпляра, щоб відкрити порт 25565. На вкладці Групи безпеки виберіть групу, яку використовує ваш екземпляр (ймовірно, launch-wizard-1), а потім натисніть «Редагувати».

Натисніть кнопку

Додайте нове користувацьке правило TCP та встановіть діапазон портів на 25565. Джерело має бути встановлено на «Дуже» або 0.0.0.0/0.

Додайте нове користувацьке правило TCP та встановіть діапазон портів на 25565. Джерело має бути встановлено на 0.0.0.0/0 (або

Збережіть зміни та оновлення брандмауера.

Тепер ми перейдемо до SSH на сервер, щоб налаштувати проксі; якщо ви використовуєте macOS/Linux, ви можете відкрити свій термінал. Якщо ви використовуєте Windows, ви повинні використовувати клієнт SSH, наприклад PuTTY або встановіть підсистему Windows для Linux. Ми рекомендуємо останнє, оскільки воно більш послідовне.

Перше, що ви повинні зробити, це завантажити компакт-диск до папки документів, де знаходиться ключовий файл:

cd ~/Documents/

Якщо ви використовуєте підсистему Windows для Linux, ваш диск C знаходиться за адресою /mnt/c/, і вам потрібно перейти до папки документів:

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

Використовуйте прапор -i, щоб повідомити SSH, що ви хочете використовувати ключовий файл для підключення. Файл має розширення .pem, тому ви повинні включити це:

ssh -i keyfile.pem [email protected]

Замініть «0.0.0.0» своєю IP-адресою. Якщо ви створили сервер Ubuntu, а не AWS Linux, підключіться як користувач «ubuntu».

  Minecraft – Нескінченна вода: як

Вам потрібно надати доступ і побачити, що ваш командний рядок зміниться на підказку сервера.

Налаштуйте SSLH

Ви хочете встановити sslh з менеджера пакетів. Для AWS Linux це було б чудово, для Ubuntu ви використовуєте apt-get. Можливо, вам доведеться додати репозиторій EPEL в AWS Linux:

sudo yum install epel-release
sudo yum install sslh

Після встановлення відкрийте файл конфігурації за допомогою nano:

nano /etc/default/sslh

Змініть параметр RUN= на «так»:

А

Під останнім рядком 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, пошукайте «яка моя 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 і спробувати приєднатися. Якщо це не працює, переконайтеся, що порти відкриті в групах безпеки вашого екземпляра.