Наши закрытые сервисы и OpenVPN сервер находятся вообще в разных сетях. Причем каждый закрытый сервис находится в своей сети.
Поставить рабочие станции девелоперов, к сожалению, в одну сеть с закрытыми сервисами не получится. Я не рискну что-то менять на серверах сервисов, т.к. там все довольно сложно и критично...
Все, что я могу сделать на серверах сервисов - это разрешить доступ с определенных адресов IP. Поэтому я и думал про проксирование.
Немного не так.
Есть виртуальные машины разработчиков со своими внешними IP, и есть некие сервисы (сайты), которые используются всеми разработчиками (типа CRM и ERP). Эти сервисы работают не на виртуалках разработчиков, а на отдельных физических серверах, со своими IP.
Как виртуалки разработчиков, так и сервисы, защищены файерволом по портам.
Проблема заключается в том, что некоторые рабочие станции девелоперов (Linux и Windows), работают на динамических IP, выделяемых провайдерами. Поэтому сейчас нам приходится вручную прописывать доступ к сервисам, расположенным на выделенных серверах. Раньше мы также вручную прописывали доступ к 22 порту и для виртуалок девелоперов.
Идея была в том, чтобы сделать VPN до виртуалки разработчика. Это дает воpможность подключаться по SSH, указывая PuTTY VPN-адрес виртуалки, такой как 10.15.0.1.
При этом хотелось бы сделать так, чтобы браузер, запущенный на рабочей станции девелопера, ходил на сервисы, закрытые файерволом, не напрямую, а через виртуалку девелопера, у которой фиксированный внешний адрес. В этом случае я бы мог прописать этот адрес виртуалки и разрешить доступ с него на закрытые сервисы.
Первый вариант: OpenVPN-сервер расположен на виртуальной машине девелопера. У этой виртуалки есть внешний IP.
Да, запускаем в винде клиента OpenVPN, PuTTY и указываем адрес 10.15.0.1.
Что касается сайта, то он расположен на другом сервере, не на виртуалке, на которой установлен OpenVPN. Я пытался настроить проксирование через nginx, запустив его на виртуалке, и прописав IP 10.15.0.1 в файле hosts. Проксирование как-то не заработало полностью, сайты открывались с ошибкой. Возможно я не умею настраивать nginx, что скорее всего...
Но может эта задача действительно решается как-то проще, например, правильной настройкой маршрутизации или использованием NAT на виртуалке...
Да, с маршрутизацией на клиенте точно проблемы.
Конфиг сервера VPN:
root@fbsd:/usr/local/etc/openvpn # less openvpn-server.confport 1194# proto tcp-serverproto udpdev tunuser openvpngroup openvpn# working directorycd /usr/local/etc/openvpn# SIGUSR1 restart protected file rereading fixpersist-keypersist-tun# auth & encryptiontls-servertls-timeout 120dh /usr/local/etc/openvpn/dh2048.pemca /usr/local/etc/openvpn/CA_cert.pemcert /usr/local/etc/openvpn/certs/server.pemkey /usr/local/etc/openvpn/keys/server.pemcrl-verify /usr/local/etc/openvpn/crl/crl.pemtls-auth /usr/local/etc/openvpn/ta.key 0#client-cert-not-required#auth MD5#cipher BF-CBC# networkserver 10.15.0.0 255.255.255.0client-config-dir /usr/local/etc/openvpn/ccdclient-to-clienttopology subnetmax-clients 5# duplicate-cn# clients network optionspush "dhcp-option DNS 10.15.0.1"# push "dhcp-option DNS 88.198.33.214"# route 10.15.0.0 255.255.255.0# compressioncomp-lzo# network flexibilitykeepalive 10 120#ping-restartstatus /var/log/openvpn/openvpn-status.log 1status-version 3log-append /var/log/openvpn/openvpn-server.logverb 6mute 20
Конфиг клиента:
clientdev tunproto udpremote <IP виртуалки> 1194tls-clientca "CA_cert.pem"cert "CClient.pem"key "KClient.pem"tls-auth "ta.key" 1#ns-cert-type server#remote-cert-tls servercomp-lzotun-mtu 1500mssfix 1450verb 6
route -print
C:\Users\admin>route print===========================================================================Список интерфейсов 23...00 ff bf 65 12 73 ......TAP-Windows Adapter V9 10...40 61 86 64 14 9a ......Realtek PCIe GBE Family Controller 20...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1 21...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8 1...........................Software Loopback Interface 1 22...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP 11...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface 13...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP #2 15...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP #3 24...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP #4===========================================================================IPv4 таблица маршрута===========================================================================Активные маршруты:Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.194 20 10.15.0.0 255.255.255.0 On-link 10.15.0.2 286 10.15.0.2 255.255.255.255 On-link 10.15.0.2 286 10.15.0.255 255.255.255.255 On-link 10.15.0.2 286 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 169.254.0.0 255.255.0.0 On-link 169.254.57.212 276 169.254.57.212 255.255.255.255 On-link 169.254.57.212 276 169.254.255.255 255.255.255.255 On-link 169.254.57.212 276 192.168.0.0 255.255.255.0 On-link 192.168.0.194 276 192.168.0.194 255.255.255.255 On-link 192.168.0.194 276 192.168.0.255 255.255.255.255 On-link 192.168.0.194 276 192.168.59.0 255.255.255.0 On-link 192.168.59.1 276 192.168.59.1 255.255.255.255 On-link 192.168.59.1 276 192.168.59.255 255.255.255.255 On-link 192.168.59.1 276 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 224.0.0.0 240.0.0.0 On-link 192.168.0.194 276 224.0.0.0 240.0.0.0 On-link 10.15.0.2 286 224.0.0.0 240.0.0.0 On-link 169.254.57.212 276 224.0.0.0 240.0.0.0 On-link 192.168.59.1 276 255.255.255.255 255.255.255.255 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.0.194 276 255.255.255.255 255.255.255.255 On-link 10.15.0.2 286 255.255.255.255 255.255.255.255 On-link 169.254.57.212 276 255.255.255.255 255.255.255.255 On-link 192.168.59.1 276===========================================================================Постоянные маршруты: ОтсутствуетIPv6 таблица маршрута===========================================================================Активные маршруты: Метрика Сетевой адрес Шлюз 1 306 ::1/128 On-link 10 276 fe80::/64 On-link 23 286 fe80::/64 On-link 20 276 fe80::/64 On-link 21 276 fe80::/64 On-link 20 276 fe80::5fc:5690:aa19:39d4/128 On-link 10 276 fe80::45f8:27a5:2b1:b157/128 On-link 23 286 fe80::d58f:c43e:648e:3e64/128 On-link 21 276 fe80::d90c:f7c2:50bd:8ff4/128 On-link 1 306 ff00::/8 On-link 10 276 ff00::/8 On-link 23 286 ff00::/8 On-link 20 276 ff00::/8 On-link 21 276 ff00::/8 On-link===========================================================================Постоянные маршруты: Отсутствует
Буду очень благодарен за советы по настройке.
Вообще я просто установил OpenVPN GUI по инструкции, добавил сертификаты. После подключения я могу обращаться к виртуалке через SSH, указывая PuTTY адрес вида 10.12.1.3. Может надо делать что-то специальное, чтобы браузер отправлял запросы через сеть VPN и с адреса VPN, а не через сеть локального провайдера и его IP?
Тут еще такой момент - сервер https_://developer.domain.ru:6678/ не находится в сети VPN и не будет туда добавлен. Тут нужен какой-нибудь прокси, наверное?
Да, это мы сделали. Проблема вот в чем.
Разработчик обращается к ресурсу по адресу вида: https_://developer.domain.ru:6678/, со своего домашнего компьютера, у которого динамический IP от провайдера и IP от VPN вида 10.12.1.3.
При этом браузер пытается загрузить https_://developer.domain.ru:6678/, отправляя запрос с динамического IP домашнего компьютера. А хочется сделать так, чтобы запрос шел с адреса IP виртуалки, через VPN. Тогда мы действительно можем открыть доступ для внешнего IP виртуалки и все будет хорошо.
Т.е. браузер не ходит на сайт через VPN и виртуалку, а ходит напрямую... В этом трабл.
Понятно, всем спасибо за ответы! Видимо, надо подумать, как уменьшить количество файлов в этой папке до разумного.
Да, после поста этого лога я пробовал и пассивный режим, но сам по себе пассивный режим не помог. Клиент добавил очень много файлов в папку.
Увеличил таймаут в FileZilla до 60 сек. и заработало!
Увы, пассивный и стоит (