The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Подскажите по OpenVPN"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Подскажите по OpenVPN"  
Сообщение от Ape (ok) on 28-Май-07, 19:45 
Сервер OpenVPN 2.1rc4 на FC6
Клиенты WinXPSP2
Хочу сделать калитку в сеть.
Всё сконфигурировал, коннект есть. Сервер вижу, а сетку за VPN не вижу.
------
У сервера две карты
eth0 - внешний интерфейс статический реальный IP xxx.xxx.xxx.xxx
eth1 - интерфейс в локальную сеть 192.168.0.33
------
Конфиг сервера openvpn.conf
--------------------------------------------------------
local xxx.xxx.xxx.xxx
mode server
port 1194
proto udp
dev tun
tls-server
tls-auth /etc/openvpn/keys/ta.key 0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.1.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
duplicate-cn
keepalive 10 120
cipher BF-CBC
comp-lzo
max-clients 10
user nobody
group nobody
persist-key
persist-tun
status /tmp/openvpn-status.log
log         /var/log/openvpn.log
verb 3
mute 10
----------------------------------------------------
Таблица маршрутизации сервера
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         xx.xxx.xxx.108  0.0.0.0         UG    0      0        0 eth1
10.1.0.0        10.1.0.2        255.255.255.0   UG    0      0        0 tun0
10.1.0.2        *               255.255.255.255 UH    0      0        0 tun0
xx.xxx.xxx.172  *               255.255.255.248 U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
192.168.0.0     lindbs          255.255.255.0   UG    0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
----------------------------------------------------
Конфиг клиента client.ovpn
------
client
dev tun
dev-node RKC
proto udp
remote xxx.xxx.xxx.xxx 1194
route 10.1.0.0 255.255.255.0
route 192.168.0.0 255.255.255.0
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh1024.pem
ping 10
tls-client
tls-auth ta.key 1
cipher BF-CBC
comp-lzo
verb 4
mute 5
mtu-test
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
pull
route-method exe
explicit-exit-notify 10
show-net-up
--------------------------------------------
Вот кусок результата команды route PRINT на WinXP
------
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
         10.1.0.0    255.255.255.0         10.1.0.5        10.1.0.6       1
         10.1.0.4  255.255.255.252         10.1.0.6        10.1.0.6       30
         10.1.0.6  255.255.255.255        127.0.0.1       127.0.0.1       30
   10.255.255.255  255.255.255.255         10.1.0.6        10.1.0.6       30
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.0.0    255.255.255.0         10.1.0.5        10.1.0.6       1
        224.0.0.0        240.0.0.0         10.1.0.6        10.1.0.6       30
  255.255.255.255  255.255.255.255         10.1.0.6        10.1.0.6       1
--------------------------------------------
С клиента вижу виртуальный адрес интерфейса на сервере tun0 - 10.1.0.1
также вижу адрес интерфейса локальной сети eth1 - 192.168.0.33
А адрес локалки 192.168.0.1 не вижу.
Где я не прав? Подскажите!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Подскажите по OpenVPN"  
Сообщение от DogEater email(ok) on 29-Май-07, 09:37 
>Сервер OpenVPN 2.1rc4 на FC6
>Клиенты WinXPSP2
>Хочу сделать калитку в сеть.
>Всё сконфигурировал, коннект есть. Сервер вижу, а сетку за VPN не вижу.
>
>------
>У сервера две карты
>eth0 - внешний интерфейс статический реальный IP xxx.xxx.xxx.xxx
>eth1 - интерфейс в локальную сеть 192.168.0.33
>------
>Конфиг сервера openvpn.conf
>--------------------------------------------------------
>local xxx.xxx.xxx.xxx
>mode server
>port 1194
>proto udp
>dev tun
>tls-server
>tls-auth /etc/openvpn/keys/ta.key 0
>ca /etc/openvpn/keys/ca.crt
>cert /etc/openvpn/keys/server.crt
>key /etc/openvpn/keys/server.key
>dh /etc/openvpn/keys/dh1024.pem
>server 10.1.0.0 255.255.255.0
>ifconfig-pool-persist ipp.txt
>client-to-client
>duplicate-cn
>keepalive 10 120
>cipher BF-CBC
>comp-lzo
>max-clients 10
>user nobody
>group nobody
>persist-key
>persist-tun
>status /tmp/openvpn-status.log
>log         /var/log/openvpn.log
>verb 3
>mute 10
>----------------------------------------------------
>Таблица маршрутизации сервера
>Kernel IP routing table
>Destination     Gateway      
>  Genmask        
>Flags Metric Ref    Use Iface
>default         xx.xxx.xxx.108  0.0.0.0
>        UG  
> 0      0    
>    0 eth1
>10.1.0.0        10.1.0.2    
>    255.255.255.0   UG    
>0      0    
>   0 tun0
>10.1.0.2        *    
>          
>255.255.255.255 UH    0      
>0        0 tun0
>xx.xxx.xxx.172  *          
>     255.255.255.248 U    
>0      0    
>   0 eth1
>169.254.0.0     *      
>        255.255.0.0  
>  U     0    
>  0        0
>eth1
>192.168.0.0     lindbs      
>   255.255.255.0   UG    0
>     0      
>  0 eth0
>192.168.0.0     *      
>        255.255.255.0  
>U     0      
>0        0 eth0
>----------------------------------------------------
>Конфиг клиента client.ovpn
>------
>client
>dev tun
>dev-node RKC
>proto udp
>remote xxx.xxx.xxx.xxx 1194
>route 10.1.0.0 255.255.255.0
>route 192.168.0.0 255.255.255.0
>resolv-retry infinite
>persist-key
>persist-tun
>ca ca.crt
>cert client.crt
>key client.key
>dh dh1024.pem
>ping 10
>tls-client
>tls-auth ta.key 1
>cipher BF-CBC
>comp-lzo
>verb 4
>mute 5
>mtu-test
>tun-mtu 1500
>tun-mtu-extra 32
>mssfix 1450
>pull
>route-method exe
>explicit-exit-notify 10
>show-net-up
>--------------------------------------------
>Вот кусок результата команды route PRINT на WinXP
>------
>Активные маршруты:
>Сетевой адрес          
>Маска сети      Адрес шлюза  
>    Интерфейс  Метрика
>         10.1.0.0  
> 255.255.255.0         10.1.0.5
>       10.1.0.6    
>   1
>         10.1.0.4  255.255.255.252
>        10.1.0.6  
>     10.1.0.6      
> 30
>         10.1.0.6  255.255.255.255
>       127.0.0.1    
>   127.0.0.1       30
>
>   10.255.255.255  255.255.255.255      
>  10.1.0.6        10.1.0.6
>      30
>        127.0.0.0    
>    255.0.0.0      
> 127.0.0.1       127.0.0.1  
>    1
>      192.168.0.0    255.255.255.0  
>       10.1.0.5    
>    10.1.0.6      
>1
>        224.0.0.0    
>    240.0.0.0      
>  10.1.0.6        10.1.0.6
>      30
>  255.255.255.255  255.255.255.255        
> 10.1.0.6        10.1.0.6  
>     1
>--------------------------------------------
>С клиента вижу виртуальный адрес интерфейса на сервере tun0 - 10.1.0.1
>также вижу адрес интерфейса локальной сети eth1 - 192.168.0.33
>А адрес локалки 192.168.0.1 не вижу.
>Где я не прав? Подскажите!


а 192.168.0.33  знает, куда слать пакеты в клиенту обратку??

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Подскажите по OpenVPN"  
Сообщение от Ape (ok) on 29-Май-07, 10:03 
>а 192.168.0.33  знает, куда слать пакеты в клиенту обратку??

Но если он пингуется с удалённого клиента, проходя маршрут 10.1.0.6-->10.1.0.5-->10.1.0.2-->10.1.0.1-->192.168.0.33 и обратно, т.е. клиент видит интерфейс eth1, который смотрит в локалку, то честно говоря затрудняюсь ответить на Ваш вопрос. Наверное в конфиге интерфейса eth1 надо прописать шлюз по умолчанию, и указать IP для tun0, то есть 10.1.0.1. Или я не прав?

Или просто....
route add 192.168.0.0 mask 255.255.255.0 gw 10.1.0.1

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Подскажите по OpenVPN"  
Сообщение от DogEater email(ok) on 29-Май-07, 10:10 
если он пингуется - это просто замечательно :)
тогда остаётся отловить, где режутся пакеты по нужным Вам портам
как говориться - tcpdump Вам в руки и всё получится
лично я рекомендуюначать с tun0 ;)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Подскажите по OpenVPN"  
Сообщение от Ape (ok) on 30-Май-07, 10:20 
>если он пингуется - это просто замечательно :)
>тогда остаётся отловить, где режутся пакеты по нужным Вам портам
>как говориться - tcpdump Вам в руки и всё получится
>лично я рекомендуюначать с tun0 ;)

Через tun0 проходят все пинги.

tcpdump -i eth1 не даёт вообще ни какой инфы. Даже ping 192.168.0.33 (eth1), хотя ответ с него клиенту приходит.
Как я понимаю, не работает роутинг на сеть 192.168.0.0
Наверное надо на сервере выполнить команду

route add net 192.168.0.0 mask 255.255.255.0 gw 192.168.0.33 metric 0

Да, надо сказать, что в ifcfg-eth1 шлюз по умолчанию не стоит вообще ни какой.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Подскажите по OpenVPN"  
Сообщение от DogEater email(ok) on 30-Май-07, 16:40 
ты знаешь, я лентяй тот ещё, поэтому раздаю клиентам всякую хрень через дхцп

в примере конфига сервера есть такой кусок
# Push routes to the client to allow it
# to reach other private subnets behind
# the server.  Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.

это инструкция сервера какие маршруты сообщать клиенту
если по аглицки ни бельмеса - пиши, я переведу

у себя я пишу вот так
push "route ip.of.my.network 255.255.255.0"
push "dhcp-option DNS ip.of.dns.server"
push "dhcp-option DOMAIN my.domain"

в /etc/sysconfig/static-routes у меня насчёт адресов тоннеля нет, эти записи openvpn добавляет сам при старте
у всех хостов в локалке маршрут по умолчанию стоит на сервер с openvpn
конфигурация рабочая(сей момент сидят 4 клиента)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Подскажите по OpenVPN"  
Сообщение от co6aka (ok) on 30-Май-07, 17:09 
Не забудте что с вашего eth1(192.168.0.33) ДОЛЖНЫ(routing) уходить пакеты с адресом vpn-клиента(10.1.0.6).
Соответственно все компы вашей локальной сети, к котроым вы хотите получить доступ должны принимать пакеты от vpn-клиентов(10.1.0.0/24) и знать куда отправить ответ на них( ваш eth1: 192.168.0.33).
А также не стоит забывать за мануал в которм русским по белому написано что и как адресацией и маршрутизацией.

PS: Да, пакеты от vpn-клиентов не для сервера(10.1.0.1/30) не проходят через его подсеть!
т.е. (vpn-клиент)10.1.0.6/30 -> [vpn-сервер (vpn-шлюз: 10.1.0.5/30->виртуальный vpn-hub -> tun0 -> eth1: 192.168.0.33/24)] -> адресат: 162.168.0.1/24  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Подскажите по OpenVPN"  
Сообщение от Ape (ok) on 30-Май-07, 22:30 
>у всех хостов в локалке маршрут по умолчанию стоит на сервер с
>openvpn

А если у всех хостов в локалке шлюз по умолчанию другой?
А какой шлюз по умолчанию должен быть на eth1 у VPN-сервера?
У меня в локалке клиенты в инет ходят через другой шлюз.
Но это не мешает мне пинговать с VPN-сервера локальную сеть.
Захожу по SSH и пингую

192.168.0.33 > 192.168.0.1 > 192.168.0.33 - пинги проходят туда и обратно

Подключаю клиента OpenVPN и пингую с клиента 192.168.0.33
Пинги возвращаются.
Врубаю tcpdump -i eth1

Пингую с клиента 192.168.0.1 и получаю

10:38:33.820669 IP 10.1.0.6 > 192.168.0.1: ICMP echo request, id 1280, seq 5632, length 40
10:38:39.306716 IP 10.1.0.6 > 192.168.0.1: ICMP echo request, id 1280, seq 5888, length 40
10:38:44.805398 IP 10.1.0.6 > 192.168.0.1: ICMP echo request, id 1280, seq 6144, length 40
10:38:50.304665 IP 10.1.0.6 > 192.168.0.1: ICMP echo request, id 1280, seq 6400, length 40

Насколько я понимаю, исходя из дампа, eth1 транслирует пакеты в сеть.
Значит роутинг на VPN-сервере работает. Или нет?
Просто пинги из сети не возвращаются.
Потому как должны быть ещё такие строки

10:38:49.276313 IP 192.168.0.1 > 10.1.0.6: ICMP echo reply, id 1280, seq 4608, length 40

Или я не прав?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Подскажите по OpenVPN"  
Сообщение от Mikhail email(??) on 31-Май-07, 08:49 
Сам openvpn-сервер знает. ОК.
А машины в сети знают, куда отправлять ответные пакеты для сети с этой адресацией? На dgw?
Если дело именно в маршрутах - можно:
1) использовать bridge - ответы пойдут внутрь сети, а не на dgw;
2) на dgw прописАть маршрут - пусть перенаправляет на openvpn-сервер;
3) использовать SNAT на openvpn-сервере.
Можно еще что-нибудь придумать, но зачем?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Подскажите по OpenVPN"  
Сообщение от Ape (ok) on 31-Май-07, 10:20 
>Сам openvpn-сервер знает. ОК.
>А машины в сети знают, куда отправлять ответные пакеты для сети с
>этой адресацией? На dgw?
>Если дело именно в маршрутах - можно:
>1) использовать bridge - ответы пойдут внутрь сети, а не на dgw;
>
>2) на dgw прописАть маршрут - пусть перенаправляет на openvpn-сервер;
>3) использовать SNAT на openvpn-сервере.
>Можно еще что-нибудь придумать, но зачем?

Будем считать, что у рабочих станций в локальной сети изменить default gateway я не могу. Там территория другого админа.
А если создать tap - VPN-мост. Тогда адреса OpenVPN-клиентов могут быть из того же пула адресов (192.168.0.0). И тогда каждый OpenVPN-клиент будет смотреть через eth1 в сеть имея адрес скажем 192.168.0.121 и не зависеть от default gateway в локальной сети. Они как бы присутствуют в сети физически. Или всё равно eth1 надо указывать в качестве шлюза для выделенного сегмента этой же сети?
Кроме того, можно же на рабочих станциях WinXP в локалке обозначить маршрут 10.1.0.0 без смены default gateway, например
route ADD 10.1.0.0 MASK 255.255.255.0 192.168.0.33
Так?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Подскажите по OpenVPN"  
Сообщение от Mikhail email(??) on 31-Май-07, 11:55 
>Будем считать, что у рабочих станций в локальной сети изменить default gateway
>я не могу. Там территория другого админа.

И не нужно. Если сам роутер-gw будет знать, что эти маршруты ведут на хост внутри сети - он ответит icmp-переадресацией на нужный хост

>Или всё равно eth1 надо указывать в качестве шлюза
>для выделенного сегмента этой же сети?

Не нужно, сами разберутся. Как и в случае с NAT

>Кроме того, можно же на рабочих станциях WinXP в локалке обозначить маршрут
>10.1.0.0 без смены default gateway, например
> route ADD 10.1.0.0 MASK 255.255.255.0 192.168.0.33

Можно и так.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Подскажите по OpenVPN"  
Сообщение от Ape (??) on 31-Май-07, 13:34 
Да друзья, всё получилось!
Тихо проникнув на чужую территорию и запустив команду
route ADD 10.1.0.0 MASK 255.255.255.0 192.168.0.33
на одной из рабочих станций я пропинговал таки эту станцию с удалённого клиента OpenVPN.

Спасибо всем! Без вас кранты!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Подскажите по OpenVPN"  
Сообщение от DogEater email(ok) on 31-Май-07, 17:07 
а если клиентов много?
а если многим хостам из локальной сети надо лезть обратно через впн?
ты будешь писать маршрут на каждый хост в локалке?

>route ADD 10.1.0.0 MASK 255.255.255.0 192.168.0.33
ИМО это лучше добавить на маршрутизатор по умолчанию для всей локалки
и будет так, как сказали товарищи выше.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Подскажите по OpenVPN"  
Сообщение от Ape (??) on 01-Июн-07, 11:03 
>а если клиентов много?
>а если многим хостам из локальной сети надо лезть обратно через впн?
>
>ты будешь писать маршрут на каждый хост в локалке?
>
>>route ADD 10.1.0.0 MASK 255.255.255.0 192.168.0.33
>ИМО это лучше добавить на маршрутизатор по умолчанию для всей локалки
>и будет так, как сказали товарищи выше.


Действительно, так лучше. Но, я говорил выше, там я не хозяин, а мне была поставлена задача создать доступ в сеть для удалённых клиентов. Я создал. Всё пашет. А как они там дальше рулить будут, это от меня не зависит.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру