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

Помогите разобраться с Openvpn туннелем.

 , , ,


0

1

День добрый.

Есть локальная сеть 192.168.1.0/24

В ней роутер, что раздает интернет 192.168.1.1 (внешний IP динамика + DDNS).

Машина-сервер OpenVPN 192.168.1.2 (OpenSUSE 13.1) NAS 192.168.1.110.

Поднимаю VPN-tun сервер с внутренними адресами 10.8.0.0, где 10.8.0.1 - сервер, 10.8.0.4 клиент (Ubuntu 14.04) (Внешний динамика 4G)

ВОПРОС: Что и как нужно сделать чтобы из машины-клиента получать доступ по SMB на NAS(192.168.1.110)?



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

tap интерфейс нужен для корректной работы smb (видеть сетевые имена и прочие ништяки). А так же дорожки, конечно. Если просто подключиться по айпи, прокинь клиенту дорожку push «route 192.168.1.0 255.255.255.0». И сообщи NASу дорожку до подсетки openvpn через шлюз 192.168.1.2. На сервере openvpn разрешить forwarding.

erfea ★★★★★
()
Последнее исправление: erfea (всего исправлений: 1)
Ответ на: комментарий от axelroot

# cat /etc/sysctl.conf | grep ip_forward
net.ipv4.ip_forward = 1

но после перезагрузки все равно

# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0

# sysctl -p

# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1

iptables -A PREROUTING -d 10.8.0.1/32 -p tcp -m tcp >--dport >445 -j DNAT --to-destination 192.168.1.110

iptables -A POSTROUTING -d 192.168.1.110/32 -p tcp -m tcp >--dport 445 -j SNAT --to-source 10.8.0.1

-A FORWARD -i enp3s0 -p tcp -m tcp --dport 445 -j ACCEPT

Не фурычит

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

но после перезагрузки все равно
net.ipv4.ip_forward = 0

что за дистриб?

iptables зачем вообще дергаешь? тем более нахрена там тебе nat?!

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

nat здесь вообще никаким боком не нужен. маршрут нужен в лок. сеть 192.168.1 и соотвественно маршрут как добрать обратно к вам. в случае с openvpn маршруты прописываются в конфигах клиента и сервера, на шлюзе должен быть разрешен транзитный трафик (таблица фильтер). И еще раз для хождения между локалками нат не используется, он нужен для взаимодействия инета и локалок.

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

на шлюзе должен быть разрешен транзитный трафик (таблица фильтер)

Достаточно «policy ACCEPT», что обычно в дефолте

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

Не думал о tun, собственно видет сетевые имена мне не особо нужно. push «route 192.168.1.0 255.255.255.0» - прокинуто. Шлюз на NAS пробросил.

Итого - вижу на машине клиенте NAS, но если включаю дефолтный маршрут через VPN, но тогда, нет интернета на клиенте (интернет трафик не через VPN)

Вопрос, как настроить маршруты на клиенте, чтобы в сеть на NAS\хост стучало через 10.8.0.0, а не через тот, что смотрит наружу?

Nemton
() автор топика

сделать чтобы из машины-клиента получать доступ по SMB на NAS

если это является единственной сверхзадачей, то просто используй ssh-туннель для этого никаких впн и маршрутов не надо.

axelroot
()
Ответ на: комментарий от erfea

Opensuse 13.1 Да начитался всякого... Впервый раз в тупике, вот и вопросы задаю

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

Если клиент не какой-нибудь Windows 95, то broadcast и соответственно tap совершенно не нужен. Современный cifs работает используя tcp как транспорт и dns для разрешения имен. Соответственно и то и то маршрутизируется без всяких проблем.

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

NAS - это начальная задача, будут еще устройства, но пока это приоритет

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

Вопрос, как настроить маршруты на клиенте, чтобы в сеть на NAS\хост стучало через 10.8.0.0, а не через тот, что смотрит наружу?

Я уже сказал как. Выкладывай таблицу маршрутизации клиента, гадать на кофейной гуще не вариант.

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

Если клиент не какой-нибудь Windows 95, то broadcast и соответственно tap совершенно не нужен. Современный cifs работает используя tcp как транспорт и dns для разрешения имен. Соответственно и то и то маршрутизируется без всяких проблем.

Одноранговой сетке, где dhcp и dns на роутере?! Ага как же.

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

$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.0.5 0.0.0.0 UG 0 >0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 >0 0 tun0
10.8.0.5 * 255.255.255.255 UH 0 >0 0 tun0
31.162.177.177 192.168.43.1 255.255.255.255 UGH 0 >0 0 wlan0
192.168.43.0 * 255.255.255.0 U 9 >0 0 wlan0

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

Самбу раздает NAS со стоковой прошивкой, прописать интерфейсы, увы немогу

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

Что не так в наличии DNS и DHCP на роутере?

Всё. Имена локалки не разрешаются, роуты пропихнуть средствами dhcp нельзя и прочее, прочее, прочее. Можешь не спорить, только 3 дня назад на личном опыте убедился что через tun не работает «как надо», только прямое обращение по ip к серверу. Мне бы кстати и пох, но впн ещё и юзера пользоваться будут.

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

default 10.8.0.5 0.0.0.0 UG 0 >0 0 tun0

Это не push «route 192.168.1.0 255.255.255.0». Ты хоть основы работы с сетями изучи, а то с закрытыми глазами сам у себя под носом ничего не увидишь.

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

interfaces = 192.168.1.0/24 10.8.0.0/24

Это если он на одной машине с openvpn сервером. Зы не будет работать с tun интерфейсом вообще никак.

erfea ★★★★★
()
Последнее исправление: erfea (всего исправлений: 1)
Ответ на: комментарий от erfea

Хм.

ISC DHCPD, PowerDNS, OpenVPN в tun-режиме работает на шлюзе. 7 cifs серверов на Windows и Samba из 2-х подсетей доступны у меня через OpenVPN. Все работает на Centos 6. ЧЯДНТ?

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

ISC DHCPD
PowerDNS
Все работает на Centos 6

Не на роутере (как нить сраном асусе за 1тр), не так ли? Давай ты не будешь опровергать те мои утверждения, которых я не делал, ок?

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

нету у интерфейсов tun никаких проблем.

Широковещалки не ходят. У меня сервак с двумя openvpn процеесами запущен 3 дня назад, один tun (для ведройда), второй tap. Тестировал эмуляцией работы юзера, подключается он через tun (dhcp и dns на говнороутере асус за три копейки) и нифига не видит в удаленной сетке. Подключается через tap и «работает как надо». Ключевое слово «как надо» это фраза хомячка который в гуйне нажал «подключиться» и ничего больше не знает и знать не хочет.

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

Оу, не разглядел что речь про говнороутеры. Тогда можно попробовать шить (Open|DD)-WRT, но не факт что панацея (как раз коллега чейчас рядом воюет с VLAN на DD-WRT, хе-хе).

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

Неважно с пушем на сервере или без пуша на клиенте, главное пусть правильный маршрут пишет.

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

Оу, не разглядел что речь про говнороутеры.

Ну ТС именно так описал свою сеть. Мне тут на днях с таким воевать пришлось, какая ж это дрянь. Не родственнице было бы надо, вообще б послал заказчика с таким железом куда-то далеко.

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

Мда в этом весь сусь, гугли сам как на твоей версии суся включать форвардинг...

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

push «route 192.168.1.0 255.255.255.0» делался на сервере, а таблица на клиенте. На клиенте дефолт, после подключения VPN.

Основы изучать некогда, это нужно вчера (как обычно). Да и основы сетей то я знаю, вот только с маршрутами не доводилось сталкиваться. Сел было читать, да все не то. А время идет. А заранее ознакомиться это как админить ради админства, без реальной задачи бесполезно и неинтересно

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

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

Есть решение как установить маршрут на клиенте?

Либо на сервере пишется в конфиге

push «route 192.168.1.0 255.255.255.0»
либо на клиенте
route 192.168.1.0 255.255.255.0
Это одно и тоже, вопрос только где удобнее контролировать. Я предпочитаю раздавать с сервера, ибо если понадобится изменить, я могу централизованно это сделать, не трогая конфиги клиентов (которые ещё и на их компах) и уменьшая объем своей работы.

erfea ★★★★★
()
Последнее исправление: erfea (всего исправлений: 3)
Ответ на: комментарий от Nemton

Основы изучать некогда, это нужно вчера (как обычно).

Ну да, лучше выкидывать время на ветер решая элементарные задачи когда надо вчера. Чем понимать что делаешь, потратив время на самообучение один раз.

Да и основы сетей то я знаю, вот только с маршрутами не доводилось сталкиваться.

Это взаимоисключающие параграфы.

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

push «route 192.168.1.0 255.255.255.0»

Это есть на сервере, но клиент не получает по умолчанию этот маршрут

Пришлось прописать маршрут в конфиге клиента, через NM

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

$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.43.1 0.0.0.0 UG 0 >0 0 wlan0
10.8.0.1 * 255.255.255.255 UH 0 >0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 >0 0 tun0
10.8.0.5 * 255.255.255.255 UH 0 >0 0 tun0
31.162.177.177 192.168.43.1 255.255.255.255 UGH 0 >0 0 wlan0
192.168.1.0 10.8.0.1 255.255.255.0 UG 0 >0 0 tun0
192.168.43.0 * 255.255.255.0 U 9 >0 0 wlan0

traceroute 192.168.1.110
traceroute to 192.168.1.110 (192.168.1.110), 30 hops max, 60 >byte packets
1 10.8.0.1 (10.8.0.1) 148.277 ms 148.965 ms 148.270 ms
2 192.168.1.110 (192.168.1.110) 148.840 ms 148.920 ms >318.972 ms

traceroute ya.ru
traceroute to ya.ru (213.180.193.3), 30 hops max, 60 byte >packets
1 192.168.43.1 (192.168.43.1) 5.603 ms 18.384 ms 18.338 >ms
2 192.168.251.2 (192.168.251.2) 52.372 ms 73.524 ms >73.489 ms
.
.
17 http://www.yandex.ru (93.158.134.3) 114.847 ms * 113.763 ms

Теперь на клиенте работает как надо

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

Я имел ввиду практически. В теории все просто.

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

Это есть на сервере, но клиент не получает по умолчанию этот маршрут

Надо смотреть логи что происходит. Проверять конфиги, очевидно ты где-то накосячил.

Я имел ввиду практически. В теории все просто.

На практике тоже, если понимаешь что делаешь.

erfea ★★★★★
()
Последнее исправление: erfea (всего исправлений: 1)
Ответ на: комментарий от erfea

Ну, как только я это прописал на сервере, появился форвардинг и изолированно из сети 10.* я попадал на 192.168.1.110, без пуша - не работало, спасибо. Осталось понять почему суся сбрасывает параметр, отшлифовать конфиги и проверить на винде, но боюсь, что не пройдет все гладко с виндами

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

все правильно, всегда нужны два маршрута, один - туда, другой обратно.

axelroot
()
Ответ на: комментарий от Nemton

В suse это делается очень геморно.

Вариант 1: у тебя используется SuSEfirewall2
Лезешь в файл /etc/sysconfig/SuSEfirewall2, ищешь там опцию FW_ROUTE и ставишь ей «yes». После этого перезапускаешь фаервол (systemctl restart SuSEfirewall2.service) и радуешься. Тоже самое можно сделать через YaST, галочка где-то в настройках сети.
Примечание: susefirewall такой особенный, что затмевает собой все остальные настройки.

Вариант 2: ты не используешь фаервол и/или тебе нужно включить форвардинг ipv6
создаешь файл /etc/sysconfig/network/ifsysctl, и добавляешь туда нечто вроде: net.ipv4.conf.all.forwarding = 1
SuSEfirewall2 плохо работает с ipv6, по этому форвардинг для него можно включить только таким способом.

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

SuSEfirewall2 у меня выключен форвардинг ipv6 мне не нужен YaST говорит что форвардинг не может включить ибо используется Network-Manager YaST Настройки безопасности по какой-то причине не может проверить форвардинг IPv4 и настроить его не может по той же причине

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

сорри за формат, никак не могу привыкнуть к дабл энтер

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

Все верно. Была допущена ошибка, вместо " поставились ».

А я и не обратил внимания. Маршрут прокладывается теперь и клиенту. Большое спасибо за инфу и подсказки.

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

Если кому-нибудь будет нужно в OpenSUSE 13.1 форвардинг включается так:

/etc/sysconfig/SuSEfirewall2

ищем

FW_ROUTE=«yes»

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