Привет. Хочу сейчас поговорить о том, как защитить свой сервер Майнкрафт от внешнего подключения не через прокси севрер.
Это очень опасная вещь, так как игрок сможет подключаться например напрямую к серверу выживания обходя сервер авторизации, таким образом он сможет заходить на ваш сервер под любым ником, и тем самым «взламывать» учётные записи игроков, а ещё страшнее администрации сервера. Все знают чем это грозит. Так как же защитить севрер майнкрафт от взлома? один из ответов, это закрыть порты на всех серверах, чтобы все игроки могли подключаться через сервер прокси (BungeeCord).
Для защиты сервера нужно закрыть все остальные порты. Сначала я расскажу простой способ как закрыть порты сервера майнкрафт, а именно работая с конфигурацией серверов. Этот способ подойдёт, если ваши сервера стоят на одном VPS или VDS и/или используют одинаковые IP адреса (порты только разные).
Закрыть порты при помощи самой BungeeCord
Инструкция очень простая, следуйте просто шаг за шагом, и у вас всё получится.
Эти действия нужно проделать с каждым сервером
1) Открываем файл server.properties
И параметр server-ip ставим значение 127.0.0.1
(Не стоит оставлять это поле пустым, и не нужно ставить localhost)
2) Далее открываем файл spigot.yml
и в параметре settings изменяем параметр bungeecord: false на bungeecord: true
3) Как только вы сделали эти действия со всеми серверами, сохраняем и переходим к настройке прокси сервера BungeeCord
Открываем в нашем прокси сервере файл config.yml
3.1 ищем параметр ip_forward и ставим за место ip_forward: false ip_forward: true
3.2 ищем параметр host: и ставим ip вашего сервера вместе с портом
Пример: host: 1.1.1.1:25565
Эти простые действия откроют только те порты, которые использует сам BongeeCord и никто не сможет подключиться к серверу не через сам прокси сервер. Но повторю, этот способ подойдёт только если у Ваших серверов один IP адрес с BugeeCord.
Закрытие портов сервера используя команды терминала (IpTables)
Этот способ продвинутый, так как Вам нужен доступ к SSH (доступ к терминалу управления сервером). Обычно ssh выдаётся с выделенными серверами.
1) Для этого подключаемся к ssh.
2) Устанавливаем IpTables командой
apt-get install iptables-persistent
Если IpTables установлен посмотрите правила, возможно у вас уже всё настроено.
iptables -L
3) Разрешаем локальный трафик командой
iptables -A INPUT -i lo -j ACCEPT
4) Разрешаем IP адрес сервера командой
где 0.0.0.0 это IP вашего сервера
iptables -A INPUT -s 0.0.0.0 -j ACCEPT
5) Закрываем порты от остальных серверов кроме разрешённых командой.
Закрывать порт прокси сервера не нужно, иначе не сможете подключиться к серверу
Это нужно прописать для каждого порта вашего сервера
iptables -A INPUT -p tcp --dport 25562 -j DROP
iptables -A INPUT -p tcp --dport 25567 -j DROP
iptables -A INPUT -p tcp --dport 25568 -j DROP
6) А теперь просто нужно сохранить прописанные правила командой
service iptables-persistent save
Если параметры не сохранились, можете использовать команду
netfilter-persistent save
P.S. Эти действия нужны только для начальных этапов проекта. Лучше всего использовать IpTables, так как в дальнейшем, с развитием вашего сервера нужно будет подключать ещё больше машин, и подключать несколько банджей. Вы можете совместить эти два способа, и использовать их вместе.
Закрытие портов BungeeCord если вы используете несколько машин
Для этого так же пригодится утилита IpTables Она очень хорошо защищает Ваши сервера от внешнего подключения
Действия все те же что и во втором способе, только с одним отличием.
1) Подключаемся к SSH
2) Для начала смотрим правила (Возможно они уже установлены)
iptables -L
Если IpTables вообще не установлен, устанавливаем IpTables командой
apt-get install iptables-persistent
3) Разрешаем локальный трафик командой
iptables -A INPUT -i lo -j ACCEPT
4) Разрешаем IP адреса всех серверов
где 0.0.0.0 это IP всех ваших серверов
iptables -A INPUT -s 0.0.0.0 -j ACCEPT
Эти действия нужно выполнить для каждого сервера, которому будет разрешено подключаться к этому серверу.
Пример:
iptables -A INPUT -s 125.85.14.22 -j ACCEPT
iptables -A INPUT -s 73.13.94.32 -j ACCEPT
iptables -A INPUT -s 915.58.36.95 -j ACCEPT
5) Закрываем порты от остальных серверов кроме разрешённых командой.
Закрывать порт прокси сервера не нужно, иначе не сможете подключиться к серверу
Это нужно прописать для каждого порта вашего сервера
iptables -A INPUT -p tcp --dport 25565 -j DROP
iptables -A INPUT -p tcp --dport 25567 -j DROP
iptables -A INPUT -p tcp --dport 25568 -j DROP
6) Сохраняем вписанные правила.
apt-get install iptables-persistent
Вас два раза попросят принять новые правила, во всех двух случаях соглашаемся с ними клавишами Yзатем Enter
Правила могут быть уже установленными ранее, поэтому команда выше может не сработать.
Для сохранения правил новых правил введите команду.
dpkg-reconfigure iptables-persistent
И так же соглашаемся два раза с новыми правилами.
Статья подготовлена сайтом SetCraft.ru
Ещё больше гайдов