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|> <|внешний IP|хосты с сервисами (RDP, SIP, VPN.)|
Как я понимаю, для этого мне понадобятся следующие таблицы и цепочки:
PREROUTING:
1)Connection Tracking
2)DNAT
POSTROUTING:
SNAT
Бьюсь третий день, ничего не работает. Буду признателен за любые советы и ваше мнение - можно ли реализовать такое для UDP-соединений?
Спасибо.

21 Авг 2019 в 06:42
228 +1
0
Ответы
1

Да, вы правы, для перенаправления TCP/UDP-подключений с внешнего IP на другой внешний IP можно использовать таблицы и цепочки iptables.
В вашем случае, для UDP-соединений, вам действительно понадобятся цепочки PREROUTING, DNAT и POSTROUTING.
Вот примеры команд iptables, которые вы можете использовать для перенаправления UDP-подключений:

iptables -t nat -A PREROUTING -i eth0 -p udp --dport порт -j DNAT --to-destination внешний_IP_прокси:порт
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport порт -d внешний_IP_прокси -j SNAT --to-source внешний_IP_прокси

Где:

эти команды перенаправляют UDP-трафик с внешнего IP на внешний IP прокси на заданном порту.в параметре "--to-destination" указывается внешний IP и порт прокси-сервера, куда будут направляться соединения.в параметре "--to-source" указывается внешний IP прокси-сервера, чтобы корректно возвращать ответы на исходный IP.

Не забывайте, что после изменения правил iptables, необходимо сохранить конфигурацию, чтобы она пережила перезагрузку сервера:

iptables-save > /etc/iptables/rules.v4

Также, убедитесь, что на прокси-сервере разрешен проброс пакетов (IP forwarding) и что на серверах с сервисами корректно настроены маршруты для возврата пакетов через прокси-сервер.

Надеюсь, эти советы помогут вам настроить прозрачный прокси для UDP-соединений. Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать. Удачи вам!

20 Апр в 13:14
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 093 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир