openvpn в корпоративной сети.

Added by Alex Zhihorev 2 months ago

У меня на работе в корпоративной сети правило: запрещено все, кроме того что разрешено.

Запрещено даже зеркало яндекс, где и лежат бинарники Calculate.

Пробросим vpn до домашнего компьютера.

Ставим и настраиваем openvpn по данной статье: https://wiki.calculate-linux.org/ru/openvpn

По скольку все порты у нас запрещены, кроме 443, вносим изменения в серверный конфиг openvpn.


Настройка сервера

Изменяем строчку в конфиге

port 443
proto tcp
dev tun0
compress lzo
tls-server
cipher AES-256-CBC
auth SHA256
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh.pem
tls-auth keys/ta.key 0
server 10.10.0.0 255.255.255.0 # собственно наша виртуальная сеть
topology subnet
push "redirect-gateway def1" # Перенаправлять default gateway на vpn-сервер.
client-config-dir ccd # Директория для клиентских конфигов
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
duplicate-cn
keepalive 10 120
user openvpn
group openvpn
persist-tun
persist-key
status /var/log/openvpn-status.log

Не забываем рестартовать сервис.


Настройка клиента

Изменяем конфигурацию

client
proto tcp
dev tun
compress lzo

remote х.х.х.х 443 - адрес и порт домашнего компьютера.

persist-tun
persist-key
remote-cert-tls server
ca keys/ca.crt
cert keys/client.crt
key keys/client.key
tls-auth keys/ta.key 1
status /var/log/openvpn-status.log
resolv-retry infinite
nobind
verb 4
auth SHA256
auth-user-pass gw-auth.txt
auth-nocache
key-direction 1

Добавляем строчку в конфиг клиента
http-proxy х.х.х.х 3128 proxy-auth.txt ntlm
  • х.х.х.х адрес и порт корпоративного прокси
  • proxy-auth.txt файл в каталоге /etc/openvpn/, в котором указан логин пароль от корпоративного прокси
  • ntlm - тип авторизации

формат файла proxy-auth.txt
DOMAIN\login
Password

Добавляем строчку в конфиг клиента
auth-user-pass gw-auth.txt
  • gw-auth.txt - файл в каталоге /etc/openvpn/gw-auth.txt

формат файла gw-auth.txt
login от remote х.х.х.х
Password

Общая логика работы:

  1. по dhcp получаем IP адрес и default gateway в корпоративной сети
  2. соединяемся с домашним компьютером через прокси (в моем случае Microsoft Forefront Threat Management Gateway) по порту 443, который скорее всего разрешен.

Корпоративный прокси, в моем случае, работает через ntlm идентификацию.


ИТОГ

В моем случае, настройка сервера сделана так, чтобы default gateway направлялся на vpn-сервер.
Поэтому все запросы идут через интерфейс tun0.
Поэтому пришлось добавить файл с маршрутами до корпоративных ресурсов.


Не решено

Я параноик и меня смущает, что логины и пароли в файлах: gw-auth.txt и proxy-auth.txt указаны в режиме PLAIN TEXT.


Thank you!