Теряется трафик от удаленных ipsec клиентов при заворачивании на ipsec Proton VPN

Обсуждение ПО и его настройки
Ответить
e_sysolyatin
Сообщения: 3
Зарегистрирован: 05 сен 2022, 22:22

Добрый вечер, уважаемые форумчане.
Для доступа к _некоторому контенту_ :ti_pa: настроил подключение домашнего роутера через IKE2 к сервису Proton VPN согласно инструкции:
https://protonvpn.com/support/vpn-mikrotik-router/
Добавил нужные домены в список для маркировки соединений, из внутренней сети все отлично работает - нужные ресурсы доступны через Proton, остальное доступно напрямую через провайдера. :co_ol:
Также, поднял IKE2 ipsec VPN сервер на том же роутере для входящих подключений извне (имеется белый IP).
В конфигурации VPN сервера прописал добавление маршрута по-умолчанию, т.е. весь интернет трафик VPN клиента заворачивается через роутер.
Доступ к сайтам, которые не обозначены для Proton VPN, работает отлично - по трассировке видно, что идем через VPN сервер на интернет провайдера. А вот маркированный трафик уходит на Proton и там теряется, т.е. трассировка не заканчивается ничем. Что интересно, пинг при этом до сайта доходит.
Подозреваю, что Proton как-то блокирует такую схему, пробовал менять TTL, но безрезультатно. :ne_vi_del:
Есть у кого идеи?


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

Без конфига проблемно однозначно сказать. Можете дать Ваши настройки firewall, nat и mangle для начала? Предполагаю, что проблема где-то там


e_sysolyatin
Сообщения: 3
Зарегистрирован: 05 сен 2022, 22:22

Надеюсь так читаемо :-):

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

/ip firewall filter
add action=accept chain=input comment="Allow new winbox requests to router from LAN" connection-state=new dst-port=8291 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24
add action=accept chain=input comment="Allow new winbox requests to router from VPN" connection-state=new dst-port=8291 protocol=tcp src-address=172.30.88.2-172.30.88.30
add action=accept chain=input comment="Allow new HTTPS requests to router from LAN" connection-state=new dst-port=443 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24
add action=accept chain=input comment="Allow DNS requests to router from LAN" dst-port=53 in-interface=!ether1 protocol=udp src-address=192.168.0.0/24
add action=accept chain=input comment="Allow DNS requests to router from IKE2 VPN" dst-port=53 protocol=udp src-address=172.30.88.2-172.30.88.30
add action=accept chain=input comment="Allow CAPsMAN traffic" dst-port=5246,5247 in-interface=vlan99 protocol=udp
add action=accept chain=input comment="defconf: accept established,related" connection-state=established,related
add action=accept chain=input comment="Allow UDP 500,4500 IPSec for MY_EXT_IP_ADDR" dst-address=MY_EXT_IP_ADDR dst-port=500,4500 protocol=udp
add action=accept chain=input comment="Allow IPSec-esp for MY_EXT_IP_ADDR" dst-address=MY_EXT_IP_ADDR protocol=ipsec-esp
add action=accept chain=forward comment="IKE2: Allow ALL forward traffic from 10.0.88.0/24 to INTERNAL network" dst-address=192.168.0.0/24 ipsec-policy=in,ipsec src-address=172.30.88.2-172.30.88.30
add action=accept chain=forward comment="IKE2: Allow ALL forward traffic from 172.30.88.2-172.30.88.30" src-address=172.30.88.2-172.30.88.30
add action=accept chain=forward comment="Allow IN ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="Allow OUT ipsec policy" ipsec-policy=out,ipsec
add action=accept chain=forward comment="IKE2: Allow ALL forward traffic from 10.0.88.0/24 to Synology additional interface" disabled=yes dst-address=192.168.167.0/24 ipsec-policy=in,ipsec src-address=10.0.88.0/24
add action=accept chain=input comment="Allow all UDP packets from Internet" disabled=yes in-interface=ether1 port=1701,500,4500 protocol=udp
add action=drop chain=input comment="defconf: drop all to router" in-interface=ether1
add action=drop chain=input comment="drop all to router from Guest network" in-interface=bridge-GUEST
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related disabled=yes hw-offload=yes
add action=drop chain=forward comment="Prevent e-mail sending other from NAS" dst-port=25 protocol=tcp src-address=!192.168.0.120
add action=drop chain=forward comment="Prevent e-mail sending other from NAS" dst-port=25 protocol=udp src-address=!192.168.0.120
add action=accept chain=forward comment="defconf: accept established,related" connection-state=established,related,new
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface=ether1

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

/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=ether1
add action=netmap chain=dstnat dst-address=MY_EXT_IP_ADDR dst-port=443 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=5001
add action=netmap chain=dstnat disabled=yes dst-port=5000 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=5000
add action=netmap chain=dstnat dst-port=5001 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=5001
add action=netmap chain=dstnat dst-port=993 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=993
add action=netmap chain=dstnat disabled=yes dst-port=25 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=25
add action=netmap chain=dstnat dst-port=587 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=587
add action=netmap chain=dstnat dst-port=465 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=465
add action=netmap chain=dstnat comment="Syno BT TCP" dst-port=16881 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=16881
add action=netmap chain=dstnat comment="Syno BT UDP" dst-port=16881 in-interface=ether1 protocol=udp to-addresses=192.168.0.120 to-ports=16881
add action=netmap chain=dstnat dst-address=MY_EXT_IP_ADDR dst-port=80 in-interface=ether1 protocol=tcp to-addresses=192.168.0.120 to-ports=80
add action=dst-nat chain=dstnat dst-address=MY_EXT_IP_ADDR dst-port=443 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24 to-addresses=192.168.0.120 to-ports=5001
add action=dst-nat chain=dstnat comment="NAT for Guest network" disabled=yes dst-address=MY_EXT_IP_ADDR dst-port=443 in-interface=bridge-GUEST protocol=tcp to-addresses=192.168.0.120 to-ports=5001
add action=dst-nat chain=dstnat comment="Synology NAT loopback 443 VPN" dst-address=192.168.0.1 dst-port=443 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24 to-addresses=192.168.0.120 to-ports=5001
add action=dst-nat chain=dstnat comment="Synology NAT loopback 443 from VLAN99" dst-address=192.168.0.1 dst-port=443 in-interface=vlan99 protocol=tcp src-address=172.16.15.3-172.16.15.6 to-addresses=192.168.0.120 to-ports=5001
add action=dst-nat chain=dstnat comment="Synology NAT loopback 80" dst-address=192.168.0.1 dst-port=80 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24 to-addresses=192.168.0.120 to-ports=80
add action=dst-nat chain=dstnat comment="Synology NAT loopback 445 (SMB) VPN" dst-address=192.168.0.1 dst-port=445 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24 to-addresses=192.168.0.120
add action=dst-nat chain=dstnat comment="Synology NAT loopback 5001 DS file" dst-address=192.168.0.1 dst-port=5001 in-interface=!ether1 protocol=tcp src-address=192.168.0.0/24 to-addresses=192.168.0.120
add action=masquerade chain=srcnat comment="Synology NAT loopback source address change to ext IP (dst port was 5001)" dst-address=192.168.0.120 protocol=tcp src-address=192.168.0.0/24

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

/ip firewall mangle
add action=change-mss chain=forward comment="IKE2: Clamp TCP MSS from 172.30.88.0/27 to ANY" ipsec-policy=in,ipsec new-mss=1360 passthrough=yes protocol=tcp src-address=172.30.88.0/27 tcp-flags=syn tcp-mss=!0-1360
add action=change-mss chain=forward comment="IKE2: Clamp TCP MSS from ANY to 172.30.88.0/27" dst-address=172.30.88.0/27 ipsec-policy=out,ipsec new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1360
add action=add-dst-to-address-list address-list=site_block_provider address-list-timeout=none-dynamic chain=prerouting comment="*.dell.com add to site_block_provider" dst-port=443 protocol=tcp tls-host=*.dell.com
add action=mark-connection chain=prerouting dst-address-list=site_block_provider new-connection-mark=site_block_connection src-address=192.168.0.0/24
add action=mark-connection chain=prerouting dst-address-list=site_block_provider new-connection-mark=site_block_connection passthrough=yes src-address=172.30.88.0/27
add action=mark-connection chain=prerouting new-connection-mark=site_block_connection passthrough=yes src-address=192.168.0.43
add action=change-ttl chain=prerouting disabled=yes dst-address-list=site_block_provider new-ttl=increment:2 src-address=10.0.88.2-10.0.88.30
add action=change-mss chain=forward connection-mark=site_block_connection new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1375


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

Более чем читаемо. Правда есть вопросы.
1. Зачем вам фасттерек? Он много чего ломает. Отключите и попробуйте как будет работать
2. Почему нетмап? Если для переадресации, то меняйте на dst-nat
3. Зачем столько много mss? Судя по конфигу он у вас на любой форвард идёт. Замените одним общим правилом
4. Марк конекшн. В одном правиле есть пасзроу, в другом нет? Нахожу это странным

Крайне внезапный у вас конфиг)) думаю проблема как раз в 1 и 4 пунктах. Но кто знает...)))


e_sysolyatin
Сообщения: 3
Зарегистрирован: 05 сен 2022, 22:22

1. Это счетчик. Я вообще потер в конфиге правила, которые disabled, но это пропустил случайно. Правило отключено, фасттрек не используется.
2. Поменял. К вопросу это отношения не имеет. Соответственно, без эффекта.
3. Не на любой. Первые 2 MSS относятся к трафику, который идет в/из VPN сети до роутера. Третий MSS работает на трафик, отмаркированный site_block_connection, т.е. относящийся к Протону. Одним правилом не заменить. Попробовал передвинуть 3ий MSS выше маркировки - не помогло.
4. Passtrough планировался везде, видимо пропустил для 192.168.0.0/24. Поставил, не помогло.


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

e_sysolyatin писал(а): 10 сен 2022, 21:43 1. Это счетчик. Я вообще потер в конфиге правила, которые disabled, но это пропустил случайно. Правило отключено, фасттрек не используется.
2. Поменял. К вопросу это отношения не имеет. Соответственно, без эффекта.
3. Не на любой. Первые 2 MSS относятся к трафику, который идет в/из VPN сети до роутера. Третий MSS работает на трафик, отмаркированный site_block_connection, т.е. относящийся к Протону. Одним правилом не заменить. Попробовал передвинуть 3ий MSS выше маркировки - не помогло.
4. Passtrough планировался везде, видимо пропустил для 192.168.0.0/24. Поставил, не помогло.
А вот так да. Стало намного яснее. Тогда попробуйте следующее:
В самом микроте есть трейсроут. Попробуйте его запустить до какого-нибудь сайта напрямую. А после, этот же сайт отмаркировать и посмотреть на трассировку через впн. Если пакеты пропадут уже после впн, то дело в протоне, если до впн, то дело не в нём.
Ну и на всякий случай, вопрос про мой любимый днс. А что у Вас с ним? Какой используете?


Ответить