Как перенаправить трафик на локальной машине Ubuntu, не допуская застревания трафика в цикле.

Вопрос или проблема

Мне нужна помощь с перенаправлением трафика на моей виртуальной машине Ubuntu, работающей на Parallels, с порта 443 через туннельный URL на порт 1111 на той же машине Ubuntu. Как только это будет успешно выполнено, сервер на порту 1111 должен будет перенаправить запрос на туннельный URL. По какой-то причине, когда я пытаюсь использовать iptables и HAProxy, это не работает.

Нет доступных модулей LSB.
Идентификатор дистрибутива: Ubuntu
Описание:    Ubuntu 20.04.2 LTS
Версия:    20.04
Кодовое имя:   focal

Для IPTables

Я пытался установить флаг конфигурации ip_forward на 1, если это так называется.

Я пытался настроить конфигурацию prerouting следующим образом:

sudo iptables -t nat -A PREROUTING -p tcp -d rnqhc-adas-ads-ed01-cb00-sada-asdds-asdd-iii.a.free.pinggy.link --dport 443 -j DNAT --to-destination 127.0.0.1:1111
Затем я применил маскарад.

И добавил

sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -d rnqhc-adas-ads-ed01-cb00-sada-asdds-asdd-iii.a.free.pinggy.link -j ACCEPT

Я также видел ответы по теме:
IPTables перенаправление трафика не работает
но это не помогло.

Для HAProxy я пробовал:

frontend https_front
    bind *:443 ssl crt /home/devhouse/Developer/mycert_combined.pem
    acl host_mydomain hdr(host) rnqhc-adas-ads-ed01-cb00-sada-asdds-asdd-iii.a.free.pinggy.link
    use_backend my_backend if host_mydomain

backend my_backend
    server local_proxy 127.0.0.1:1111

Мне кажется, я что-то упускаю.

Ответ или решение

Как перенаправить трафик на локальной машине Ubuntu без зацикливания трафика

Если вам нужно перенаправить трафик с порта 443 на порт 1111 на машине Ubuntu, работающей в Parallels, и при этом избежать зацикливания трафика, необходимо carefully настроить как iptables, так и HAProxy. Давайте разберем этот процесс шаг за шагом.

Шаг 1: Включение IP перенаправления

Первым делом необходимо убедиться, что IP переадресация включена. Для этого выполните команду:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Чтобы сделать эту настройку постоянной, добавьте или измените следующую строку в файле /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Затем примените изменения:

sudo sysctl -p

Шаг 2: Настройка iptables

Для перенаправления трафика с порта 443 на порт 1111 можно использовать следующее правило iptables. Убедитесь, что команды выполняются с правами суперпользователя.

  1. Добавление правила в PREROUTING:
sudo iptables -t nat -A PREROUTING -p tcp -d rnqhc-adas-ads-ed01-cb00-sada-asdds-asdd-iii.a.free.pinggy.link --dport 443 -j DNAT --to-destination 127.0.0.1:1111
  1. Добавление правила в OUTPUT:

Это правило необходимо для обработки исходящих соединений:

sudo iptables -t nat -A OUTPUT -p tcp -d rnqhc-adas-ads-ed01-cb00-sada-asdds-asdd-iii.a.free.pinggy.link --dport 443 -j ACCEPT
  1. Маскарад трафика:

Это правило необходимо для маскировки исходящего трафика. Важно, чтобы оно находилось в уровне POSTROUTING:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Шаг 3: Настройка HAProxy

Теперь перейдем к настройке HAProxy, чтобы он корректно перенаправлял запросы.

  1. Конфигурация HAProxy:

Откройте файл конфигурации HAProxy, например:

sudo nano /etc/haproxy/haproxy.cfg

Разместите следующую конфигурацию:

frontend https_front
    bind *:443 ssl crt /home/devhouse/Developer/mycert_combined.pem
    acl host_mydomain hdr(host) rnqhc-adas-ads-ed01-cb00-sada-asdds-asdd-iii.a.free.pinggy.link
    use_backend my_backend if host_mydomain

backend my_backend
    server local_proxy 127.0.0.1:1111
  1. Перезагрузка HAProxy:

Сохраните изменения и перезапустите HAProxy для применения конфигурации:

sudo systemctl restart haproxy

Шаг 4: Проверка и тестирование

После выполнения всех настроек, проверьте, работает ли перенаправление:

  • Убедитесь, что HAProxy запущен и не выдает ошибок.
  • Проверьте настройки iptables:
sudo iptables -t nat -L -n -v

Если все настроено правильно, вы должны увидеть, что трафик на порт 443 перенаправляется на порт 1111.

Заключение

Перенаправление трафика с использованием iptables и HAProxy требует внимательной настройки для предотвращения зацикливания. Убедитесь, что ip_forward включен, и iptables настроены корректно, чтобы избежать замкнутых циклов. Если у вас возникнут трудности, проверьте журналы HAProxy и iptables на наличие ошибок.

Оцените материал
Добавить комментарий

Капча загружается...