LINUX.ORG.RU

12
Всего сообщений: 31

Почему IPv6 адрес записан в таком формате?

Linode выдаёт IPv6 адреса на каждую VPS в таком формате 2a01:7e01::f03c:aaaa:bbbb:cccc/64.
Проблема в том, что при попытке указать в конфиге Wireguard этот IPv6 адрес в AllowedIPs адрес обрезается до 2a01:7e01::/64.
Что приводит к тому, что между VPS-ками нельзя организовать туннели, если VPS-ок больше 2-х.
Т.к. одинаковых IPv6 адресов в AllowedIPs быть не должно, а они все обрезаются до 2a01:7e01::/64.
Вопрос - почему IPv6 адрес у Linode выдаётся именно в таком формате и чья это проблема, что IPv6 обрезается в Wireguard?
Т.е. кто должен это исправлять, разработчики Wireguard или Linode?

P.S. Вопрос исчерпан, всем спасибо за советы.

 , ,

Sorcus ()

Настроил роутинг в разные VPN целыми субдоменами, да по-разному для разных SSID, восторг.

Захотел тревел-роутер с поддержкой Wireguard, да придумал такой приподвыверт: чтобы был двухдиапазонник и можно было на любом девайсе, хоть на Kindle, быстро пустить трафик через VPN или напрямую просто переключившись на другую сеть. Решил поддержать GL.iNet за идею продавать роутеры с OpenWRT из коробки и купил Slate. Да и железка реально понравилась, очень маленькая. Весит, правда, будто большая.

Цель 0, обещанная: получить роутер, который может в Wireguard по переключателю

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

Цель 1, оригинальная: разный роутинг для разных SSID

Задача вроде несложная: разделяем Wi-Fi сети на два несвязанных интерфейса, заводим две подсети и две таблицы роутинга. В фирменном интерфейсе ничего про две таблицы роутинга и близко нет, но по кнопочке Advanced в фирменном интерфейсе просто открывается luci… в которой тоже ничегошеньки нет про две таблицы роутинга. Зато интерфейсы и подсети разделяются чуть ли не drag-and-drop’ом. Вспоминаю, как, кажется, @intelfx жаловался, что в OpenWRT без ныряния в конфиги ничего серьезного не сделать, но сначала иду в гугл.

Из гугла тут же возвращаюсь окрыленный, ставить какой-то mwan3. Я, не разобравшись поначалу, ожидал просто возможность сделать несколько таблиц, а узрел целый, блин, менеджер аплинков с балансировкой, мониторингом, фейловером и вообще. Сочиняю в нем желаемые и (явно для его гибкости слишком примитивные) правила маршрутизации «разные source подсети - разные gateways» и получаю то, зачем вообще все это затеял: одна из Wi-Fi сетей роутится через VPN, а вторая — напрямую.

Цель 2, расширенная: отдельные правила для отдельных IP

До меня доходит, что можно заворачивать в VPN трафик для отдельных хостов по destination IP. Получается, что для них трафик можно принудительно гонять через VPN, или наоборот, принудительно напрямую, и части ручных переключений можно будет избежать. И правила эти можно писать раздельно для двух SSID. Красота, причем все это все еще в пределах luci, ни одного конфига все еще не пострадало.

Цель 3, немыслимая: заворот по имени вместо IP

Оказывается, что в этом mwan3 правила можно применять по ipset: динамическому множеству destination IP. А dnsmasq умеет загонять в эти множества айпишники на основе доменного имени прямо по мере резолвинга. То есть пока на моем устройстве DNS’ом указан мой роутер, можно написать правило «а на все IP, застуканные за обслуживанием somesite.com и всех его поддоменов (!) распространить такое-то правило роутинга». Для написания этих правил, внезапно, тоже есть готовая морда для luci, но в репах ее не нашлось, а README на китайском отпугивает меня достаточно, чтобы я забил и просто написал их в пустой /etc/dnsmasq.conf руками.

Цель 4, че уж там: несколько VPN

Ну и нечего ограничиваться одним VPN и двумя подсетями с разными правилами, если можно N VPN и K<5 подсетей. Прописал еще один VPN для ходьбы наоборот, через Россию, добавил новых ipset’ов и правил роутинга.

Теперь /etc/dnsmasq.conf состоит из записей типа:

ipset=/some_banned_website.com/force_nl
ipset=/some_other_website_banned_in.ru/force_nl
ipset=/one_more_site.ru/prefer_nl
ipset=/accessible_only_from.ru/force_ru
ipset=/whatismyip.com/force_direct

На этом этапе был, правда, подводный камень: когда уже подключен VPN1 и подключается VPN2, автопрописыватель статического маршрута до endpoint от VPN2 какого-то лешего прописывал его через VPN1. В итоге трафик радостно бегал, например, из России в Голландию, обратно в Россию и только потом к адресату. Логику автопрописывателя выяснять было лень и я написал скрипт, который после поднятия VPN-интерфейсов просто удаляет такие идиотские маршруты. Скорее всего я сам дурак себе грабли подложил и можно было гораздо проще.

Итог

После всех этих манипуляций я могу заворачивать трафик в нужный VPN или пускать его напрямую целыми поддоменами + имею возможность переключаться между двумя такими наборами правил с разными дефолтными маршрутами просто выбрав нужную Wi-Fi сеть, на любом устройстве. Может можно и еще круче, но все упирается в мою фантазию, которая уже полпоста как безнадежно отстает от возможностей. По мере набухания моих хотелок я все-таки залез в конфиги и даже скрипт написал, но 1) возможно я просто поленился понять, как это делается правильно, и, вообще-то, 2) это было уже для достижения того, чего я не только не планировал, я вообще не думал, что так можно. Отсюда

резюме: OpenWRT — торт, luci — торт, mwan3 — торт, dnsmasq — торт, wireguard — торт, GL.iNet — красавцы, линукс готов для потребительских роутеров с уровнем потребителя от одноклеточных до меня включительно, я просто в восторге.

 , , , ,

t184256 ()

Полная ж... вторую неделю не могу поднять wireguard сервер на VPS

Пытался настроить wireguard server на VPS ubuntu 18.04 ничего не получалось, пробовал: - ручная настройка по мануалам - по автоматизированным скриптам - algo

Другие протоколы VPN работают (OpenVPN, ikev2)

На VPS другого хостера wireguard тоже запустил (на Google cloud)

Пришел к выводу что какая то проблема наверное именно с UDP

На стороне сервера открыл

tcpdump -n -i eth0 port 51820 
На стороне клиента выполняю: 1.
root@osboxes:/home/osboxes# nc -vu 85.xx.xx.193 51820
Connection to 85.xx.xx.193 51820 port [udp/*] succeeded! (появляеться с задержкой)
Ответа на стороне сервера никакого. хоть и succeeded
2.
root@osboxes:/home/osboxes# nc -v 85.217.171.193 51820
Connection to 85.хх.xx.193 51820 port [tcp/*] succeeded!

ответ есть:
19:51:47.460401 IP 188.xx.xx.179.43596 > v59840.vps.ag.51820: Flags [S], seq 3224433793, win 229, options [mss 1460,sackOK,TS val 2894716352 ecr 3239587351,nop,wscale 7], length 0

Подскажите куда копать теперь то? (перепробовал все инструкции)

 , , ,

Garyy3456 ()

Wireguard, Shadowsocks или может что-нибудь другое для обхода блокировок?

Что выбрать в 2019 году? Что из этого наиболее анонимно и защищено?

Так же хочется спросить, в каком виде приходит трафик моему хостеру (у которого я арендую VPS)? Как понять выражение «шифрованный туннель»? Он шифруется для провайдера, а хостер видит мой http-трафик как говорится в чем мать родила? C https-то понятно, его хостер вряд ли видит.

Есть ли тут вообще успешные люди, развернувшие на своих VPS Wireguard или Shadowsocks? Если с Носочками всё просто, то вот с Wireguard всё довольно мутно по настройкам и толковых гайдов нет.

Про OpenVPN наверное не нужно говорить, эта технология мало того что устаревшая, тяжело настраиваемая, так ещё и многие провайдеры троттлят OpenVPN. Так что на повестке дня Wireguard и Shadowsocks с обфускацией.

Заодно можно делиться информацией про хорошие и недорогие VPS в этом треде.

 , , , ,

Password ()

WireGuard и маршруты

Документация для WireGuard на английском

Гугление показывает как выполнять те или иные скрипты Pre Up/Down и Post Up/Down, но так и не понял как решить пару вопросов:

  1. Как прокидывать (push-ить) маршруты клиентам со стороны сервера?
  2. Как на клиенте запретить добавлять шлюз по умолчанию 0.0.0.0/0

 ,

VecH ()

Wireguard server (не подключаются клиенты)

Установил https://www.wireguard.com с помощью скрипта https://github.com/l-n-s/wireguard-install на Ubuntu18 хостер http://www.vps.ag Все настройки по умолчанию, скрипт сам генерирует конфиги клиентов и выдает qrcode. Андроид якобы устанавливает подключение но сети нет. TunSafe на windows постоянно пишет retrying handshake. А вот openvpn работал когда ставил его. Все порты открыты по словам хостера.

Этот же скрипт я попробовал локально на виртуалке и на GCE (гугловская VPS) заработало на автомате, поэтому путаницы с ключами и адресами исключены - скрипт рабочий.

В общем куда копать не знаю прошу помощи, в Linux совсем новичек.

( читать дальше... )

 , ,

Garyy3456 ()

Настройка MTU для Wireguard.

На клиенте и сервере установлен Wireguard.
И там и там был выставлен MTU в 1412, т.к. все значения выше не пропускают нормально трафик.
Выглядит это так, что сайты вообще не открываются. Никакие.
1. Почему работает только со значением 1412 (по дефолту WG ставит 1420, но оно не работает).
2. Если eth0 с MTU 1500, то wg0 должен быть со значением меньшим, чем eth0?
И на сколько меньшим? 1500 минус дополнительный размер заголовка от Wireguard?

[root@localhost ~]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1412 qdisc noqueue state UNKNOWN group default qlen 1000

3. В схеме ISP провайдер <-> Router with PPPoE <-> OpenWRT with Wireguard <-> Client почему-то некоторые сайты не открываются.
Трафик зависает на этапе инициализации TLS.
Вот пример трафика, пойманного TCPdump-ом в момент открытия сайта.
11:17:38.080131 IP (tos 0x0, ttl 64, id 43434, offset 0, flags [DF], proto TCP (6), length 60)
    10.0.1.177.40572 > 52.71.38.59.443: Flags [S], cksum 0x5899 (correct), seq 2150728512, win 64240, options [mss 1460,sackOK,TS val 999534342 ecr 0,nop,wscale 7], length 0
11:17:38.214844 IP (tos 0x0, ttl 238, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    52.71.38.59.443 > 10.0.1.177.40572: Flags [S.], cksum 0xb1a6 (correct), seq 2270306161, ack 2150728513, win 28960, options [mss 1460,sackOK,TS val 768039974 ecr 999534342,nop,wscale 8], length 0
11:17:38.214884 IP (tos 0x0, ttl 64, id 43435, offset 0, flags [DF], proto TCP (6), length 52)
    10.0.1.177.40572 > 52.71.38.59.443: Flags [.], cksum 0x4f17 (correct), seq 1, ack 1, win 502, options [nop,nop,TS val 999534477 ecr 768039974], length 0
11:17:38.224076 IP (tos 0x0, ttl 64, id 43436, offset 0, flags [DF], proto TCP (6), length 569)
    10.0.1.177.40572 > 52.71.38.59.443: Flags [P.], cksum 0xed75 (correct), seq 1:518, ack 1, win 502, options [nop,nop,TS val 999534486 ecr 768039974], length 517
11:17:38.358734 IP (tos 0x0, ttl 238, id 17205, offset 0, flags [DF], proto TCP (6), length 52)
    52.71.38.59.443 > 10.0.1.177.40572: Flags [.], cksum 0x4e65 (correct), seq 1, ack 518, win 118, options [nop,nop,TS val 768040010 ecr 999534486], length 0
11:17:38.638119 IP (tos 0x0, ttl 238, id 17210, offset 0, flags [DF], proto TCP (6), length 1310)
    52.71.38.59.443 > 10.0.1.177.40572: Flags [P.], cksum 0x5b4a (correct), seq 4345:5603, ack 518, win 118, options [nop,nop,TS val 768040080 ecr 999534486], length 1258
11:17:38.638189 IP (tos 0x0, ttl 64, id 43437, offset 0, flags [DF], proto TCP (6), length 64)
    10.0.1.177.40572 > 52.71.38.59.443: Flags [.], cksum 0xa0cc (correct), seq 518, ack 1, win 502, options [nop,nop,TS val 999534900 ecr 768040010,nop,nop,sack 1 {4345:5603}], length 0
А вот пример того, как это выглядит в Curl
archlinux% curl --verbose --head https://appcrawler.com --raw
*   Trying 2606:4700:30::6812:3e42...
* TCP_NODELAY set
* Connected to appcrawler.com (2606:4700:30::6812:3e42) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to appcrawler.com:443 
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to appcrawler.com:443 
Доступ к некоторым сайтам удаётся «пофиксить» правкой MTU, но некоторые не открываются даже после правки MTU.
Может кто-нибудь сталкивался с подобным? И как это починить?
Если это MTU, то каким должно быть значение на каждом узле? Спасибо.

 , ,

Sorcus ()

Настройка Wireguard + OpenWRT с IPv6 из /56 префикса с VPS.

Есть VPS с префиксом /56 (Linode). Есть роутер с OpenWRT.
На сервере установлен Wireguard.
Так же есть провайдер дом.ру, предоставляющий IPv6 через DHCPv6-PD (если не ошибаюсь).
Сделать хочется следующее:
1. Роутер должен получать IPv6 от провайдера (но не должен раздавать его клиентам).
Т.е. на интерфейсе br-lan должен быть один адрес, через который можно будет выходить в сеть по IPv6. Например

25: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 12:c3:7b:43:4d:05 brd ff:ff:ff:ff:ff:ff
    inet6 2a02:2698:1234:abcd::1/64 scope global dynamic noprefixroute 
       valid_lft 86342sec preferred_lft 3542sec
2.Клиентам роутер должен раздавать IPv4 и IPv6 адреса из пулов, прописанных вручную (для IPv6 это /64 префикс из /56 префикса с сервера).
3.Весь исходящий трафик должен заворачиваться в wg0 интерфейс.
А IPv6 адреса клиентов из /64 префикса с сервера должны быть доступны извне (сейчас такое сделано только в штучных экземплярах на каждом клиенте).
Вопрос пока что такой. Как запретить выдачу IPv6 адресов из /64 префикса провайдера, но чтобы IPv6 доступ был (см. п. 1).
Из предыдущего вопроса вытекает следующий. Как выдавать IPv6 адреса из /64 префикса с сервера, если запретить выдавать адреса из /64 префикса провайдера?
Выхлоп ip a
root@OpenWrt:~# ip a
8: pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp 
    inet 176.213.xx.xx peer 10.77.xx.xx/32 scope global pppoe-wan
       valid_lft forever preferred_lft forever
    inet6 fe80::4013:111f:9xxx:xxxc/10 scope link 
       valid_lft forever preferred_lft forever
12: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 12:c3:7b:xx:xx:x5 brd ff:ff:ff:ff:ff:ff
    inet6 2a02:2698:xxxx:xxx9:10c3:7bff:fexx:xxx5/64 scope global deprecated dynamic noprefixroute 
       valid_lft 76050sec preferred_lft 0sec
    inet6 2a01:7e01:xxxx:xxxd:10c3:7bff:fexx:xxx5/64 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::10c3:7bff:fe43:4d05/64 scope link 
       valid_lft forever preferred_lft forever
13: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
    link/ether 12:c3:7b:43:4d:05 brd ff:ff:ff:ff:ff:ff
Здесь 2a02:2698:xxxx:xxx9 префикс, выданный провайдером.
А 2a01:7e01:xxxx:xxxd /64 префикс из /56 префикса с сервера.
Конфиг /etc/config/network
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdba:6666:f1d9::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0.1'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ip6prefix '2a01:7e01:xxxx:xxxd::/64'
        option ip6ifaceid 'eui64'

config device 'lan_dev'
        option name 'eth0.1'
        option macaddr '12:c3:7b:xx:xx:x5'

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'pppoe'
        option username 'SECURE'
        option password 'SECURE'
        option ipv6 'auto'
        option keepalive '0'

config device 'wan_dev'
        option name 'eth0.2'
        option macaddr '10:c3:7b:xx:xx:x4'

config interface 'wan6'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'
        option ifname 'eth0.2'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 8t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '4 8t'

 , ,

Sorcus ()

Доступ в lan сеть за клиентом wireguard

Есть машина1 на Ubuntu с wireguard сервером. Интерфейс - wg0, IP 10.200.200.1.

root@igorek:~# ifconfig wg0
wg0       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.200.200.1  P-t-P:10.200.200.1  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP  MTU:1420  Metric:1
          RX packets:5676 errors:0 dropped:15 overruns:0 frame:0
          TX packets:7742 errors:66113 dropped:16 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:821692 (821.6 KB)  TX bytes:7182744 (7.1 MB)
Есть машина2 на OpenWRT с wireguard клиентом. Интерфейс - wg0, IP 10.200.200.2. Также на ней поднять br-lan интерфейс (192.168.1.1), т.е. машина2 является шлюзом для 192.168.1.0/24.
root@OpenWrt:~# ifconfig wg0
wg0       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.200.200.2  P-t-P:10.200.200.2  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP  MTU:1420  Metric:1
          RX packets:6208 errors:0 dropped:1484 overruns:0 frame:0
          TX packets:5691 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5445724 (5.1 MiB)  TX bytes:823612 (804.3 KiB)

root@OpenWrt:~# ifconfig br-lan
br-lan    Link encap:Ethernet  HWaddr 53:42:A1:CF:71:AB  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:773366 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1414930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:65338617 (62.3 MiB)  TX bytes:1326507221 (1.2 GiB)
Нужно, чтобы пинги как с 10.200.200.1 в IP 192.168.1.0/24 так и обратно ходили. OpenWRT настроил и пинги с любого IP 192.168.1.0/24 доходят до 10.200.200.1. На машина1 (Ubuntu) прописал
route add -net 10.200.200.0 netmask 255.255.255.0 gw 10.200.200.1 wg0
и пинги до 10.200.200.2 пошли. Затем прописал:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.200.200.2 wg0
но при попытке пингования 192.168.1.1 получаю:

From 10.200.200.1 icmp_seq=1 Destination Host Unreachable

ЧЯДНТ?

 , , ,

igorek3 ()

Wireguard client OpenWRT

Настроил на сервере с IP XXX.XXX.XXX.XXX wireguard. На роутере с OpenWRT поставил

kmod-wireguard luci-proto-wireguard wireguard wireguard-tools
но так и не понял, как поднять клиент на роутере. Можете подсказать? Файл настройки с сервера
# cat /etc/wireguard/wg0.conf 
[Interface]
Address = YYY.YYY.YYY.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = AAAAAAAAAAAAAAAAAAAAAAAAAAA
[Peer]
PublicKey = BBBBBBBBBBBBBBBBBBBBBBBBBB
Endpoint = XXX.XXX.XXX.XXX:51820
AllowedIPs = YYY.YYY.YYY.1/24

 , ,

fynjirf ()

wireguard работал-работал и перестал.

я ничего не трогал, кабелем клянусь. Вообще спал в это время.

есть локальный комп, есть удалённый сервер. Сервер пингуется с локального компа. wg show wg0 всё правильно показывает на обоих компьютерах.

Но пакеты внутри vpn не доходят.

 

Einstok_Fair ()

VPN через этот же VPN - сильно плохо?

Но ноутбуке настроено подключение через VPN (поднят OpenVPN на свой VPS). И все работает и пользуюсь - все хорошо. Однако в домашней сети ноут выходи через шлюз (он же домашний сервер, он же головной станционарный ПК) на котором настроено подключение через этот же VPN. Я же правильно понимаю что здесь получает двойное подключение к VPN и по сути VPN через VPN? Это сильно плохо?

И в догонку - что там с WireGuard - есть смысл переходить? Оно стабильно уже работает?

 , ,

Suntechnic ()

Через wireguard в локалку. Мост горбатый.

Есть интерфейс wg0 10.0.0.1, клиенты оффтопика и ведроида пингуют. И есть замечательный kvmbr0 192.168.3.2 с одной enp3s0 на котором сидят lxc контейнеры и kvm. Хочется чтоб клиенты wireguard видели локалку (а потом может и интернет), не соображу что делать, то ли с мостами возиться, то ли маршрутизацию ломать. В конфигах клиентов понятно есть 192.168.3.0/24 => 10.0.0.1, только 0.1 конечно тупик. Конфиги не показываю, направление задайте, дальше как-нибудь сам.

PS wg0, kvmbr0 и enp3s0 конечно же на сервере

 , ,

TepakoT ()

Wireguard на клиенте

Приветствую!

Пожалуйста, помогите решить проблему с подключением клиента wireguard. Я весь инет уже перерыл ничего не могу найти, все должно работать но нет)
До этого работала связка сервер VPS в кукуево и два клиента (Ubuntu, Android) все завелось и работало, пока я не поставил Arch вместо Ubuntu.
На Android все также работает без проблем в т.ч. под одним роутером, а на Arch никак клиента нормально завести не могу. На серваке handshake с Arch всегда, даже когда ничего с Arch не пингуется.

Если оставляю настройки как были, нечего не пингует, ip route на роутере (10.0.1.1). Если ставлю allowed ips: 10.19.49.0/24 или 32 все вроде заводится, только VPN сам по себе, а остальные запросы как и раньше летят через роутер 10.0.1.1. Я нуб в линуксе, если что не пинайте)

# ip route
default via 10.0.1.1 dev wlp2s0 proto dhcp src 10.0.1.12 metric 302
10.0.1.0/24 dev wlp2s0 proto dhcp scope link src 10.0.1.12 metric 302

$ cat /proc/sys/net/ipv4/ip_forward
1

$ cat /sys/module/wireguard/version
0.0.20180918

$ sudo iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 5 packets, 1371 bytes) pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 2060 packets, 94425 bytes) pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 2060 packets, 94425 bytes) pkts bytes target prot opt in out source destination

$ wg # server
interface: wg0
public key: dCW0QSznsq
private key: (hidden)
listening port: 51820

peer: wq7UlqrMpXb # Android
endpoint: x.x.x.x:44121
allowed ips: 10.19.49.102/32
latest handshake: 48 seconds ago
transfer: 192.85 KiB received, 2.11 MiB sent

peer: 80UxcIvy # Arch
endpoint: x.x.x.x:33221
allowed ips: 10.19.49.101/32
latest handshake: 2 minutes, 37 seconds ago
transfer: 4.45 KiB received, 2.92 KiB sent

$ sudo wg # Arch
interface: wg0
public key: 80UxcIvy
private key: (hidden)
listening port: 34308
fwmark: 0xca6c

peer: dCW0QSznsq
endpoint: x.x.x.x:51820
allowed ips: 0.0.0.0/0, ::/0
latest handshake: 16 seconds ago
transfer: 92 B received, 11.87 KiB sent
persistent keepalive: every 10 seconds
# плюс в конфиге DNS 172.16.0.1

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DORMANT group default qlen 1000 link/ether
10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/none

 ,

Nief ()

Wireguard: почему сервер пингуется, а клиент нет?

Здравствуйте,
имеется вот такой конфиг wireguard:
Сервер:
Address = 10.200.200.1/24
SaveConfig = false
ListenPort = 51820
PrivateKey =
PostUp = ifconfig wg0 mtu 1360

[Peer]
PublicKey =
AllowedIPs = 10.200.200.2/32

Клиент:
[Interface]
Address = 10.200.200.2/24
PrivateKey =

[Peer]
PublicKey =
Endpoint = айпишник:51820

AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

Проблема заключается в том, что с клиента (10.200.200.2) я могу пингануть сервер (10.200.200.1), а также работает интернет, если установить в качестве маршрута по умолчанию, но вот с сервера не получается пингануть клиент (фаерволл не блочит), соответственно, сервисы на клиенте недоступны. Такая же ситуация наблюдается и с попыткой клиентов пингануть друг друга: они «не видят» друг друга. Включать маскарадинг и настраивать фаерволл на сервере бессмысленно, потому как сам сервер не может «достучаться» до клиента, следовательно, переадресовать трафик он не сможет, тут явный косяк с настройкой wireguard'a.

 , ,

Srun ()

wireguard не устанавливается. Пишет, что инвалид

 ,

Einstok_Fair ()

openwrt wireguard настройка

Может кто помочь по настройке сервера wireguard на openwrt? В качестве клиента использую tunsafe. Пытался по мануалам из интернета сделать, но не смог разобраться.

https://imgur.com/a/LUh5mG1 - конфиг в openwrt.

https://pastebin.com/dYRaWt5U - конфиг в tunsafe.

Не откажусь от краткого объяснения как вообще это работает? Ключи я вроде понял где брать, можно генерировать из клиента. А по поводу заполнения полей в openwrt и в клиенте не могу понять, зачем они дублируются и как их заполнять? В итоге мне нужно получить доступ во внутреннюю сеть маршрутизатора (опционально хотелось бы иметь доступ из сети-сервера к сети клиента), где собственно и пытаюсь поднять сервер wireguard. На данный момент имею в логе tunsafe: [21:46:45] Loading file: C:\Program Files\TunSafe\Config\TunSafe.conf [21:46:45] TAP Driver Version 9.21 [21:46:45] Sending handshake... [21:46:50] Retrying handshake, attempt 2... [21:46:56] Retrying handshake, attempt 3...

 , , ,

bradolub ()

mss mtu в такой конфигурации. Производительность wireguard.

Хост А:
eth0 - mtu 1500.
wg0 - 1420.
wg1 - 1420.
Хост Б:
eth0 - mtu 1500.
wg0 - 1420.

И еще есть клиент wg0 коннектиться к хосту А. wg - это туннельные wireguard интерфейсы имеют по дефолту mtu 1420 байт. Нашел в рассылке, что mss 1440 байт для ipv4. Прошу помощи у того кто понимает, что нужно делать чтобы оверхеда не было. Ссылка на рассылку: https://www.mail-archive.com/wireguard@lists.zx2c4.com/msg01856.html Тут чел. говорит, что нужно на wg интерфейсах поставить mtu 1500 и все будет faster. Я не пробовал еще, помойму бред. https://sskaje.me/2017/06/wireguard-wg-quick-postup的高级玩法/

На хосте Б пока поставил правило:

-t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380
Это работает страницы грузятся(без этого правила нет), но оно медленное, а позиционирует себя как быстрое. Канал на обоих хостах > 100мб/c стабильно. На деле оно хуже получилось чем openvpn. Ваши предложения, что нужно подкрутить? Или нужен канал шириной в 1 Гб? Cast anc

 , , ,

dpood ()

не получается подключиться через wireguard

Сервер (192.168.0.1/24):

ip addr show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

wg show wg0
interface: wg0
  public key: V0pBAEHoT2sgrcGvqoU5HeG/M8QoF5iIm5QvVwd0NnA=
  private key: (hidden)
  listening port: 45000

peer: 4PN7RmgIppO2YUmzQxUp4zIs9AU3XexClI1JJlSDbg8=
  endpoint: 0.0.0.0:0
  allowed ips: 0.0.0.0/0
  latest handshake: 26 minutes, 36 seconds ago
  transfer: 1.55 KiB received, 14.02 KiB sent

Клиент (192.168.0.2/24):

ip addr show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.2/24 scope global wg0
       valid_lft forever preferred_lft forever

wg show wg0
interface: wg0
  public key: 4PN7RmgIppO2YUmzQxUp4zIs9AU3XexClI1JJlSDbg8=
  private key: (hidden)
  listening port: 39985

peer: V0pBAEHoT2sgrcGvqoU5HeG/M8QoF5iIm5QvVwd0NnA=
  endpoint: 192.168.0.1:45000
  allowed ips: 0.0.0.0/0
  latest handshake: 28 minutes, 57 seconds ago
  transfer: 1.36 KiB received, 55.41 KiB sent
  persistent keepalive: every 25 seconds

с клиента на сервер не пингуется

ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
^C
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3039ms

ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.164 ms
^C
--- 192.168.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.164/0.164/0.164/0.000 ms
а должно по-моему. Между 192.168.0.1 и 192.168.0.2 пингуется в обе стороны. Там ещё написано, что полчаса назад линк был - это если я на сервере прописываю порт клиента (но мне так не хотелось бы делать).

 

Einstok_Fair ()

Настроить Wireguard на OpenWRT с IPv6.

Не могу понять, как правильно организовать сеть на OpenWRT, чтобы клиенты получали адреса из подсети сервера (если я правильно выразился).
Сейчас сеть сделана следующим образом - на сервере есть подсеть /64 IPv6, из которой клиенту выделена подсеть /112.
А так же 10.4.0.0/24, которая используется внутри туннеля Wireguard для IPv4, который потом SNAT-ится в белый IPv4.
Туннель между клиентом и сервером работает только по IPv6. Т.е. IPv4 организован только внутри туннеля.

А вот как настроить сеть на OpenWRT, чтобы клиент получал эту же IPv4/IPv6 подсеть и трафик заворачивался в интерфейс Wireguard на OpenWRT, я понять не могу пока что.
Схема по-идее должна выглядеть примерно так:
Server eno1 < Encrypted IPv6 > OpenWRT wan < Encrypted IPv6 > OpenWRT wg0 < Plain IPv4 / IPv6 > OpenWRT lan < Plain IPv4 / IPv6 > Client enp60s0
Верна ли такая схема организации сети?
И нужно ли настраивать на роутере VLAN-ы, если не планируется никакого разграничения сети?
Ведь если я правильно понял, то VLAN-ы нужны только для отделения каких-то частей сети друг от друга.
А у меня к роутеру подключены по LAN-у только 2 ноутбука и еще 2-3 девайса по Wi-Fi.
В целом может понимание и пришло бы, но не понятно, нужны ли VLAN-ы и если нужны, то как их правильно настроить.
Роутер Asus RT-N56U если нужно.

 , , , ,

Sorcus ()