Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Сетевые технологии > OpenVPN


Автор: __Alex__ 23.1.2008, 11:56
Здравствуйте возможно ли, используя пакет OpenVPN, создать ананимное TLS соединение, т.е. чтобы клиент и сервер не предоставляли свои сертификаты друг-другу?

Автор: ZeeLax 23.1.2008, 14:05
Зачем?

Автор: __Alex__ 23.1.2008, 15:19
Просто совершенно не надо, чтобы пользователь аутентифицоровал клиента, а клиент сервер!

Автор: __Alex__ 23.1.2008, 16:36
ну в смысле сервер клиента и наоборот

Автор: ZeeLax 23.1.2008, 16:59
У вас сервер и много клиентов или просто peer-to-peer? Ман читали?

Автор: __Alex__ 24.1.2008, 11:48
Да ман читал. Вот как раз в мане я обнаружил только два режима - двусторонняя аутентификация и когда клиент аутентиф сервера, а анонимной не нашел!

Автор: ZeeLax 24.1.2008, 13:59
Цитата(ZeeLax @  23.1.2008,  19:59 Найти цитируемый пост)
У вас сервер и много клиентов или просто peer-to-peer?


Автор: __Alex__ 24.1.2008, 16:48
Конечно, сервер и много клиентов! Если peer-to-peer там вообще сертификат не обязателен, можно просто на общем секрете сделать!
И еще один вопрос - сделал пока у сервера сертификат и у клиентов смертификаты, устанавливаю tls соединение между сервером и клиентом, но анализируя перехваченный траффик ничего похожего на tls не наблюдаю!!!! OpenVPN - действительно уставливает tls соединение или это реализация своего протокола?

Я понимаю, что шифрованный трафик инкапсулируется в udp или tcp пакеты, но декодируя ethereal-ом (да и если просто посмотреть, то непохоже!) видно, что это не tls!

Автор: __Alex__ 24.1.2008, 17:05
конфигурационный файл:

local 10.0.1.2
port 1194
proto tcp
dev tap
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
keepalive 10 120
cipher AES-256-CBC
max-clients 100
persist-key
persist-tun
status openvpn-status.log
verb 3



ethereal:


0000   00 03 47 d9 3e 11 00 02 b3 d3 60 4d 08 00 45 00  ..G.>.....`M..E.
0010   01 84 6c de 00 00 80 06 b6 93 0a 00 01 02 0a 00  ..l.............
0020   01 01 04 aa 05 b8 36 a3 35 7b a5 17 73 db 50 18  ......6.5{..s.P.
0030   ff 3b 9f c0 00 00 00 72 20 17 6c 6d 60 0c 3f 36  .;.....r .lm`.?6
0040   97 00 00 00 00 02 06 03 55 04 06 13 02 55 53 31  ........U....US1
0050   0b 30 09 06 03 55 04 08 13 02 43 41 31 15 30 13  .0...U....CA1.0.
0060   06 03 55 04 07 13 0c 53 61 6e 46 72 61 6e 63 69  ..U....SanFranci
0070   73 63 6f 31 14 30 12 06 03 55 04 0a 13 0b 46 6f  sco1.0...U....Fo
0080   72 74 46 75 6e 73 74 6f 6e 31 0d 30 0b 06 03 55  rtFunston1.0...U
0090   04 0b 13 04 4d 69 63 72 31 0f 30 0d 06 03 55 04  ....Micr1.0...U.
00a0   03 13 06 73 65 72 76 65 72 31 00 72 20 17 6c 6d  ...server1.r .lm
00b0   60 0c 3f 36 97 00 00 00 00 03 1f 30 1d 06 09 2a  `.?6.......0...*
00c0   86 48 86 f7 0d 01 09 01 16 10 6d 61 69 6c 40 68  .H........mail@h
00d0   6f 73 74 2e 64 6f 6d 61 69 6e 30 1e 17 0d 30 38  ost.domain0...08
00e0   30 31 32 34 30 39 30 39 32 37 5a 17 0d 31 38 30  0124090927Z..180
00f0   31 32 31 30 39 30 39 32 37 5a 30 73 31 0b 30 09  121090927Z0s1.0.
0100   06 03 55 04 06 13 02 55 53 31 0b 30 09 06 03 55  ..U....US1.0...U
0110   04 08 13 02 43 41 31 14 30 12 06 03 55 04 00 72  ....CA1.0...U..r
0120   20 17 6c 6d 60 0c 3f 36 97 00 00 00 00 04 0a 13   .lm`.?6........
0130   0b 46 6f 72 74 46 75 6e 73 74 6f 6e 31 0f 30 0d  .FortFunston1.0.
0140   06 03 55 04 0b 13 06 73 65 72 76 65 72 31 0f 30  ..U....server1.0
0150   0d 06 03 55 04 03 13 06 73 65 72 76 65 72 31 1f  ...U....server1.
0160   30 1d 06 09 2a 86 48 86 f7 0d 01 09 01 16 10 6d  0...*.H........m
0170   61 69 6c 40 68 6f 73 74 2e 64 6f 6d 61 69 6e 30  [email protected]
0180   81 9f 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05  ..0...*.H.......
0190   00 03                                            ..

Добавлено через 53 секунды
;dev tun - вот так, я опечатолся

Автор: ZeeLax 24.1.2008, 17:17
Цитата(__Alex__ @  24.1.2008,  19:48 Найти цитируемый пост)
Я понимаю, что шифрованный трафик инкапсулируется в udp или tcp пакеты, но декодируя ethereal-ом (да и если просто посмотреть, то непохоже!) видно, что это не tls! 

С чего видно то?

Добавлено через 13 минут и 23 секунды
Клиентов к серверу без авторизации никак не подключишь. Без TLS можно, но тогда логин/пароль. Иначе никак.

Автор: __Alex__ 24.1.2008, 17:47
В этом пакете указывается сертификат сервера, но в этом пакете не указан не код запроса (CONTRENT TYPE - долженн быть равен 0x22, т.к. это пакет относится к HANDSHAKE), не версия протокола tls (0x0301) не другая служебная информация, которая должна указывыаться в пакете!

Автор: __Alex__ 24.1.2008, 18:02
По поводу протокола вопрос снимается, был не прав!

Автор: ZeeLax 25.1.2008, 07:18
Поясните, пожалуйста, а то я и сам что-то в тупик зашел smile

Автор: __Alex__ 25.1.2008, 10:24
Здесь устанавливается виртуальное соединение внутри которого устанавливается сокетное соединение, на основе которого и работает TLS. Т.е. получается, что если снифирить реальную сеть, то мы будем видить всю эту вложенность друг в друга, т.е. каждый tcp пакет, который мы перехватываем не содержит tls пакет целиком, а лишь его часть (на сервере эти части собираются в единый tls пакет). Вот такую ошибку я и допустил, т.е. взял один из первых tcp пакетов и решил, что он целиком содержит tls пакет, а оказалось, что это была середина tls пакета, если посмотреть пакет, который пришел до того пакета, который я здесь выложил, то мы как раз и увидим 16 03 01 xx xx 02 (16 - означает handshake, 03 01 - TLS 1.0, xx xx - длина пакета 02 - server hello!)

Автор: ZeeLax 25.1.2008, 10:44
Аааа... А я в другой тупик вчера попал - прочитав http://en.wikipedia.org/wiki/Transport_Layer_Security пошел искать в пакете 0x22 (content type = handshake). А 22 по ходу десятичное smile

Автор: __Alex__ 25.1.2008, 10:59
Ну да это я опечаталсяsmile

Я нашел в описание, что если поставить в конф файле сервера auth-user-pass-verify, а в клиентском конф auth-user-pass, то сертификат клиента требоваться не будет. Это действительно так , но от клиента теперь требуетя ввод username/password. Для auth-user-pass-verify требуется дополнительный ключ - скрипт аутентификации? не могли бы это прлокомментировать для windows! В идеале хотелось бы без username/password!

Автор: ZeeLax 25.1.2008, 11:08
Цитата

       --auth-user-pass [up]
              Authenticate  with  server  using  username/password.   up is a file containing username/password on 2 lines
              (Note: OpenVPN will only read passwords from a file if it has been  built  with  the  --enable-password-save
              configure option, or on Windows by defining ENABLE_PASSWORD_SAVE in config-win32.h).

              If up is omitted, username/password will be prompted from the console.

              The server configuration must specify an --auth-user-pass-verify script to verify the username/password pro‐
              vided by the client.

Автор: __Alex__ 25.1.2008, 13:17
Да это я видел! Я скрипт написал, который независимо от пароля возвращает 0 (success), при этом соединение действительно уставливается (без ошибок) но пакеты не принимаются!

Автор: ZeeLax 27.1.2008, 21:24
Дебаг смотрели?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)