LINUX.ORG.RU

amneziawg на роутере с openwrt

 , , , ,


0

2

Приветствую. Более года юзаю настроенный amneziawg шлюз на домашнем пк (linux, естественно, с установленным модулем ядра), все остальные девайсы в локальной сети используюет его как шлюз интернета (настроил dhcp сервер выдавать адрес данного пк как gate). За год никогда не было никаких проблем, всё как часы.

Но на днях решил помочь товарищу - настроить и передать ему роутер, который будет сам amneziawg шлюзом, а не другой хост в локальной сети. У меня два роутера - один routerich с их модифицированной openwrt, второй - другой производитель прошитый чистой openwrt. Настроил по этой инструкции. Некоторое количество часов все работает норм, но далее amneziawg шлюз на роутерах умирает и инет отваливается. Помогает reset и новая настройка.

На десктопе я бы, наверное, в этом разобрался, но на роутере всё обмазано гуем, который черт знает куда кладет свои конфиги и как в точности работает. А netfilter на роутере - вообще сказка, я однажды дампнул правила и пытался разобраться, не вышло).

Кто-нибудь с этим страдал? Идеи? Ну не могу же я вот такое дерьмо товарищу передать, придется дать ему какой-нибудь ноут с нормальным линуксом. Но минус тут в том, что ещё и надо править настройки роутера, чтобы dhcpd выдавал шлюзом данный ноут, подсеть с правильным адресом сети, статический адрес на ноуте. Но в общем мне админить сеть у товарища как-то вообще не хочется, зачем ему от меня зависеть, хочу дать ему роутер и забыть

PS: когда захожу на роутер через ssh и делаю ping {сервер_в_европе_ip} - он успешно пингуется, ping 1.1.1.1 - нет



Последнее исправление: kvpfs_2 (всего исправлений: 4)
Ответ на: комментарий от NyXzOr

Каким моим скрипом? Вы тему с конца начали читать? Роутер я настроил из гуя, по инструкции. Скрипт мой с десктопа, который верно и надёжно работает долгое время. Хо елось бы подобное и в роутере

kvpfs_2
() автор топика
Ответ на: комментарий от NyXzOr

так что да, поможет. Только обычно наоборот делают. Пускают в wg то, что нужно.

Это точная инфа, что во какой-нибудь кинотеатр можно вычленить из потока? Мне кажется, что при коннекте к условному ОККО, оно перенаправить тебя на какой-нибудь свой сервер…. . Ну и в РФ дефолтно чебурнет, где половина не открывается, пускаю весь трафик через вг и не парюсь, чем буду поштучно обходить блокировки

kvpfs_2
() автор топика
Ответ на: комментарий от kvpfs_2

Понимаете в чем дело, вот у вас в конце скрипта есть строчка: iptables …

Это консольная утилита для управления iptables, а openwrt это необычный linux, там такой утилиты может и не быть совсем.

mx__ ★★★★★
()
Ответ на: комментарий от kvpfs_2

Это точная инфа, что во какой-нибудь кинотеатр можно вычленить из потока?

В интернетах сотни списков с доменами ютубов, дискордов и пр.

У вас в том роутере, от которого логи, помимо амнезии, есть дурилки. Могут они мешать работе амнезии.

NyXzOr ★★★★★
()
Ответ на: комментарий от NyXzOr

не нужно никаких «списков из интернетов». dnsmasq умеет складывать айпишники доменов из указанного ему списка в ipset, трафик к адресам из которого завернуть в отдельный маршрут - дело техники.

anonymous
()
Ответ на: комментарий от NyXzOr

Пишем ему список доменов и имя nftset’а, он при резолве добавляет их адреса в список, который надо заранее создать в том же fw4. Работать не будет, если на клиенте настроен другой днс.

kneedeep
()
Последнее исправление: kneedeep (всего исправлений: 1)
Ответ на: комментарий от kneedeep

Да, я в курсе как это работает. Меня смутило:

не нужно никаких «списков из интернетов»

указанного ему списка в ipset

и ваше:

Пишем ему список доменов

домены сами берем из головы, а не из интернетов? Создаем свой 101-ый список, нам мало сотни?

NyXzOr ★★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 2)
Ответ на: комментарий от kvpfs_2

Хорошо. Выше один человек и я кидали доки, вот пример от туда, чем не катит?

Enable masquerading aka NAT on the WAN zone.

uci set firewall.@zone[1].masq="1"
uci commit firewall
service firewall restart
Enable masquerading selectively for a specific source subnet.

uci -q delete firewall.nat
uci set firewall.nat="nat"
uci set firewall.nat.family="ipv4"
uci set firewall.nat.proto="all"
uci set firewall.nat.src="wan"
uci set firewall.nat.src_ip="192.168.2.0/24"
uci set firewall.nat.target="MASQUERADE"
uci commit firewall
service firewall restart
Enable IPv4 to IPv4 network prefix translation.

cat << "EOF" > /etc/nftables.d/npt.sh
LAN_PFX="192.168.1.0/24"
WAN_PFX="192.168.2.0/24"
. /lib/functions/network.sh
network_flush_cache
network_find_wan WAN_IF
network_get_device WAN_DEV "${WAN_IF}"
nft add rule inet fw4 srcnat \
oifname "${WAN_DEV}" snat ip prefix to ip \
saddr map { "${LAN_PFX}" : "${WAN_PFX}" }
EOF
uci -q delete firewall.npt
uci set firewall.npt="include"
uci set firewall.npt.path="/etc/nftables.d/npt.sh"
uci commit firewall
service firewall restart
mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 4)
Ответ на: комментарий от mx__

Я вообще потерял нить, что он делает. Говорит:

Настроил по этой инструкции

При этом пытается использовать какой-то свой скрипт в Openwrt. Зачем? Потому что хочет отдать другу и надо сделать не как все? Или таки не использует скрипт? Конфиги не показывает.

uci set firewall.@zone[1].masq=«1»

И кстати, не сработает. Если интерфейс поднимается скриптом, он не будет ни в какой зоне. Он будет как device (вроде), которому вообще не сопоставлен interface.

NyXzOr ★★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 1)
Ответ на: комментарий от NyXzOr

При этом пытается использовать какой-то свой скрипт в Openwrt. Зачем? Потому что хочет отдать другу и надо сделать не как все? Или таки не использует скрипт? Конфиги не показывает.

Ну якобы он осилил все строки кроме последней, вот и спрашивает как ее сделать.

Я правда не увидел какой он там дистр юзает на линуксе интересно ведь ;)

mx__ ★★★★★
()

Можно пояснительную команду? По-поводу списков адресов, кто и как их генерит? Ну вот возьмем условный ОККО, у него может быть куча ip без DNS имен, сервера могут меняться ведь также и появляться новые. Где мне взять этот актуальный список?

kvpfs_2
() автор топика
Ответ на: комментарий от kvpfs_2

Да и вообще, какие-то там списки, звучит как говно на костылях. По-моему интересней что-то вроде: в локальной сети хост-шлюз инета, пакеты он направляет в wan или wg в зависимости от некоторого флага состояния, флагов столько, сколько хостов в локалке. Значение флага каждый хост может поменять отправив команду шлюзу (что-то вроде вкл/выкл ВПН). На каждом девайсе простейшая программа, которая может переключить флаг (отправив сообщение шлюзу), а если не может это сделать, то использует дефолтное значение.

kvpfs_2
() автор топика
Последнее исправление: kvpfs_2 (всего исправлений: 1)
Ответ на: комментарий от kneedeep

По цене кинетика можно купить 2-3 роутера с аналогичным железом, на некоторые можно даже кинетикос накатить при желании.

Да, но нужен USB порт и дрова под мой модем. А у кинетика самая большая база дров под модемы.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Не знаю, мобила в качестве модема нормально работает, но мне оно не нужно.

Кинетик хорош, конечно, из коробки всё есть и легко настраивается, но если нужно настроить что-то нестандартное в бриджах или маршрутах, то приходится лезть в их довольно странный cli. К тому же нельзя взять модель без юсб и ставить во флеш софт из entware.

kneedeep
()

amnеzia сеть c роутера пингуется к примеру: внутренний адрес сервера 10.5.50.1 (тут только свой адрес сервера поставь) ? Ну соответственно пинг должен быть разрешен на стороне сервера, сервер должен принимать запросы с этого интерфейса к примеру: awg0 Если, да, то смотри на роутере маршруты route -n, а если нет то скорей всего не происходить рукопожатия, посмотри на сервере введя команду: awg show от рута, и если нет рукопожатия тогда тебя либо блокируют, либо образуется петля при ip маршрутизации, роутер пытается подключиться к серверу через тунель amnezia, тогда тебе надо поправить конфиг поле AllowIPs у себя на сервере и исключить из этого списка внешний ip адрес сервера. Ну скорей всего у тебя маршруты на роутере не настроены. P.S ping, mtr, traceroute, tcpdump, netstat, ss, ip route, все эти программы тебе в помощь.

anonymous
()
Ответ на: комментарий от anonymous

тебе надо поправить конфиг поле AllowIPs у себя на сервере и исключить из этого списка внешний ip адрес сервера.

Не на сервере, а в клиентском конфиге, который используешь на роутере.

anonymous
()
Ответ на: комментарий от ivanich10

Да, видимо начали банить «непонятный» трафик, коим являлся трафик амнезии. Потому и выкатили новую амнезию, которая косит под другие протоколы

А вообще, всё это очень печально. Гиблое место

kvpfs_2
() автор топика
Последнее исправление: kvpfs_2 (всего исправлений: 1)
Ответ на: комментарий от NyXzOr

В интернетах сотни списков с доменами ютубов, дискордов и пр.

А я вот иначе захотел сделать - на основе RIPE NCC Delegations сгенерил все ipv4 подсети, который когда-либо выдавались рф, там получилось около 5 тыс штук. Не удивлен, что когда попробовал сделать нормально - создать правила в стиле «ip route add ${net} via {iface} dev {device}», то это не заработало (чертов роутер, на десктопе это норм).

А вот этот ваш PBR, и вся его там обвязка на роутере - это нормально, если я ему дам 5К подсетей и скажу: «маршрутизируй через этот интерфейс, остальное через тот», или это слишком много и даже время не тратить на осиливание с последующим разочарованием?

kvpfs_2
() автор топика

У меня есть история успеха. Мой роутер теперь знает о всех подсетях, которые когда-либо выделяли рф и ходит в них через операторских шлюз, в остальной мир через awg. Не юзал никакие там приложухи васянские, всё на правилах nftable, без списков запрещйнки - это неправильное решение, на мой взгляд, не угнаться за базой с блоками + они с двух сторон. В моей базе ipv4 и ipv6 адреса, всего около 10К. Если кому-нибудь это будет полезно и это здесь не потрут, то могу поделиться конфигом, который можно накатить на любой openwrt

kvpfs_2
() автор топика
Последнее исправление: kvpfs_2 (всего исправлений: 1)
Ответ на: комментарий от NyXzOr

правила родного nftables - вот правильный подход. А вся эта васянка, которая хз какие лаги ещё добавит. Вот смог я со всей этой васянкой создать правило на 10К подсетей? Ну вот вообще не факт, были бы сомнения в эффективности в люблом случае. А так все шустро

kvpfs_2
() автор топика