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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: OPENVPN на FreeBSD 10 - XUBUNTU14 - не вижу сеть за Клиентом [РЕШЕНО!]  (Прочитано 1638 раз)

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

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Настроил ОПЕН ВПН.
Сервак на работе на ФРИБСД 10 = 192.168.21.21 (вируальный адрес 172.16.1.0)
Клиент ДОМА на Х-Ubuntu 14 = 10.10.1.13  (виртуальный адрес туннеля 172.16.1.22)
Настроено в режиме Туннеля по TCP подключению
С сервака могу пинговать Клиента и наоборот, тоесть маршруты пока верные прописаны.
ФАЕРВОЛЫ отключил на обоих машинах  (sudo ufw status  = неактивный)
ФОРВАРДИНГ ВКЛЮЧИЛ на обоих машинах   ( net.ipv4.ip_forward = 1)

Вот Схема для наглядности:

http://www.ex.ua/895729044568


Цель:
С Сервака попасть на любой ПК за КЛИЕНТОМ (в сеть 10.10.1.х)
Пинги идут только до Клиента и не далее.
Если на любом пк в Сети за Клиентом пропишу маршрут направляющий пакеты на КЛИЕНТА - то с этого пк смогу видеть сам сервак )))) но мне это не надо )))
Мне нужно с сервака увидеть любой пк за Клиентом ---- КАК ?
уже как неделю мучаю этот вопрос.
Клиентом была Windows - неудачно
Сделал клиентом Ubuntu - опять неудачно.
Помогите кто может..................
Спасибо

Конфиг Сервака:
dev               tun             (туннель, бывает еще TAP -мост)
local             192.168.21.21   (адрес моего сервака в сети)
port              1194            (на какой порт повисает сервак)
proto             tcp-server       (tcp-server - для указания конкретных ip сервака и клиентов в виртуалке)
mode server                           (чтоб задавать конкренно АЙПИ сервака)
ifconfig  172.16.1.0 255.255.255.0      (АЙПИ сервака виртуальный указываем вручную)
ifconfig-pool 172.16.1.21 172.16.1.251   (ПУЛ адресов, какие адреса назначать клиентам, с какого диапазона)

route  172.16.1.0 255.255.255.0 (пишет маршрут на серваке - все обращения к сети 172.16.1.0 направлять в туннель )
push  "route 172.16.1.0 255.255.255.0"  (на клиенте пропишет - все обращения к сети 172.16.1.0 - в туннель)

push  "route 192.168.21.0 255.255.255.0"  (на клиенте - все обращения от туда в сеть 192.168.21.0 - в туннель)
route 10.10.1.0 255.255.255.0             (на серве - все обращения с серва в сеть клиента --- в туннель)

client-config-dir /usr/local/etc/openvpn/ccd
client-to-client

В клиентском файле на серваке:
iroute   10.10.1.0  255.255.255.0

ДЛЯ НОВИЧКОВ!!!!
Для тех новичков (как и я), кто будет читать эту тему, расскажу на пальцах про маршрутизацию, может пригодиться кому.
Мне пришлось неделю потратить, чтоб хоть немного понять.
есть туннель виртуальный 172.16.1.0 (на клиенте это 172.16.1.22                 на серваке 172.16.1.0)
Сервак имеет адрес 192.168.21.21
Клиент 10.10.1.13

Если мы хотим пропинговать с сервака клиентскую машину, без прописанных маршрутов - НЕ ДАСТ, не знает куда пинговать
Говорим себе - ХОЧУ ПИНГАНУТЬ с сервака сеть 10.10.1.0
Пишем маршрут:
ВСЕ ПАКЕТЫ к сети 10.10.1.0 - ПУСТЬ БЕГУТ через туннель 172.16.1.0 (со стороны сервака вход в туннель)
route add 10.10.1.0 mask 255.255.255.0  172.16.1.0 (для разных ОС пишется по разному)
Теперь пингуя  с сервера клиентский ПК маршрут будет понятный компьютеру


Теперь хотим допустим пропинговать с Клиента (10.10.1.13) - сервак (192.168.21.21)
Пишем:
Все пакеты для 192.168.21.0 сети хочу чтоб направлялись через туннель 172.16.1.22 (со стороны клиента вход в туннель)
route add 192.168.21.0 mask 255.255.255.0  172.16.1.22
расшифровываю всю строку:
Все обращения к сети 192.168.21.х где изменяется только последняя цифра (0 стоит вместо 255 в маске) направлять в пещеру со стороны 172.16.1.22 адреса

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

ОТВЕТ!!!!
Для того, чтоб я с сервака смог пинговать любой ПК за Клиентом, мне пришлось в Роутере за клиентом прописать два маршрута:
192.168.21.0 - направлять в 10.10.1.14 (в компьютер клиента)
172.16.1.0  --- направлять тоже в компьютер клиента 10.10.1.14
(клиент до этого был 10.10.1.13, я статически сделал его 10.10.1.14, вверху было указано 13, сменил во время экспериментов)

СПАСИБО ОГРОМНОЕ -fisher74
« Последнее редактирование: 04 Октября 2016, 00:23:02 от jester81 »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Если на любом пк в Сети за Клиентом пропишу маршрут направляющий пакеты на КЛИЕНТА - то с этого пк смогу видеть сам сервак )))) но мне это не надо )))
Вам может и не надо, а для работы icmp протокола - надо.

По "дописке" я не понял - Вы решили свою проблему или нет? (правда там такая белеберда написана...)

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
))) я увлекся написанием )))
У меня моя проблема пока не разрешилась.
Мне нужно с 192.168.21.21  - СЕРВАКА достучаться к любому компьютеру в сети 10.10.1.0  255.255.255.0
У меня это не получилось, хотя на многих форумах написано - МОЖНО.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
На хостах клиентской сети добавляем маршрутик (было бы замечательней добавить этт марщрутик на ADSL-роутере)

sudo ip a 172.16.1.0/24 via 10.10.1.13


Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
а вот тут поподробней.
Если в сети этого роутера 10.10.1.х находится Клиент ОПЕН ВПН 172.16.1.22, то как будет выглядеть маршрут прописанный в роутере?
192.168.21.0   посылать на 10.10.1.13 ?
так?
или как-то иначе ? (не понял еще пока)

Так, кое-что понял
Прописал в роутере маршрут:  192.168.21.0/24 --->  10.10.1.14
Все пакеты идущие на 192.168.21.0 посылать на ПК 10.10.1.14 (на котором открыт ОВПН клиент туннель)
Результат: теперь из любого компьютера сети 10.10.1.0 я вижу СЕРВАК за ОПН ВПН  192.168.21.21

Но мне нужно наоборот
Мне нужно с Сервака видеть любой ПК сети 10.10.1.0 (тоесть за клиентом)
« Последнее редактирование: 02 Октября 2016, 09:05:56 от jester81 »

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Если в сети этого роутера 10.10.1.х находится Клиент ОПЕН ВПН 172.16.1.22, то как будет выглядеть маршрут прописанный в роутере?
192.168.21.0   посылать на 10.10.1.13 ?
Да.
И 10.10.1.13, являющийся также 172.16.1.22 должен знать, что за 192.168.21.0 нужно идти в туннель.

Пользователь добавил сообщение 02 Октября 2016, 09:10:15:
Но мне нужно наоборот
Мне нужно с Сервака видеть любой ПК сети 10.10.1.0 (тоесть за клиентом)
Тебе не нужно наоборот, тебе нужно доделать, т.к. без того, что ты сделал, ты с сервака ПК за клиентом не увидишь, т.к. они просто не будут знать куда отвечать на прилетевший к ним запрос.

/etc/openvpn/$server.conf
route 10.10.1.0 255.255.255.0
« Последнее редактирование: 02 Октября 2016, 09:10:15 от thunderamur »

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Клиент 10.10.1.14 это и так знает, ему сервак выслал этот  маршрут.

Итак что имеем на данный момент.
Сервак пингует клиента и наоборот - супер.
Маршруты прописаны.
Прописав на роутере в сети Клиента маршрут  192.168.21.0/24 ---> 10.10.1.14
я получил возможность с любого ПК сети за Клиентом пинговать сервак 192.168.21.21, не прописывая маршруты на каждом клиенте.
Но мне нужно было изначально получить доступ с СЕРВАКА на ЛЮБОЙ ПК сети за клиентом
Это у меня так и не получилось пока. ((((

А можно доступными словами сказать, что я забыл прописать и где (на каком ПК или роутере) и для чего ?
« Последнее редактирование: 02 Октября 2016, 09:15:33 от jester81 »

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
jester81, ты уже определись 13 или 14.

https://help.ubuntu.ru/wiki/openvpn

здесь рассмотрен именно твой случай, внимай и применяй для себя.

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Прочитал внимательно 2 раза
Сравнил со своей сетью.

итак:
На серваке (192.168.21.21) я пописал:
Ходить в сеть 10.10.1.0  через туннель (172.16.1.0)
Клиенту передал маршрут видеть сеть 192.168.21.0 - -- в туннель....

В Клиентском файле на серваке прописал:
iroute 10.10.1.0 255.255.255.0  - чтоб видеть устройства в сети за клиентом

Форвардинг включил и на серваке и на клиенте
Фаерволы поотключал


Но для того, чтобы пользоваться туннелем в другой офис (за мой сервак) могли другие устройства в локальной сети
10.10.1.0 - нужно указать им, чтобы доступ в подсеть 192.168.21.0/24 осуществляется через КЛИЕНТА 10.10.1.14.
Или, что часто проще и быстрее прописать это правило маршрутизации на роутере, который является шлюзом для устройств в сети.
-- сделал и это, прописал в роутере

Теперь с компьютеров в сети 10.10.1.0/24 - я вижу сервак - СУПЕР )))
Но с сервака не вижу никого, кроме самого клиента 10.10.1.14 (он по ДХСП раздается, потому был 13, а сегодня 14)

Выложу таблицы маршрутизаций(вдруг там ошибка где, а я не вижу):
НА СЕРВАКЕ
Destination        Gateway            Flags      Netif Expire
default            192.168.50.50      UGS         rl0
10.10.1.0/24       255.255.255.0      UGS        tun0
127.0.0.1          link#3             UH          lo0
172.16.1.0         link#4             UHS         lo0
172.16.1.0/24      255.255.255.0      UGS        tun0
192.168.0.0/16     link#1             U           rl0
192.168.21.21      link#1             UHS         lo0
255.255.255.0      link#4             UH         tun0



НА КЛИЕНТЕ
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.10.1.1       0.0.0.0         UG        0 0          0 eth0
10.10.1.0       0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.16.1.0      172.16.1.21     255.255.255.0   UG        0 0          0 tun0
172.16.1.21     0.0.0.0         255.255.255.255 UH        0 0          0 tun0
192.168.21.0    172.16.1.21     255.255.255.0   UG        0 0          0 tun0

НА РОУТЕРЕ всего один маршрут:
192.168.21.0/24   ----> 10.10.1.14

Где может быть бяка ?

Кое-что заметил....
С сети за Клиентом 10.10.1.0 я могу пинговать сервак 192.168.21.21 (потому как в роутере прописал)
С сети за Серваком 192.168.21.0 могу пинговать клиента 10.10.1.14 (потому как на тачках прописал маршрут на сервак)

Но.....
Сервак не видит сеть за Клиентом
а Клиент не видит сеть за Серваком
за это случайно не форвардинг отвечает ?
кто-то же должен пробрасывать через себя пакеты как простой РОУТЕР (вошло - вышло)
Видимо клиент не пробрасывает через себя запросы сервака в свою сеть (за клиентом)
А сервак не пробрасывает через себя запросы клиент в свою сеть (за серваком)
я верно мыслю ?

« Последнее редактирование: 02 Октября 2016, 10:32:55 от jester81 »

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Ты же говорил, что включил форвардинг.
Смотри
cat /proc/sys/net/ipv4/ip_forward
И на сервере и на клиенте должна быть "1"
Если нет:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sysctl -p
на обеих машинах.

Пользователь добавил сообщение 02 Октября 2016, 11:06:34:
Теперь с компьютеров в сети 10.10.1.0/24 - я вижу сервак - СУПЕР )))
Но с сервака не вижу никого, кроме самого клиента 10.10.1.14 (он по ДХСП раздается, потому был 13, а сегодня 14)
Это неправильно, если ты не хочешь постоянно править маршрут на роутере, поставь статику.

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: OPENVPN на FreeBSD 10 - XUBUNTU14 - не вижу сеть за Клиентом
« Ответ #10 : 02 Октября 2016, 18:01:13 »
НА Клиенте...
(АЙПИ поставил статику 10.10.1.14)

ЗАПУСТИЛ:  cat /proc/sys/net/ipv4/ip_forward
Выдало: "1"

ЗАПУСТИЛ:   sysctl -p
ВЫДАЛО:    net.ipv4.ip_forward = 1

Включено значит.

А как проверить на практике ?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: OPENVPN на FreeBSD 10 - XUBUNTU14 - не вижу сеть за Клиентом
« Ответ #11 : 02 Октября 2016, 19:59:15 »
jester81, Вы МОЁ сообщние читали?
Повторю суть
sudo ip a 172.16.1.0/24 via 10.10.1.13

Вы видите что-нибудь похожее на 192.168.21.0?

PS Сорри, на природе был лопатой землю кидал (не огород ;) )


Пользователь добавил сообщение 02 Октября 2016, 20:49:42:
Для понимания "почему именно так", предлагаю провести эксперимент, используя Ваши вариации игр с маршрутизацией:
1. Добавляете на хосте, а лучше опять так же на ADSL-роутере в клиентской сети  (для определённости будем рассматривать именно роутер) маршрут до сети 192.168.21.0/24 (как игрались чуть выше)
2. Пингуете с сервера OVPN этот роутер, но не просто пинг IP, а следующим образом (да простят меня модераторы за BSDунизм)...
Внимание! Команда для BSD-унов
ping -S 192.168.21.21 10.10.1.1
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 02 Октября 2016, 20:56:51 от fisher74 »

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: OPENVPN на FreeBSD 10 - XUBUNTU14 - не вижу сеть за Клиентом
« Ответ #12 : 03 Октября 2016, 12:39:05 »
добрался до пк наконец-то )))
пока нет интернета с домом, хоть вопросы позадаю наводящие ))
Итак
на роутере у меня еще со вчера маршрут прописан:
1. НА РОУТЕРЕ  192.168.21.0/24   ----> 10.10.1.14
2. Вы рекомендуете : sudo ip a 172.16.1.0/24 via 10.10.1.13, тоесть прописать на роутере, чтоб все хомячки, ищущие сеть 172.16.1.0 ползли в норку 10.10.1.14 (уже 14, статика)
- попробую сделать, чуть позже, посмотрим что даст.
И вы просите пингануть РОУТЕР хитрым способом  с СЕРВАКА: "ping -S 192.168.21.21 10.10.1.1"

Я верно все понял ?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: OPENVPN на FreeBSD 10 - XUBUNTU14 - не вижу сеть за Клиентом
« Ответ #13 : 03 Октября 2016, 21:35:36 »
Я не прошу. Мне на Вашу сеть фиолетово.
Я предлагаю Вам всё это проделать дабы Вы поняли почему для решения Вашей проблемы нужно клиентам добавлять именно тот маршрут, какой я рекомендовал.
« Последнее редактирование: 03 Октября 2016, 22:27:13 от fisher74 »

Оффлайн jester81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: OPENVPN на FreeBSD 10 - XUBUNTU14 - не вижу сеть за Клиентом
« Ответ #14 : 04 Октября 2016, 00:18:09 »
Спасибо, добрый и мудрый человечище - ЗАРАБОТАЛО ))))
Я в шоке!!!!

Итого, для того, чтоб я с сервака смог пинговать любой ПК за Клиентом, мне пришлось в Роутере за клиентом прописать два маршрута:
192.168.21.0 - направлять в 10.10.1.14 (в компьютер клиента)
172.16.1.0  --- направлять тоже в компьютер клиента 10.10.1.14

И вуаля - я с Сервака смог попасть на роутер, смог его пропинговать и любой ПК в сети за клиентом пингуется !!!!
К тому же на одном из компьютеров за Серваком я прописал маршрут на сервак и с этого компьютера смог попасть на Роутер за клиентом !!!

Еще раз спасибо!!!!
Это выходит, что я завернул пакеты идущие из интернета через роутер на клиентский ПК, если эти пакеты ищут сеть 192 или 172.
А куда до этого шли пакеты, без этих маршрутов ? на 10.10.1.1, на шлюз (роутер) ??? или куда ?

 

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