iptables -t nat -A PREROUTING -p tcp --dport 2106 -j DNAT --to-destination Y.Y.Y.Y:2106
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 2106 -j SNAT --to-source X.X.X.X:1024-32000
Все что вы описали не будет скрывать реальный IP игрового сервера. Почему?Приветствую наше драгоценное сообщество! Вопрос у меня следующий - пришло понимание, что "светить" настоящий IP auth и gameserver - так себе затея (потому, что зная реальный IP auth и гейм-сервера - его легко можно заддосить до этапа, когда хостинг "попросит" проект "пройти на выход с вещами").
Соот-но есть идея "скрыть" реальные ипы за прокси (да, да, я знаю, что прокси тоже заддосят и "попросят на выход", но во-первых - их можно просто выключить и переждать атаку, во-вторых - если попросят на выход прокси - это не так критично, как если попросят на выход сервер на котором крутится PTS).
Реализаций этой идеи - как пальцев на ногах у черепашки ниндзя (два):
1. конструкция iptables по типу:
Плюсы этой реализации - ничего, кроме чистого линупса, на прокси не требуется - всё реализуется стандартными средствами и работать будет "быстро".Код:iptables -t nat -A PREROUTING -p tcp --dport 2106 -j DNAT --to-destination Y.Y.Y.Y:2106 iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 2106 -j SNAT --to-source X.X.X.X:1024-32000
2. это relative-proxy NGINX (подробнее об этом можно почитатьВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация)
Плюсы - это вероятно тоже работает, минусы - для этого потребуется установка и конфигурация nginx, что в целом не сложно, но вариант 1 - ещё проще.
Хочу задать вопрос знатокам - какие подводные камни могут ждать в этих реализациях? Будут ли реальные "плюсы" от nginx или вариант с iptables - вполне себе решение которые имеет право на жизнь?
Фигасе как завёрнуто. Тогда моё сообщение выше не имеет ничего общего с линейкойВсе что вы описали не будет скрывать реальный IP игрового сервера. Почему?
Протокол клиента учитывает чтобы можно было посылать реальный IP через шифрованные пакеты логин сервера. То есть, даже если вы установите прокси через другую систему, ваш логин сервер всеравно выдаст где и как (IP и порт) клиент должен будет подключаться.
Как сформулировать проблему? Нужно расшифровать пакет от логин сервера, поставить IP прокси, зашифровать пакет и отослать на клиент. Приэтом, нужно также понимать что-бы когда клиент соединится с прокси, он мог соединиться с тем игровым сервером который был отослан ранее (тут может быть много игровых серверов с различными IP).
В своем проекте у меня уже имеется прокси которая все это умеет, даже более. Посмотрите тутВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или РегистрацияПрокси даже замещает шифрование от игровых серверов, так что вы просто не будете знать играете вы на реальном сервере или нет. Моя прокси работает только с клиентом и серверами High-Five (тестировал как на своем сервере так и L2J). Для поддержки других протоколов нужно переписывать подписи всех пакетов.
Так современные логин-серверы (hauthd и стоковый самописный auth от AdvExt это имеют на борту (настройки прокси для l2server) и я полагаю, что в этих "настройках" как раз подразумевается подмена IP о чём вы написали). Вопрос только в реализации самого туннеля для этого "прокси"... разве нет?Все что вы описали не будет скрывать реальный IP игрового сервера. Почему?
Протокол клиента учитывает чтобы можно было посылать реальный IP через шифрованные пакеты логин сервера. То есть, даже если вы установите прокси через другую систему, ваш логин сервер всеравно выдаст где и как (IP и порт) клиент должен будет подключаться.
Как сформулировать проблему? Нужно расшифровать пакет от логин сервера, поставить IP прокси, зашифровать пакет и отослать на клиент. Приэтом, нужно также понимать что-бы когда клиент соединится с прокси, он мог соединиться с тем игровым сервером который был отослан ранее (тут может быть много игровых серверов с различными IP).
В своем проекте у меня уже имеется прокси которая все это умеет, даже более. Посмотрите тутВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или РегистрацияПрокси даже замещает шифрование от игровых серверов, так что вы просто не будете знать играете вы на реальном сервере или нет. Моя прокси работает только с клиентом и серверами High-Five (тестировал как на своем сервере так и L2J). Для поддержки других протоколов нужно переписывать подписи всех пакетов.
Нужно определить какую именно проблему нужно нам решать.Так современные логин-серверы (hauthd и стоковый самописный auth от AdvExt это имеют на борту (настройки прокси для l2server) и я полагаю, что в этих "настройках" как раз подразумевается подмена IP о чём вы написали). Вопрос только в реализации самого туннеля для этого "прокси"... разве нет?
Спасибо большое за объяснение нюансов работы auth сервера. Я совершенно точно не знал о том, что внутри шифрованных пакетов authd потенциально может показать реальный IP игрового сервера и об этом нужно знать.Нужно определить какую именно проблему нужно нам решать.
Всего есть по крайней мере три IP. Прокси, игровой сервер и логин сервер. Я уже рассказал про то если у вас есть один игровой сервер, то можно все наладить как вы описали. Требуется только чтобы логин сервер выдавал IP от прокси.
Когда у вас много серверов, тут нужно будет установить прокси для каждого игрового сервера, так как нужен будет отдельный IP. Что уже будет напрягать. То чтo я разработал работает с множеством игровых серверов, то есть одна прокси может доддерживать много клиентов (клиент IP), как и много игровых серверов серверов (сервер IP), но один логин сервер (тут можно использовать load balancer между многими логин серверами если охота есть)
А как об этих "нюансах" узнать? Имеете ввиду попытаться "закрыть" возможность подключения не легитимных клиентов к серверу? (защита strix?)ПТС обычно роняют не ддосом. Куда дешевле уронить нпс сервер через уязвимости клиента, чем каким-то терабайтным байпассом или ботнетом.
Я бы советовал для начала разузнать о всех "нюансах" клиента, который используется под ПТС сервер.
Из опыта игрока, который любит патчи. Лучше выбрать АА или смарт. Стрикс - моя любимая защита. Ее легче всего обойтиСпасибо большое за объяснение нюансов работы auth сервера. Я совершенно точно не знал о том, что внутри шифрованных пакетов authd потенциально может показать реальный IP игрового сервера и об этом нужно знать.
А как об этих "нюансах" узнать? Имеете ввиду попытаться "закрыть" возможность подключения не легитимных клиентов к серверу? (защита strix?)
Насчет передачи реальных IP адресов при использовании прокси. Это как возможно?лучше через nginx/haproxy, в идеале с передачей реальных ip через proxy protocol, иначе будет проблема с топами/лимитами по ip и тд, главное что бы сборка позволяла
не знаю что там в птс, но в многих сборках есть механизм передачи реальных адресовМне интересно какая может быть реализация защиты от DDOS'a с помощью прокси? Ведь прокси возмет на себя удар и все, через такую прокси теперь никто играть не может. То есть игровой сервер будет работать, только вот нужно будет поднимать другую прокси через еще один IP. Ну еще снова и опять.
Кстати, если использовать прямой перевод пакетов, как например при использовании IPtables, не случится ли тот же самый DDOS? Вроде все пакеты DDOS должны направляться на открытый порт, и таким образом будут пересылаться на сами игровые серверы. Что в принципе будет опасно для производительности серверов, так как они всеравно должны принимать хоть какой-то пакетный траффик.
Насчет передачи реальных IP адресов при использовании прокси. Это как возможно?
Судя по отзыву тутне знаю что там в птс, но в многих сборках есть механизм передачи реальных адресов
к примеру - люцераВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
передаётся, на форуме этернити даже скрипт видел для автонастройки под 11 дебианСудя по отзыву тутВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрацияреальный IP от клиента не передается. Я понимаю что многие сборки работают как раз на лимиты по IP адресу. Но в случае с прокси тут нужнo что-бы сама прокси могла сказать игровому серверу что вот такой-то клиент пришел от такого-то адреса. Так как соединение которое будет приходить от прокси всегда будет иметь IP адрес прокси. Я пока альтернативы не знаю как можно по другому, вот поэтому и спрашиваю.
Вот еще тут подтверждение:Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
да, сборка должна поддерживать это делоПочитал далее что есть Proxy Protocol и он поддерживает передачу IP клиента. То есть в сборке должен быть способ работы с прокси который поддерживает такую штуку. В принципе неплохо.
Можно кстати почитать тут как настроить HAProxyВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или РегистрацияНа Ngix вроде такой штуки нет.
Нашел еще описание самого протокола, достаточно просто даже самому все сделать и привинтить так как формат первого пакетa в соедиединении достаточно прост для обоих версий :да, сборка должна поддерживать это дело
в nginx по тому же протоколу всё передаётся
с nginx тебе по идее в том же формате приходит, это вроде общий форматНашел еще описание самого протокола, достаточно просто даже самому все сделать и привинтить так как формат первого пакетa в соедиединении достаточно прост для обоих версий :Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Насчет Nginx тут немного напутанно, но для смелых можно посмотреть тутВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
В любом случае HAProxy или Nginx будут поддерживать только один игровой сервер, что я и описал ранее. Но еще не понятно какое будет поведение прокси при ситуации DDOS.
Я понимаю что все они они будут использовать один и тот же протокол (их на самом деле двe версии). Я про то что как такие вот прокси будут полезны.с nginx тебе по идее в том же формате приходит, это вроде общий формат
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?