@cyberhaze

Iptables: как перенаправить TCP-/UDP- подключений от внешних клиентов на другой внешний IP?

Для моего проекта мне необходимо настроить хост, выполняющий функцию прозрачного прокси, не только для веб-сервера, но и для других TCP/UDP-соединений (SIP, RDP, и т.д.), чтобы эти серверы были скрыты непосредственно от пользователей для повышения уровеня безопасности.
Конфигурация должна быть такой, чтобы со стороны клиента не требовались дополнительные настройки. Учитывая специфику моей инфраструктуры, стандартные решения (Squid, VPN, NAT (External to Internal)) мне не подходят.
Специфика моей сети:
1. Все хосты распределены териториально (VPS, Дедики) и связаны между собой через внешние интерфейсы. При этом использовать частные сети, предлагаемые провайдерами, я не могу, т.к. провайдеры отличаются.

2. Поднять VPN-сервер и подключить все хосты к VPN. Этот вариант не подходит ввиду существенного увеличечения задержек, а также проблем с поддержкой VPN частью оборудования.

3. Reverse Proxy - как я понимаю, это решение подразумевает использование только портов HTTP, HTTPS

Думаю, возможно ли реализивать "прозрачный прокси" для TCP/UDP соединений между удаленными клиентом и сервером без VPN для различных сервисов, используя iptables для вот такой схемы:
|удаленный клиент|public ip|> <-SIP, RDP, HTTPS-> <|внешний IP|Прокси-сервер|внешний IP|> <-SIP, RDP, HTTPS-> <|внешний IP|хосты с сервисами (RDP, SIP, VPN.)|

Как я понимаю, для этого мне понадобятся следующие таблицы и цепочки:
PREROUTING:
1)Connection Tracking
2)DNAT

POSTROUTING:
SNAT

Бьюсь третий день, ничего не работает. Буду признателен за любые советы и ваше мнение - можно ли реализовать такое для UDP-соединений?

Спасибо.
  • Вопрос задан
  • 3199 просмотров
Пригласить эксперта
Ответы на вопрос 2
Jump
@Jump
Системный администратор со стажем.
Что-то в этом роде пойдет?
iptables -t nat -A PREROUTING -p udp --dst  ретранслятор   --dport порт -j DNAT --to-destination сервер:порт
iptables -t nat -A POSTROUTING -p udp --dst сервер  --dport порт -j SNAT --to-source ретранслятор

По сути банальный проброс портов.
Все что пришло по нужному протоколу, на указанный порт - тупо пересылается на другой белый айпишник на указанный порт. Ответ точно также идет обратно по цепочке.
Или по портам вы делить трафик не можете?
Ответ написан
p00h
@p00h
Фехтовальщик-стропальщик
Отправить соединение на другой удаленный хост не выйдет. Единственный вариант натить на адрес, скажем, в впн: например поднять IP поверх и слать там. Если вы не хотите использовать никакие впн, то проблема неразрешима.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы