LINUX.ORG.RU
решено ФорумAdmin

OpenVPN клиент не видит сеть за OpenVPN сервером


0

1

Понимаю что вопрос избитый. Почитала форум, попробовала все что тут советовали, но увы пока безрезультатно.Сразу скажу что я все делаю в первый раз. Прошу помощи=) Имеется OpenVPN сервер на Ubuntu и клиент на XP. Необходимо чтобы клиент видел всю сеть за сервером, а в частности принтеры. Дано: сервер Ububntu c 2умя физическими интерфэйсами и tap интерфэйсом OpenVPN. Он же шлюз для локальной сети и DHCP сервер для неё же.

eth0 Link encap:Ethernet
inet addr:192.168.100.1
Bcast:192.168.100.255
Mask:255.255.255.0 #локалка
eth1 Link encap:Ethernet

inet addr:192.168.0.225
Mask:255.255.255.0 #интернет
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
tap0 Link encap:Ethernet
inet addr:10.8.0.1
Bcast:10.8.0.255
Mask:255.255.255.0 #OpenVPN
Клиент ХР

Local Area Connection

Link encap:Ethernet
inet addr:192.168.0.202
Mask:255.255.255.0 #интернет

Подключение по локальной сети
Link encap:Ethernet

inet addr:10.8.0.2
Bcast:10.8.0.255
Mask:255.255.255.0
#OpenVPN

Настройки сервера OpenVPN на Ubuntu
port 1194
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
route 192.168.0.0 255.255.255.0
client-to-client
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
client-config-dir /etc/openvpn/ccd

В ссd файл client1
ifconfig-push 10.8.0.2 10.8.0.1
iroute 192.168.0.0 255.255.255.0
push «route 192.168.100.0 255.255.255.0»

Настройки клиента OpenVPN на ХР
client
dev tap
proto udp
remote 192.168.0.225
resolv-retry-random
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client.key
ns-cert-type server

На сервере Ubuntu в rc.local
iptables -F
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth1 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -F
iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE
iptables -A FORWARD -i tap0 -o tap0 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

route -n на сервер
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.253 0.0.0.0 UG 100 0 0 eth1
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

на клиенте
0.0.0.0 0.0.0.0 192.168.0.253 192.168.0.202 20
10.8.0.0 255.255.255.0 10.8.0.2 10.8.0.2 30
10.8.0.2 255.255.255.255 127.0.0.1 127.0.0.1 30
10.255.255.255 255.255.255.255 10.8.0.2 10.8.0.2 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 192.168.0.202 192.168.0.202 20
192.168.0.202 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.0.255 255.255.255.255 192.168.0.202 192.168.0.202 20
224.0.0.0 240.0.0.0 10.8.0.2 10.8.0.2 30
224.0.0.0 240.0.0.0 192.168.0.202 192.168.0.202 20
255.255.255.255 255.255.255.255 10.8.0.2 10.8.0.2 1
255.255.255.255 255.255.255.255 192.168.0.202 192.168.0.202 1
Основной шлюз: 192.168.0.253
===========================================================================
Постоянные маршруты:
Отсутствуют

На деле:

Сервер Ubuntu пингует ХР по внешнему IP и по 10.8.0.2
ХР пингует Ubuntu по внешнему IP и по 10.8.0.1

Клиент (192.168.100.2) из подсети Ubuntu пингует сам сервер
Ubuntu по 192.168.100.1 и по 10.8.0.1, так же он пингует ХР по 10.8.0.2, интернет есть, но

ХР не пингует клиента (192.168.100.2) из подсети Ubuntu. соответственно ХР не видит подсеть за сервером OpenVPN.

пробовала добовлять маршруты в interfaces и в rc.local, но никаких результатов это не дало. Видимо не правельно добовляла или не то писала( максимум что менялось переставала пинговаться сеть 10.8.0.0)

Очень прошу помощи, голова уже квадратная..(



Последнее исправление: lokke321 (всего исправлений: 2)

Ответ на: комментарий от lokke321

Ну раз так, то попробуй без удовольствия.
Обрати внимание на создание собственно моста (AKA «bridge») и на то, что пул адресов клиентов берется из сети локалки, а не отдельно выделенной сети.
Ну а IPTables там простые, как гвоздь.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Спасибо большое. Основные моменты там понятны вопрос только вызывает раздел Notes — Ethernet Bridging on Linux, Setup Scripts... если я правильно поняла, то мне к моим настройка сервера надо добавить bridge.

lokke321
() автор топика
Ответ на: комментарий от lokke321

Да там вроде подробно написано, что добавить или заменить, и скрипты bridge-start, bridge-stop даны готовые. Пробуй, рассказывай что вышло.

thesis ★★★★★
()
Ответ на: комментарий от thesis

то что скрипты готовые это понятно, вопрос в том куда это счастье вставлять)<br> создать /etc/init.d/sample-scripts/bridge-start и bridge-stop? <br> или это не про то?

lokke321
() автор топика
Ответ на: комментарий от thesis

сделала как было описано в статье, т.е. к конфигу сервера добавила server-bridge 192.168.100.1 255.255.255.0 192.168.100.200 192.168.100.224
В rc.local прописала iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

создала bridge-start и stop , запустила, Ура интерфейсы поднялись, но
Клиент при коннекте выдает ошибку TLS Error: TLS handshake failed......

lokke321
() автор топика
Ответ на: комментарий от thesis

ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
link/ether 00:18:71:7e:b5:3f brd ff:ff:ff:ff:ff:ff
inet6 fe80::218:71ff:fe7e:b53f/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:e0:50:12:00:6d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.225/24 brd 192.168.0.255 scope global eth1
inet6 fe80::2e0:50ff:fe12:6d/64 scope link
valid_lft forever preferred_lft forever
4: tap0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN qlen 100
link/ether 5e:24:af:da:53:b1 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:18:71:7e:b5:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global br0
inet6 fe80::218:71ff:fe7e:b53f/64 scope link
valid_lft forever preferred_lft forever


iptables-save - ничего не показывает

netstat -lnup

Активные соединения с интернетом (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:53 0.0.0.0:*
- udp 0 0 0.0.0.0:67 0.0.0.0:*
- udp 0 0 0.0.0.0:5353 0.0.0.0:*
- udp 0 0 0.0.0.0:54620 0.0.0.0:*
- udp6 0 0 :::53 :::*
- udp6 0 0 :::5353 :::*
- udp6 0 0 :::42958 :::*
-

lokke321
() автор топика
Ответ на: комментарий от thesis

клиент пишет:

UDPv4 link local:[undef]
UDPv4 link remote: 192.168.0.225:1194
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed

lokke321
() автор топика
Ответ на: комментарий от thesis

изночально tls в настройках не было вообще....после ошибки я добавила и в настройки сервера и клиента +ta.key и туда и туда....но реакции все равно 0

lokke321
() автор топика
Ответ на: комментарий от thesis

по поводу netstat -lnup наврала, вот что с правами суперпользователя написал udp 0 0 0.0.0.0:53 0.0.0.0:*
1179/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:*
1208/dhcpd udp 0 0 0.0.0.0:5353 0.0.0.0:*
822/avahi-daemon: r udp 0 0 0.0.0.0:54620 0.0.0.0:*
822/avahi-daemon: r udp6 0 0 :::53 :::*
1179/dnsmasq udp6 0 0 :::5353 :::*
822/avahi-daemon: r udp6 0 0 :::42958 :::*
822/avahi-daemon: r

lokke321
() автор топика
Ответ на: комментарий от thesis

iptables-save (аналогично лоханулась)) # Generated by iptables-save v1.4.12 on Thu Aug 8 18:15:04 2013
*nat
:PREROUTING ACCEPT [223:29041]
:INPUT ACCEPT [212:28567]
:OUTPUT ACCEPT [1916:115187]
:POSTROUTING ACCEPT [727:43643]
-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o tap0 -j MASQUERADE
COMMIT
# Completed on Thu Aug 8 18:15:04 2013
# Generated by iptables-save v1.4.12 on Thu Aug 8 18:15:04 2013
*filter
:INPUT ACCEPT [11048:7672114]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [10650:1331228]
-A INPUT -i tap0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i tap0 -o tap0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i br0 -j ACCEPT
COMMIT
# Completed on Thu Aug 8 18:15:04 2013

lokke321
() автор топика
Ответ на: комментарий от lokke321

Итак, openvpn не запущен, в таблицах iptables пустота.
Пока не надо совать правила iptables в rc.*, просто впиши их в скрипт и выполняй по мере надобности. И openvpn запусти.

thesis ★★★★★
()
Ответ на: комментарий от lokke321

Пока его нет в выхлопе netstat, он не запущен. Причины ищи в логах. И хватит перезагружать несчастную машину, это не поможет.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Ошибку нашла. исправила и все заработало!!!! Огромное Вам СПАСИБО ! =) Вопрос такой, если клиент OpenVPN пингует машину из локалки OpenVPN сервера, то локальные принтера она тоже увидит??? Интересуюсь потому, что на клиенте будет развернут РДП сервер и надо будет с удаленного рабочего стола пускать на документы на печать в локалку.

lokke321
() автор топика
Ответ на: комментарий от lokke321

Ну круто) Вот теперь можно перепроверить работу шлюза и правила iptables впихнуть в какое-нибудь удобное место, чтобы они поднимались после перезагрузки сами.

на клиенте будет развернут РДП сервер

А вот здесь у меня поломался мозг.
То есть, сервер будет находится за пределами локальной сети?
В принципе, это неважно, но просто любопытно.
Вообще, чтобы клиент печатал из программы, запущенной на сервере РДП, документы на своем принтере, режим моста нафиг не нужен - проброс принтера успешно осуществляется внутри рдпшного соединения. Можно было делать openvpn с tun'ом с самого начала, а то и вообще обойтись встроенным в РДП шифрованием и плюнуть на ВПН.
Что полезного дает мост в данном случае, так это возможность для _клиента_ обнаружить сетевые папки и принтеры в локалке.

thesis ★★★★★
()
Ответ на: комментарий от thesis

RDP будет на клиенте OpenVPNa(вне локалки), задача была поставлена именно так, чтобы удаленный комп попадал в сеть локалки и печатал на принтера локалки.

lokke321
() автор топика
Ответ на: комментарий от lokke321

В общем: при такой конфигурации впн-клиент должен без проблем смочь найти и использовать принтер, стоящий в локалке.

thesis ★★★★★
()
Ответ на: комментарий от thesis

это супер))) А может Вы мне сможите подсказать, реально ли вообще сделать такой скрипт (?), который бы при активации окна RDP менял язык локальной машины на англ., а то народ бушует(( пересадили всех на убунту а там с рдп глюк на глюке(((

lokke321
() автор топика
Ответ на: комментарий от lokke321

Не знаю насчёт скрипта. Можно запускать rdesktop с опцией ″-k none″, ему тогда будет пофиг на текущую раскладку. Или можно попробовать использовать в качестве переключателя раскладок xxkb (если такой пакет есть в Ubuntu) и там задать что-то типа:

″XXkb.app_list. wm_class_name.alt_group1 rdesktop*″

mky ★★★★★
()
Ответ на: комментарий от Dr_Behaviour

Ну ошибка собственно была в том, что при добавлении server-bridge 192.168.100.1 255.255.255.0 192.168.100.200 192.168.100.224 - вот этой строчки в свой конфиг, я забыла закоментировать вот эту - server 10.8.0.0 255.255.255.0
Из за этого не стартовал сервер, собственно со всеми вытекающими последствиями. А скрипты я добавила непосредственно в папку OpenVPN, от туда и запускала(только в конце к названию файлов добавила .sh)

lokke321
() автор топика
Ответ на: комментарий от mky

действительно опция "-k none" помогла решить проблему с ю и б вместо ./, )

lokke321
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.