Jump to content

tailscale – сеть VPN, которая не нуждается в конфигурировании


Recommended Posts

7 минут назад, krass сказал:

Ждем инструкцию  -- как поставить на кинетик , чтобы не было проблем с использованием этого vpn .

Все необходимое для написания в инструкции в теме уже есть. Остается только определить скрипты для netfilter.d - а они разные, скорее всего в зависят от того, задается ли exit node, или же advertise-routes, или же....

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

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

#!/opt/bin/sh

echo $* >> /opt/root/ip.txt
/opt/sbin/tables-multi iptables $*

делаем его исполняемым, и _временно_ заменяем файл iptables этим файлом. Запускаем tailscale. В файле /opt/root/ip.txt и будут нужные правила. Для `tailscale up` без дополнительных параметров, там будет примерно такое

-t filter -C FORWARD -m comment --comment tailscale -i tailscale0 -j ACCEPT --wait
-t nat -C POSTROUTING -m comment --comment tailscale -o eth0 -j MASQUERADE --wait
-t filter -N ts-input --wait
-t filter -N ts-forward --wait
-t nat -N ts-postrouting --wait
-t filter -N ts-input --wait
-t filter -F ts-input --wait
-t filter -N ts-forward --wait
-t filter -F ts-forward --wait
-t nat -N ts-postrouting --wait
-t nat -F ts-postrouting --wait
-t filter -C INPUT -j ts-input --wait
-t filter -I INPUT 1 -j ts-input --wait
-t filter -C FORWARD -j ts-forward --wait
-t filter -I FORWARD 1 -j ts-forward --wait
-t nat -C POSTROUTING -j ts-postrouting --wait
-t nat -I POSTROUTING 1 -j ts-postrouting --wait
-t filter -A ts-input ! -i tailscale0 -s 100.115.92.0/23 -j RETURN --wait
-t filter -A ts-input ! -i tailscale0 -s 100.64.0.0/10 -j DROP --wait
-t filter -A ts-forward -i tailscale0 -j MARK --set-mark 0x40000 --wait
-t filter -A ts-forward -m mark --mark 0x40000 -j ACCEPT --wait
-t filter -A ts-forward -o tailscale0 -s 100.64.0.0/10 -j DROP --wait
-t filter -A ts-forward -o tailscale0 -j ACCEPT --wait
-t filter -I ts-input 1 -i lo -s 100.85.86.2 -j ACCEPT --wait
-t nat -A ts-postrouting -m mark --mark 0x40000 -j MASQUERADE --wait

Тут в предпоследней строке ip адрес talescaled0 интерфейса - его нужно вычислить и подставить. Может потребоваться еще одно правило для INPUT с предыдущей страницы. Дальше уж сами......

  • Upvote 1
Link to comment
Share on other sites

В командной строке tailscale есть дополнительные параметры

~ # tailscale up --help
USAGE
  up [flags]

"tailscale up" connects this machine to your Tailscale network,
triggering authentication if necessary.

The flags passed to this command are specific to this machine. If you don't
specify any flags, options are reset to their default.

FLAGS
<тут пропущено>
  -netfilter-mode on                         netfilter mode (one of on, nodivert, off)
<тут пропущено>

Документации на флаг netfilter-mode я не нашел, из исходников

               case "nodivert":
                        prefs.NetfilterMode = preftype.NetfilterNoDivert
                        warnf("netfilter=nodivert; add iptables calls to ts-* chains manually.")
                case "off":
                        prefs.NetfilterMode = preftype.NetfilterOff
                        warnf("netfilter=off; configure iptables yourself.")

Поэтому я бы запускал tailscale up с флагом `-netfilter-mode off` и в хуках netfilter прописал правила, как для openvpn (bp Entware)

Для filter

/opt/sbin/iptables -I FORWARD -o tailscale0 -j ACCEPT
/opt/sbin/iptables -I FORWARD -i tailascale0 -j ACCEPT
/opt/sbin/iptables -I INPUT -i tailscale0 -j ACCEPT

А для таблицы nat

iptables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE

Думаю знатоки iptables осилят (я таковым не являюсь).

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...

У кого-то получилось сделать выход в интернет через keenetic? Поделитесь правилами iptables! Не могу разобраться. 

Link to comment
Share on other sites

  • 2 months later...

Служба поддержки Keenetic не ответила на мой вопрос, поэтому задам его здесь.

На роутере установлен Entware и сервис tailscale. Настроен доступ к роутеру из Интернета по его IP-адресу в локальной сети: веб-конфигуратору (порт 80), к консоли командной строки CLI (порт 22) и к веб-интерфейсу Transmission (порт 8090). Однако, нет доступа из Интернета к серверам SMB и DLNA, а также к консоли командной строки OPKG (порт 222), хотя из локальной сети он есть. Не смог получить доступ к файлам на подключенном к роутеру USB-диске через SFTP-сервер, но без проблем настроил такой доступ через FTP-сервер. Явно нужно что-то открыть в настройках роутера (межсетевого экрана, задать правила переадресации портов), чтобы появился доступ серверам SMB и DLNA, а также к консоли командной строки OPKG (порт 222), но моих знаний для этого не хватает.

Link to comment
Share on other sites

  • 1 year later...

Как убрать ошибку?

03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   __clone()+0x6c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   start()+0xcc
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Thread::StartRoutine_(void*)+0x420
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Task::Thread::Run()+0x38
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Task::Thread::Run_()+0x464
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::ThreadPool::Task_::Run()+0x208
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x54c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x1dc
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xf1c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xf1c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xf1c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xa38
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Configurator::Serve(Command::Request const&, Command::Response&)+0x5a0
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x274
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Command::(anonymous namespace)::ShowIpv6Route::Execute(Command::Request const&, Command::Response&) const+0x118
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Network::Ip6::RoutingTable::GetRoutes(AutoPVector<Network::Ip6::RoutingTable::Entry, StdDeleter>&, CString const&, Network::Ip6::CBlock const&, unsigned int, Log::VerboseT) const+0xb8
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Network::Ip6::RoutingTable::GetRoutes_(AutoPVector<Network::Ip6::RoutingTable::Entry, StdDeleter>&, LockedPtr<Network::Interface::Ip6 const> const&, Network::Ip6::CBlock const&, unsigned int, bool, Log::VerboseT) const+0xfc
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable: "Queue::BVOFTLCNTRGPKQMC::http/rci" (29883) backtrace:

 

  • Upvote 1
Link to comment
Share on other sites

  • 1 year later...
  • 2 months later...

Поставил пакеты, tailscale, таблицы. Tailscale сразу поднялся и подцепился к сети. Компы видны, всё работает, но периодически приходится перезапускать сервис:  

/opt/etc/init.d/S06tailscaled restart

или
 

tailscale down
tailscale up


Потому что, через какое то время, я не могу подключаться к удаленным компам. Сам сервис показывает что в сети и список всех устройств выводит, но пинга нет.
по tailscale status вижу такую картину в конце лога:

Цитата

# Health check:
#     - writing to "/etc/resolv.pre-tailscale-backup.conf" in rename of "/etc/resolv.conf": open /etc/resolv.pre-tailscale-backup.conf: read-only file system
#     - writing to "/etc/resolv.pre-tailscale-backup.conf" in rename of "/etc/resolv.conf": open /etc/resolv.pre-tailscale-backup.conf: read-only file system



Я так понимаю он что то пытается записать сопоставление имен для dns, но я тут вообще 0. Подскажите, что ему прописать...

Я пытался симлинк сделать на другую директорию, но пишет что раздел защищен от записи.

Edited by IvanS505
Link to comment
Share on other sites

  • 1 month later...
В 17.08.2024 в 11:30, IvanS505 сказал:

Я так понимаю он что то пытается записать сопоставление имен для dns, но я тут вообще 0. Подскажите, что ему прописать...

мне помог запуск вот с этим аргументом tailscale up --accept-dns=false и tailscale больше не падал. Сообщение  HealthCheck тоже пропало.

Edited by Влад Бадамшин
Link to comment
Share on other sites

В 24.09.2024 в 15:32, Влад Бадамшин сказал:

 tailscale up --accept-dns=false

Да, я то же прописал. Но позже заметил что сам сервис работает и пингует все норм, проблема на ПК с windows. То есть, где-то через час отсутствия запросов в сторону клиентских компов теряется вся связь с подсетью. Я дополнительно прописал маршруты, но ничего не помогает.

Link to comment
Share on other sites

В 25.09.2024 в 20:44, IvanS505 сказал:

Да, я то же прописал. Но позже заметил что сам сервис работает и пингует все норм, проблема на ПК с windows. То есть, где-то через час отсутствия запросов в сторону клиентских компов теряется вся связь с подсетью. Я дополнительно прописал маршруты, но ничего не помогает.

Я тоже заметил что все таки теряется связь через время... Решил проблему, точнее скорее не проблему а последствия проблемы, прописав вашу команду в crontab. Вроде после этого ничего не ломалось...

*/30 * * * * /opt/etc/init.d/S06tailscaled restart
Link to comment
Share on other sites

7 часов назад, Vladsky сказал:
*/30 * * * * /opt/etc/init.d/S06tailscaled restart

Я так понимаю вы перезапускается каждые 30 минут. Я сначала тоже так хотел, но понял что это может быть чревато неприятными последствиями. В момент перезагрузки может идти копирования файлов, например.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...