LINUX.ORG.RU
ФорумAdmin

Друзья , помогите с маршрутизацией внутри OpenVPN сети ((

 


1

1

вот пошла вторая неделя как не могу разобраться , может поможет кто найти решение ? Поиском здесь не нашел ( гугл тоже не помог ( Итак есть сервер , поднял на нем openVPN . к нему подключены несколько роутеров , каждый из них расшаривает свою сеть которая за ним 192.168.1.0; 192.168.2.0; 192.168.3.0; 192.168.4.0 и тд. с Этим все в порядке. Все работает . я к примеру client01 подключаюсь к шлюзу , и прекрасно вижу все эти сети и что за ними без проблем . Но стоит задача в другом : как подправить конфиг или файлы в /etc/openvpn/client/ чтобы client01 видел ТОЛЬКО сеть 192.168.1.0 client02 видел ТОЛЬКО сеть 192.168.2.0; client03 видел ТОЛЬКО сеть 192.168.3.0; и тд вот какой у меня конфиг сервера :

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
auth SHA512
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS *.*.*.*"
push "dhcp-option DNS *.*.*.*"
client-config-dir /etc/openvpn/client
keepalive 10 120
cipher AES-256-CBC
client-to-client
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
в мануале на скрипт есть описание этого случая,( https://openvpn.net/community-resources/how-to/#policy) но при добавлении новых правил в иптайбелс
iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ACCEPT
они какбудто не работают, по крайней мере статистика нулевая(( Опускаются руки , хелп ((

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

я его отключил, Запуститил с сервера ping -I tun0 10.8.0.6, но как при этом еще и запустить tcpdump я не понял , терминал занят в этот момент

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

Ух еее.... Терминал у вас это что? Вы физически перед сервером или удаленно через ssh или что-то еще?

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

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

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

не догадался (( вот выхлоп :

listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
01:06:04.940781 IP 10.8.0.1 > 10.8.0.6: ICMP echo request, id 1090, seq 43, length 64
01:06:05.219237 IP 10.8.0.6 > 10.8.0.1: ICMP echo reply, id 1090, seq 43, length 64
01:06:05.941329 IP 10.8.0.1 > 10.8.0.6: ICMP echo request, id 1090, seq 44, length 64
01:06:06.070911 IP 10.8.0.6 > 10.8.0.1: ICMP echo reply, id 1090, seq 44, length 64
01:06:06.942213 IP 10.8.0.1 > 10.8.0.6: ICMP echo request, id 1090, seq 45, length 64
01:06:07.238829 IP 10.8.0.6 > 10.8.0.1: ICMP echo reply, id 1090, seq 45, length 64
01:06:07.942865 IP 10.8.0.1 > 10.8.0.6: ICMP echo request, id 1090, seq 46, length 64
01:06:08.571884 IP 10.8.0.6 > 10.8.0.1: ICMP echo reply, id 1090, seq 46, length 64
01:06:08.942632 IP 10.8.0.1 > 10.8.0.6: ICMP echo request, id 1090, seq 47, length 64
01:06:09.011953 IP 10.8.0.6 > 10.8.0.1: ICMP echo reply, id 1090, seq 47, length 64
01:06:09.943289 IP 10.8.0.1 > 10.8.0.6: ICMP echo request, id 1090, seq 48, length 64

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

И еще, вот что не видели, клиентский конфиг с кинетика.

anc ★★★★★
()
Ответ на: комментарий от anc
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
01:11:57.996010 IP 89.36.221.69 > 192.168.1.1: ICMP echo request, id 1095, seq 13, length 64
01:11:59.020028 IP 89.36.221.69 > 192.168.1.1: ICMP echo request, id 1095, seq 14, length 64
01:12:00.043993 IP 89.36.221.69 > 192.168.1.1: ICMP echo request, id 1095, seq 15, length 64
01:12:01.068030 IP 89.36.221.69 > 192.168.1.1: ICMP echo request, id 1095, seq 16, length 64
01:12:02.092029 IP 89.36.221.69 > 192.168.1.1: ICMP echo request, id 1095, seq 17, length 64
01:13:46.796030 IP 89.36.221.69 > 192.168.1.14: ICMP echo request, id 1100, seq 8, length 64
01:13:47.820009 IP 89.36.221.69 > 192.168.1.14: ICMP echo request, id 1100, seq 9, length 64
01:13:48.844030 IP 89.36.221.69 > 192.168.1.14: ICMP echo request, id 1100, seq 10, length 64
01:13:49.868036 IP 89.36.221.69 > 192.168.1.14: ICMP echo request, id 1100, seq 11, length 64
01:13:50.892088 IP 89.36.221.69 > 192.168.1.14: ICMP echo request, id 1100, seq 12, length 64
01:13:51.915971 IP 89.36.221.69 > 192.168.1.14: ICMP echo request, id 1100, seq 13, length 64

.15 пока не подключена

конфиг кинетика сейчас дам

ruchechnik
() автор топика
Ответ на: комментарий от ruchechnik
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote *.*.221.69 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
#setenv opt block-outside-dns
key-direction 1
verb 3
<ca>
ruchechnik
() автор топика
Ответ на: комментарий от ruchechnik

это с сервера

ifconfig-push 10.8.0.6 10.8.0.5
iroute 192.168.1.0 255.255.255.0

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

держи )

# Generated by iptables-save v1.6.0 on Sun Nov 11 01:33:50 2018
*nat
:PREROUTING ACCEPT [2120:139048]
:INPUT ACCEPT [1030:72896]
:OUTPUT ACCEPT [65:4144]
:POSTROUTING ACCEPT [84:5316]
-A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 89.36.221.69
COMMIT
# Completed on Sun Nov 11 01:33:50 2018
# Generated by iptables-save v1.6.0 on Sun Nov 11 01:33:50 2018
*filter
:INPUT ACCEPT [83:8727]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [102:11703]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -j ACCEPT
-A f2b-ssh -s 116.31.116.45/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-ssh -j RETURN
-A f2b-sshd -s 116.31.116.45/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -j RETURN
COMMIT

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

Нет, у вас натиться адрес отправителя. Как вы и увидели в выхлопе tcpdump. Получаеться пакет на кинетик улетел с адреса 89.36.221.69 а у кинетика теперь дэфолтный роутинг как вы и хотели в инет, т.е. ответ он отправляет в инет через свой дэфолтный шлюз.

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

Вообще всю жизнь говорил что за правила с not !(восклицательный знак) без надобности надо «бить чем-то тяжелым, долго и нудно». Недавно тут один товарищ мне возразил что мол когда понадобиться изменения, то тогда и буду думать. Я ему ответил, что возможно придется думать не вам, а тем кто придет после вас. И даже если и вам, то по прошествии времени можете забыть.
Вот ваш пример как нельзя лучше показал недостаток этого варианта. Надо будет не забыть, другим потом в лицо, как пример показывать буду :)

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

Да , вполне себе хороший пример , несколько часов рабты в него уперлись как в занозу , которая болит , но ее еще надо найти ))

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

Смотря чего достичь хотим? Это маскарад всех кто выходит через ваш сервер.
Может он вам нужен. Я не знаю. Но если нужен для всех, меняем на
-A POSTROUTING -o $EXT_IF -j SNAT --to-source 89.36.221.69
Где $EXT_IF - внешний интерфейс.

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

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

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

Спасибо , ну кто если не вы подскажет)) сейчас проверю как работает )

ruchechnik
() автор топика
Ответ на: комментарий от ruchechnik
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 89.36.221.69


Поправил. Простите засыпаю уже.

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

В вашем исходном варианте (включая настройки ovpn) все клиенты с ip 10.8.0.0/24. Выходили в инет через ваш шлюз.
В варианте поправленном мной в этом посте только iptables сохраняет тот же вариант. Но может вам это вообще и не нужно. Я лишь поправил само правило.

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

не проверил , не знаю как это правило внести (( Ошибку пишет

# iptables -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 89.36.221.69
iptables: No chain/target/match by that name.

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

не проверил , не знаю как это правило внести (( Ошибку пишет

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 89.36.221.69

Но это роли не играет. Это так, сначала удалите старое и без правил POSTROUTING проверьте. iptables -t nat -F

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

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

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

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

Надо. Этого же добиваемся. Уткнулись в роутинг и не только. Вопрос решен как я понял.
А руление правилами FORWARD было в первой части марлезонского балета на первой странице. Успехов.

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

я так понял , вот они эти правила !

-A FORWARD -s IP_CLIENT1/32 -d 192.168.1.0/24 -j ACCEPT
-A FORWARD -s IP_CLIENT2/32 -d 192.168.2.0/24 -j ACCEPT
-A FORWARD -s IP_CLIENT3/32 -d 192.168.3.0/24 -j ACCEPT
-A FORWARD -d IP_CLIENT1/32 -s 192.168.1.0/24 -j ACCEPT
-A FORWARD -d IP_CLIENT2/32 -s 192.168.2.0/24 -j ACCEPT
-A FORWARD -d IP_CLIENT3/32 -s 192.168.3.0/24 -j ACCEPT

-A FORWARD -s IP_CLIENT1/32 -j DROP
-A FORWARD -s IP_CLIENT2/32 -j DROP
-A FORWARD -s IP_CLIENT3/32 -j DROP

Спасибо вам огромное за помощь, могу я как то транформировать свою благодарность не только в словах ?! Очень хотелось бы!?

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

Так уж и быть поясню перед сном. В net30 клиент не сможет поменять ip адрес. Точнее может, но оно робить не будет. Вот этот момент как раз важный, чего и добивались. Но это не значит что он не сможет попасть в другие сети прописав у себя роутинг до них. Для этого и надо разрулить iptables на самом сервере.

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

спасибо , буду рулить правилами , которые вы дали , по их шаблону .

Спасибо вам огромное за помощь, могу я как то транформировать свою благодарность не только в словах ?! Очень хотелось бы!?

Но на этом пункте я всеже настаиваю, 6 утра всетаки уже !

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

я так понял , вот они эти правила !

Тут «на вкус и цвет у всех фломастеры разные». Это не более чем стандартные правила iptables. А вот кого, куда, по каким портам, протоколам пускать, решайте сами.
Лично я предпочитаю как и анон у которого вы скопировали, сначала правила с ACCEPT и последнее DROP. Кому-то нравиться полиси DROP и только правила с ACCEPT.
В целом, будут вопросы уже по теме iptables, пишите.

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

Но на этом пункте я всеже настаиваю

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

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

Я писал выше это не раздел Job. Помогаем советом тем кто сам пытается что-то сделать.

Я понимаю , но как мне быть , если я по человечески благодарен , за то , что вы просидели со мной всю ночь ?

Ну и еще вопрос в догонку , что делать если сеть закончится емкость парных адресов

[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18]

для клиентов? Ведь на самом деле их и не так много ((

или всетаки можно в клиентском конфиге ccd прописывать не так

ifconfig-push 10.8.1.10 10.8.1.9

а както вот так :

ifconfig-push 10.8.1.10 255.255.255.0

е целью экономии номеров ?

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

Ну и еще вопрос в догонку , что делать если сеть закончится емкость парных адресов

Есть еще p2p но оно вроде (согласно документации) не работает на винде.

Но в целом даже если рассматривать net30 (63 клиента), можно поднять еще один ovpn на другом порту. Кстати это может оказаться и к лучшему. Недостаток ovpn в том, что он однопоточный и юзерспейсный. И если нагрузка большая, решение поднять N инстансов может быть полезным в части разграничения нагрузки.

или всетаки можно в клиентском конфиге ccd прописывать не так

Еще раз, это для subnet. В целом читайте я вам приводил ссылку https://community.openvpn.net/openvpn/wiki/Topology

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

Огромное Вам спасибо за терпение и внятные объяснения, которых кстати нигде не найти , даже в мануале все мутно написано

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

подскажите пожста еще такой момент

подскажите пожста еще такой момент, когда захожу в шлюз с ноута , нет инета, все верно, он через шлюз и не нужен, нужен просто инет от провайдера . Хотя на телефоне все робит нормально, инет идет не через шлюз , в шлюзе как задумано, только локалные адреса. Это можно както сделать через iptables? мне кажется отсюда же проблема , загрузил ключи в роутер asus , - инет от провайдера пропал(( а этот роутер не позволяет сделать впн соединение второстепенным, не используемым для инета , а в отличии от кинетика

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

вот схемка https://yadi.sk/i/TrZuzDq8f1Pq0g поясню : мой ВПН предназначен не для серфинга в инете и не для анонимизации - только для доступа к локальным устройствам в других сетях. 1. После того как я подключаюсь к шлюзу , с ноутбука, ноутбук перестает видеть инет , но с удаленными устройствами все ОК , их видит. Хотелось бы чтобы были видны и устройства , и инетрнет , но интернет не со шлюза , а с локального провайдера

2. Мобильный телефон с ВПН клиентом. Вот тут почемуто все работает как и хотелось бы , телефон видит и камеры других локалок и интернет на телефоне не «шлзовский». Сервис 2ip показывает оператор - родной билайн 3. комп за роутером . роутер асус( в отличии от кинетика) , не позволяет подключить open vpn шлюз , назначив его не в качестве провайдера интернета. Они там наверное думают , что люди пользуются open vpn только ради серфинга в инете. Посоветуйте как же мне пользоваться интернетом моего провайдера , не нагружая мой openvpn? но с тем самым иметь доступ к локальным камерам

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

Все равно не совсем понял. Давайте для начала проясним. Как понял я:
Вы шлюзом называли сервер ovpn ? А не реальный шлюз вашего ноута.
На ноуте вы поднимаете клиента ovpn и после этого на ноуте пропадает инет?
Я все правильно понял?

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

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

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