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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Доступ к хосту в сети openvpn из Интернет  (Прочитано 399611 раз)

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #15 : 24 Февраля 2024, 00:16:25 »
AnrDaemon, ?

INPUT DROP указывает, что все входящие пакеты должны быть отброшены.
Пакеты для других узлов сети НИКОГДА не попадут в filter/INPUT.
Открываем карту роутинга пакетов в нетфильтре, освежаем память.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7810
  • We were here
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #16 : 24 Февраля 2024, 20:28:40 »
Поковырял iptables, вроде так:
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING  -p tcp --dport 80 -j DNAT --to-destination 192.168.254.13
iptables -t nat -A POSTROUTING -d 192.168.254.13 -p tcp --dport 80 -j MASQUERADE
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 201
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #17 : 27 Февраля 2024, 22:32:49 »
Всем спасибо, за проявленное внимание!
Пока отвлекся от данного вопроса, но не забыл о нем.
Нужно будет разобраться с прохождением пакетов при работе дефолтного маршрута через ISP, на стороне клиента.

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 201
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #18 : 02 Августа 2024, 20:14:14 »
В общем для решения задачи требуется два правила:
iptables -A PREROUTING -i em0 -p tcp -m tcp -d [EXTERNAL_IP] --dport 1917 -j DNAT --to-destination 192.168.254.13:80
iptables -A FORWARD -i em0 -o br0 -d 192.168.51.9 -p tcp -m tcp --dport 80 -j ACCEPT

Этих правил достаточно, чтобы из Интернет по EXTERNAL_IP:1917 стал доступен сервис.

Чтобы удаленное соединение использовало свой шлюз по умолчанию, а не openvpn сервера нужно закомментить в файле /etc/openvpn/client.conf строку redirect-gateway привести к виду (т.е. закоментить).

#redirect-gateway
и в файле /etc/openvpn/vpn-tun/ccd/cLiEnT_nAMe  (т.е. на сервере) добавить строку
push "route 192.168.51.0 255.255.255.192"
« Последнее редактирование: 04 Августа 2024, 21:19:37 от kolesov »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #19 : 20 Августа 2024, 15:19:37 »
И Вы ошибаетесь.
Правило
iptables -A FORWARD -i em0 -o br0 -d 192.168.51.9 -p tcp -m tcp --dport 80 -j ACCEPTне относится к пакетам обработанных праилом
iptables -A PREROUTING -i em0 -p tcp -m tcp -d [EXTERNAL_IP] --dport 1917 -j DNAT --to-destination 192.168.254.13:80


Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #20 : 20 Августа 2024, 15:44:57 »
fisher74, Почему?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #21 : 20 Августа 2024, 16:15:32 »
потому что после правила DNAT destination-address в пакетах не будет равен 192.168.51.9, соответсnвенно, будут  проходить мимо указанного Вами правила фильтрации.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #22 : 20 Августа 2024, 17:23:28 »
А, упустил этот момент.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1190
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #23 : 27 Августа 2024, 19:53:49 »
Как сделать так, чтобы работало с обычным маршрутом ISP провайдера пока не разобрался.

Тут как в анекдоте "два путя":

1. На VPN-сервере NAT'ить пакеты, идущие в адрес клиента. Тогда клиент будет получать все запросы как будто бы из внутренней сети VPN и отвечать на них туда же. Но в этом случае веб-сервер не будет видеть реальных адресов клиентов.

2. На машине с веб-сервером настроить маршруты таким образом, чтобы маршрутом по умолчанию для пакетов с source-адресом VPN-интерфейса был внутренний адрес VPN-сервера (не уверен что понятно объяснил. настраивается легче чем описывается).

Ну и ещё есть совсем простой вариант: поднять на VPN-сервере реверс-прокси и не мучаться с редиректом TCP-трафика.

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 201
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #24 : 03 Сентября 2024, 23:01:01 »
fisher74,
И Вы ошибаетесь.
Спасибо за ответ. Мне самому казалось, что тут какая-то магия)
Но почему оно работает?

А если правила будут такие:
iptables -A FORWARD -i em0 -o br0 -d 192.168.51.9 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A PREROUTING -i em0 -p tcp -m tcp -d [EXTERNAL_IP] --dport 1917 -j DNAT --to-destination 192.168.51.9:80
или
iptables -A FORWARD -i em0 -o br0 -d 192.168.254.13 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A PREROUTING -i em0 -p tcp -m tcp -d [EXTERNAL_IP] --dport 1917 -j DNAT --to-destination 192.168.254.13:80
Будет работать? Ведь 192.168.254.13-192.168.51.9 этот один и тот же хост, 254.13-адрес транспортной сети vpn, 51.9-адрес для маршрутизируемых сетей.

К сожалению, у меня сейчас нет возможности включить хост 192.168.254.13-192.168.51.9...

« Последнее редактирование: 03 Сентября 2024, 23:02:38 от kolesov »

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 201
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #25 : 15 Сентября 2024, 16:06:22 »
ALiEN, все верно Ваш вариант рабочий.

iptables -t nat -A PREROUTING -i em0 -p tcp -m tcp -d [EXT-IP] --dport 80 -j DNAT --to-destination 192.168.51.9:80
iptables -A FORWARD -i em0 -o br0 -d 192.168.51.9 -p tcp -m tcp --dport 80 -j ACCEPT

Вот это правило:
iptables -t nat -A POSTROUTING -d 192.168.51.9 -p tcp -m tcp --dport 80 -j MASQUERADEименно для того, что я изначально хотел, чтобы openvpn-client использовал свое Интернет-соединение, т.е. чтобы не было
redirect-gatewayна клиенте.

Но у меня остался вопрос...
Как именно работает это правило? Оно нужно именно для той схемы, когда маршруты по умолчанию и сервера и клиента разные.
iptables -t nat -A POSTROUTING -d 192.168.51.9 -p tcp -m tcp --dport 80 -j MASQUERADE
Например я пробовал сделать так:
iptables -t nat -A POSTROUTING -d 192.168.51.9 -p tcp -m tcp --dport 80 -o em0 -j SNAT --to-source [EXT-IP]Как я мыслю... У меня выделенный EXT-IP и покидая интерфейс пакету назначается этот IP при MASQUERADE, так почему же не срабатывает --to-source [EXT-IP]?
Поясните пожалуйста этот момент.

« Последнее редактирование: 15 Сентября 2024, 16:31:30 от kolesov »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7810
  • We were here
    • Просмотр профиля
Re: Доступ к хосту в сети openvpn из Интернет
« Ответ #26 : 15 Сентября 2024, 16:34:30 »
iptables -t nat -A POSTROUTING -d 192.168.51.9 -p tcp -m tcp --dport 80 -o em0 -j SNAT --to-source [EXT-IP]
Нужно -s. Изменение пакета источника, а не получателя.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

 

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