OpenVPN и локальные ресурсы внутри сети



  • Возможно ли клиентам OpenVPN сделать доступным сервер находящийся за pfSense но у которого шлюзом не прописан pfSense ?



  • @marchello
    Возможно
    Nat outbound на lan интерфейсе Вам в помощь для клиентов Openvpn , устанавливающих соединение с данным серевером



  • Нет, не желает соединятся. Хотя другие сервера на которых шлюзом прописан сам pfSense с соответствующим правилом в firewall и NAT обмениваются пакетами без проблем. Нужно исхитриться сделать так чтобы пакеты отправляемые с подсети OpenVPN доходили а ответы возвращались отправителю с сервера находящегося в локальной сети за pfSense у которого шлюз не pfSense.



  • @marchello
    Это значит , что

    1. или Вы меня не поняли
    2. или что-то делаете неправильно

    Тут задача простая , подменить IP адрес источника на адрес , на который сервер обязательно ответит, не используя шлюз по умолчанию . Этим адресом станет ip адрес lan интерфейса ( при условии , что pf и сервер находятся в одной сети ) . Для решения этой задачи Вам надо создать правило Nat Outbound на lan интерфейсе pf для всех пакетов , идущих от openvpn клиентов в сторону сервера .

    Например , используя iptables это будет выглядеть так

    -A POSTROUTING -o LAN_ИНТЕРФЕЙС -p tcp -s КЛИЕНТЫ_OPENVPN --dport ПОРТ_ВАШЕГО_СЕРВЕРА -d АДРЕС_ВАШЕГО_СЕРВЕРА -j SNAT --to-source IP_АДРЕС_LAN_ИНТЕРФЕЙСА

    https://forum.netgate.com/topic/156968/help - проблема , по сути, та же , только без проброса портов



  • @Konstanti В Interfaces > Interface Assignments Добавил и активировал интерфейс VPN-а
    Screenshot 2020-10-02 094554.png
    Далее создал в Firewall > NAT > Outbound
    Буфер обмена-1.png
    Попытка достучаться ping-ом до сервера снаружи по VPN безуспешна ((( не отвечает хотя другие сервера у которых прописан гейтом pfSense отрабатывают штатно.



  • @marchello
    Логично, что не отвечает
    TCP и Icmp немного разные протоколы



  • This post is deleted!


  • This post is deleted!


  • @Konstanti said in OpenVPN и локальные ресурсы внутри сети:

    @marchello
    Логично, что не отвечает
    TCP и Icmp немного разные протоколы

    Не логично, прошу заметить что в протоколах указано ''any''



  • @marchello
    На вашей картинке прописано , tcp для интерфейса lan . Откуда any ?



  • @Konstanti said in OpenVPN и локальные ресурсы внутри сети:

    @marchello
    На вашей картинке прописано , tcp для интерфейса lan . Откуда any ?

    Это два правила касающиеся двух портов на двух разных серверах на которые заходят клиенты из вне, это не имеет отношения к нашему VPN )))



  • @marchello тогда у Вас нет нужно правила на lan интерфейсе



  • @marchello Привет. Недавно настраивал OpenVPN и так же надо было видеть сервера.

    1. В настройках сервера OpenVPN на pf в разделе "Advanced Configuration" в "Custom options" прописываем в какую подсеть могут стучать клиенты OpenVPN - push "route 192.168.1.0 255.255.255.0" (там это даже в подсказке указано и не с проста)
    2. На самом сервере при необходимости разрешить доступ с подсети OpenVPN (с той, которую ты указываешь в настройках сервера OpenVPN).

    ... и всё, должно работать. Может быть ещё включить "заворачивание всего трафика через туннель", но тогда обратить внимание на настройки DNS.



  • @Konstanti said in OpenVPN и локальные ресурсы внутри сети:

    @marchello тогда у Вас нет нужно правила на lan интерфейсе

    В порядке эксперимента добавил правило на эхо, и всё равно не работает.
    Буфер обмена-1.png



  • @marchello
    Тогда только остается включать tcpdump и смотреть , что происходит в момент пинга
    tcpdump -netti имя_lan_интерфейса icmp and host ip_адрес_сервера

    и проверять
    1 отрабатывает ли nat outbound (те изменился ли ip адрес источника)
    2 и приходят ли ответные пакеты



  • @luha said in OpenVPN и локальные ресурсы внутри сети:

    @marchello Привет. Недавно настраивал OpenVPN и так же надо было видеть сервера.

    1. В настройках сервера OpenVPN на pf в разделе "Advanced Configuration" в "Custom options" прописываем в какую подсеть могут стучать клиенты OpenVPN - push "route 192.168.1.0 255.255.255.0" (там это даже в подсказке указано и не с проста)
    2. На самом сервере при необходимости разрешить доступ с подсети OpenVPN (с той, которую ты указываешь в настройках сервера OpenVPN).

    ... и всё, должно работать. Может быть ещё включить "заворачивание всего трафика через туннель", но тогда обратить внимание на настройки DNS.

    Удалил все правила включая OpenVPN. Создал новый сервер включив дополнительный маршрут в Custom options, далее выгрузил конфигурацию, загрузил на клиента, проверил подключение к OpenVPN серверу - работает без вопросов. Добавил правило в NAT
    Буфер обмена-1.png

    Перепроверил активность и поднятое состояние OpenVPN интерфейса. По итогу ping с клиента показывает что сервера с прописаным гейтом pfSense отвечают, с иным ip гейта на интерфейсе молчат.



  • Думаю дело не в том какой шлюз указан на "неотвечающем" сервере, а во взаимодействии подсетей. Шлюз это только для выхода в интернет. Учти, прохождение пакетов зависит от каждой из участвующих сторон! Ты же на сервере ведь проверил, слушает он подсеть OpenVPN или нет? От стороны pf твой клиент виден в локалке с адресом подсети VPN... соответственно свичи там разные, компьютеры, сервера, все будут отличные от их подсети пакеты или игнорировать или принимать, зависит от настроек.

    Кстати! А на pf разрешил трафик между подсетями?! Может pf сам не слушает того твоего сервера?



  • @marchello
    Можете показать вывод tcpdump на lan интерфейсе при запущенном пинге в направлении нужного сервера ( с настроенным NAT outbound) ?



  • Для следующих поколений оставляю готовый рецепт настройки доступа пользователей из VPN во внутреннюю сеть предприятия без необходимости прописывать на запрашиваемом ресурсе шлюзом pfSense.

    1. Заходите в Interfaces > Interface Assignments добавляете интерфейс OpenVPN и в его свойствах активируете (поднимаете)
      82aabad9-231f-4131-b409-04138fc14a0a-изображение.png

    2. Запоминаем сетку и маску выделенную для тоннеля + галка на ''Redirect IPv4 Gateway'' включена.
      dd0bd314-cbb6-40c7-89e5-600ea30bbbfb-изображение.png

    3. Добавляем принудительно маршрут в локальную сеть предприятия при установке соединения клиентом
      7035b855-b5e7-41d2-ad05-19270e8d3b60-изображение.png

    4. Далее идём в NAT и создаём правило которое позволяет клиентам из сетки VPN ходить в сеть предприятия и обратно.
      aa16ae96-dfbe-4371-bac3-8be26e445923-изображение.png

    Всё будет работать при условии, что сам OpenVPN предварительно был настроен верно и подключение к нему перед этими манипуляциями проверялось. Спасибо Konstanti и Luha в решении проблемы.

    P/S появилась дополнительная проблема, веб сайт к которому получен доступ и который отвечает внутри сети предприятия, делает редирект пользователя за пределы сети предприятия, на другой веб-сервис, попытка дополнительного добавления сети этого нового веб-сервиса (находящемуся за пределами локальной сети предприятия) в NAT и в соответствующее поле VPN к клиенту не помогает.



  • Добрый.

    @marchello

    1. Зачем ВЕСЬ траффик впн-клиентов в туннель-то заворачивать?
    2. В чем проблема указать шлюзом ЛАН-адрес пф на интересующей машине? Зачем "танцы" ?


  • @werter said in OpenVPN и локальные ресурсы внутри сети:

    Добрый.

    @marchello

    1. Зачем ВЕСЬ траффик впн-клиентов в туннель-то заворачивать?
    2. В чем проблема указать шлюзом ЛАН-адрес пф на интересующей машине? Зачем "танцы" ?

    Есть причины и найдены последствия. 1 - нужно весь 2 - низя поменять шлюз ресурса (вообще низя ))) )



  • Тогда команда route на этом сервере вас спасет:

    route -p -4 ADD адрес-сети-впн-клиентов MASK маска-сети-впн-клиентов ЛАН-ip-пф
    


  • @werter said in OpenVPN и локальные ресурсы внутри сети:

    Тогда команда route на этом сервере вас спасет:

    route -p -4 ADD адрес-сети-впн-клиентов MASK маска-сети-впн-клиентов ЛАН-ip-пф
    

    Как вариант )



  • Пробуйте. И удалите костыль с NAT-ом. Иначе он вам еще "покажет" в будущем )

    Зы. Без особой надобности не объявляйте явно впн-интерфейс. Без. оч. особой.



  • @marchello Как я уже выше писал если ты весь трафик принудительно пропускаешь от клиента через сервер VPN то нужно проверить настройки DNS, а иначе так и получится.

    Не знаю как организовано в твоей рабочей (будем её называть локальной) сети, к которой ты получаешь доступ. У меня в локальной сети настроен свой сервер DNS, в нём прописаны домены на локальных серверах и правильные внутренние IP для этих имён.

    Что надо сделать чтобы корректно работало:

    1. В самом pf указать внешние DNS сервера для каждого WAN и внутренний DNS для него самого ( System / General Setup / DNS Server Settings )
    2. В настройках OpenVPN сервера в разделе "Advanced Client Settings" включить опцию "DNS Server enable" и указать как "DNS Server 1" внутренний DNS локалки и как "DNS Server 2" внешний (может быть 8.8.8.8).


  • @luha said in OpenVPN и локальные ресурсы внутри сети:

    @marchello Как я уже выше писал если ты весь трафик принудительно пропускаешь от клиента через сервер VPN то нужно проверить настройки DNS, а иначе так и получится.

    Не знаю как организовано в твоей рабочей (будем её называть локальной) сети, к которой ты получаешь доступ. У меня в локальной сети настроен свой сервер DNS, в нём прописаны домены на локальных серверах и правильные внутренние IP для этих имён.

    Что надо сделать чтобы корректно работало:

    1. В самом pf указать DNS сервера для каждого WAN и для него самого ( System / General Setup / DNS Server Settings )
    2. В настройках OpenVPN сервера в разделе "Advanced Client Settings" включить опцию "DNS Server enable" и указать как "DNS Server 1" внутренний DNS локалки и как "DNS Server 2" внешний (может быть 8.8.8.8).

    Конечно же поднят в сети DNS сервер и в самом OpenVPN он тоже указан в принудительную раздачу клиентам. Я просто не стал об этом упоминать думаю кто будет настраивать сам определится, возможно у него будет иная схема сетки.



  • @marchello said in OpenVPN и локальные ресурсы внутри сети:

    @werter said in OpenVPN и локальные ресурсы внутри сети:

    Тогда команда route на этом сервере вас спасет:

    route -p -4 ADD адрес-сети-впн-клиентов MASK маска-сети-впн-клиентов ЛАН-ip-пф
    

    Как вариант )
    92251a56-5473-4536-bb9b-9dd3bc9af681-изображение.png

    freebsd не понравилась наша идея ))) Пойду вот сюда впихаю )))

    4aeea9ca-f34a-4a99-8cf2-d49f4a277fa1-изображение.png



  • @marchello
    Зачем вы роут на пф добавляете-то? Добавляйте роут на сервер, к-ый БЕЗ шлюза.
    Строку дал для Win.



  • @marchello
    Речь идет о добавлении статического маршрута на сервере



  • @werter said in OpenVPN и локальные ресурсы внутри сети:

    @marchello
    Зачем вы роут на пф добавляете-то? Добавляйте роут на сервер, к-ый БЕЗ шлюза.
    Строку дал для Win.

    Сервер с шлюзом но его значение нельзя изменять на другое.



  • Тогда метрику добавьте:

    route -p -4 ADD адрес-сети-впн-клиентов MASK маска-сети-впн-клиентов ЛАН-ip-пф METRIC 10
    


  • Маршруты это когда для пакетов нет дороги. А когда неправильно разрешается хост то это к DNS-ам вопрос.

    Так вот я что-то уже запутался. Что вы хотите сделать и в чём беда? Не проходят маршруты? Или имена не верно разрешаются?! О_о



  • @luha
    Как понял я
    @marchello said in OpenVPN и локальные ресурсы внутри сети:

    Возможно ли клиентам OpenVPN сделать доступным сервер находящийся за pfSense но у которого шлюзом не прописан pfSense ?



  • @luha
    По-моему , просто путают друг друга
    Решения было у задачи всего 2

    1. создание статического маршрута на сервере
      или
    2. создания правила Nat Outbound на PF

    оба решения не предполагают смены шлюза на сервере



  • @Konstanti
    Тогда на кой ВЕСЬ трафик клиентов в туннель заворачивать для этого?



  • @werter
    я где-то об этом писал ?



  • Первоначальный вопрос уже решен. Дальше последовала следующая проблема - частично доступные хосты. Я тоже с этим столкнулся и предположил что речь идёт о адресах зон. Я не прав?



  • @luha
    @Konstanti
    Ждем ТС с ответами и четким ТЗ. А то мы тут передеремся )



  • @luha said in OpenVPN и локальные ресурсы внутри сети:

    Первоначальный вопрос уже решен. Дальше последовала следующая проблема - частично доступные хосты. Я тоже с этим столкнулся и предположил что речь идёт о адресах зон. Я не прав?

    Совершенно верно, первоначальный вопрос решён и ресурс открывается у клиента VPN. Да можно прописать статикой на сервере, но в таком случае это придётся делать на каждом из серверов к которым потребуется доступ из VPN, лучше пусть в NAT. Однако изначально я не сообразил что прежде чем клиент начинает работать с ресурсом в локальной сети организации он пересылается на другой адрес за пределами локальной сети где проходит авторизацию и затем возвращается обратно. Вот туда то на ресурс авторизации он и не может зайти.



  • This post is deleted!

Log in to reply