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

» OpenVPN

Автор: zuiden
Дата сообщения: 18.08.2013 05:58
Alukardd
на сервере и клиенте в конфиге поменять:
dev tun0 на dev tap
на сервере раскоментировать push "dhcp-option DNS 192.168.1.1
и на сервере объеденить в мост сетевой адаптер локальной сети и адаптер openVPN,
я правильно понимаю?
Автор: Alukardd
Дата сообщения: 18.08.2013 14:38
zuiden
Если делать сетевой мост, надо немного менять логику работы тогда, не должно быть маршрутизации, всё должно работать в пределах одной подсети иначе не видать net-bios'а. Каждому удалённому клиенту надо будет выдать ip из внутреннего диапазона и т.д.

Если у вас нормально работает внутренний dns-сервер, на котором у каждой машины и так есть полноценное внутреннее имя, то будет достаточно прописать DNS в конфиге сервера. А для работы net-bios через мост эта опция не нужна.
Автор: zuiden
Дата сообщения: 18.08.2013 16:27
Alukardd
провайдером выдан IP 90.x.x.x и DNS 212.94.209.80
роутер раздаёт инет на сеть 192.168.1.0 255.255.255.0

на машинах в сети в свойствах сетевого адаптера прописано: IP 192.168.1.17 mask 255.255.255.0 шлюз 192.168.1.1. DNS 192.168.1.1

внутренний DNS сервер будет 192.168.1.1 я правильно понимаю?
или надо дополнительно ставить прогу на комп с сервером VPN например BIND?
Автор: tankistua
Дата сообщения: 18.08.2013 17:40
ну логично - кто-то ж на 192.168.1.1 должен ведь ответить на днс-запрос.

З.Ы. можно в локалку раздать в качестве днс-а 212.94.209.80, но бинд в действительности настраивается просто.
Автор: vlary
Дата сообщения: 18.08.2013 18:15
zuiden Если вам DNS нужен только для внешних запросов, а внутри вполне обходитесь файлом hosts, то можете либо настроить DNS релей на роутере и раздавать DNS 192.168.1.1, либо раздавать непосредственно провайдерский.
А если компов в локалке много, и имеется развитая инфраструктура сетевых сервисов, то нужно думать о поднятии собственного DNS
Автор: Alukardd
Дата сообщения: 18.08.2013 19:19
tankistua, vlary
Весь разговор о DNS был начат в контексте того, что внутренний DNS-сервер, мог бы разрешать имена внутренних машин, там где неудобно использовать Net-BIOS, в данном случае для VPN-клиентов...
Автор: goodbro
Дата сообщения: 20.08.2013 23:42
Уважаемые, подскажите пожалуйста есть ли возможность как-нибудь идентифицировать клиента (например в PHP) кроме как через IP и MAС , может есть способ имя сертификата получить. Недавно убедился что можно ip и mac спокойно подменяются уже после подключения (что особенно скверно если на IP завязаны конкретные привилегии ) , не ipp.txt не client config dir в данном случае не помогают.
Есть вариант поднимать отдельные под сети tap0-tap1-... но не для каждого же юзера отдельно это делать, естественно . Вроде как есть способ через командную строку обращаться к службе и по тек IP спрашивать имя сертификата, но не понял как.
Автор: vlary
Дата сообщения: 21.08.2013 00:25
goodbro Просто поток сознания какой-то, ничего не понял!
Кого и где вы собираетесь идентифицировать?
Поскольку тема по OpenVPN, то касаемо ее и отвечу. OpenVPN дает возможность идентифицировать клиента по сертификату, и выдавать ему персональный айпи.
Более того, сертификат можно записать на токен, чтобы клиент ни с кем не мог им поделиться.
Идентификация по МАКу, что для OpenVPN, что для PHP - чушь полная.
Автор: korn3r
Дата сообщения: 21.08.2013 07:36
goodbro
наверно стоит почитать тут.

я, правда, как и vlary ничего не понял в вопросе.
Автор: goodbro
Дата сообщения: 21.08.2013 10:21
vlary, расшифровываю
клиенты подключаются к серверу openvpn, им выдается определенный, свой ip каждому (client-config-dir )
Далее они заходят на внутри сетевой веб сервер, где мне нужно их идентифицировать и определить их права. Здесь возникает проблема, так как идентифицировать пользователя по ip ненадежно, так как ip он может сменить вручную у себя на компе уже после подключения.
Вопрос: как запросить (узнать) имя сертификата (common name) пользователя ?
Автор: vlary
Дата сообщения: 21.08.2013 10:42
goodbro
Цитата:
идентифицировать пользователя по ip ненадежно, так как ip он может сменить вручную у себя на компе уже после подключения.
Это каким образом? Если он сменит свой айпи, у него коннект упадет.
Автор: goodbro
Дата сообщения: 21.08.2013 10:51
vlary, я пробовал программу для быстрой смены настроек сети netsetman
, настройки меняются (например был адрес -.-.1.10(авто) стал -.-.1.11(ручной) ) коннект не падает , веб сервер видит уже другой ip

п.с уточню, у меня openvpn 2.1.1 на сервере
Автор: Alukardd
Дата сообщения: 21.08.2013 11:15
vlary
тут goodbro прав, я только что попробовал сменить ip у OpenVPN клиента в Ubuntu, всё без проблем, ни чего не порвётся, мы же не на реальном адаптере меняем настройки от которого туннель зависит, а на виртуальном...

Но что с этим делать хз. Применять на внутренних серверах отдельную аутентификацию пользователей.
Автор: rain87
Дата сообщения: 21.08.2013 11:16
вообще интересный вопрос, я даже хз. я бы обратил внимание на скрипт --learn-address, возможно он вызывается, когда клиент прописывает себе новый ИП

если этот вариант не сработает - можно ещё смотреть в файл --status - там в ROUTING TABLE есть список всех внутренних роутов впн, с мак адресами клиентов и их сн

вот я попробовал поменять мак адрес на своём клиенте rain87public
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
00:ff:0e:df:9b:ba,rain87public,*:46184,Wed Aug 21 10:01:16 2013
12:34:56:78:90:12,rain87public,*:46184,Wed Aug 21 10:15:37 2013

к старому маку 00:ff:0e:df:9b:ba добавился новый мак 12:34:56:78:90:12, по которому можно идентифицировать клиента. т.е. как бы клиент не изгалялся и не менял ип/мак, по внутренним роутам мы всегда вычислим его сн

правда я менял мак на винде -> она при этом рвёт соединение, т.е. овпн переподключился. возможно на нормальной операционке, без переподключения овпн, этот мак не засветится в файле статуса, хотя мне кажется что должен. в общем надо проверять

хотя щас попробовал на убунте сменить мак адрес - SIOCSIFHWADDR: Устройство или ресурс занято - you may need to down the interface
так что драйвер овпн не позволяет сменить мак адрес при поднятом интерфейсе. конечно, можно его модифицировать, чтобы позволял - но не факт что при этом сервер не разорвёт соедниение. опять таки надо б проверить, но думаю что это уже лишнее =)
Автор: goodbro
Дата сообщения: 21.08.2013 11:23
Alukardd мне очень важно уйти от парольной системы , так как у меня юзвери ленивые страдают провалами в памяти
Автор: Alukardd
Дата сообщения: 21.08.2013 11:26
goodbro
Ну так пускай они тот же клиентский сертификат себе в браузер импортируют, в чем проблема?
Автор: goodbro
Дата сообщения: 21.08.2013 11:38
Alukardd, к сожалению этот вариант не годится по разным причинам, браузерам, пользователям и бюджету
Автор: Alukardd
Дата сообщения: 21.08.2013 11:40
goodbro
???
Автор: goodbro
Дата сообщения: 21.08.2013 11:56
rain87, хм... с МАС адресами много проблем особенно если они совпадают изначально, черт с ними, но вот на счет learn-address ,тут интересно:

если указать ему это в конфигурации он свяжет common name c ip адресом при подключении и обновлении клинента (+ еще client-connect ), так можно попробовать записывать это в базу и следить если связь изменилась то блокировать/ дропать юзера. НО это при условии что он отловит изменение ip

Alukardd для того чтобы их устанавливать нужно добраться до компа юзера в моем случае это может быть долго и проблематично


Автор: goodbro
Дата сообщения: 22.08.2013 11:27
learn-address не хочет запускать скрипт
поставил ему security 3 system , он пишет что скрипт возвращает exit code 126
В скрипте просто ехо echo -e "script 1=$1 2=$2 \n " >> log.txt
что с этим делать ?
Автор: Alukardd
Дата сообщения: 22.08.2013 12:32
goodbro
Заголовок-то есть? #!/bin/bash ??? Можете в конец дописать exit 0
Автор: goodbro
Дата сообщения: 22.08.2013 13:05
Alukardd
да, заголовок есть, exit тоже дописывал, сам по себе скрипт выполняется

--
все ок , права нужно было дать
Автор: sergeyxr
Дата сообщения: 25.08.2013 20:28
с авторизацией разобрался, вроде проходит нормально, а вот с гулянием трафика никак, может где то ошибся...
вот:
[more=конфиг сервера..]
dev tun
#dev tap
#dev-node "VPN"
proto tcp-server
#proto udp
port 77
tls-server

server 10.10.10.0 255.255.255.0
cipher AES-128-CBC
comp-lzo

# push «dhcp-option DNS 10.10.10.1»
route-method exe
route-delay 3
route-gateway 10.10.10.1
# чтоб шол весь трафик в канал VPN
#push "redirect-gateway def1"

# раскомментировать и прописать свой внутренний DNS сервер, если есть необходимость
#push "dhcp-option DNS 192.168.8.15"

# маршрут для сервера, чтобы видеть сети за клиентом (добавляется у клиента)
# route 192.168.8.0 255.255.255.0 10.10.10.0
route 10.10.10.0 255.255.255.0
#route 192.168.8.0 255.255.255.0

# маршрут добавляемый в таблицу маршрутизации каждого клиента, чтобы видеть сеть за сервером
# #добавляется у сервера
# push "route 192.168.x.0 255.255.255.0"
#push "route 10.10.10.0 255.255.255.0"
#push "route 192.168.8.0 255.255.255.0"
push "route 10.10.10.0 255.255.255.0"

# разрешает vpn-клиентам видеть друг-друга, противном случае все vpn-клиенты будут видеть только сервер
#client-to-client
# каталог с описаниями конфигураций каждого из клиентов
;client-config-dir "C:\\Program Files (x86)\\OpenVPN\\config\\ccd"

#ccd-exclusive
# файл с описанием сетей между клиентом и сервером
ifconfig-pool-persist "C:\\Program Files (x86)\\OpenVPN\\config\\ccd\\ipp.txt" #пустой файл
# пути для ключей и сертификатов сервера
dh "C:\\Program Files (x86)\\OpenVPN\\ssl\\dh1024.pem"
ca "C:\\Program Files (x86)\\OpenVPN\\ssl\\ca.crt"
cert "C:\\Program Files (x86)\\OpenVPN\\ssl\\server.crt"
key "C:\\Program Files (x86)\\OpenVPN\\ssl\\server.key"
#persist-key
tls-auth "C:\\Program Files (x86)\\OpenVPN\\ssl\\ta.key" 0
auth MD5
tun-mtu 1500
tun-mtu-extra 32
tls-timeout 240

#persist-key
persist-tun

#crl-verify /etc/openvpn/crl.pem

mssfix 1450
keepalive 10 120
status "C:\\Program Files (x86)\\OpenVPN\\log\\openvpn-status.log"
log "C:\\Program Files (x86)\\OpenVPN\\log\\openvpn.log"
verb 3
[/more]

[more=настройка клиента на сервере..]
ifconfig-push 10.10.10.2 255.255.255.0 (менял последнюю цифру без изменений)
#push "route 10.10.10.0 255.255.255.0"
#route 192.168.8.0 255.255.255.0
push "route-gateway 10.10.10.1"
#push "dhcp-option DNS 10.10.10.1"

#iroute 192.168.8.0 255.255.255.0 #что за клиентом есть эта сеть но марш делать надо route
[/more]

[more=конфиг на клиенте..]
# decker OpenVPN Config File (c) Decker, decker@compkaluga.ru
#dev tap #bridge mode на сервере
dev tun
# dev-node "OpenVPN"
proto tcp
remote 109.*.119.* 77
client
tls-client
#remote-cert-tls server
route-method exe
route-delay 3
route 192.168.8.0 255.255.255.0
pull
ns-cert-type server
#persist-key
persist-tun

#resolv-retry infinite
ca "C:\\Program Files\\OpenVPN\\ssl\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\ssl\\client1.crt"
key "C:\\Program Files\\OpenVPN\\ssl\\client1.key"
tls-auth "C:\\Program Files\\OpenVPN\\ssl\\ta.key" 1
auth MD5
cipher AES-128-CBC
comp-lzo
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ping-restart 60
ping 10
status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log"
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log"
verb 3
[/more]
т.е. на клиенте пингуется только IP 10.10.10.6 самого клиента
а на сервере IP 10.10.10.1 самого сервера.

А между собой никак...
и со стороны сервера есть сеть 192.168.8.0 - 254 в которой есть внешний уже интернет,

не подскажите как мне завернуть маршрутизацию сервера в эту сеть???
в ней же есть и DNS сервер на бинде 9.2

И ещё вопрос по параметру:
;client-config-dir "C:\\Program Files (x86)\\OpenVPN\\config\\ccd"

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

кстати, ранее проблема с ключами была именно из-за DH.key т.к. он был более 1024...
а по индивидуальным ключам если их генерировать отдельно, всё нормально, и работает, осталось разобраться с маршрутизацией....

Автор: korn3r
Дата сообщения: 25.08.2013 20:41
а зачем там

Код:
route 10.10.10.0 255.255.255.0
Автор: sergeyxr
Дата сообщения: 25.08.2013 23:47
конфиг сервера
и настройка клиента на сервере

лежат на серваке

конфиг на клиенте лежит на клиенте и с него подключается...

мне нужно чтоб клиент "конфиг на клиенте" подключился например через модем 3G из внешки на сервер:
конфиг сервера
и настройка клиента на сервере

и получил доступ и пинги и прогон трафика, как на сам сервер VPN 10.10.10.1 (поднят на 192.168.8.15 (физ сервер)
так и в сеть 192.168.8.0 в которой есть
DNS BIND 192.168.8.15(физ сервер)
и внешний интернет 192.168.8.1 (маршрутизатор и далее оператор)

всё находится на одном физ сервере 8.15 и через локалку уходит в маршрутизатор (168.8.1).

можно поподробней в каком именно конфиге править...????

попробовал как рекомендовал korn3r
вот лог
[more=лог..]
Mon Aug 26 00:39:23 2013 OpenVPN 2.3.2 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [eurephia] [IPv6] built on Jun 3 2013
Mon Aug 26 00:39:24 2013 Control Channel Authentication: using 'C:\Program Files\OpenVPN\ssl\ta.key' as a OpenVPN static key file
Mon Aug 26 00:39:24 2013 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug 26 00:39:24 2013 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug 26 00:39:24 2013 Socket Buffers: R=[65536->65536] S=[64512->64512]
Mon Aug 26 00:39:24 2013 Attempting to establish TCP connection with [AF_INET]109.*.119.*:77
Mon Aug 26 00:39:24 2013 TCP connection established with [AF_INET]109.*.119.*:77
Mon Aug 26 00:39:24 2013 TCPv4_CLIENT link local: [undef]
Mon Aug 26 00:39:24 2013 TCPv4_CLIENT link remote: [AF_INET]109.*.119.*:77
Mon Aug 26 00:39:24 2013 TLS: Initial packet from [AF_INET]109.*.119.*:77, sid=ee6f7527 8a5406c5
Mon Aug 26 00:39:27 2013 VERIFY OK: depth=1, C=RU, ST=mu*, L=mur*, O=indi* (*), OU=IT, CN=al*, emailAddress=se*
Mon Aug 26 00:39:27 2013 VERIFY OK: nsCertType=SERVER
Mon Aug 26 00:39:27 2013 VERIFY OK: depth=0, C=RU, ST=mu*, O=ind* (*), OU=IT, CN=server, emailAddress=se*
Mon Aug 26 00:39:35 2013 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Mon Aug 26 00:39:35 2013 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug 26 00:39:35 2013 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Mon Aug 26 00:39:35 2013 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug 26 00:39:35 2013 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Aug 26 00:39:35 2013 [server] Peer Connection Initiated with [AF_INET]109.*.119.*:77
Mon Aug 26 00:39:37 2013 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Mon Aug 26 00:39:38 2013 PUSH: Received control message: 'PUSH_REPLY,route 192.168.8.0 255.255.255.0,route 10.10.10.1,topology net30,ping 10,ping-restart 120,ifconfig 10.10.10.6 10.10.10.5'
Mon Aug 26 00:39:38 2013 OPTIONS IMPORT: timers and/or timeouts modified
Mon Aug 26 00:39:38 2013 OPTIONS IMPORT: --ifconfig/up options modified
Mon Aug 26 00:39:38 2013 OPTIONS IMPORT: route options modified
Mon Aug 26 00:39:38 2013 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mon Aug 26 00:39:38 2013 open_tun, tt->ipv6=0
Mon Aug 26 00:39:38 2013 TAP-WIN32 device [Подключение по локальной сети] opened: \\.\Global\{9FDC88B0-5DCE-4EB6-948A-F74C16C5B3BE}.tap
Mon Aug 26 00:39:38 2013 TAP-Windows Driver Version 9.9
Mon Aug 26 00:39:38 2013 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.10.10.6/255.255.255.252 on interface {9FDC88B0-5DCE-4EB6-948A-F74C16C5B3BE} [DHCP-serv: 10.10.10.5, lease-time: 31536000]
Mon Aug 26 00:39:38 2013 Successful ARP Flush on interface [36] {9FDC88B0-5DCE-4EB6-948A-F74C16C5B3BE}
Mon Aug 26 00:39:41 2013 TEST ROUTES: 2/2 succeeded len=2 ret=1 a=0 u/d=up
Mon Aug 26 00:39:41 2013 C:\Windows\system32\route.exe ADD 192.168.8.0 MASK 255.255.255.0 10.10.10.5
Mon Aug 26 00:39:41 2013 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Mon Aug 26 00:39:41 2013 C:\Windows\system32\route.exe ADD 10.10.10.1 MASK 255.255.255.255 10.10.10.5
Mon Aug 26 00:39:41 2013 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Mon Aug 26 00:39:41 2013 Initialization Sequence Completed
[/more]

как видно из лога тестирование проходит нормально, и соединение тоже, а вот тунеля как такового не создаётся, и ни пинга и ничего нет...ни до 10.1 ни до 192.168.8.0

полтергейст блин какойто...
службу маршрутизации на сервере включил....
Автор: korn3r
Дата сообщения: 26.08.2013 00:09
я так ничего и не понял.... либо ты очень сумбурно рахъясняешься, либо я совсем читать разучился.

что должно быть на серваке для нормальной работы
push route 192.168.8.0 255.255.255.0

и там НЕ должно быть route 10.10.10.1 255.255.255.0
выложи еще ipconfig /all c сервера и клиента (без внешних адресов, ессно)

попробуй с [more=таким]dev tun
proto tcp-server
port 77
tls-server
server 10.10.10.0 255.255.255.0
cipher AES-128-CBC
comp-lzo
route-method exe
route-delay 3
route-gateway 10.10.10.1
push "route 192.168.8.0 255.255.255.0"
;client-config-dir "C:\\Program Files (x86)\\OpenVPN\\config\\ccd"
ifconfig-pool-persist "C:\\Program Files (x86)\\OpenVPN\\config\\ccd\\ipp.txt" #пустой файл
dh dh1024.pem
ca ca.crt
cert server.crt
key server.key
#persist-key
tls-auth ta.key 0
auth MD5
tls-timeout 240
persist-tun
keepalive 10 120
status "C:\\Program Files (x86)\\OpenVPN\\log\\openvpn-status.log"
log "C:\\Program Files (x86)\\OpenVPN\\log\\openvpn.log"
verb 3 [/more] конфигом сервера и соответственно [more=таким]dev tun
proto tcp
remote 109.*.119.* 77
client
tls-client
route-method exe
route-delay 3
pull
ns-cert-type server
persist-tun
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
auth MD5
cipher AES-128-CBC
comp-lzo
ping-restart 60
ping 10
status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log"
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log"
verb 3 [/more] клиента (адрес поправить не забудь). Сервер то при запуске ни на что не ругается? (я все параметры на память не помню)

Еще проверь не забиты ли ручные настройки на обоих интерфейсах (винда сама 192.168 забивает, если включаешь родной виндовый нат через свойства сетевухи)
Автор: tankistua
Дата сообщения: 26.08.2013 08:14
sergeyxr
а как у тебя должен работать роутинг, если ты 1 сетку повесил на 2 интерфейса?
Автор: ea2982
Дата сообщения: 27.08.2013 17:35
Добрый день


Ситуация такая есть openvpn сервер в Европе и клиентский ноут в России.

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

Из найденного мной только вот это http://secretsline.biz/ru/pages/onvpndown и мануалы как это все сделать через виртуальные машины.

Может есть еще какие нибуть способы?
Автор: vlary
Дата сообщения: 27.08.2013 23:39
ea2982 Ну, один из вариантов снести у него в настройках дефолт шлюз и прописать статический роут на сеть OpenVPN сервера. Плюс настроить ДНС на прайвит айпи в локалке за OpenVPN сервером, ежели таковой там имеется.
Автор: ea2982
Дата сообщения: 28.08.2013 00:26

Цитата:
ea2982  Ну, один из вариантов снести у него в настройках дефолт шлюз и прописать статический роут на сеть OpenVPN сервера. Плюс настроить ДНС на прайвит айпи в локалке за OpenVPN сервером, ежели таковой там имеется.


этот вариант описан вот тут
Цитата:
Из найденного мной только вот это http://secretsline.biz/ru/pages/onvpndown


нашел еще один вариант http://wiki.hidemyass.com/Tutorials:Comodo_Firewall_-_IP_Binding_through_MAC_address



Есть еще варианты как это сделать в особенность на linux ?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273

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


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