Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» OpenVPN

Автор: mookhin
Дата сообщения: 16.11.2012 22:02
Alukardd

В общем-то вопрос даже более глобальный...

Случайно обнаружил (VPN крутится более 4-х лет), что VPN-сервер не проверяет валидность имени и IP рабочей станции с именем в сертификате клиента.

Ошибка обнаружилась после того, как случайно перепутал клиентские сертификаты...
То бишь, клиент из izba2.small.net c сертификатом на имя CN=izba1.small.net, спокойно приконнектился к серверу. Та же картина произошла и с вторым клиентом.
DNS-расписан, MAC'и в DHCP - зарезервированы...

Уже 2-е суток бьюсь с проблемой и никак не могу понять чЁ-к чему.
Сервер на базе W2K3 EE R2, в RRAS 1194/udp - открыт. Рабочие конфиги - последний раз правились более 2-х лет назад.

Имеющийся результат не зависит от версии OpenVPN. Сейчас крутится 2.3.Alpha.1

Надоумьте/подскажите где грабли:
server.ovpn
##################
dev tap
persist-tun
persist-key
local 192.168.xxx.xxx
keepalive 15 90
server-bridge
dhcp-option DOMAIN small.net
dhcp-option DNS 172.16.xx.xx
script-security 2
max-clients 32
tls-server
dh c:\\winnt\\vpn\\config\\server.pem
crl-verify c:\\winnt\\vpn\\config\\rsa\\crl\\crl.pem
pkcs12 c:\\winnt\\vpn\\config\\rsa\\pfx\\server.pfx
status c:\\winnt\\vpn\\status.log
log c:\\winnt\\vpn\\server.log
verb 4
##################

client.ovpn
##################
dev tap
ns-cert-type server
remote 192.168.xxx.xxx
pkcs12 client.pfx
script-security 2
persist-tun
persist-key
client
verb 4
##################
Автор: ooptimum
Дата сообщения: 16.11.2012 22:21
mookhin
А как вы себе представляете сопоставление имени хоста с именем, прописанным в сертификате, например, для мобильных клиентов, чей адрес может меняться постоянно? А если vpn-соединение устанавливается из-за nat? В данном случае сертификаты служат заменой паролю, а cn-имя внутри сертификата не обязано быть согласованным с именем хоста -- там может быть любая значимая для вас информация, например, имя пользователя компьютера. Т.е. у вас сложилось неверное представление о сертификатах в OpenVPN, не стоит их путать с сертификатами https-серверов.
Автор: vlary
Дата сообщения: 16.11.2012 22:30
mookhin Что-то я ничего не понял из сказанного.
Есть сертификат, на определенное имя vasya, подписанный СА. Для этого имени забит постоянный айпи при подключении, скажем 192.168.0.27. Любой комп в интернете, предъявив этот сертификат, будет идентифицирован как vasya и получит айпи 192.168.0.27.
В чем суть проблемы?
Автор: tankistua
Дата сообщения: 16.11.2012 22:56
ну правильно - настройки dhcp можно принимать, а моно игнорировать. Желание клиента. Это касается как DHCP-сервера, так и в случае настройки айпишника для каждого клиента средствами openvpn.

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

Кроме как поднимать на каждого клиента отдельный впн-сервер я ничего не придумал: отдельный интерфейс, отдельная сетка короткая /30 - там всего один возможный айпишник для клиента.
Автор: mookhin
Дата сообщения: 19.11.2012 11:12
ooptimum,
vlary,
tankistua


ок!

В таком случае немного внесу дополнительную ясность в проблемную картину:

VPN-сеть - внутренняя "закрытая" сеть. Доступ к ней - только тем, кому это необходимо из общей ЛВС. Адрес такого клиента (доступ к VPN) может быть в статике или получен с DHCP-сервера общей ЛВС.

Проблема: VPN-серевер должен получить имя клиента(commonName/CN) из сертификата, проверить через DNS/DHCP ЛВС наличие "учетки" КОМПЬЮТЕРА в составе ЛВС(отресловить) и только потом, на основании сетевой проверки, выдать/подтвердить DNS/DHCP-адрес клиента из VPN-сети.

VPN-сервер: 2-а физических адаптера, установолен как Domain Controller с запущенной службой RRAS (NAT+рутер).

Доменная иерархия:
ЛВС - lan.small.net,
VPN - vpn.lan.small.net
Автор: vlary
Дата сообщения: 19.11.2012 12:03
mookhin Тогда тебе нужно смотреть в сторону RADIUS + OpenVPN
Автор: tankistua
Дата сообщения: 19.11.2012 13:01

Цитата:
VPN-сеть - внутренняя "закрытая" сеть. Доступ к ней - только тем, кому это необходимо из общей ЛВС. Адрес такого клиента (доступ к  VPN) может быть в статике или получен с DHCP-сервера общей ЛВС.
 
Проблема: VPN-серевер должен получить имя клиента(commonName/CN) из сертификата, проверить через DNS/DHCP ЛВС наличие "учетки" КОМПЬЮТЕРА в составе ЛВС(отресловить) и только потом, на основании сетевой проверки, выдать/подтвердить DNS/DHCP-адрес клиента из VPN-сети.
 
VPN-сервер: 2-а физических адаптера, установолен как Domain Controller с запущенной службой RRAS (NAT+рутер).
 
Доменная иерархия:  
ЛВС - lan.small.net,  
VPN - vpn.lan.small.net


я тебе еще раз говорю - ты не можешь клиента заставить использовать адрес, выданный сервером. Следовательно все твои проверки до одного места, кроме геморроя лично тебе это ничего больше не даст.
Автор: crackmax
Дата сообщения: 20.11.2012 15:18
Вопрос существует 2 удаленных офиса

1) офис1 - 192.168.1.1 (15 компьютеров) подключение к интернету за NAT (отдельного сервера OpenVPN нет, все компьютеры в рабочей группе) Внешние IP адреса «белые» есть.

2) офис2 - 192.168.2.1 (20 компьютеров) подключение к интернету за NAT (отдельного сервера OpenVPN нет, все компьютеры в рабочей группе) Внешние IP адреса «белые» есть.

Требуется соединить эти офисы с помощью OpenVPN (или роутеров с поддержкой VPN), чтобы пользователи видели друг друга, могли использовать общие сетевые ресурсы а так же принтеры и могли заходить из офиса1 в офис2 по RDP и наоборот…
Желательно, чтобы подключение OpenVPN было на Windows без линуксов…
Автор: vlary
Дата сообщения: 20.11.2012 17:02
crackmax
Цитата:
Требуется соединить эти офисы с помощью OpenVPN
Ну так соединяй, кто мешает?
На одном виндузовом серваке ставишь OpenVPN сервер, на виндузовом серваке в другой сети - OpenVPN клиент, там и там прописываешь маршруты - и вперед.
Автор: crackmax
Дата сообщения: 21.11.2012 09:41
Уважаемый vlary
Спасибо за ответ, но хотелось бы по подробнее узнать о том как соединять. Весь вопрос в том, что если поставить OpenVPN на сервер в офисе1 и сервер в офисе2 тогда я создам VPN между 2 мя серверами, а я хотел бы объединить 2 офиса в общую сеть.
По простому говоря чтобы в офисе1 я с компьютера с IP 192.168.1.5 по rdp мог попасть сразу на компьютер в офисе2 c IP 192.168.2.5 например....
Я в этом вопросе не совсем хорошо разбираюсь, попробовал пробросить VPN между своим рабочим компом и домашним по этой (http://compkaluga.ru/articles/172/) инструкции и всё получилось, но я дома вижу и могу подсоединиться напрямую только к своему рабочему компу, к другим компам на работе подсоединиться не могу напрямую со своего домашнего компа, так же остается вопрос с общими сетевыми ресурсами и пробросом принтеров...
Если вам известно как все это реализовать может поделетесь своим опытом....
Автор: SAM30
Дата сообщения: 21.11.2012 10:16

Цитата:
без линуксов…

Жаль, что без "линуксов" я используя эти сведения http://www.ru.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/ipsec.htm соединил три сети с "серыми" и "белыми" адресами, хотя до этого мучился с OpenVPN под WindowsXP. Я не жалею потраченного времени. Очень надежно и стабильно и без сбоев на очень старых системных блоках.
Автор: vlary
Дата сообщения: 21.11.2012 10:22
crackmax
Цитата:
а я хотел бы объединить 2 офиса в общую сеть.
Так и я о том же.
Допустим, первый сервер, на который станет OpenVPN сервер, имеет внутренний айпи 192.168.1.200, а второй сервер, на который станет OpenVPN клиент, имеет айпи 192.168.2.100.
VPN линк будет иметь, допустим, адреса 192.168.100.1 со стороны сервера, и 192.168.100.2 со стороны клиента.
На первом сервере прописываем путь во вторую сеть:
route add 192.168.2.0 mask 255.255.255.0 192.168.100.2
На втором сервере прописываем путь в первую сеть:
route add 192.168.1.0 mask 255.255.255.0 192.168.100.1
Если эти сервера - шлюзы по умолчанию в своих сетях, то на клиентах ничего прописывать не надо. Если нет, придется и там прописать маршруты:
В первой сети прописываем путь во вторую сеть:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.200
Во второй сети прописываем путь в первую сеть:
route add 192.168.1.0 mask 255.255.255.0 192.168.2.100
Ну и на обоих серверах через реестр включить маршрутизацию, если она не включена.


Автор: Decker82
Дата сообщения: 21.11.2012 10:38
crackmax В конфигах OpenVPN сервера (допустим он установлен в первом офисе) прописываем чтобы он видел сеть за клиентом (второй офис), также с помощью директивы push route для клиента, прописываем чтобы клиент видел сеть за сервером. В результате в таблицах маршрутизации сервера и клиента должны получиться маршруты для другой подсети, плюс как правильно сказал vlary должна быть включена маршрутизация пакетов.

В качестве примера. Есть два офиса, в одном подсеть 172.31.1.0/24, в другой 192.168.0.0/24. Основной шлюз в сети 1 - 172.31.1.1, основной шлюз в сети 2 - 192.168.0.1, обе машины на базе ОС Windows 2003 Server с включенной маршрутизацией пакетов. Сервер OpenVPN установлен на 172.31.1.1, соответственно 192.168.0.1 цепляется туда как клиент. OpenVPN подсеть - 10.111.111.0/24.

В конфиги сервера добавляем две строки:

Код: route 192.168.0.0 255.255.255.0 10.111.111.2 # сеть за клиентом
push "route 172.31.1.0 255.255.255.0" # для каждого клиента, сеть за сервером
Автор: crackmax
Дата сообщения: 21.11.2012 13:02
Большое спасибо всем за доходчивые разъяснения, буду пробовать.
Decker82 С помощью вашей статьи можно VPN поднять любому человеку (Большое спасибо за труды и помощь)

Заранее прошу прощения за флуд....
Автор: havoc77
Дата сообщения: 05.12.2012 12:01
Есть вопрос, скорее всего уже обсуждался не раз, но видно я ослепший и не могу понять в чем ошибка.

Есть сеть со шлюзом, есть отдельный OpenVPN сервер под VMWare на Debian (тот который поставляется готовый). В сети стоит DHCP который раздает адреса.
OpenVPN сервер настроен в bridge режиме.
К серверу подключается клиент, получает от DHCP сервера адрес, но с клиентской машины пингуется только сервер.
Каким образом включается маршрутизация пакетов дальше от сервера в сеть, и обратно к клиенту.
Цель в том, чтобы я мог иметь доступ к машине которая подключается к openvpn серверу.
Автор: Alukardd
Дата сообщения: 05.12.2012 12:09
havoc77
Ну а сам сервер настроен для этого? Включён ли forwarding пакетов? Разрешает ли firewall такие транзиты? Правда при таких вопросах у меня под сомнением то, как он умудряется получить адрес от внутреннего DHCP, скорее он получает тот что прописан в openvpn пуле server-bridge?
Для какого-то анализа происходящего надо видеть настройки:
cat /etc/openvpn/server.conf # или как он там у Вас зовётся
ip a
ip r
iptables -vnL FORWARD
Автор: havoc77
Дата сообщения: 05.12.2012 12:23
В том то и дело что не получает из пула. И на DHCP сервер подключенный клиент именно тот за кого себя выдает.

А вот форвардинг скорее всего не включен ибо на iptables -vnL FORWARD :
Chain FORWARD (policy ACCEPT 1698 packets, 165K bytes)
pkts bytes target prot opt in out source destination
0 0 AS0_ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

root@openvpnas:~# ip r
192.168.0.0/24 dev asbr0 proto kernel scope link src 192.168.0.4
default via 192.168.0.1 dev asbr0



P.S. я просто к линуксу не приученный, пожтому с такими вопросами лезу, а надо все как всегда вчера
Автор: Alukardd
Дата сообщения: 05.12.2012 12:48
havoc77
Ну если там именно bridge, то он идёт мимо forwarding'а.
Откуда вообще такое название asbr0? Стандартные скрипты OpenVPN на сколько я вижу поднимают br0.
И покажите всё таки
brctl show
ip a
Автор: havoc77
Дата сообщения: 05.12.2012 13:07

Код: root@openvpnas:~# brctl show
bridge name bridge id STP enabled interfaces
asbr0 8000.000c29d4d199 no as0t0
as0t1
as0t2
as0t3
eth0
pr0 8000.000000000000 no
Автор: Alukardd
Дата сообщения: 05.12.2012 13:44
havoc77
Всё выглядит нормально...
А на клиенте эта подсеть случаем не используется ещё где? Доступа нету я как понимаю нету не к клиенту ни от клиента?
Автор: havoc77
Дата сообщения: 05.12.2012 13:55
Именно так, что странно, ибо в мануале OpenVPN написано, мол включите и все, мол большего не надо.

Другой вариант через NAT, но я не понимаю тогда как достучаться до клиента.
Автор: Alukardd
Дата сообщения: 05.12.2012 14:01
havoc77
Зачем сразу NAT? Можно просто маршрутизацию наладить... Тут главное соблюсти всё ту же осторожность касательно наложения используемых в вашей локалке и VPN сети адресации на уже используемые сети со стороны клиента.
Автор: havoc77
Дата сообщения: 05.12.2012 14:17
Мне от клиента нужен только прозрачный IP клиента который он получает по DHCP/
За клиентом мне не нужен никто.

У меня вопрос, а не файрволл ли на openvpn сервере душит все пакеты и не дает им ходить ?
как его тогда настроить ?
Автор: Alukardd
Дата сообщения: 05.12.2012 14:21
havoc77
Цитата:
За клиентом мне не нужен никто.
Я и не заводил разговор об этом, но что бы клиенту нормально общаться с вашей локалкой его машина должна понимать что ваша подсеть за OpenVPN серверов, а не за его шлюзом или ещё хуже — он прямо в ней
Цитата:
а не файрволл ли на openvpn сервере душит все пакеты
Покажите что там настроено сейчас?
iptables -vnL
iptables -t nat -vnL
Автор: havoc77
Дата сообщения: 05.12.2012 14:44

Код:
root@openvpnas:~# iptables -vnL
Chain INPUT (policy ACCEPT 198 packets, 18814 bytes)
pkts bytes target prot opt in out source destination
69 8381 AS0_ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 AS0_ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 AS0_ACCEPT tcp -- * * 0.0.0.0/0 192.168.0.4 state NEW tcp dpt:915
0 0 AS0_ACCEPT tcp -- * * 0.0.0.0/0 192.168.0.4 state NEW tcp dpt:914
0 0 AS0_ACCEPT udp -- * * 0.0.0.0/0 192.168.0.4 state NEW udp dpt:917
1 70 AS0_ACCEPT udp -- * * 0.0.0.0/0 192.168.0.4 state NEW udp dpt:916
0 0 AS0_WEBACCEPT all -- * * 0.0.0.0/0 0.0.0.0/ 0 state RELATED,ESTABLISHED
0 0 AS0_WEBACCEPT tcp -- * * 0.0.0.0/0 192.168. 0.4 state NEW tcp dpt:943

Chain FORWARD (policy ACCEPT 496 packets, 48256 bytes)
pkts bytes target prot opt in out source destination
0 0 AS0_ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 143 packets, 19197 bytes)
pkts bytes target prot opt in out source destination

Chain AS0_ACCEPT (7 references)
pkts bytes target prot opt in out source destination
70 8451 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain AS0_WEBACCEPT (2 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
Автор: Alukardd
Дата сообщения: 05.12.2012 22:01
havoc77
Ни чего криминального в правилах я не нахожу, кроме их ужасности.
К чему было ставить НЕЧТО, вместо того, что бы взять любой дистрибутив и накатить пакет OpenVPN из репозитория?
Автор: havoc77
Дата сообщения: 06.12.2012 09:42
Ну теоретически, предполагалось, что если OpenVPN создало свои образы для быстрого поднятия системы, то оно должно работать сразу, но судя по всему я крайне наивен.

Это можно как-то исправить, или проще взять например Ubuntu, и накатить из репозитория openVPN, и есть ли подробный мануал как поставить openvpn под линуксом для чайников ?
Автор: yrkrus
Дата сообщения: 09.12.2012 18:56
Всех приветствую!
Знаю что уже неоднократно была такая проблема, но что то ни как не могу найти на нее ответ, может что подскажите, всю голову себе сломал.
Сервер на freebsd при чем находится еще за одним freebsd, через natd прокинут порт на подключение. Клиент ну скажем на win, прекрасно подключается ему назначается ip и он прекрасно пингует как сервер по ip так и туннель в vpn? но вот в чем проблема ну никак не получается увидеть сеть за сервером vpn.
конфиг сервера:

Код: port 2001
proto tcp
dev tun0
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
server 10.10.10.0 255.255.255.0
push "route 172.19.128.0 255.255.255.0"
client-config-dir ccd
client-to-client
ifconfig-pool-persist ipp.txt
duplicate-cn
tls-server
tls-auth keys/ta.key 0
tls-timeout 120
auth MD5
cipher BF-CBC
keepalive 10 120
Автор: Alukardd
Дата сообщения: 09.12.2012 19:34
havoc77
Цитата:
создало свои образы для быстрого поднятия системы
ключевое слово быстрого...
Инструкций в инете много, думаю поисковыми системами пользовать умеете, на сайте OpenVPN тоже куча полезных инструкций и в отличии от "готовой сборки" инструкции там нормальные.
Автор: Alukardd
Дата сообщения: 10.12.2012 08:24
yrkrus
а ipfw разрешает такой трафик?
Так на вскидку вроде всё верно с настройкой OpenVPN. Лучше отслеживать tcpdump'ом где проблема.
А вот маршруты на клиенте меня немного в ступор вгоняют... Как у него вообще интерфейсы настроены и откуда он инет берёт? Хотелось бы увидеть вывод ipconfig /all.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273

Предыдущая тема: конвертация mdf в sql


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.