понедельник, 8 августа 2016 г.

Получаем "белый" IP через OpenVPN тоннель и организовываем доступ через него к внутренней сети



Намедни появилась необходимость в белом статическом ip, но т.к. мой провайдер данной услуги не предоставляет, а использовать костыль в форме динамического dns нет никакого желания, было принято решение получить этот самый адрес посредствам VPN,
Т.е. используя связку:
VPS который выдает “белый IP” (арендованный у одного из многих (и по мне так не самого худшего) провайдера))à
Pfsense (установленной в домашней инфраструктуре, находящийся за NAT) à тестовая инфраструктура за pfsense (виртуальная машина), развернутая в среде VMware vSphere 6.0
Приблизительная схема сети:





В итоге наш сетевой экран pfsense должен получить адрес 85.XX.XX.XX и  соответственно мы будем иметь доступ к нашей инфраструктуре через этот адрес!
Поехали!!!

  1. Арендуем VPS (с линукс на борту, я выбрал ubuntu 14.04), скачиваем и устанавливаем OpenVPN Access Server
  2. На pfsense настраиваем клиента OpenVPN
  3. Организовываем тоннель
Подробности по ссылкам:

Предположим что все у нас заработало, тоннель есть, айпишник “белый и пушистый”, что же дальше, как же нам теперь получить доступ к нашей виртуальной инфраструктуре, да очень легко:

  1. На OpenVPN Access Servere необходимо проложить трассу до нашей внутренней подсети 10.10.10.0/24, для этого заходим в админку под административной учеткой, и добавляем доступ в данную подсеть нашему пользователю от имени которого мы строим тоннель , в блоке (слева)

 

User Management

User Permissions --> Show

 

В блоке VPN Gateway делаем следующее:


Теперь мы “видим” нашу внутреннюю подсеть

  1. Осталось “расшарить” сервисы для доступа из вне, проще говоря прокинуть порты к pfsense, а уж там в свою очередь  сделать порт редирект на нужную машину. Для примера организуем доступ к нашему серверу WS2016  по RDP (!!! Default Gateway у машины должен быть 10.10.10.1 (внутренний pfsense)) , делаем следующее:
В блоке DMZ settings указываем ip адрес сервера (наш “белый” IP):протокол/порт(в данном примере это RDP 3389), для пущей сукьюрности можно указать любой другой из незанятых конечно!

Теперь наш OpenVPN сервер откроет порт 3389 и будет его слушать ,все пакеты, которые через него пойдут будут перенаправляться в тоннель.  

  1. После этого идем на pfsense и там создаем правило NAT которое будет пробрасывать порт на нужную нам машину
    

Где REMOTEVPNINTERFACE – это интерфейс нашего VPN тоннеля созданный на этапе настройки OpenVPN Client’а

И теперь если мы , из любого места, где есть “всемирная паутина”, откроем стандартный виндовый RDP клиент и наберем в строке 85.XX.XX.XX, то попадем на наш сервер WS2016 (предварительно, конечно, разрешив на нем доступ к рабочему столу )

Таким образом, проделывая вот такие незамысловатые манипуляции мы сможем разрешать разные сервисы! В следующей статье расскажу как организовать домашний почтовый сервер и хождение почты, через имеющийся тоннель!

 Удачи и помните:"Все в Ваших руках, если есть "Руки""

PS: Стали поступать вопросы, а вот как бы получить доступ в подсеть 192.168.1.0/24, да очень просто, всего-навсего необходимо реализовать следующую схему:
Т.к. за бесплатно на OpenVPN Access Server'e можно использовать 2 подключения, то нам ничего не стоит построить еще один тоннель, без какого-либо вреда уже существующему!
 Для примера организуем доступ к рабочему столу по RDP нашего домашнего laptop (OC windows) который находится в домашней подсети с IP: 192.168.1.50

1.Создадим еще одного пользователя, для чего заходим в web-admin панель под админской учеткой и в блоке слева:

User Management

User Permissions в поле New Username 
 
создаем нового пользователя user-two (я его создал ранее):


это и будет тот пользователь из под которого будет строиться тоннель с нашего ноута.

2. Добавим этого пользователя на нашем linux сервере, где установлен OpenVPN Access Server
для чего коннектимся по ssh и добавляем пользователя с паролем:


после этого заходим в браузер по адресу:

https://85.XX.XX.XX:943

username: user-two
password: (пароль который задали на предыдущем шаге)

там он начинает че-то долго устанавливать, в принципе можно не ждать а кликать по ссылке, организовав закачку виндового OpenVPN Client'a

Установим его наш ноутбук.

3. Настраиваем доступы, опять идем в админку сервера и производим практически все те-же манипуляции что и с user-one отличие только в маршруте и в открываемом порту (правда для user-one номер порта 3389 придется изменить, чтоб конфликта не было, а в pfsense перенаправить измененный порт на нужный)



ну вот и все, теперь при запуске OpenVPN Client'a которого мы установили на предыдущем шаге, будет создан VPN тоннель и мы сможем подключится по RDP к laptop (естественно необходимо на нем разрешить доступ к удаленному рабочему столу), а уж с него можно ходить куда вздумается в рамках 192.168.1.0/24 подсети!
Теперь вроде все!

Всем хорошего настроения!!!

PPS: тут выявилась одна небольшая проблемка, когда на VPS подняты 2 тоннеля, то тот который с pfsense периодически "падает" и его приходится "поднимать" в ручную, дабы избежать лишних телодвижений установим на наш файервол Service_Watchdog



и поставим мониторить нашу OpenVPN службу:


И теперь при падении OpenVPN тоннеля он благополучно будет поднят нашим замечательным Service_Watchdog!

Комментариев нет:

Отправить комментарий