Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: помогите с openVPN  (Прочитано 1504 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pljonkin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
помогите с openVPN
« : 14 Декабря 2012, 13:53:40 »
добрый день
ситуация такая: машина формирует данные, которые можно взять при помощи протокола. описание этого протокола есть. доступ к данным должен происходить через openvpn. как я понимаю нужно заставить openvpn вместо своего протокола UDP - IKE использовать наш протокол.
есть советы?
спс

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #1 : 15 Декабря 2012, 06:01:47 »
Есть.
Советую выражаться яснее.

Оффлайн pljonkin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #2 : 15 Декабря 2012, 09:34:04 »
какую информацию вам предоставить?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #3 : 17 Декабря 2012, 12:41:53 »
pljonkin, упаси тебя боже писать когда-нибудь ТЗ.

Я вижу три варианта
1) тебе надо просто настроить тунель и гонять по нему данные. Результат: ты идешь в сад в ветку форма посвящённую сетям. ну или google openvpn howto для чайников
2) тебе надо заставить сам openvpn работать по экзотическим линиям связи, по каким-то неведомым широкой общественности протоколам и по ним пробрасывать обычную защищённую IP сеть. тут мы можем с тобой поговорить.
3) просто надо освоить сетевое программирование но вообще хз от куда начинать.

Ну предоставь хотя бы цифру 1, 2 или 3. Что-то мне подсказывает что тут 1 в особо трудной форме аля "Про VPN вчера в автобусе от 3-клашек случайно краем уха услышал. Хочу!"

Если 2 или 3 то начинай уже адекватно формулировать свои мысли. У телепатов новый год на носу.
Если совсем начинающий, не выпендривайся, говори по русски что в самом итоге должно получиться аля "хочу написать сайт" или "у меня в подъезде счётчик электроэнергии висит, говорят он умный и с него можно считывать показания, как быть?" Так будет понятнее и тебе подскажут адекватные способы решения проблемы, правильно помогут выбрать средства для реализации желаемого или объяснят что за такие решения люди платят мегабаксы ;-)

Оффлайн pljonkin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #4 : 17 Декабря 2012, 13:25:11 »
строг но справедлив, Yurror)
у меня несколько иная специализация,а в этой теме я чайник капитальный.
постараюсь раскрыть суть:
у меня есть устройство которое генерирует ключи (в дальнейшем ГК) в цикле (новый ключ формируется через небольшой интервал времени). мне необходимо создать ЛВС (для начала точка-точка через кабель витая пара), данные в которой будут передаваться в зашифрованном виде, а шифрование будет происходить теми ключами, которые генерит ГК.
т.е. у нас получается такая схема: в точке А стоит ГК1 и компьютер(между собой они соединены и управляются по usb) и вотчке B стоит также ГК2 и компьютер.
ГК1 и ГК2 связаны между собой своим каналом связи.
компьютеры соединены сетью через витую пару. эту сеть нам и нужно "защитить". (ПО на компьютерах- ubuntu).
по информации которая известна мне о ГК я знаю, что ключи формируются в памяти этого устройства и для доступа к ним необходимо использовать некий протокол, описание которого у меня есть(список значений датаграмм). так же почитав в интернете, я узнаю, что для того чтобы брать ключи от ГК, нам нужно использовать программу openVPN, протокол UDP для доступа и некий механизм ipsec, который использует протокол ike.
не знаю с какой стороны подойти к решению этой задачи..
ps
как я понимаю, нам нужно чтобы openvpn посредством нашего протокола(или команд) брал ключи из памяти ГК и шифровал ими канал между ПК..(т.е. openVPN шифрует сеть между пк1 и пк2, а ключи берет у ГК по usb соединению между ГК и пк)
постарался объяснить как мог.
спс!

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #5 : 18 Декабря 2012, 04:34:24 »
Точно должен использоваться именно OpenVPN?

http://openvpn.net/index.php/open-source/341-openvpn-compatibility.html
Цитировать
OpenVPN is not compatible with IKE

http://openvpn.net/archive/openvpn-users/2003-06/msg00004.html
Цитировать
You might check out freeswan.org

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #6 : 18 Декабря 2012, 06:04:45 »
Вот так и надо было начинать!  :coolsmiley:

Чайник в сетях или защите?

Сети я знаю на уровне 2/3 CCNA =) Шифрование я знаю на уровне похуже.

Асиметричное шифрование штука затратная по процессорным ресурсам. Поэтому обычно Асиметричное шифрование используют для обмена сеансовым ключом. Далее сеансовый ключ не меняется (тут я не уверен на все 100% вероятно современные реализации могут переодически менять ключ ибо есть долгоживущие VPN'ы). Это из теории.
Я так понял у тебя есть два связанных генератора ключей (как они связаны нас в данный момент не колышит) факт в том что эти ГК отдают ключи и нам этими ключами надо шифровать Ethernet трафик.

Кстати, что есть "Генераторы ключей"? или это военная тайна (я не удивлюсь)? А всему форуму не запретят выезд в страну вероятного противника потому что мы участвовали в разработке военных девайсов? Они одобрены ФСБ? =)

Еще то в чем я уверен на все 100% что враз OpenVPN и IPSec использовать не имеет смысла. Надо подробнее изучить данные реализации (а реализуют они одно и то же) и понять куда будет проще втиснуть свой костыль =)

Со мной можно спорить, но я пятой точной чую, что ковырять именно OpenVPN будет проще ибо это обычное userspace приложение без всяких ядерных заморочек. Взаимодействие с ядром там простое как барабан. Открывается файл устройства tap/tun и пушутся/читаются пакеты. С сетью ядро само разбирается.

Кстати, может статься что написать свой openvpn с бекджеком и генератором ключей окажется проще чем разбираться в уже существующей инфраструктуре проекта openvpn.

Вообще суть любого VPN это по публичным каналам (которым нет доверия) используя их как транспорт проложить защищенный канал, по которому уже снова запускают стандартные протоколы, например PPP, Ethernet или IP, или же защита данных происходит на прикладном уровне (SSL)

У ядра Linux есть два типа стандартных виртуальных сетевых интерфейсов (может и больше но эти два точно есть и они используются OpenVPN'ом)
tap - предназначен для инкапсуляции Ethernet-кадров
tun - предназначен для инкапсуляции IP кадров
Если я ничего не напутал. =)

tun/tap-интерфейс создаётся или программно вызовами api linux (из своего приложения) либо средствами администрирования (из командной строки). В системе появляется интерфейс, который для ОС выглядит как eth или ppp интерфейс, но он не связан с каким либо реальным устройством в компьютере. Он связывается с файлом в /dev/net/
В ОС ты так же настраиваешь интерфейс как и обычный ethernet/ppp, назначаешь адреса, прописываешь маршруты. Когда ОС исходя из данных таблицы маршрутизации решает что какой-то пакет должен уйти через наш интерфейс оно его туда и отправляет, а мы его можем считать из файла устройства, зашифровать и передать по реальной публичной сети. Обычно в качестве транспорта по публичной сети используется UDP.
Точно так же в обратную сторону. Если что-то нам прилетает через "UDP соединение" (нет там соединений реальных просто привязка к IP и номеру порта UDP), мы это считываем, расшифровываем и записываем в файл устройства нашего виртуального интерфейса, а ОС на полном серьёзе считает что ей пакет на интерфейс пришел ну и соответственно его обрабатывает.

Именно так и работает OpenVPN только его можно по разному настраивать эти настройки обеспечивают разные сочетания протоколов, инкапсуляций, методов шифрования, и прочей сервисной шелухи.

Как это в реальной жизни, примерчег: http://backreference.org/2010/03/26/tuntap-interface-tutorial/

Соответственно тебе решать допиливать этот пример до вменяемого состояния когда этим можно будет пользоваться, или разбираться во внутренней кухне OpenVPN и вживлять в него свои методы шифрования. Геморру одинаково очень много. За второе люди скажут спасибо, если твой генератор ключей популярен и ты выложишь свои изменения в открытый доступ.

Оффлайн pljonkin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #7 : 18 Декабря 2012, 13:15:22 »
я не специалист по программированию, а здесь как я понимаю нужны именно эти знания.
написано много и несомненно полезно, но для чайника врядли поможет(
то, что использовать для доступа к ключам именно openvpn- это 100%.
не могу в точности понять сам механизм изменения и применения openvpn в данном случае.. т.е. как я представлял себе это выглядеть должно было так: есть исходный код программы openvpn, в котором мы изменяем определенные параметры и таким образом заставляем программу открывать udp соединение и общаться с устройством (ГК)уже нашими командами..(причем как я понимаю датаграммы, которые у меня есть-это и есть команды). далее каким то образом этот самый openvpn должен использовать наш динамический ключ (или может файл в который периодически перезаписывается статический ключ) для шифрования сети.

я наивен?)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #8 : 18 Декабря 2012, 14:35:01 »
Ты просто мега-наивный... Просись в книгу рекордов Гинеса

OpenVPN не надо учить общаться по UDP он это прекрасно умеет делать.

Если ты просто хочешь настроить OpenVPN по тебе плачет пункт 1 и соседняя ветка форума посвященная настройки сетей. Там придётся признаться что за хрень генерит тебе ключи. Буквально написать что на микросхемах написано как детектится системой, кто-нибудь поймет твоюю писанину и ткнёт в готовый конфиг. потом выяснится что всё было крайне тривиально.

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

Из программирования тему походу можно переносить раз ты не хочешь программировать. Только вот поделись какая левая пятка побудила тебя написать именно сюда? И почему надо партизанить в отношении генератора ключей?


Пользователь решил продолжить мысль 18 Декабря 2012, 14:37:32:
Не оно случаем?
http://habrahabr.ru/company/aktiv-company/blog/137306/
« Последнее редактирование: 18 Декабря 2012, 14:37:32 от Yurror »

Оффлайн pljonkin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #9 : 26 Декабря 2012, 12:49:50 »
пытаюсь разобраться в структуре openvpn через среду eclipse (c++).
пока ничего не ясно, что за что отвечает и т.д.
скачал исходник с оф. сайта openvpn 2.2.2
кто подскажет какой файл за что отвечает, может описание у кого есть? конкретно по прежнему задача найти в коде место, в которое смогу вставить свой протокол(датаграммы) для обращения к устройству и взяти ключей из его памяти.
спс

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: помогите с openVPN
« Ответ #10 : 26 Декабря 2012, 15:33:16 »
2Moderators:
(Нажмите, чтобы показать/скрыть)

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.