LINUX.ORG.RU

17
Всего сообщений: 51

аналог ExcludeIPs для wireguard

Есть там директива AllowedIPs, где нужно указыывать запросы к подсетям, которые должны идти через wireguard. Соотв при включении wireguard клиента отрубается локалка ( 192.168.xxx.xxx). Соотв как указать все подсети в IP4 кроме 192.168.xxx.xxx ?

 ,

Jopich1 ()

Маршрутизация через wireguard

Не знаю обсуждалось ли это, но я поиском не нашёл. Вопрос в следующем, Нужно создать какую то конструкцию из rule и route на openwrt для правильной маршрутизации через default-ный маршрут и через wireguard клиент на роутере с openwrt. Хотелка такая, default маршрут использует сам роутер, а некоторые клиенты в локальной сети используют часть ресурсов через default роутера, а часть ресурсов (заблокированные в РФ роскомпозором) через wireguard. Так вот, как это соорудить? Если вопрос задал не там, прошу простить, я новичок на форуме.

 , ,

Andrey68 ()

WireGuard VPN Нет интернета у 2-3-4-5...-го клиента

Добрый день уважаемые разработчики.

У меня возникла такая проблема,настроил в пару кликов тунель WireGuard. Делал по гайду https://unixhost.pro/clientarea/knowledgebase/63/ustanovka-wireguard.html

Добавляю в клиент на Windows свой wgclient_10.conf у меня интернет есть.Добавляю новый профиль, wgclient_11.conf.Клиент добавляет этот файл и у него нет интернета. Помогите пожалуйста ,мучаюсь уже 3 сутки.

################################ Sysctl.conf ################################

/etc/sysctl.conf - Configuration file for setting system variables

See /etc/sysctl.d/ for additional system variables.

See sysctl.conf (5) for information.

#kernel.domainname = example.com

Uncomment the following to stop low-level messages on console

#kernel.printk = 3 4 1 3

##############################################################3

Functions previously found in netbase

Uncomment the next two lines to enable Spoof protection (reverse-path filter)

Turn on Source Address Verification in all interfaces to

prevent some spoofing attacks

#net.ipv4.conf.default.rp_filter=1 #net.ipv4.conf.all.rp_filter=1

Uncomment the next line to enable TCP/IP SYN cookies

See http://lwn.net/Articles/277146/

Note: This may impact IPv6 TCP sessions too

#net.ipv4.tcp_syncookies=1

Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward=1

Uncomment the next line to enable packet forwarding for IPv6

Enabling this option disables Stateless Address Autoconfiguration

based on Router Advertisements for this host

#net.ipv6.conf.all.forwarding=1

###################################################################

Additional settings - these settings can improve the network

security of the host and prevent against some network attacks

including spoofing attacks and man in the middle attacks through

redirection. Some network environments, however, require that these

settings are disabled so review and enable them as needed.

Do not accept ICMP redirects (prevent MITM attacks)

#net.ipv4.conf.all.accept_redirects = 0 #net.ipv6.conf.all.accept_redirects = 0

or

Accept ICMP redirects only for gateways listed in our default

gateway list (enabled by default)

net.ipv4.conf.all.secure_redirects = 1

Do not send ICMP redirects (we are not a router)

#net.ipv4.conf.all.send_redirects = 0

Do not accept IP source route packets (we are not a router)

#net.ipv4.conf.all.accept_source_route = 0 #net.ipv6.conf.all.accept_source_route = 0

Log Martian Packets

#net.ipv4.conf.all.log_martians = 1

###################################################################

Magic system request Key

0=disable, 1=enable all, >1 bitmask of sysrq functions

See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html

for what other values do

#kernel.sysrq=438


@@@@@@@@@@@@@@@@@@@@@@@@@ Wgclient_10 @@@@@@@@@@@@@@@@@@@@@@@@@

10: 10 > wgclient_10.conf

[Interface] Address = 10.33.67.10/24 DNS = 80.80.80.80 PrivateKey = Key

[Peer] PublicKey = Key PresharedKey = Key AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = ip:17387 PersistentKeepalive = 25


%%%%%%%%%%%%%%%%%%%%%%% Wgclient_11 %%%%%%%%%%%%%%%%%%%%%%%

11: 11 > wgclient_11.conf

[Interface] Address = 10.33.67.11/24 DNS = 80.80.80.80 PrivateKey = key

[Peer] PublicKey = Key PresharedKey = Key AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = ip:17387 PersistentKeepalive = 25


Заранее спасибо ,те кто ответит.

 , ,

androdid ()

Трафик через локальную сеть за NAT

Всем здравствуйте. Подскажите знающие. Есть локальная сеть в организации (А). Эта организация в свою очередь находится так же за общим NAT на несколько организаций (Б). Между организациями используются свои DNS сервера. Сейчас через VPS и Wireguard настроен VPN - тоннель в локальную сеть организации (А). Для служебного пользования есть сайты, которые проверяют из какой сети к ним подключаются. Есть пользователь входит в подсеть глобального NAT (Б) сайт открывается, из дома access denied. Как через этот VPS и Wireguard пробросить трафик из дома в эту подсеть, чтобы сайты определяли подключение, как внутреннее.

Трассировка получается должна быть следующая: Юзер >>>> VPS >>>> Nat(А) >>>> Ya.ru

 , ,

ooops ()

VPS в прибалтике за копейки

Привет!
Посоветуйте сабж. Характеристики не важны, т.к. это только для VPN.

Ну, и в догонку.
Сейчас пинг до машины на OpenVPN в районе 125 мс. Сильно лучше будет на WireGuard, если нагрузки особой нет (тонкий клиент ПО) или не стоит заморачиваться?

Что скажете на счет iphoster и AlienVDS?

 , ,

admucher ()

В OpenBSD заслали патч для поддержки Wireguard

В рассылку OpenBSD Tech прислали патч, реализующий поддержку Wireguard прямо в ядре. В этот раз разрабы умудрились уложиться в смешные ~3.5k строк. Ждем баттхерта от Тео и возможного включения в 6.8!

P.S. @Iron_Bug, у тебя отличный шанс показать свои скиллы на ревью.

 , , ,

kirk_johnson ()

Привязка OpenVPN/Wireguard к хосту

Добрый день! Есть ли возможность привязать клиенты к хосту/адресу с которого будет подключение к серверу? Гугление на эту тему выдает только выдачу статики для впн клиентов, но это не то.

 ,

achilles_85 ()

wireguard tls handshake problem

Доброго времени суток.

Имеем следующее ноутбук -> wifi -> router -> wireguard-gw -> wireguard server -> internet

При попытке открыть некоторые хосты с ноутбука получаю следующее:

curl -v https://rutracker.org
*   Trying 195.82.146.214:443...
* Connected to rutracker.org (195.82.146.214) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /data/data/com.termux/files/usr/etc/tls/cert.pem
  CApath: /data/data/com.termux/files/usr/etc/tls/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: Connection reset by peer in connection to rutracker.org:443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to rutracker.org:443

Что пробовал:

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380

Без изменений. С самой машины с wg все отстреливает как надо.

Конфиги:

Server

[Interface]
Address = 10.100.100.10/24
SaveConfig = false
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -D FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ListenPort = 51820
PrivateKey = 


[Peer]
PublicKey = 
AllowedIPs = 10.100.100.19/32, 10.66.1.254/24

Client

[Interface]
Address = 10.100.100.19/24
PrivateKey = 
DNS = 1.1.1.1, 1.0.0.1

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE; iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE; iptables -D FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

[Peer]
PublicKey = 
Endpoint = :51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

 , , ,

zerofun ()

Недоступен сервер по адресу интерфейса wireguard из lan

Добрый день.

Имеется сервер1 на арче с интерфейсами:
enp1s0 (WAN, 192.168.100.3)
enp2s0 (LAN, 10.128.10.0/24)
wg-client (10.0.0.3, подключен к серверу2,10.0.0.1 на VPS)

Настроен роутинг всего трафика через wg-client: «default via 10.0.0.1 dev wg-client», а также «AllowedIPs = 0.0.0.0/0» в конфиге wireguard. Форвардинг ipv4, разумеется, включен.

( Все конфиги )

Всё замечательно работает, кроме одной досадной мелочи - сервер1 недоступен из LAN по адресу 10.0.0.3.
При этом он доступен по адресам LAN 10.128.10.1 и WAN 192.168.100.3. И даже 10.0.0.1 пингуется из локалки.
До wireguard таким же образом был настроен softether, и его интерфейс был доступен.

Объясню для чего это вообще нужно — чтобы можно было по одному адресу (10.0.0.3) получить доступ к ресурсам сервера1 и из LAN, и из любого другого места, подключившись по wireguard к серверу2.

 , , ,

linuxoid14 ()

Wireguard, правила для firewall

Всем привет. Опыта мало, не удаётся сформировать правила firewall на Server.

Задача, дропать все входящие на сервере на внешнем (eth0) интерфейсе, кроме клиентов wireguard.

Клиент wireguard:

ip: 94.0.0.1/24
wg0: 10.0.1.1/24 # wireguard

сервер находится за NAT:

*:udp/999 -> 127.1.1.1:udp/999

Server:

eth0: 127.1.1.1/24
wg0: 10.0.0.1/24 # wireguard
eth1: 192.168.100.1/24 # локальная сеть

Трафик идёт отлично

$ iftop -n -i eth0
127.1.1.1:999 => 94.0.0.1:88882 1k 2k 4k
              <= 	        1k 2k 4k

но как только добавляю правила iptables, всё становится колом:

$ iptables -A INPUT -i eth0 -j DROP;
$ iptables -A INPUT -i eth0 -s 94.0.0.1 -j ACCEPT;
$ iftop -n -i eth0
127.1.1.1:999 => 94.0.0.1:88882 0k 0k 0k
	      <= 	        1k 2k 4k

Возможно у кого то будут светлые мысли, в чём может быть проблема?

 ,

JhekaU ()

Не работает nat в wireguard

Уже неделю бьюсь с доступом в lan из wireguard.
Коннект есть, с клиента адрес wg интерфейса и lan интерфейса сервера пингуется успешно. При попытке пинга компов в lan сети, пинг с клиента успешно уходит -> доходит до компа в lan -> возвращается на lan интерфейс сервера и там пропадает. Если на компе в lan сети прописать роут до адресов wg, то пинг на адрес сервера wg ходит успешно, трейс до клиента wg выглядит печально - ни одного хопа с ответами.
На сервере два интерфейса : wan - ens19 и lan - ens18.
Конфиг сервера :

[Interface]
PrivateKey = xxx
Address = 10.9.0.1/24
ListenPort = 1195
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE

[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.2/32

Iptables-save :
# Generated by iptables-save v1.8.4 on Wed Apr 15 13:03:58 2020
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i wg0 -j ACCEPT
COMMIT
# Completed on Wed Apr 15 13:03:58 2020
# Generated by iptables-save v1.8.4 on Wed Apr 15 13:03:58 2020
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o ens18 -j MASQUERADE
COMMIT

Конфиг клиента :
[Interface]
Address = 10.9.0.3/32
PrivateKey = xxx

[Peer]
PublicKey = xxx
Endpoint = server:1195
AllowedIPs = 10.9.0.0/24, 192.168.0.0/24
PersistentKeepalive = 25

Форвардинг пакетов включен.
Пробовал дистры debian 10 и 11, ubuntu 18.04. Пробовал собирать из сорцов.
Очень нужна помощь экспертов.
Решение - Не работает nat в wireguard (комментарий)

 , , , ,

Deleted ()

Трафик некоторых сайтов в обход WireGuard

Хочу пустить трафик некоторых сайтов (не приложений) в обход VPN. Вот текущий конфиг клиента:

[Interface]
Address = 10.0.0.2/24
DNS = 1.1.1.1
PrivateKey = (hidden)

[Peer]
PublicKey = pcvQhx3nES/UbcCd1YfQxfjidkBpZQE0UsLUBdp+43o=
AllowedIPs = 0.0.0.0/0
Endpoint = ip:port

К сожалению противоположной по значению AllowedIPs фунции я не нашёл (то есть можно задать список ip которые будут заворачиваться в тунель, но нельзя задать список ip которе НЕ будут этого делать). Я так понял надо настроить таблицу маршрутизации. Но не знаю как это сделать. В man wg-quick есть такой пример:

A combination of the `Table', `PostUp', and `PreDown' fields may be used for policy routing as well. For example, the following may be used to send SSH traffic (TCP port 22) traffic through the tunnel:
[Interface]
Address = 10.192.122.1/24
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820
Table = 1234
PostUp = ip rule add ipproto tcp dport 22 table 1234
PreDown = ip rule delete ipproto tcp dport 22 table 1234

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 0.0.0.0/0

Но я опять же понял как сделать так чтобы фильтруемый ip rule трафик заворачивался в тунель, а как наоборот сделать не знаю.

 , ,

Arksunix ()

Wireguard правила маршрутизации

Пытаюсь настроить маршрутизацию внутри wg0.
Есть сервер wg 172.25.0.0/22
Есть 2 клиента 172.25.1.1 и 172.25.2.1
Хочу что бы весь трафик клиент 2.1 ходил в интернет с клиента 1.1 через сервер wg
Для примера прямо на сервере wg прописал маршрут

ip route add 8.8.8.8/32 via 172.25.1.1

Пакеты не ходят
Прописал в конфиге на сервере wg [Peer]

[Peer]
PublicKey = <key>
AllowedIPs = 172.25.1.1/32,8.8.8.8/32
Пакеты ходят.
Я так понимаю, что при ручном добавлении маршрута внутренний маршрутизатор wg на сервере не в курсе про это.
Как настроить ручную маршрутизацию, указания в AllowedIPs? В мануалах ничего про такое не увидел

 ,

arsik ()

получить ipv6 на конечном узле

Коллеги хочу дать с сервера ipv6 адрес 2a01:4f8:xxx:xx::2/64 ( публичный но /64 ) на свой смартфон на андройде . Конфиг wgclient_10.conf ( сделан wg-quick )

# 10: 10 > wgclient_10.conf
[Interface]
Address = 10.127.0.10/24, fdfc:2965:0503:e2ae::10/64
DNS = 1.1.1.1, 2606:4700:4700::1111
PrivateKey = qxxxxxxxxxxxxxxx=

[Peer]
PublicKey = Wxxxxxxxxxxxxxxxxxx
PresharedKey = Klxxxxxxxxxxxxxx=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 1xx.x.xx.222:27992
PersistentKeepalive = 25

 ,

pinachet ()

Wireguard проблемы с LAN

Здравствуйте. Помогите пожалуйста разобраться. Как надо правильно подключить клиент 1 Wireguard на Debian 10 к серверу Wireguard на Debian 10 чтобы с сервера Wireguard и остальных клиентов Wireguard (2,3,4,5…) иметь доступ к LAN клиента 1.

У всего WG ip 10.161.x.y у клиента wg 1 ip 10.161.0.9, а у LAN этого клиента ip 10.233.x.y - вот как настроить wg так чтобы иметь доступ через любых клиентов WG в подсеть 10.233.x.y ???

 , ,

general13k7 ()

Проблема с Wireguard

Всем привет.

Есть Server_A на котором крутиться wireguard, у сервера белый ip, и он слушает на 0.0.0.0:51820. Так же Client_B который сидит за натом простой мыльницы и пытается подключиться к серверу ip-server:51820.

Проблема: Client_B не может подключиться, в логах подключения только попытки установить соединение:

2019-12-19 21:04:32.056: [TUN] [wg0] peer(oRs3…/sgo) - Handshake did not complete after 5 seconds, retrying (try 2)
2019-12-19 21:04:32.056: [TUN] [wg0] peer(oRs3…/sgo) - Sending handshake initiation
2019-12-19 21:04:37.151: [TUN] [wg0] peer(oRs3…/sgo) - Handshake did not complete after 5 seconds, retrying (try 2)
2019-12-19 21:04:37.152: [TUN] [wg0] peer(oRs3…/sgo) - Sending handshake initiation
2019-12-19 21:04:42.167: [TUN] [wg0] peer(oRs3…/sgo) - Handshake did not complete after 5 seconds, retrying (try 2)
2019-12-19 21:04:42.167: [TUN] [wg0] peer(oRs3…/sgo) - Sending handshake initiation
2019-12-19 21:04:47.175: [TUN] [wg0] peer(oRs3…/sgo) - Sending handshake initiation
2019-12-19 21:04:52.254: [TUN] [wg0] peer(oRs3…/sgo) - Handshake did not complete after 5 seconds, retrying (try 2)
2019-12-19 21:04:52.254: [TUN] [wg0] peer(oRs3…/sgo) - Sending handshake initiation
2019-12-19 21:04:57.264: [TUN] [wg0] peer(oRs3…/sgo) - Sending handshake initiation

На сервер handshake долетает, но обратно к клиенту ответ не приходит. Без ната роутера(белый ip от прова на клиенте) всё хорошо, клиент спокойно подключается к серверу. И ещё один момент, схема с натом раньше работала и клиент за ним мог спокойно подключиться к серверу, но через некоторое время всё перестало работать. Конфигурация сервера с Wireguard, или роутера не менялся. В кратце по конфигу:

server.conf:


[Interface]
Address = 10.5.0.1/24
#PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
#PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp4s0 -j MASQUERADE
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.5.0.0/24 -j SNAT --to-source 192.168.0.99
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -s 10.5.0.0/24 -j SNAT --to-source 192.168.0.99
ListenPort = 51820
PrivateKey = <private key>


#laptop
[Peer]
PublicKey = <public key>
PersistentKeepalive = 25
AllowedIPs = 10.5.0.3/32

client.conf:

[Interface]
PrivateKey = <key>
Address = 10.5.0.3/32

[Peer]
PublicKey = <key>
AllowedIPs = 0.0.0.0/0
Endpoint = server:51820

 ,

ZeroNight ()

OpenWRT, Wireguard, несколько клиентов.

Поднимаю я сервер Wireguard на OpenWRT.

Конфиг на роутере:

config interface 'wg0'
	option proto 'wireguard'
	option listen_port '51223'
	option private_key '$SERVER_KEY'
	option delegate '0'
	list addresses '10.200.200.1/24'

config wireguard_wg0
	option description 'Peer 1'
	option preshared_key '$PSK'
	option persistent_keepalive '25'
	option endpoint_port '39814'
	list allowed_ips '10.200.200.0/24'
	option public_key '$PEER1_PUBKEY'

Конфиг на клиенте:

[Interface]
Address = 10.200.200.2/24
ListenPort = 39814
PrivateKey = $PEER1_KEY
DNS = 10.200.200.1

[Peer]
PublicKey = $SERVER_PUBKEY
PresharedKey = $PSK
AllowedIPs = 0.0.0.0/0
Endpoint = $SERVER_IP:51223

Поднимаю туннель, всё работает. Благодать.

Добавляю на сервер второго пира:

config wireguard_wg0
	option description 'Peer 2'
	option preshared_key '$PSK'
	option persistent_keepalive '25'
	option endpoint_port '39814'
	list allowed_ips '10.200.200.0/24'
	option public_key '$PEER2_PUBKEY'

Делаю /etc/inid.d/network restart, и Peer 1 перестаёт подключаться. Удаляю из конфига второго пира, перезапускаю сеть, и первый снова работает. ЧЗХ? ЧЯДНТ?

 ,

Axon ()

OpenWrt + WireGuard + Обход блокировок

Доброго времени суток, форумчане.

Настраивал по гайду обход блокировок на роутере и даже написал баш скрипт для личных нужд, который всё это дело автоматически настраивает, но что-то идёт не так.

После настройки на ПК, который подключен по Ethernet к роутеру, всё работает нормально, в том числе открывает заблокированные ресурсы.

При этом девайс, который подключается по Wi-Fi долго пытается открыть любой сайт и выдает ошибку по таймауту. Однако, через какое-то время и на этом девайсе может заработать интернет. Причину и следствие не понял.

Через какое-то время роутер и вовсе может перестать отвечать (ping, ssh), но потом сам заводится =/

В простое у роутера такая картина:

  1  [                                  0.0%]   Tasks: 19, 0 thr; 1 running
  2  [                                  0.0%]   Load average: 0.27 0.14 0.13 
  3  [                                  0.0%]   Uptime: 09:03:14
  4  [||                                1.3%]
  Mem[|||||||||||||||||||||        111M/248M]
  Swp[                                 0K/0K]

Во время обновления списка IP адресов ядра нагружаются на секунд 5 и снова всё нормализуется.

Вот скрипт, которым я настраиваю роутер, когда у него дефолтные настройки:

#!/bin/sh

GREEN_COLOR="\033[1;32m"
NO_COLOR="\033[0m"

echo -e "${GREEN_COLOR}Updating list of available packages...${NO_COLOR}"
opkg update


echo
echo
echo -e "${GREEN_COLOR}Installing wireguard package...${NO_COLOR}"
opkg install wireguard


echo
echo
echo -e "${GREEN_COLOR}Configuring wireguard...${NO_COLOR}"
PRIVATE_KEY_OF_CLIENT="HIDDEN"
PUBLIC_KEY_OF_SERVER="HIDDEN"
IP_ADDRESS_OF_SERVER="HIDDEN"

uci set network.wg0=interface
uci set network.wg0.private_key="${PRIVATE_KEY_OF_CLIENT}"
uci add_list network.wg0.addresses="10.0.0.2/32"
uci set network.wg0.listen_port="51820"
uci set network.wg0.proto="wireguard"

uci add network wireguard_wg0
uci set network.@wireguard_wg0[-1].public_key="${PUBLIC_KEY_OF_SERVER}"
uci set network.@wireguard_wg0[-1].allowed_ips="0.0.0.0/0"
uci set network.@wireguard_wg0[-1].route_allowed_ips="0"
uci set network.@wireguard_wg0[-1].endpoint_host="${IP_ADDRESS_OF_SERVER}"
uci set network.@wireguard_wg0[-1].endpoint_port="51820"
uci set network.@wireguard_wg0[-1].persistent_keepalive="25"

uci commit


echo
echo
echo -e "${GREEN_COLOR}Installing ipset and curl packages...${NO_COLOR}"
opkg install ipset curl


echo
echo
echo -e "${GREEN_COLOR}Configuring bypass lock...${NO_COLOR}"
SET_OF_BLOCKED_SUBNETWORKS="blocked-subnetworks"
SET_OF_BLOCKED_IP_ADDRESSES="blocked-ip-addresses"

cat > /etc/init.d/bypass-lock << EOM
#!/bin/sh /etc/rc.common

START=99

start() {
	if ! ipset list -n | grep -q "${SET_OF_BLOCKED_SUBNETWORKS}"; then
		ipset create "${SET_OF_BLOCKED_SUBNETWORKS}" hash:net \\
			family inet \\
			hashsize 4194304 \\
			maxelem 4194304
	fi

	if ! ipset list -n | grep -q "${SET_OF_BLOCKED_IP_ADDRESSES}"; then
		ipset create "${SET_OF_BLOCKED_IP_ADDRESSES}" hash:net \\
			family inet \\
			hashsize 4194304 \\
			maxelem 4194304
	fi


	echo "create temporary-${SET_OF_BLOCKED_SUBNETWORKS} hash:net" \\
		"family inet" \\
		"hashsize 4194304" \\
		"maxelem 4194304" \\
		> /tmp/blocked-lists

	curl https://antifilter.download/list/subnet.lst --silent | while read ip
	do
		echo "add temporary-${SET_OF_BLOCKED_SUBNETWORKS} \${ip}" >> /tmp/blocked-lists
	done


	echo "create temporary-${SET_OF_BLOCKED_IP_ADDRESSES} hash:net" \\
		"family inet" \\
		"hashsize 4194304" \\
		"maxelem 4194304" \\
		>> /tmp/blocked-lists

	curl https://antifilter.download/list/ipsum.lst --silent | while read ip
	do
		echo "add temporary-${SET_OF_BLOCKED_IP_ADDRESSES} \${ip}" >> /tmp/blocked-lists
	done


	ipset destroy temporary-${SET_OF_BLOCKED_SUBNETWORKS} -q
	ipset destroy temporary-${SET_OF_BLOCKED_IP_ADDRESSES} -q


	ipset restore < /tmp/blocked-lists


	ipset swap temporary-${SET_OF_BLOCKED_SUBNETWORKS} ${SET_OF_BLOCKED_SUBNETWORKS}
	ipset swap temporary-${SET_OF_BLOCKED_IP_ADDRESSES} ${SET_OF_BLOCKED_IP_ADDRESSES}
}
EOM
chmod +x /etc/init.d/bypass-lock
/etc/init.d/bypass-lock enable
/etc/init.d/bypass-lock start

echo "*/5 * * * * /etc/init.d/bypass-lock start" >> /etc/crontabs/root
echo >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron start

echo "99  vpn" >> /etc/iproute2/rt_tables
cat > /etc/hotplug.d/iface/30-add-route << EOM
#!/bin/sh

ip route add table vpn default dev wg0
EOM

uci add network rule
uci set network.@rule[-1].priority="100"
uci set network.@rule[-1].lookup="vpn"
uci set network.@rule[-1].mark="0x1"

uci add firewall zone
uci set firewall.@zone[-1].name="wg"
uci set firewall.@zone[-1].family="ipv4"
uci set firewall.@zone[-1].masq="1"
uci set firewall.@zone[-1].output="ACCEPT"
uci set firewall.@zone[-1].forward="REJECT"
uci set firewall.@zone[-1].input="REJECT"
uci set firewall.@zone[-1].mtu_fix="1"
uci set firewall.@zone[-1].network="wg0"

uci add firewall forwarding
uci set firewall.@forwarding[-1].src="lan"
uci set firewall.@forwarding[-1].dest="wg"

uci add firewall ipset
uci set firewall.@ipset[-1].name="${SET_OF_BLOCKED_SUBNETWORKS}"
uci set firewall.@ipset[-1].storage="hash"
uci set firewall.@ipset[-1].match="dst_net"

uci add firewall ipset
uci set firewall.@ipset[-1].name="${SET_OF_BLOCKED_IP_ADDRESSES}"
uci set firewall.@ipset[-1].storage="hash"
uci set firewall.@ipset[-1].match="dst_net"

uci add firewall rule
uci set firewall.@rule[-1].src="lan"
uci set firewall.@rule[-1].proto="all"
uci set firewall.@rule[-1].ipset="${SET_OF_BLOCKED_SUBNETWORKS}"
uci set firewall.@rule[-1].set_mark="0x1"
uci set firewall.@rule[-1].target="MARK"

uci add firewall rule
uci set firewall.@rule[-1].src="lan"
uci set firewall.@rule[-1].proto="all"
uci set firewall.@rule[-1].ipset="${SET_OF_BLOCKED_IP_ADDRESSES}"
uci set firewall.@rule[-1].set_mark="0x1"
uci set firewall.@rule[-1].target="MARK"

uci commit


echo
echo
echo -e "${GREEN_COLOR}Installing unbound, unbound-control and odhcpd packages...${NO_COLOR}"
opkg install unbound odhcpd unbound-control


echo
echo
echo -e "${GREEN_COLOR}Removing dnsmasq package...${NO_COLOR}"
opkg remove dnsmasq


echo
echo
echo -e "${GREEN_COLOR}Removing default DNS configurations...${NO_COLOR}"
uci delete unbound.@unbound[-1]
uci delete dhcp.@dnsmasq[-1]
uci delete dhcp.wan
uci delete dhcp.lan
uci delete dhcp.odhcpd

uci commit


echo
echo
echo -e "${GREEN_COLOR}Configuring DNS-Over-TLS by Cloudflare...${NO_COLOR}"
cat >> /etc/unbound/unbound_ext.conf << EOM
forward-zone:
	name: "."
	forward-ssl-upstream: yes
	forward-addr: 1.1.1.1@853
	forward-addr: 1.0.0.1@853
	forward-addr: 2606:4700:4700::1111@853
	forward-addr: 2606:4700:4700::1001@853
EOM

uci add unbound unbound
uci set unbound.@unbound[-1].add_local_fqdn="1"
uci set unbound.@unbound[-1].add_wan_fqdn="1"
uci set unbound.@unbound[-1].dhcp_link="odhcpd"
uci set unbound.@unbound[-1].dhcp4_slaac6="1"
uci set unbound.@unbound[-1].domain="lan"
uci set unbound.@unbound[-1].domain_type="static"
uci set unbound.@unbound[-1].listen_port="53"
uci set unbound.@unbound[-1].rebind_protection="1"
uci set unbound.@unbound[-1].unbound_control="1"

uci set dhcp.lan=dhcp
uci set dhcp.lan.dhcpv4="server"
uci set dhcp.lan.dhcpv6="server"
uci set dhcp.lan.interface="lan"
uci set dhcp.lan.leasetime="12h"
uci set dhcp.lan.ra="server"
uci set dhcp.lan.ra_management="1"

uci set dhcp.odhcpd=odhcpd
uci set dhcp.odhcpd.maindhcp="1"
uci set dhcp.odhcpd.leasefile="/var/lib/odhcpd/dhcp.leases"
uci set dhcp.odhcpd.leasetrigger="/usr/lib/unbound/odhcpd.sh"
uci commit

/etc/init.d/unbound enable
/etc/init.d/unbound start

echo
echo
echo -e "${GREEN_COLOR}Restarting network...${NO_COLOR}"
/etc/init.d/network restart

Буду очень благодарен, если кто-то поможет. Сам в сетях не разбираюсь, к сожалению. Если нужны какие-то доп. конфиги, то скину.

 , ,

Aleki ()

Широковещательные пакеты внутри Wireguard VPN.

Почему UDP пакеты, отправленные на 255.255.255.255 с клиента не видны на остальных клиентах?
На сервере эти пакеты видны, но они похоже никуда больше не идут.
Что и куда нужно прописать, чтобы остальные клиенты внутри VPN получали эти пакеты?
Или оно не так работает?
Как минимум клиенты не видят друг друга в игре по LAN.
Т.е. пакеты с каждого клиента на сервер уходят и тишина.
Логи tcpdump одного из клиентов на сервере на интерфейсе wg0.

16:29:39.942995 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 88
16:29:49.945035 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 79
16:29:59.947711 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 79
16:30:09.951737 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 79
16:30:34.951693 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 88
16:30:44.955056 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 79
16:30:54.956994 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 79
16:31:04.958339 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 79
16:31:29.958226 IP 10.0.0.10.43124 > 255.255.255.255.43124: UDP, length 88
Если запустить тот же hamachi, то через него почему-то работает.

 ,

Sorcus ()

Почему 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 ()