Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Перенаправление портов на серверах Ubuntu, от туннеля в ЛВС  (Прочитано 766 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн buwak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Есть:
- сервер 1 на Ubuntu с внешним адресом 1.1.1.1, на нём запущен OVPN-сервер с туннельной сетью 10.8.0.0/24 и адресов в туннеле 10.8.0.1;
- сервер 2 на Ubuntu с адресом в туннеле 10.8.0.4 и в ЛВС 10.92.175.9;
- сервер 3, видеорегистратор, с фейсом на порте 80, и адресом в ЛВС 10.92.175.2;
Задача:
перенаправить порт 1.1.1.1:65531 на 10.8.0.4:81, с 10.8.0.4:81/10.92.175.1:81 на 10.92.175.2:80.

На сервере 1 исполнены комманды:
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 65531 -j DNAT --to-destination 10.8.0.4:81
iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.4 --dport 81 -j SNAT --to-source 1.1.1.1:65531
Когда на порте 10.8.0.4:81 поднят apache, он доступен из Интернета.

На сервере 2 пробовал исполнять комманды:
sudo iptables -t nat -A PREROUTING -p tcp -d 10.8.0.4 --dport 81 -j DNAT --to-destination 10.92.175.2:80
sudo iptables -t nat -A POSTROUTING -p tcp -d 10.92.175.2 --dport 80 -j SNAT --to-source 10.8.0.4:81

При обращении на порт 65531 пишет что закончилось время ожидания, а при обращении на другие порты пишет что соединение невозможно.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Используйте сервис для хостинга скриншотов, а не фотографий.
И размещайте текст в виде текста.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.4 --dport 81 -j SNAT --to-source 1.1.1.1:65531

sudo iptables -t nat -A POSTROUTING -p tcp -d 10.92.175.2 --dport 80 -j SNAT --to-source 10.8.0.4:81
Бред

Оффлайн buwak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Бред
Думал два дня, так и не понял что не так, ведь когда проброс на порт сервера 2 - ответ возвращается.

Используйте сервис для хостинга скриншотов, а не фотографий.
Спасибо, учту.
текст в виде текста
Не понял, извините за тупость.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
ведь когда проброс на порт сервера 2 - ответ возвращается.
то что ответ возвращается, это скорее случайность нежели то что ожидалось.
А вот то что не взлетает задуманное - вот это не случайность.

Думал два дня, так и не понял что не так,
Надо не думать, а стараться разобраться в том, на что Вам указали.
Ну давайте попробуем вместе.
Первое правило  совершенно логичное
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 65531 -j DNAT --to-destination 10.8.0.4:81На входе у пакета с destination address 1.1.1.1 и destination port: 65531, подменяются эти два поля на, соответственно, 10.8.0.4 и 81.
Что происходит дальше нам неизвестно (ибо Вы не раскрыли), но зато знаем, что если пакет доедет до выхода, то на последней цепочке netfilter он попадает под правило
iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.4 --dport 81 -j SNAT --to-source 1.1.1.1:65531Здесь Вы подменяете source address и source port на....внешний адрес своего шлюза.
Это самое неуклюжий SNAT который моно было придумать.
Уберите это правило и увидите, что ничего не изменится, а потому оно только бессмысленно нагружает ядро. Точнее изменения будут, но Вы их пока не увидите, но уверяю Вас они только в лучшую сторону.

Второе указанное мной правило так же скорее вредное, нежели полезное.

НО!!!! Если  кое-что поправить, то от этих правил можно извлечь пользу для видеорегитраторв у которого в качестве шлюза по дефолту указан явно не шлюз №2


Оффлайн buwak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Надо не думать, а стараться разобраться в том, на что Вам указали.
Надо и думать, и разбираться! Включил маскирование порта (sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE) на 2ом и всё работает отлично! Огромное вам спасибо, fisher74!
Главное - думать головой и анализировать ситуацию. Ещё раз спасибо!
« Последнее редактирование: 15 Марта 2018, 20:31:38 от buwak »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Самое смешное, что Ваш опыт никому не поможет, ибо куда смотрит eth0 никому неизвестно, кроме Вас.
К тому же, если, как я предполагаю, этот порт смотрит в локалку с применением статического адреса, то маскарад - не лучшее решение. В этих случая применяют именно SNAT.

Оффлайн buwak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Появилась ещё одна проблема! Из Интернета не видно видик по адресу 1.1.1.1:65531 . Вообще не понимаю что думать, куда смотреть, что анализировать. Он доступен только по ovpn. Помогите  :-\

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Вы понимаете, что информации очень мало. Для таких схем, хоть и небольшой сложности, нужно знать структуру сети. Что с чем соединено, и какие сделаны сетевые настройки на всех участниках процесса.
Например, на видике какие настройки? Что у него является дефолтным гетвеем. От этого зависит - нужно ли натить внутренний интерфейс второго шлюза, или нет.

Оффлайн buwak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
На видеорегистраторе гейтвей 10.92.0.1 .
« Последнее редактирование: 15 Марта 2018, 21:56:39 от buwak »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
NAT на регистраторы для OVPN, если они не умеют получать маршруты от DHCP.
Если умеют - нормально настроить DHCP.
Смотреть в сторону rfc3442-classless-static-routes, ms-classless-static-routes.
Учитывайте, что если вторая опция - это дополнение, то первая - полная замена option 33.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.032 секунд. Запросов: 24.