- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Да, с маршрутизацией на клиенте точно проблемы.
Конфиг сервера VPN:
Конфиг клиента:
route -print
Буду очень благодарен за советы по настройке.
Сначала полностью хотелось бы прояснить все моменты. Т.е. четко очертить исходную задачу, чтобы не получилось, что кто-то говорит про Фому, а кто-то про Ерёму.
Итого:
У Вас есть виртуальная машина с FreeBSD, на которой крутится сайт, к которому нужно дать доступ разработчику.
OpenVPN-сервер расположен на виртуальной машине (у нее есть выделенный IP, к которому идет подключение) или OpenVPN-сервер находится на шлюзе в локальной сети, в которую входит Ваша машина FreeBSD?
Разработчик, насколько понимаю, использует OpenVPN-клиента для подключения.
Вы говорите, что проблема доступа к виртуалке с динамических IP через SSH решена. Напишите, пожалуйста, как Вы подключаетесь через SSH. Насколько понимаю, Вы вбиваете адрес 10.15.0.1 (если это сервер) и подключаетесь по PuTTY или другому SSH клиенту. Если это так, и Вы говорите, что все работает - Вам нужно получить доступ к сайту по http/s . Вы пробовали использовать файл hosts, чтобы сделать так, чтобы по имени URL резолвился адрес, который находится через туннель?
1. Делаем openvpn без дефалтного гейта
2. Добавляем маршрут на сайт вручную через route
3. ???
4. Profit!
Сначала полностью хотелось бы прояснить все моменты. Т.е. четко очертить исходную задачу, чтобы не получилось, что кто-то говорит про Фому, а кто-то про Ерёму.
Итого:
У Вас есть виртуальная машина с FreeBSD, на которой крутится сайт, к которому нужно дать доступ разработчику.
Немного не так.
Есть виртуальные машины разработчиков со своими внешними IP, и есть некие сервисы (сайты), которые используются всеми разработчиками (типа CRM и ERP). Эти сервисы работают не на виртуалках разработчиков, а на отдельных физических серверах, со своими IP.
Как виртуалки разработчиков, так и сервисы, защищены файерволом по портам.
Проблема заключается в том, что некоторые рабочие станции девелоперов (Linux и Windows), работают на динамических IP, выделяемых провайдерами. Поэтому сейчас нам приходится вручную прописывать доступ к сервисам, расположенным на выделенных серверах. Раньше мы также вручную прописывали доступ к 22 порту и для виртуалок девелоперов.
Идея была в том, чтобы сделать VPN до виртуалки разработчика. Это дает воpможность подключаться по SSH, указывая PuTTY VPN-адрес виртуалки, такой как 10.15.0.1.
При этом хотелось бы сделать так, чтобы браузер, запущенный на рабочей станции девелопера, ходил на сервисы, закрытые файерволом, не напрямую, а через виртуалку девелопера, у которой фиксированный внешний адрес. В этом случае я бы мог прописать этот адрес виртуалки и разрешить доступ с него на закрытые сервисы.
OpenVPN-сервер расположен на виртуальной машине (у нее есть выделенный IP, к которому идет подключение) или OpenVPN-сервер находится на шлюзе в локальной сети, в которую входит Ваша машина FreeBSD?
Разработчик, насколько понимаю, использует OpenVPN-клиента для подключения.
Первый вариант: OpenVPN-сервер расположен на виртуальной машине девелопера. У этой виртуалки есть внешний IP.
Вы говорите, что проблема доступа к виртуалке с динамических IP через SSH решена. Напишите, пожалуйста, как Вы подключаетесь через SSH. Насколько понимаю, Вы вбиваете адрес 10.15.0.1 (если это сервер) и подключаетесь по PuTTY или другому SSH клиенту. Если это так, и Вы говорите, что все работает - Вам нужно получить доступ к сайту по http/s . Вы пробовали использовать файл hosts, чтобы сделать так, чтобы по имени URL резолвился адрес, который находится через туннель?
Да, запускаем в винде клиента OpenVPN, PuTTY и указываем адрес 10.15.0.1.
Что касается сайта, то он расположен на другом сервере, не на виртуалке, на которой установлен OpenVPN. Я пытался настроить проксирование через nginx, запустив его на виртуалке, и прописав IP 10.15.0.1 в файле hosts. Проксирование как-то не заработало полностью, сайты открывались с ошибкой. Возможно я не умею настраивать nginx, что скорее всего...
Но может эта задача действительно решается как-то проще, например, правильной настройкой маршрутизации или использованием NAT на виртуалке...
Что касается сайта, то он расположен на другом сервере, не на виртуалке, на которой установлен OpenVPN. Я пытался настроить проксирование через nginx
Т.е. web-сервер никак к OpenVPN не относится и не имеет своего клиента?
Проксировать запросы через nginx не слишком правильно по-моему - если дальше нужно будет работать с FTP или другими сервисами (а думаю пригодится), то уже не поможет.
При этом хотелось бы сделать так, чтобы браузер, запущенный на рабочей станции девелопера, ходил на сервисы, закрытые файерволом, не напрямую, а через виртуалку девелопера, у которой фиксированный внешний адрес. В этом случае я бы мог прописать этот адрес виртуалки и разрешить доступ с него на закрытые сервисы.
Как насчет подхода: Вы ставите VPN-сервер (станция девелопера). Этот VPN-сервер находится в одной локальной сети с сайтами, к которым нужно давать доступ. На фаерволе разрешаете любой трафик из VPN-сети к адресам Ваших сайтов. При этом через VPN нужно транслировать маршрут клиенту в Вашу локальную сеть с сервисами.
Может возникнуть проблема, если адреса сетей будут одинаковыми у клиента и за сервером OpenVPN. Можно тоже обойти - установить OpenVPN клиенты внутри локальной сети на сайтах, которые бы подключались к Вашему OpenVPN серверу. В конфигурации разрешить клиентам видеть друг друга. Тогда Вы бы просто ходили бы внутри виртуальной сети.
Зачем заниматься проксированием не понимаю.
Т.е. web-сервер никак к OpenVPN не относится и не имеет своего клиента?
Проксировать запросы через nginx не слишком правильно по-моему - если дальше нужно будет работать с FTP или другими сервисами (а думаю пригодится), то уже не поможет.
Как насчет подхода: Вы ставите VPN-сервер (станция девелопера). Этот VPN-сервер находится в одной локальной сети с сайтами, к которым нужно давать доступ. На фаерволе разрешаете любой трафик из VPN-сети к адресам Ваших сайтов. При этом через VPN нужно транслировать маршрут клиенту в Вашу локальную сеть с сервисами.
Может возникнуть проблема, если адреса сетей будут одинаковыми у клиента и за сервером OpenVPN. Можно тоже обойти - установить OpenVPN клиенты внутри локальной сети на сайтах, которые бы подключались к Вашему OpenVPN серверу. В конфигурации разрешить клиентам видеть друг друга. Тогда Вы бы просто ходили бы внутри виртуальной сети.
Зачем заниматься проксированием не понимаю.
Поставить рабочие станции девелоперов, к сожалению, в одну сеть с закрытыми сервисами не получится. Я не рискну что-то менять на серверах сервисов, т.к. там все довольно сложно и критично...
Все, что я могу сделать на серверах сервисов - это разрешить доступ с определенных адресов IP. Поэтому я и думал про проксирование.
На OpenVPN сервере добавьте
push "route 1.1.1.0 255.255.255.0"
где 1.1.1.0 - локальная сеть, в которой находятся и Ваши закрытые сервисы и OpenVPN сервер + правильная маска.
Эта опция будет говорить клиенту, что такая-то удаленная сеть находится за сервером OpenVPN, соответственно трафик в нее будет передаваться по туннелю. Единственное - если не будет конфликта сетей с OpenVPN клиентом.
---------- Добавлено 27.05.2014 в 13:53 ----------
И обязательно проверьте фаервол, чтобы не блокировал трафик из VPN сети.
Также насчет обратной маршрутизации. Прийдя на закрытый web-сервис пакет должен быть возвращен назад через машину девелопера на VPN-клиент. Соответственно, закрытый web-сервер должен знать о существовании такой сети.
Если машина девелопера - это маршрут по умолчанию, то ничего делать не нужно. Если же нет - все же придется прописать маршрут на закрытом web-сервере, который бы говорил, что в сеть 10.15.0.0/24 маршрут лежит через машину девелопера.
На OpenVPN сервере добавьте
push "route 1.1.1.0 255.255.255.0"
где 1.1.1.0 - локальная сеть, в которой находятся и Ваши закрытые сервисы и OpenVPN сервер + правильная маска.
Наши закрытые сервисы и OpenVPN сервер находятся вообще в разных сетях. Причем каждый закрытый сервис находится в своей сети.
Все же решил проблему с помощью nginx. Прописал в hosts адрес виртуалки в сети VPN, поставил на эту виртуалку nginx и настроил редирект на закрытые серверы. Работает)