маршрутизация в VPN

Обсуждение ПО и его настройки
novator
Сообщения: 3
Зарегистрирован: 05 окт 2019, 15:03

модель 951hd, 5 портовый. первые 2 порта под интернет провайдеров, 3 под локалку, связанную 48 коммутаторами. на одной их машин в локалке поднимается VPN туннель, и эта машина получает доступ к сетям за впном. нужно дать возможность всем машинам локалки видеть машины за VPN. добавил маршруты на микроте с указанием шлюза адрес машины с тунелем однако ничего не пингуется что делать


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

На удаленном конце туннеля тоже маршрут добавили?


Telegram: @thexvo
novator
Сообщения: 3
Зарегистрирован: 05 окт 2019, 15:03

да, мои локалки там прописаны


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Ну в общем в 99% подобных случаев все решается последовательной проверкой на всех причастных устройствах:
1) Маршрутов
2) Firewall'ов
3) Правил NAT (чтобы туннельный трафик под них не попадал)

Если по 1 пункту все ок, смотрите дальше.


Telegram: @thexvo
Invite_man
Сообщения: 7
Зарегистрирован: 22 окт 2019, 07:56

Доброе время суток.
Наверно такая же проблема. уже сижу проверяю 2 дня. Помогите советом
Есть облачный сервер на убунту 16 35.202.хх.х
на нем понят ОВПН сервер
************************************************************
port 1194
proto tcp (не UDP так как микротик на котором клиент не работает по udp)
dev tun
ca ca.crt
cert ServerV4.crt
key ServerV4.key
dh dh2048.pem

# задаем IP-адрес сервера и маску подсети (виртуальной сети)
server 10.0.0.0 255.255.255.0

# задаем МАРШРУТ который передаём клиенту
# и маску подсети для того чтобы он "видел"
# сеть за OpenVPN сервером

# Client №1
push "route 192.168.6.0 255.255.255.0"
# Client №2
push "route 192.168.7.0 255.255.255.0"
# Client №3
push "route 192.168.8.0 255.255.255.0"
# Client №3
push "route 192.168.88.0 255.255.255.0"

# делает сервер OpenVPN основным шлюзом у клиентов
push "redirect-gateway def1"
push "dhcp-options DNS 8.8.8.8"

# разрешать подключаться с одинаковым сертификатом/ключом
duplicate-cn

# маршрут сервер-клиент
route 10.0.0.0 255.255.255.0 (вот тут вопрос, что должно быть252)
# маршрут client 1
route 192.168.6.0 255.255.255.0
# маршрут client 2
route 192.168.7.0 255.255.255.0
# маршрут client 3
route 192.168.8.0 255.255.255.0
# маршрут client 4
route 192.168.88.0 255.255.255.0

# от какого пользователя и группы будет работать OpenVPN
user nobody
group nogroup

# разрешает видеть клиентам друг друга (по виртуальным IP)
# по умолчанию клиенты видят только сервер
client-to-client

keepalive 10 120
comp-lzo

# эти опции позволяют избежать необходимости
# получения доступа к определенным ресурсам
# после рестарта, т.к. это может быть невозможным
# из-за понижения привилегий.
persist-key
persist-tun

cipher AES-256-CBC
verb 3
*****************************************************************
сервер овпн поднимается все ок
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.0.1 P-t-P:10.0.0.2 Mask:255.255.255.255
inet6 addr: fe80::3cd2:2f62:4857:fd15/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1105 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:92208 (92.2 KB)
*******************************************************************
Далее:
Есть микротик 450
он обслуживает локальные сети
192.168.6.0/24
192.168.7.0/24
192.168.8.0/24
192.168.88.0/24

на нем поднят ОВПН клиент
[admin@MikroTik] > interface ovpn-client print
Flags: X - disabled, R - running
0 R name="My VPN" mac-address=02:D2:79:AF:C6:41 max-mtu=1500 connect-to=35.202.ххх.х port=1194 mode=ip user="client1" password="хххххх" profile=default certificate=client1.pem_0 verify-server-certificate=no auth=sha1 cipher=aes256 add-default-route=no

и туннель строится
[admin@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
0 ;;; defconf
192.168.88.1/24 192.168.88.0 bridge
1 D 192.168.10.13/28 192.168.10.0 ether1
2 D 10.0.0.6/32 10.0.0.5 My VPN

Настроен маскарад на микротике
[admin@MikroTik] > ip fi nat print
Flags: X - disabled, I - invalid, D - dynamic
1 chain=srcnat action=masquerade src-address=192.168.88.0/24 out-interface=ether1 log=no log-prefix=""
2 chain=srcnat action=masquerade src-address=192.168.88.0/24 out-interface=My VPN log=no log-prefix=""

Настроена маркировка с направлением в ВПН
[admin@MikroTik] > ip fi mangle print
Flags: X - disabled, I - invalid, D - dynamic
0 D ;;; special dummy rule to show fasttrack counters
chain=prerouting action=passthrough

1 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough

2 D ;;; special dummy rule to show fasttrack counters
chain=postrouting action=passthrough

3 chain=prerouting action=mark-routing new-routing-mark=Through_VPN passthrough=no src-address=192.168.88.0/24 log=no log-prefix=""

Ну и таблица маршрутов:
[admin@MikroTik] > ip ro print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 A S 0.0.0.0/0 My VPN 1
1 ADS 0.0.0.0/0 192.168.10.1 1
2 ADS 10.0.0.0/24 10.0.0.5 1
3 ADC 10.0.0.5/32 10.0.0.6 My VPN 0
4 ADS 192.168.6.0/24 10.0.0.5 1
5 ADS 192.168.7.0/24 10.0.0.5 1
6 ADS 192.168.8.0/24 10.0.0.5 1
7 ADC 192.168.10.0/28 192.168.10.13 ether1 0
8 ADC 192.168.88.0/24 192.168.88.1 bridge 0
9 DS 192.168.88.0/24 10.0.0.5 1
***********************************************************************
а теперь вопросы:
1.при поднятом впн я не могу пингать с микротика 10.0.0.1 туннель, который поднят на Сервер в облаке
2. при подняом впн не могу пингать с сервера микротик по 10.0.0.6
3. инета соответственно нет в локалке микротика
4. на стороне сервера в облаке установлен форвард
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o ens4 -j MASQUERADE
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -j ACCEPT
в итоге НИЧЕГО не пингается инета нет :-(


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Так, всё сразу не стану смотреть. Давайте конфигурацию сервера проверим.
Три первых строчки всё понимаю. Дальше, у вас что, сертификаты и ключи лежат в куче сваленные? Или их всё же в директорию надо определить? Я бы отправил, ну скажем в .key Тогда строки изменились бы на подобное моему

Код: Выделить всё

ca .keys/ca.crt
cert .keys/server.crt
key .keys/server.key 
dh .keys/dh1024.pem
Обратите внимание, ключи Диффи-Хелмана у меня 1024-битные. Это потому, что у меня были проблемы с 2048-битными ключами. Так может и у вас те же проблемы?
Идём далее.

Код: Выделить всё

server 10.0.0.0 255.255.255.0
Согласен. А вот клиентские настройки - абсолютно не согласен.
Во-первых, никаких одинаковых сертификатов. Скомпрометированный один сертификат приведёт к компрометации всех (!!!!) клиентов. Сгенерировать нужное количество сертификатов - простое дело, зато в случае чего достаточно отозвать скомпрометированный и с остальными можно работать как и раньше.
Клиентские настройки выведите в отдельную директорию. Каждому клиенту свой файл. Да дольше, зато гибче в разы. С той же маршрутизацией как хорошо выйдет. Например директория .ccd

Код: Выделить всё

client-config-dir .ccd
В клиентском файле (я его называю так же, как называется ключ клиента, например client1):

Код: Выделить всё

# Клиентская подсеть за mikrotik (192) и адрес openvpn у роутера (10)
iroute 192.168.6.0 255.255.255.0 10.0.0.2
# Добавим шлюз по умолчанию для машин за микротиком, заодно закрепим адрес.
ifconfig-push 10.0.0.2 10.0.0.1
Маршрутизацию я в конфигурации не прописываю. Что надо, само поднимется. Хотя вам наверное придётся, у вас вон сколько сетей за туннелями. Юзер и группа оставляем, так все делают. Про lzo я весь в сомнениях, раньше это Микротами не поддерживалось, я не прописываю. Авторизация у меня sha1, проблем не вижу никаких, чтобы прописать явно.
В итоге конфиг будет приблизительно такого вида:

Код: Выделить всё

port 1194
proto tcp
dev tun
ca .keys/ca.crt
cert .keys/server.crt
key .keys/server.key  
dh .keys/dh1024.pem
# topology subnet
server 10.9.0.0 255.255.255.0
client-config-dir .ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC  
auth sha1
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log  /var/log/openvpn.log
verb 3
mute 10
Если адреса клиентам будут присваиваться не те, что прописаны в клиентских файлах, раскомментируйте topology subnet. Перезапустите сервис и проверяйте.
Потом пойдём далее, важно понять, что серверная часть 100% работает.
А, кстати. Как же вы собираетесь пинговать 10.0.0.1 , если у вас шлюзом в маршрутах 10.0.0.5 ? Subnet надо прописать, это точно. Меня в своё время тут в это носом тыкали, пока не разобрался :smu:sche_nie:


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Invite_man
Сообщения: 7
Зарегистрирован: 22 окт 2019, 07:56

Клиентские настройки выведите в отдельную директорию. Каждому клиенту свой файл. Да дольше, зато гибче в разы. С той же маршрутизацией как хорошо выйдет. Например директория .ccd

а зачем делать настройки клиента, я сделал сертификат client1.p12 распаковал его и залил на микротик.


Invite_man
Сообщения: 7
Зарегистрирован: 22 окт 2019, 07:56

как только я сгенерил сертификат ./build-key client1
свалилися мой текущий рабочий ./build-key-pkcs12 client1


Invite_man
Сообщения: 7
Зарегистрирован: 22 окт 2019, 07:56

dh dh1024.pem
client-config-dir .ccd
Туннель не поднимается вообще


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Интересно. Конфиг абсолютно рабочий. Ещё с Debian 8 переползает на разные сервера. Там помню был у меня момент, когда Debian 7 я обновил до 8 версии, а OpenVPN в репозитории не было, и я его собирал make. Тогда у меня subnet не работал и вообще странновато всё было. А когда пакет в репозитории включили, всё стало на раз настраиваться. Посмотрите, сервис openvpn работает?

Код: Выделить всё

service --status-all
Про клиентский конфиг мало что могу сказать. Разве что у меня точно нет пароля, потому как был в openvpn один интересный баг в своё время, когда из-за этого пароля везде показывало, что openvpn работает, а по факту ни фига не поднималось.
Ну и конечно, не очень кошерно profile=default. Ну что вам стоило завести свой профиль для сервиса?
Потом, проясните. У вас в NAT правила маскарада. Оба очень общие, потому как описывают поведение трафика для одной и той же подсети, только интерфейсом отличаются. И как их там роутер будет разделять? Отмаркировано все роуты, источником которых является локальная сетка. Зачем? Какая цель такой маркировки? Я не увидел, куда маркированные роуты вы отправили.
Одним словом, чем дальше я углубляюсь в ваши конфиги, тем больше у меня вопросов. Давайте-ка почитайте на досуге https://podarok66.livejournal.com/18134.html
, вроде как не сильно отличается от того, что я сейчас делаю. Ну не ставлю easy-rsa по-моему, и с директориями для этого пакета вроде как возится не надо. В остальном должно работать ...
Про маркировку поговорим, когда с туннелем разберётесь окончательно.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить