Действует как обратный прокси для необработанных пакетов TCP
Я пытаюсь использовать узел OVH в качестве обратного прокси-сервера для нескольких серверов Minecraft (в основном для защиты от DDoS и настройки брандмауэра). Хосты Minecraft также используют Ubuntu, 12.04 или 14.04, и в OVH есть Ubuntu. В настоящее время я пытался сделать это:
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport port -j DNAT --to-destination ip:port
iptables -t nat -A POSTROUTING -j MASQUERADE
Это в основном работает нормально, за исключением очевидного, что все клиенты имеют тот же IP-адрес, что и сервер, на котором я это сделал. Можно ли каким-либо образом настроить любое из этих устройств, чтобы оно сохраняло исходный IP-адрес? Я читал, что tcpproxy ( http://www.quietsche-entchen.de/cgi-bin/wiki.cgi/proxies/TcpProxy) является хорошим решением для этого, но я не вижу причин, по которым эта проблема не будет продолжаться.
Мне также интересно, приведет ли использование этого к ответам с сервера minecraft, чтобы обойти прокси, утечка реальных IP-адресов, которых я хотел бы избежать.
1 ответ
Сохранение IP-адреса прокси-сервера не будет работать в вашей ситуации. Если клиент изначально подключается к прокси-серверу (скажем, proxy:1111) и получает ответ от minecraft1:2525, что клиент делает с ним. У клиента нет возможности отобразить этот ответ на исходный запрос.
Продолжайте делать то, что делаете.
Вместо этого вы можете использовать несколько наборов правил для разных портов. Так, например, minecraft1 - это прокси:1111, minecraft2 - это прокси:1112, mincraft3 - это прокси:1113 и т. Д.
Тогда вы можете настроить свои правила так:
iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination ip:port
iptables -t nat -A PREROUTING -p tcp --dport 1112 -j DNAT --to-destination ip:port
iptables -t nat -A PREROUTING -p tcp --dport 1113 -j DNAT --to-destination ip:port
iptables -t nat -A POSTROUTING -j MASQUERADE
Затем, чтобы подключиться к minecraft1, вы должны использовать прокси: 1111. Для minecraft2, proxy:1112 и т. Д. Порт, на котором работают реальные сервера Minecraft, не имеет значения, поскольку правила будут ретранслироваться на правильный порт.