nikomx Posted February 15, 2023 Share Posted February 15, 2023 Добрый день! 1. На моем keenetic viva 1910 есть рабочий VPN туннель WireGuard до сервера в Германии, прописаны некоторые маршруты что бы определённый трафик шел через этот туннель. Мой кинетик выступает клиентом в данном случае. 2. Теперь мне нужно поднять WG сервер на этом же кинетике, подключить к нему несколько смартфонов, и заставить весь их трафик идти через туннель WG из первого пункта, без доступа к домашней сети. Сервер я создал, сделал тестовый пир, соединение успешно, обмены килобайтами пошли, но после подключения на смартфоне есть доступ только к домашней сети, а в интернет доступа нет. А хотелось в точности наоборот) немного сведений о настройках: в интерфейсе сервера WG - DNSы я указал (8.8.8.8, 1.1.1.1) в настройках пира на сервере WG в разрешённых подсетях я указал 0.0.0.0/0 в интерфейсе клиента WG на смартфоне DNSы я указал (8.8.8.8, 1.1.1.1) в настройках пира клиента WG на смартфоне в разрешённых подсетях я указал 0.0.0.0/0 в Web Cli кинетика следующие команды я выполнил: interface Wireguard0 security-level private ip nat Wireguard0 system configuration save выполнились корректно и без ошибок. Для пущей надежности в межсетевом экране кинетика, для интерфейса WG сервера я разрешил все TCP любых портов и назначений. Что я делаю не так? Или такая схема невозможна? PS перед этим экспериментом я сначала настроил IKEv2 vpn сервер, подключился с мобилки, и получил примерно то, что хотел: интернет есть, маршрутизация работает, все ок. Но мне хочется настроить именно WG сервер, потому что он умеет удобно настраиваться на мобилках по QR коду, а не вручную. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted February 16, 2023 Share Posted February 16, 2023 11 час назад, nikomx сказал: 1. На моем keenetic viva 1910 есть рабочий VPN туннель WireGuard до сервера в Германии, прописаны некоторые маршруты что бы определённый трафик шел через этот туннель. Мой кинетик выступает клиентом в данном случае. 2. Теперь мне нужно поднять WG сервер на этом же кинетике, подключить к нему несколько смартфонов, и заставить весь их трафик идти через туннель WG из первого пункта, без доступа к домашней сети. в Web Cli кинетика следующие команды я выполнил: interface Wireguard0 security-level private ip nat Wireguard0 system configuration save Что я делаю не так? Или такая схема невозможна? Где в нескольких местах уже описывал вариант как удаленного клиента завернуть в VPN канал для выхода в интернет. Опишу еще раз может что-то вам подойдет, вариант на базе профилей так как не хорошо когда все в основном профиле, легко запутаться. 1. На роутере есть поднят WARP (у вас WireGuard до сервера в Германии), можно в место WARP заменить на WireGuard до сервера в Нидерландах роли не играет. 2. Создан профиль WARP и в нем только один канал WG активен (ремарка для данного профиля маркировка пакетов будет только тогда и тогда когда появиться живой клиент в данном профиле, т.е. не помещен в него через WEB а когда сработает arp на нем и он будет добавлен в таблицу arp, но нам маркировка не нужна а нужна таблица для данного профиля а она будет создана table) 3. Так как белый адрес на роутер то поднят сервер WG (хотя так же описывал когда и серый и поднят SSTP сервер и подключается клиент) роли не играет. 4. На клиенте смартофоне поднят WG или для SSTP Max (привязка user к IP) 5. После того как все будет настроено, клиент может спокойно подключиться то на что стоит обратить внимание : - по умолчанию для данного клиента будет маршрутизация через основной прояфиль (т.е. default маршрут для данного профиля согласно приоритетам и галкам на нужных интерфейсах на странице WEB) - для созданного профиля будет созданна своя таблица маршрутизации и в которой будет свой deafult на нужный интерфейс, в данном случае это п.2 6. Теперь осталось завернуть данного клиента смартфон п.4 в данную таблицу маршрутизации. - по умолчанию в ПО роутера первый профиль получает номер table 42, следующий 43, следующий 44 и т.д. - в данном случае WARP профиль имеет table 42 - поместить смартфон в нужную table 42 Клиент удаленно подключился по WG к роутеру 10.16.130.6 dev nwg3 scope link Для него пока существует профиль по умолчанию основной ~ # ip ro default dev ppp0 scope link ...10.16.130.0/24 dev nwg3 proto kernel scope link src 10.16.130.101 10.16.130.6 dev nwg3 scope link ... т.е. выход для него через провайдера ppp0, легко проверяеться speedtest - адрес будет стоять от интерфеса ppp0 Сменим ему выход на наш профиль WARP в котором ~ # ip ro show table 42 default dev nwg0 scope link ... выполнив команду ip rule add from 10.16.130.6 table 42 выход для него теперь через профиль WARP, легко проверяеться speedtest - адрес будет стоять от интерфеса ppp0 При отключение данного клиента и заново подключение все так же работает. В настоящее время одну единственную команду приходиться вводить через Entware - "ip rule add" Скрытый текст Сервер WG на роутере и два клиента на нем access-list _WEBADMIN_Wireguard3 permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 permit description WG auto-delete interface Wireguard3 description WG security-level private ip address 10.16.130.101 255.255.255.0 - сервер WG ip mtu 1324 ip access-group _WEBADMIN_Wireguard3 in ip global 6553 ip tcp adjust-mss pmtu wireguard listen-port хххх wireguard peer Z8c......DMdnbTY= !AAA endpoint 10.16.130.6:хххх keepalive-interval 30 allow-ips 10.16.130.6 255.255.255.255 - клиент allow-ips 192.168.130.0 255.255.255.0 - сеть роутера allow-ips 0.0.0.0 0.0.0.0 - все ! wireguard peer y09.....gQjHJMCA= !TTT endpoint 10.16.130.18:xxxx keepalive-interval 30 allow-ips 10.16.130.0 255.255.255.0 allow-ips 192.168.130.0 255.255.255.0 allow-ips 0.0.0.0 0.0.0.0 ! up isolate-private Сам WARP interface Wireguard0 description Cloud-warp security-level public ... access-list _WEBADMIN_Wireguard0 permit udp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 permit description Warp-UDP permit tcp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 permit description Warp-TCP Quote Link to comment Share on other sites More sharing options...
Denis P Posted February 16, 2023 Share Posted February 16, 2023 14 часа назад, nikomx сказал: Добрый день! 1. На моем keenetic viva 1910 есть рабочий VPN туннель WireGuard до сервера в Германии, прописаны некоторые маршруты что бы определённый трафик шел через этот туннель. Мой кинетик выступает клиентом в данном случае. 2. Теперь мне нужно поднять WG сервер на этом же кинетике, подключить к нему несколько смартфонов, и заставить весь их трафик идти через туннель WG из первого пункта, без доступа к домашней сети. Сервер я создал, сделал тестовый пир, соединение успешно, обмены килобайтами пошли, но после подключения на смартфоне есть доступ только к домашней сети, а в интернет доступа нет. А хотелось в точности наоборот) немного сведений о настройках: в интерфейсе сервера WG - DNSы я указал (8.8.8.8, 1.1.1.1) в настройках пира на сервере WG в разрешённых подсетях я указал 0.0.0.0/0 в интерфейсе клиента WG на смартфоне DNSы я указал (8.8.8.8, 1.1.1.1) в настройках пира клиента WG на смартфоне в разрешённых подсетях я указал 0.0.0.0/0 в Web Cli кинетика следующие команды я выполнил: interface Wireguard0 security-level private ip nat Wireguard0 system configuration save выполнились корректно и без ошибок. Для пущей надежности в межсетевом экране кинетика, для интерфейса WG сервера я разрешил все TCP любых портов и назначений. Что я делаю не так? Или такая схема невозможна? PS перед этим экспериментом я сначала настроил IKEv2 vpn сервер, подключился с мобилки, и получил примерно то, что хотел: интернет есть, маршрутизация работает, все ок. Но мне хочется настроить именно WG сервер, потому что он умеет удобно настраиваться на мобилках по QR коду, а не вручную. Скорее всего не на том интерфейсе ip nat прописан. Quote Link to comment Share on other sites More sharing options...
nikomx Posted February 16, 2023 Author Share Posted February 16, 2023 2 минуты назад, Denis P сказал: Скорее всего не на том интерфейсе ip nat прописан. На том, перед тем как прописать, я это проверил через команду show interface. Но спасибо за версию) Quote Link to comment Share on other sites More sharing options...
nikomx Posted February 16, 2023 Author Share Posted February 16, 2023 2 часа назад, vasek00 сказал: Где в нескольких местах уже описывал вариант как удаленного клиента завернуть в VPN канал для выхода в интернет. Опишу еще раз может что-то вам подойдет, вариант на базе профилей так как не хорошо когда все в основном профиле, легко запутаться. 1. На роутере есть поднят WARP (у вас WireGuard до сервера в Германии), можно в место WARP заменить на WireGuard до сервера в Нидерландах роли не играет. 2. Создан профиль WARP и в нем только один канал WG активен (ремарка для данного профиля маркировка пакетов будет только тогда и тогда когда появиться живой клиент в данном профиле, т.е. не помещен в него через WEB а когда сработает arp на нем и он будет добавлен в таблицу arp, но нам маркировка не нужна а нужна таблица для данного профиля а она будет создана table) 3. Так как белый адрес на роутер то поднят сервер WG (хотя так же описывал когда и серый и поднят SSTP сервер и подключается клиент) роли не играет. 4. На клиенте смартофоне поднят WG или для SSTP Max (привязка user к IP) 5. После того как все будет настроено, клиент может спокойно подключиться то на что стоит обратить внимание : - по умолчанию для данного клиента будет маршрутизация через основной прояфиль (т.е. default маршрут для данного профиля согласно приоритетам и галкам на нужных интерфейсах на странице WEB) - для созданного профиля будет созданна своя таблица маршрутизации и в которой будет свой deafult на нужный интерфейс, в данном случае это п.2 6. Теперь осталось завернуть данного клиента смартфон п.4 в данную таблицу маршрутизации. - по умолчанию в ПО роутера первый профиль получает номер table 42, следующий 43, следующий 44 и т.д. - в данном случае WARP профиль имеет table 42 - поместить смартфон в нужную table 42 Клиент удаленно подключился по WG к роутеру 10.16.130.6 dev nwg3 scope link Для него пока существует профиль по умолчанию основной ~ # ip ro default dev ppp0 scope link ...10.16.130.0/24 dev nwg3 proto kernel scope link src 10.16.130.101 10.16.130.6 dev nwg3 scope link ... т.е. выход для него через провайдера ppp0, легко проверяеться speedtest - адрес будет стоять от интерфеса ppp0 Сменим ему выход на наш профиль WARP в котором ~ # ip ro show table 42 default dev nwg0 scope link ... выполнив команду ip rule add from 10.16.130.6 table 42 выход для него теперь через профиль WARP, легко проверяеться speedtest - адрес будет стоять от интерфеса ppp0 При отключение данного клиента и заново подключение все так же работает. В настоящее время одну единственную команду приходиться вводить через Entware - "ip rule add" Показать содержимое Сервер WG на роутере и два клиента на нем access-list _WEBADMIN_Wireguard3 permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 permit description WG auto-delete interface Wireguard3 description WG security-level private ip address 10.16.130.101 255.255.255.0 - сервер WG ip mtu 1324 ip access-group _WEBADMIN_Wireguard3 in ip global 6553 ip tcp adjust-mss pmtu wireguard listen-port хххх wireguard peer Z8c......DMdnbTY= !AAA endpoint 10.16.130.6:хххх keepalive-interval 30 allow-ips 10.16.130.6 255.255.255.255 - клиент allow-ips 192.168.130.0 255.255.255.0 - сеть роутера allow-ips 0.0.0.0 0.0.0.0 - все ! wireguard peer y09.....gQjHJMCA= !TTT endpoint 10.16.130.18:xxxx keepalive-interval 30 allow-ips 10.16.130.0 255.255.255.0 allow-ips 192.168.130.0 255.255.255.0 allow-ips 0.0.0.0 0.0.0.0 ! up isolate-private Сам WARP interface Wireguard0 description Cloud-warp security-level public ... access-list _WEBADMIN_Wireguard0 permit udp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 permit description Warp-UDP permit tcp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 permit description Warp-TCP Я, к сожалению, почти ничего не понял из вышесказанного. Тяжелый слог для меня. Quote Link to comment Share on other sites More sharing options...
nikomx Posted February 16, 2023 Author Share Posted February 16, 2023 24 минуты назад, nikomx сказал: На том, перед тем как прописать, я это проверил через команду show interface. Но спасибо за версию) может это как-то поможет? "Wireguard0": { "id": "Wireguard0", "index": 0, "interface-name": "Wireguard0", "type": "Wireguard", "description": "WG-S", "traits": [ "Ip", "Wireguard" ], "link": "down", "connected": "no", "state": "up", "mtu": 1280, "tx-queue-length": 50, "address": "172.16.82.1", "mask": "255.255.255.255", "uptime": 246, "global": false, "security-level": "private", "wireguard": { "public-key": "4iYxjfTD.............Kbd0o=", "listen-port": *****, "status": "up", "peer": [ { "public-key": "Cge4g9L.............iuk3AgI=", "local": "10.195.30.225", "local-port": *****, "via": "Wireguard2", "remote": "172.16.82.7", "remote-port": 0, "rxbytes": 39704, "txbytes": 2556, "last-handshake": 210, "online": false } ] } }, "Wireguard2": { "id": "Wireguard2", "index": 2, "interface-name": "Wireguard2", "type": "Wireguard", "description": "WARP", "traits": [ "Ip", "Wireguard" ], "link": "up", "connected": "yes", "state": "up", "mtu": 1324, "tx-queue-length": 50, "address": "10.195.30.225", "mask": "255.192.0.0", "uptime": 2135, "global": true, "defaultgw": false, "priority": 32766, "security-level": "public", "wireguard": { "public-key": "n+wrnC............IwYRiA=", "listen-port": 4****, "status": "up", "peer": [ { "public-key": "dG0Ss......../gNk8=", "local": "8*.***.***.**2", "local-port": 4****, "via": "PPPoE0", "remote": "1**.***.***.**0", "remote-port": 6****, "rxbytes": 17159964, "txbytes": 604356, "last-handshake": 120, "online": true } ] } } }, "prompt": "(config)" } Quote Link to comment Share on other sites More sharing options...
vasek00 Posted February 16, 2023 Share Posted February 16, 2023 (edited) 1 час назад, nikomx сказал: Я, к сожалению, почти ничего не понял из вышесказанного. Тяжелый слог для меня. Хорошо можно проще. 1. Wireguard клиент уже настроен и работает. 2. Wireguard сервер для удаленных клиентов поднят (нужен белый IP если нет то например SSTP) настроен и работает. 3. Создать профиль и поместить в него канал п.1 4. Прописать одну команду для клиента из п.2 ip rule add from IP table ПРОФИЛЯ Edited February 16, 2023 by vasek00 Quote Link to comment Share on other sites More sharing options...
nikomx Posted February 16, 2023 Author Share Posted February 16, 2023 8 минут назад, vasek00 сказал: Хорошо можно проще. 1. Wireguard клиент уже настроен и работает. 2. Wireguard сервер для удаленных клиентов поднят (нужен белый IP если нет то например SSTP) 3. Создать профиль и поместить в него канал п.1 4. Прописать одну команду для клиента из п.2 1. Да, клиента настроен и работает давно, к нему вопросов нет. Настройки интерфейса есть выше. Он называется WARP 2. Настроен, но судя по всему как-то не правильно. Я подключаюсь со смартфона, но почему-то пинги до ip сервера WG со смартфона то идут, то не идут. И в любом случае кроме пингов никуда доступа нет, ни к домашней сети ни в интернет. Провайдера у меня два, оба с белыми ip. 3. Канал из п1 я положил в профиль под названием немеция, если мы говорим про профили в приоритетах подключения. В этот профиль добавил гостевую сеть (в ней все равно никого пока нет) 4. О какой еще команде идет речь? Её можно прописать из WEB Cli интерфейса? Можете пожалуйста поподробнее этот пункт объяснить, буду очень благодарен ) Quote Link to comment Share on other sites More sharing options...
Mamay Posted February 16, 2023 Share Posted February 16, 2023 21 минуту назад, nikomx сказал: 4. О какой еще команде идет речь? Её можно прописать из WEB Cli интерфейса? Можете пожалуйста поподробнее этот пункт объяснить, буду очень благодарен ) Пуск-выполнить-cmd-telnet 192.168.1.1-admin/pass ip rule add from IP table name profile Quote Link to comment Share on other sites More sharing options...
vasek00 Posted February 16, 2023 Share Posted February 16, 2023 (edited) 1 час назад, nikomx сказал: 2. Настроен, но судя по всему как-то не правильно. Я подключаюсь со смартфона, но почему-то пинги до ip сервера WG со смартфона то идут, то не идут. И в любом случае кроме пингов никуда доступа нет, ни к домашней сети ни в интернет. Провайдера у меня два, оба с белыми ip. В настройках есть поле разрешенные подсети. По конфигу они например выглядят так allow-ips 10.16.130.6 255.255.255.255 - клиент allow-ips 192.168.130.0 255.255.255.0 - сеть роутера allow-ips 0.0.0.0 0.0.0.0 - все Возьмите в базе знаний любую статью про Wireguard настройку и про значение данных полей - allow-ips 1 час назад, nikomx сказал: 4. О какой еще команде идет речь? Её можно прописать из WEB Cli интерфейса? Об одной единственной команде которую нужна для всего этого ее в WEB cli не прописать. Об этом было сказано в моем самом первом посту В настоящее время одну единственную команду приходиться вводить через Entware - "ip rule add" Выход из этого самый простой у вас KN1910 на нем легко ставится Entware во внутреннюю память пример с KN1910 ниже Скрытый текст KeeneticOS version 4.00.A.4.0-0, copyright (c) 2010-2023 Keenetic Ltd. Login: admin Password: ******** THIS SOFTWARE IS A SUBJECT OF KEENETIC LIMITED END-USER LICENCE AGREEMENT. BY USING IT YOU AGREE ON TERMS AND CONDITIONS HEREOF. FOR MORE INFORMATION PLEASE CHECK https://keenetic.com/legal (config)> exec sh BusyBox v1.33.1 (2021-08-22 06:41:01 UTC) built-in shell (ash) / # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 19712 19712 0 100% / tmpfs 62320 0 62320 0% /dev tmpfs 62320 240 62080 0% /tmp /dev/ubi0_0 56540 33644 19972 63% /storage /dev/ubi0_0 56540 33644 19972 63% /opt / # Как видно выше Entware (/opt) занимает всего то 33644 или 33МB (с учетом того что мне необходимо). После установки Entware тут на форуме описано как его установить, добавить/выполнить потом opkg install ip-bridge ip-full После чего нужную выполнить ОДНУ ЕДИНСТВЕННУЮ ip rule add from IP_Клиента table profile_номер_table где IP_Клиента - это берется из настроек Wireguard сервера для данного клиента, а profile_номер_teble это номер таблицы для вашего профиля (как его найти написано было ранее, без всяких команд) Цитата - по умолчанию в ПО роутера первый профиль получает номер table 42, следующий 43, следующий 44 и т.д. Edited February 16, 2023 by vasek00 Quote Link to comment Share on other sites More sharing options...
nikomx Posted February 16, 2023 Author Share Posted February 16, 2023 2 часа назад, vasek00 сказал: Об одной единственной команде которую нужна для всего этого ее в WEB cli не прописать. Об этом было сказано в моем самом первом посту В настоящее время одну единственную команду приходиться вводить через Entware - "ip rule add" Выход из этого самый простой у вас KN1910 на нем легко ставится Entware во внутреннюю память пример с KN1910 ниже Спасибо Вам большое за терпение и отзывчивость. Простите мое скудоумие в данном вопросе. У меня все получилось, работает! Осталось немного дошлифовать все до идеала. Проверив, я выяснил, что у меня всего 2 таблицы, 42 и 43 на роутере. 43 как раз с нужным шлюзом, и я прописал маршрут в 43 таблицу, но так же в неё попали почему-то маршруты созданные ранее через web интерфейс, в том числе и openVPN маршруты до моей работы, не хотелось бы что бы они работали для клиентов WG сервера. Поэтому, подскажите еще, пожалуйста, какой командой можно создать пустую таблицу маршрутизации и прописать основной шлюз в ней nwg2? (что бы затем в неё добавить маршрут для клиентов WG сервера) Ну и следовательно как удалить прописанный ранее маршрут в 43 таблицу? Quote Link to comment Share on other sites More sharing options...
vasek00 Posted February 16, 2023 Share Posted February 16, 2023 2 часа назад, nikomx сказал: Спасибо Вам большое за терпение и отзывчивость. Простите мое скудоумие в данном вопросе. У меня все получилось, работает! Осталось немного дошлифовать все до идеала. Проверив, я выяснил, что у меня всего 2 таблицы, 42 и 43 на роутере. 43 как раз с нужным шлюзом, и я прописал маршрут в 43 таблицу, но так же в неё попали почему-то маршруты созданные ранее через web интерфейс, в том числе и openVPN маршруты до моей работы, не хотелось бы что бы они работали для клиентов WG сервера. Поэтому, подскажите еще, пожалуйста, какой командой можно создать пустую таблицу маршрутизации и прописать основной шлюз в ней nwg2? (что бы затем в неё добавить маршрут для клиентов WG сервера) Ну и следовательно как удалить прописанный ранее маршрут в 43 таблицу? Удалить ранее прописанный в table просто поставить del в место aďd. Я не в курсе что и как и где вы создавали. По пробуйте дошлифовать так как вам надо, может пересмотрев все настройки заново. В описанном методе она таблица создается и контролируется ПО роутера, если хотите создавать сами и контролировать ее то тут на форуме куча примеров достаточно в поиске поискать по "ip rule add" Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.