Назад

Устанавливаем Mesh-сеть на основе Tailscale VPN

Добрый день. В этой статье мы установим VPN Tailscale, который основан на WireGuard и предоставляет дополнительные функции для пользователей. В отличие от WireGuard, Tailscale не является полностью бесплатным. Вы можете им пользоваться без оплаты и привязки карты, с ограничениями до 3 пользователей и 100 устройств. Что в целом достаточно для некоммерческого применения.

В чем преимущества и недостатки Tailscale над WireGuard ?

Основное отличие и преимущество Tailscale — это децентрализованная Mesh-сеть.

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

Если проще, можно подключаться ноут через сервер, смартфон через сервер и наоборот, например смартфон через ноут. Tailscale создает прямой канал между устройствами.

Основные факты:

  1. Tailscale использует WireGuard для создания зашифрованных туннелей между узлами.
  2. Она поддерживает как сети типа «центр-конечная точка», так и сети «сетка».
  3. Tailscale использует централизованный сервер координации для обмена ключами и согласования.
  4. Она поддерживает обход NAT с использованием передовых методов, основанных на стандартах STUN и ICE.
  5. Tailscale использует зашифрованные ретрансляторы TCP, называемые серверами DERP, для ситуаций, когда UDP заблокирован.
  6. Она обеспечивает контрольные списки доступа (ACL) и политики безопасности для повышения уровня защиты.

Другие преимущества Tailscale — это веб-консоль для управления устройствами, гибкое управлением DNS и устройствами, обход NAT.

Из недостатков - сложная процедура настройки клиентов программ, ограничения на количество аккаунтов и устройств. И главный недостаток - появляется еще одна сторона в вопросе VPN. 

Выбор хостинга для VPN

Предлагаю вам на выбор 4 хостинга, которые можно использовать для VPN, исходя из своей субъективной оценки. Три ссылки реферальные, так вы сможете и отблагодарить меня, без всяких усилий, если статья вам оказалось полезной.

Американский хостинг Racknerd (ссылка) предлагает отличные тарифы для VPN, но только при условии аренды акционных серверов (ссылка на акцию). Тарифы без акций — напротив, сильно дорогие. Для РФ есть возможность оплаты через крипту, сейчас не проблема завести кошелек на Huobi или Kucoin.

Железо хорошее, любой тариф потянет VPN. Небольшой плюс — можно заранее пинговать сервера, выбрать IP адрес и его расположение. Сам хостинг зарекомендовал себя как очень надежный.

Speedtest показывает скорость Download 420 — 760Mbit/s, Upload 750 — 790 Mbit/s и Packet loss: 0 % — что является отличным результатом.

Минимальная сумма для пополнения счета — 10 — 20 $ за 1 год, что конечно очень выгодно.

Хостер Aeza (ссылка) предлагает очень хорошие тарифы с оплатой от 1-го часа и расположением в Европе и СНГ. По железу — все отлично, управлять сервером удобно. Не находятся в юрисдикции РФ и никаких персональных данных не просят. Из минусов — довольно часто меняют цены в сторону увеличения.

Speedtest показывают скорость Download 678 — 735 Mbit/s, Upload 632 — 668 Mbit/s и Packet Loss: 3 % — отличный результат, кроме пожалуй Packet Loss. С ним я столкнулся практически на всех локациях Aeza.

Минимальная стоимость сервера под VPN — в районе 5 Евро, но принимают оплату (без комиссии), в рублях. При регистрации по ссылке, у вас будет Wellcome бонус +15%, к первому пополнению счета, но за первые 24 часа.

VDSina стабильный и хороший по железу хостинг. Отлично подойдет под VPN и тесты, недавно полностью ушел в подполье и платить можно любым способом, кроме пожалуй карты

Не просят персональные данные, аренда сервера от 1-го часа, хорошая и стабильная стоимость сервера под VPN, в двух локациях — Москва и Голландия.

Минусы — это пополнение счета, не самая удобная форма. Пойдет если платить нечасто.

Панель управления — очень простая. При выборе сервера ориентируйтесь на ОС Ubuntu 20-22, эпичные сервера (AMD Epic) и уберите галочку с платных бэкапов. Тогда стоимость простой конфигурации у вас будет в районе 468 рублей.

Speedtest показывает скорость Download 650 — 711Mbit/s, Upload 591 — 615 Mbit/s и Packet loss: 0 % — что является превосходным результатом.

Из всех представленных хостинг, Timeweb (ссылка) — самый стабильный для клиента из РФ и предоставляет какие-то юридические гарантии своей работы. Для VPN можно использовать локацию в Нидерландах, Казахстане или Польше. И по своей стоимости, хостинг предоставляет очень хорошее железо, которое будет тянуть не только VPN.

Speedtest показывает скорость Download 191 — 199Mbit/s, Upload 193 — 197 Mbit/s и Packet loss: 0 % — что является средним результатом.

Стоимость сервера с железом на 2 CPU, 2 Gb RAM и 40 SSD при интернете коннекторе на 200 Mbit — 555 рублей.

Установка Tailscale

Заходим на наш сервер через SSH или веб-консоль, копируем команды и вставляем в консоль:

apt update && apt upgrade -y
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
apt update && apt install tailscale
tailscale up

В консоли появится ссылка на Tailscale, кликаем на нее, переходим по ней в браузере и авторизуемся (или связываем свой аккаунт) с Tailscale.

tailscale ip -4

Настройка маршрутизатора подсети

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

Перенаправление трафика через сервер

 tailscale up --advertise-exit-node
Далее идет важный этап, не пропускаем его!

Затем на сайте Tailscale, в списке машин — нажать на три точки напротив той, через которую будет идти весь трафик (подсказка, название нашего сервера), Edit Routte Settings → активировать переключатель Use as exit node.

В Windows, на иконке Tailscale правой клавишей мыши, в появшемся списке выбрать Exit node и выбрать машину через которую будет идти весь трафик (подсказка, название нашего сервера).

В Android, справа вверху нажать три точки, далее Use exit node и выбрать машину через которую будет идти весь трафик.

И напоследок парочку фичей:

Переходим в консоли Tailscale (ссылка) на вкладку DNS, выбираем DNS от Cloudflare, Google или Quad9. Или вводим свой, например от Adguard. И ниже активируем HTTPS Certificates.

Базовая защита сервера

Защитим сервер брутфорса (взлом через перебор паролей):

apt install fail2ban -y && apt install ufw -y && apt install nano -y
touch /etc/fail2ban/jail.local && nano /etc/fail2ban/jail.local

Откроется редактор, вставим в него код:

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
findtime = 600
maxretry = 3
bantime = 43200

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

Настраиваем фаервол и отключаем пинг

ufw allow 22/tcp && ufw limit 22/tcp && ufw allow 443/tcp && ufw default deny incoming && ufw default allow outgoing && service ufw start && ufw enable 

Подтверждаем включение фаервола, Y и Enter.

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

 nano /etc/ufw/before.rules

Меняем концовку следующего выражения с ACCEPT на DROP:

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

И напоследок:

apt update && apt upgrade -y && apt autoclean -y && apt clean -y && apt autoremove -y && reboot
Dmitrii
Dmitrii
https://itstar.space
IT Project Manager, организатор IT-конференций в РФ, владелец 11 кошек и чихуа-хуа. Из которых половину спасли с женой из Турции, остальных спасли в РФ. В прошлом изобретатель с 16 лет, руководитель многочисленных лабораторий, проф. фотограф и еще хорошо готовлю. Короче очень клевый чувак, пацифист и любитель животных. Единственное, не веган :(
Подписаться
Уведомить о
guest
6 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алексей
Алексей
1 год назад

Классная статья, спасибо!

Есть вопрос! После того как я перешел «…на вкладку DNS, выбираем DNS от Cloudflare, Google или Quad9…», не нужно включить тумблер override local DNS?

Спасибо!

Алексей
Алексей
Ответить на  Dmitrii
1 год назад

Спасибо!

Антон
Антон
1 год назад

Дмитрий, спасибо за отличную статью. О tailscale я узнал только вчера и попробовал использовать его для того, чтобы опубликовать сайт, находящийся на домашнем сервере (на сером ip) в интернете. Документация tailscale говорит, что все настроено правильно, а доступа нет. Вы не в курсе в чем может быть проблема?